您好我在 sales_flat_order 表中创建了一个名为 final_shipping_amount 的自定义列。当我加载订单时,它显示我的自定义列。我试图在我的自定义列中添加值,但是这里没有添加值是我的代码。
$final_shipping = "1.33"
$orderIid = $this->getRequest()->getParam('id');
$orderDataShip = Mage::getModel('sales/order')->load($orderIid);
$orderDataShip->setFinalShippingAmount($final_shipping);
$orderDataShip->save();
它没有保存价值。我也试过这种方式,但也没有保存
$final_shipping = "1.33"
$orderIid = $this->getRequest()->getParam('id');
$orderDataShip = Mage::getModel('sales/order')->load($orderIid);
$orderDataShip->setData('final_shipping_amount' , $final_shipping);
$orderDataShip->save();
但它不起作用。
答案 0 :(得分:0)
在您的模块的config.xml文件中,用户此事件
<sales_order_place_before>
<observers>
<Yournamespace_YourModuleName_model_observer>
<type>singleton</type>
<class>Yournamespace_YourModuleName_Model_Observer</class>
<method>example</method>
</Yournamespace_YourModuleName_model_observer>
</observers>
</sales_order_place_before>
并在您的Observer文件中
public function example($observer) {
$final_shipping = "1.33";
$event = $observer->getEvent();
$order = $event->getOrder();
$items = $order->getQuote()->getAllItems();
//Mage::log($items->debug());
$orderdata = Mage::getModel('sales/order')->load($order->getEntityId());
$mn = $orderdata->setData('final_shipping_amount', $final_shipping );
$orderdata->save();
}
可能它可以帮到你。
答案 1 :(得分:0)
向magento添加属性并不是那么简单。
首先,当您保存订单实体时,magento会将其保存到EAV结构而不是平面订单表。
你需要告诉magento你已经首先添加了一个新属性,例如,有关于如何执行此操作的大量信息:
http://stackoverflow.com/questions/12936470/adding-a-new-attribute-to-order-in-magento
完成后,magento将会知道您添加的属性,并且应该正确保存。