gpt4 book ai didi

php - 观察者不保存订单

转载 作者:可可西里 更新时间:2023-11-01 12:50:10 25 4
gpt4 key购买 nike

我构建了一个监听 sales_convert_quote_to_order 事件的观察器。事件被触发,我只想为订单的属性添加一个值。属性已设置 - 如日志中所示 - 但 magento 不保存订单。我做错了什么?

观察者.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());
}

配置文件

<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_language

$customer_lang = 'customer_language';
$installer->addAttribute('order', $customer_lang, array('type'=>'varchar'));

customer_language 列出现在我的 sales_flat_order 表中。但它不会被保存。

我正在使用 Magento 1.4.1.1

最佳答案

您需要将您的属性添加到两者 - quote sales模型 - 使这项工作。

因为 Magento 将复制定义的 <fieldset> * 来自 quoteorder , 你需要扩展 config.xml你的重写类也相应地:

<config>
<!-- : -->
<global>
<fieldsets>
<sales_convert_quote>
<customer_language><to_order>*</to_order></customer_language>
</sales_convert_quote>
</fieldsets>
</global>
<!-- : -->
</config>

*请参阅 config.xmlMages_Sales

关于php - 观察者不保存订单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5645634/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com