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
magento自定义订单属性值未保存_Magento - Fatal编程技术网

magento自定义订单属性值未保存

magento自定义订单属性值未保存,magento,Magento,我使用安装程序脚本为order和quote创建了一个属性。这些可以在实体属性表中看到。在结帐时,我想设置值并将其与订单一起保存。我创建了一个事件和观察者函数。但价值不会节约。请帮忙 config.xml <sales_order_save_after> <observers> <clickandcollect_save_location_orderattributes>

我使用安装程序脚本为order和quote创建了一个属性。这些可以在实体属性表中看到。在结帐时,我想设置值并将其与订单一起保存。我创建了一个事件和观察者函数。但价值不会节约。请帮忙

config.xml

<sales_order_save_after>
                <observers>
                    <clickandcollect_save_location_orderattributes>
                        <type>model</type>
                        <class>Balance_Clickandcollect_Model_Observer</class>
                        <method>saveLocationOrderattributes</method>
                    </clickandcollect_save_location_orderattributes>
                </observers>
</sales_order_save_after>
谁能帮我解决这个问题。我不明白我在哪里犯了错误


谢谢

我想你缺少了保存方法

您必须按以下方式更改观察员代码

public function saveLocationOrderattributes($observer){
        $event = $observer->getEvent();
        $order = $event->getOrder();
        //$quote = $event->getQuote();

       //or load the order
        $order_id = $order->getId();
        $order = Mage::getModel('sales/order')->load($order_id);
        $order->setLocation('1');
        $order->save();

}
因此,它将保存您的订单更新值

希望这将有助于您

您的订单->保存()返回销售\订单\保存\并进行无限循环。试试这个,我添加了一个注册表项,这样在order->save()调用之后它就不会保存属性和订单了


你好,谢谢你的回复。之前我添加了save(),但后来我收到一个错误,说内存已超出:(我应该怎么做。在我的php.ini内存中,你可以将其增加到
256M
512M
可能对你有用。也可以查看我的更新代码。它不起作用。没有其他解决方案。我想要的是在签出中保存订单属性值。有什么帮助吗?你在实际的obs中获得订单信息吗服务器?如订单id和allyes订单信息正在获取,它们也在保存
public function saveLocationOrderattributes($observer){
        $event = $observer->getEvent();
        $order = $event->getOrder();
        //$quote = $event->getQuote();

       //or load the order
        $order_id = $order->getId();
        $order = Mage::getModel('sales/order')->load($order_id);
        $order->setLocation('1');
        $order->save();

}
public function saveLocationOrderattributes($observer){
        if(!Mage::registry('afterOrderSave'))
        {
            Mage::register('afterOrderSave');
            $event = $observer->getEvent();
            $order = $event->getOrder();
            $order->setLocation('1');
            $order->save();
        }
    }