Php 观察员不';我不能保存订单
我构建了一个观察者,它监听Php 观察员不';我不能保存订单,php,magento,observer-pattern,Php,Magento,Observer Pattern,我构建了一个观察者,它监听sales\u convert\u quote\u to\u order事件。事件被触发,我只想向order的属性添加一个值。属性已设置(如日志中打印的),但magento不保存订单。我做错了什么 Observer.php public function addLangToOrder($observer){ Mage::log('catching convert_quote_to_order_after'); $order = $obse
sales\u convert\u quote\u to\u order
事件。事件被触发,我只想向order的属性添加一个值。属性已设置(如日志中打印的),但magento不保存订单。我做错了什么
Observer.php
public function addLangToOrder($observer){
Mage::log('catching convert_quote_to_order_after');
$order = $observer->getEvent()->getOrder();
$order->setCustomerLanguage(Mage::app()->getStore()->getCode());
$order->save();
Mage::log($order->getCustomerLanguage());
}
config.xml
<events>
<sales_convert_quote_to_order>
<observers>
<accustomer>
<type>singleton</type>
<class>Ac_Customer_Model_Observer</class>
<method>addLangToOrder</method>
</accustomer>
</observers>
</sales_convert_quote_to_order>
</events>
customer\u language
列出现在my sales\u flat\u order表中。但它并没有得到拯救
我正在使用Magento 1.4.1.1在此之前是否有事务发生?根据我的经验,在事务仍在进行时尝试保存模型是行不通的。我不得不在交易结束后将观察者移动到另一个事件,比如“销售、模型、服务、提交”。您需要将您的属性添加到-
quote
和销售
模型-以使这项工作正常进行
由于Magento将定义的
*从quote
复制到order
,因此您也需要相应地扩展覆盖类的config.xml
:
<config>
<!-- : -->
<global>
<fieldsets>
<sales_convert_quote>
<customer_language><to_order>*</to_order></customer_language>
</sales_convert_quote>
</fieldsets>
</global>
<!-- : -->
</config>
*
*查看
Mages\u Sales
的config.xml
,您的事件是否已触发//哦,对不起,我没读清楚…你说的是哪个版本的Magento?你能具体说明一下吗。。!对不起,苏贝什忘了这个版本。请检查我的更新日志文件中没有任何内容吗?另外,您不能使用现有的store\u id
order属性而不是创建一个新属性吗?在我看来是重复的。我的日志中没有任何内容。我不知道你在哪里看到复制品。我不存储store\u id-我想将store->code属性存储到我的订单中。。。
<config>
<!-- : -->
<global>
<fieldsets>
<sales_convert_quote>
<customer_language><to_order>*</to_order></customer_language>
</sales_convert_quote>
</fieldsets>
</global>
<!-- : -->
</config>