我试图在下订单后使用magento事件观察者重新计算magento total。我使用下面的代码来计算总数。
Observer Functon
public function recalculateTotal($observer){
//var_dump($observer->getOrder()->getData());exit;
$orderModel = $observer->getOrder();
//echo "<pre>";print_r($orderModel->getData());echo "</pre>";exit;
$saveModel = Mage::getModel('sales/order')->load($orderModel->getId());
$saveModel->setSurcharge(10);
$saveModel->setBaseSurcharge(10);
$saveModel->collectTotals();
$saveModel->save();
echo "<pre>";print_r($orderModel->getData());echo "</pre>";exit;
}
活动
<global>
<events>
<sales_order_place_after>
<observers>
<order_surcharge_display>
<type>singleton</type>
<class>surcharge/observer</class>
<method>recalculateTotal</method>
</order_surcharge_display>
</observers>
</sales_order_place_after>
</events>
</global>
但没有任何改变,请帮助。
答案 0 :(得分:0)
您无法重新计算订单总数。此方法仅适用于报价。如果要添加个人值,则必须使用:var diff = {
'x' : this.target.position.x - this.node.position.x,
'y':this.target.position.y - this.node.position.y
};
事件。
在你的模块的config.xml中,你应该添加这样的东西,将你的总数从报价转换成订单:
sales_quote_collect_totals_after
直接更改订单总数:
<sales_convert_quote>
<surcharge_amount>
<to_order>*</to_order>
</surcharge_amount>
<base_surcharge_amount>
<to_order>*</to_order>
</base_surcharge_amount>
</sales_convert_quote>
PS:您必须更改报价和报价地址,但不能按顺序进行更改