您好我想在奥德完成或关闭时检测订单信息。我尝试不同的事件,如(sales_order_place_after),但没有完成我的要求。我正在完成订单管理方面,我创建观察员捕获信息喜欢 Xml:
<events>
<sales_order_place_after>
<observers>
<extra_options>
<class>My_Module_Model_Observer</class>
<method>salesConvertQuoteItemToOrderItem</method>
</extra_options>
</observers>
</sales_order_place_after>
</events>
观察员:
public function salesConvertQuoteItemToOrderItem($observer)
{
$order = $observer->getOrder();
$orders = $observer->getEvent()->getOrder();
if($order->getState() == Mage_Sales_Model_Order::STATE_COMPLETE){
echo "<pre>";
print_r($orders);exit;
}
}
有人可以帮忙吗?提前致谢
答案 0 :(得分:2)
除非你正在听错事件,否则你正在做正确的事情。您必须改为使用sales_order_save_after
。
答案 1 :(得分:2)
使用sales_order_save_after仍然很好,但它只需要您检查状态(正如Mischa建议的那样):
public function salesOrderSaveAfter($observer)
{
$order = $observer->getEvent()->getOrder();
if($order->getState() != Mage_Sales_Model_Order::STATE_COMPLETE) {
return $this;
}
if($order->getData('state') == $order->getOrigData('state')) {
return $this;
}
// do your stuff
return $this;
}
这对我来说很好。