Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/magento/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 观察员不';我不能保存订单_Php_Magento_Observer Pattern - Fatal编程技术网

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>