- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我花了两天的时间,我觉得我已经尝试了一切,但我仍然碰壁。
我有两个属性(module_job_id、module_channel_id),我想将它们添加到报价和订单中。我设法得到的是报价属性工作正常,我可以看到它们存储在数据库中并且可以很好地检索它们。
剩下的唯一事情就是将值从报价移动到订单。我做错了什么?
这是我的模块配置文件:
<?xml version="1.0" encoding="UTF-8"?>
<config>
<modules>
<Company_Module>
<version>0.1.9</version>
</Company_Module>
</modules>
<global>
<fieldsets>
<sales_convert_quote>
<module_job_id>
<to_order>*</to_order>
</module_job_id>
<module_channel_id>
<to_order>*</to_order>
</module_channel_id>
</sales_convert_quote>
</fieldsets>
<resources>
<company_module>
<setup>
<module>Company_Module</module>
<class>Mage_Sales_Model_Mysql4_Setup</class>
</setup>
<connection>
<use>core_setup</use>
</connection>
</company_module>
</resources>
</global>
</config>
安装文件sql/company_module/mysql4-install-0.1.0.php:
<?php
$installer = $this;
$installer->startSetup();
$installer->getConnection()->addColumn($installer->getTable('sales/quote'), 'module_job_id',
'VARCHAR(255) NULL DEFAULT NULL');
$installer->getConnection()->addColumn($installer->getTable('sales/quote'), 'module_channel_id',
'VARCHAR(255) NULL DEFAULT NULL');
$installer->getConnection()->addColumn($installer->getTable('sales/order'), 'module_job_id',
'VARCHAR(255) NULL DEFAULT NULL');
$installer->getConnection()->addColumn($installer->getTable('sales/order'), 'module_channel_id',
'VARCHAR(255) NULL DEFAULT NULL');
$installer->addAttribute('order', 'module_job_id', array('type' => 'varchar'));
$installer->addAttribute('quote', 'module_job_id', array('type' => 'varchar'));
$installer->addAttribute('order', 'module_channel_id', array('type' => 'varchar'));
$installer->addAttribute('quote', 'module_channel_id', array('type' => 'varchar'));
$installer->endSetup();
我已在安装文件中尝试了 addAttribute 和 addColumns 的所有可能组合。结果是我在 sales_flat_quote 和 sales_flat_order 中都将这两个属性作为列。但是,eav_attribute 中没有任何属性。我不确定这样是否可以。
我尝试的另一件事是在 sales_convert_quote_to_order 观察器中显式设置订单属性值。这不起作用:
public function salesConvertQuoteToOrder($observer)
{
$order = $observer->getEvent()->getOrder();
$order->setModuleJobId('123');
$order->setModuleChannelId('456');
}
我不知道这是否重要,但这些是我系统上的实体类型(只有订单,没有报价...):
mysql> SELECT entity_type_id, entity_type_code FROM eav_entity_type;
+----------------+------------------+
| entity_type_id | entity_type_code |
+----------------+------------------+
| 3 | catalog_category |
| 4 | catalog_product |
| 7 | creditmemo |
| 1 | customer |
| 2 | customer_address |
| 6 | invoice |
| 5 | order |
| 8 | shipment |
+----------------+------------------+
此外,eav_entity 为空。我也希望这没问题。
mysql> select * from eav_entity;
Empty set (0.00 sec)
这是在 Magento 1.6.2.0 上。非常感谢!
最佳答案
在 Magento 1.6.2.0 上,订单保存在 sales_flat_order 上,报价保存在 sales_flat_quote 上。据我所知,他们不再使用 eav 结构,所以我认为没关系。您应该查看 Mage_Sales_Model_Convert_Quote 类并添加调试代码:
public function toOrder(Mage_Sales_Model_Quote $quote, $order=null)
{
if (!($order instanceof Mage_Sales_Model_Order)) {
$order = Mage::getModel('sales/order');
}
/* @var $order Mage_Sales_Model_Order */
$order->setIncrementId($quote->getReservedOrderId())
->setStoreId($quote->getStoreId())
->setQuoteId($quote->getId())
->setQuote($quote)
->setCustomer($quote->getCustomer());
Mage::helper('core')->copyFieldset('sales_convert_quote', 'to_order', $quote, $order);
Mage::dispatchEvent('sales_convert_quote_to_order', array('order'=>$order, 'quote'=>$quote));
//I add my debug code here using Mage::log, you can debug using your own method
Mage::log($order->getData());
return $order;
}
查看是否在那里设置了 module_job_id 和 module_channel_id。
关于magento - 如何在 Magento 中将报价属性转换为订单?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11664275/
F#中的“引号”是什么,它们的用途是什么? 最佳答案 In short, a quotation is metadata that represents the code of a particula
有人可以解释一下,为什么我可以使用 $1两次得到不同的结果? perl -wle '"ok" =~ /(.*)/; sub { "huh?" =~ /(.*)/; print for @_ }->(
我正在尝试向迷你购物车 block 添加一个 block (按钮):要么到 name="cart_sidebar"或者最好是 name="topCart.extra_actions"因为它自动呈现它的
我尝试做一些事情并尝试弄清楚。我只想向单击的 div 添加一个类。如果单击 div 号 1,然后单击 div 号 2,则该类将从 div1 中删除并添加到 div2 中。希望您能理解。 这是一个cod
我正在创建一个执行以下操作的 magento 支付扩展程序: 当用户在商家网站上点击结账时,他会被重定向到一个网站(如 paypal),并在该网站上输入他的支付数据。如果付款方式失败,用户将被重定向到
我正在开发一个自定义忠诚度积分模块。在结账期间,客户可以选择兑换积分。 在模块设置中,我创建了一个redeem_points eav_attribute(它存在于eav_attribute 表中),并
我目前正在做一个小项目,我需要对以下场景进行建模: 场景 客户打来电话,他想要一辆新车的报价。 销售代表。注册客户信息。 销售代表。在系统中创建报价,并将项目添加到报价(汽车)。 销售代表。通过电子邮
在 Elixir 中,什么时候应该使用 Macro.escape/1 而不是 quote/1?我看过beginner's guide但这没有帮助。 最佳答案 quote/2返回 abstract sy
我不明白什么是报价单。有人可以详细回答什么是 magento 报价、它们存储的数据、它们的生命周期和其他相关信息吗? 编辑:请注意区别:Magento vs Magneto。还有“magento”和“
我有一个 Terraform 脚本,它基于 Azure 市场中的此镜像在 Azure 上创建虚拟机: https://azuremarketplace.microsoft.com/en-us/mark
我正在尝试使用 JavaScript 重新创建(或“伪造”)Skype 报价。因此,我需要将 XML 字符串推送到剪贴板,格式为“SkypeMessageFragment”。警报显示效果很好,但使用
我的数据框 (ds) 中的每日数据看起来像这样跨越了几年: 对于每一天,我都需要将所有报价标准化为该特定日期的特定时间。例如,在 6 月 1 日,我需要将所有报价标准化为 6 月 1 日下午 3 点的
有人知道如何在 PL/SQL 存储过程中生成 .Net DateTime.Ticks,而无需在 Oracle 数据库中使用 .Net 程序集吗? 我在 .Net 中有一项服务,将 DateTime.T
很难说出这里要问什么。这个问题模棱两可、含糊不清、不完整、过于宽泛或夸夸其谈,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开,visit the help center . 关闭 1
我在 Steam API 中搜索发送 Steam 报价的方法,但找不到。可以使用 API 或者您知道其他方法吗?我想在 PHP/Symfony 中使用它。 最佳答案 您目前无法通过 API 创建交易报
我是一名初学者 Scheme 程序员,我想丰富我在函数式编程方面的知识。我在 DrRacket IDE 中编程。最近我发现了一些有趣的代码: (car ''(a b)) 输出: 'quote
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
我有以下结构化数据: { "@context": "https://schema.org/", "@type": "Offer", "priceCurrency": "EUR", "p
我是一名优秀的程序员,十分优秀!