观察者不保存订单

| 我已经建立了一个监听
sales_convert_quote_to_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>
我已经通过安装脚本添加了属性“ 3”
$customer_lang = \'customer_language\';
$installer->addAttribute(\'order\', $customer_lang, array(\'type\'=>\'varchar\'));
我的sales_flat_order表中有“ 3”列。但是不会保存。 我正在使用Magento 1.4.1.1     
已邀请:
您需要同时向
quote
模型和
sales
模型添加属性,才能使此工作有效。 由于Magento会将定义的
<fieldset>
*从ѭ6复制到
order
,因此您也需要相应地扩展覆盖类的
config.xml
<config>
    <!-- : -->
    <global>
        <fieldsets>
            <sales_convert_quote>
                <customer_language><to_order>*</to_order></customer_language>
            </sales_convert_quote>
        </fieldsets>
    </global>
    <!-- : -->
</config>
*请参阅ѭ14的
config.xml
    
在此之前有交易发生吗?根据我的经验,在事务仍在进行时尝试保存模型不起作用。我不得不在事务处理之后将观察者移至另一个事件,例如\“ sales_model_service_quote_submit_after \”。     

要回复问题请先登录注册