当订单的状态为complete 的时候,我们想去处理一些事情,可以通过observer来实现,使用"sales_order_save_commit_after" or "sales_order_invoice_pay" observer
然后我们可以获取订单的状态(order status),根据订单的状态去实现你的需求,例子如下:
config.xml中配置
<events>
<sales_order_save_commit_after>
<observers>
<erp>
<class>erp/observer</class>
<method>syncOrder</method>
</erp>
</observers>
</sales_order_save_commit_after>
or
<sales_order_invoice_pay>
<observers>
<erp>
<class>erp/observer</class>
<method>syncOrders</method>
</erp>
</observers>
</sales_order_invoice_pay>
</events>
Observer.php文件
// for event sales_order_save_commit_after
public function syncOrder($observer)
{
$order = $observer->getEvent()->getOrder();
if($order->getState() == Mage_Sales_Model_Order::STATE_COMPLETE){
// do your order complete stuff
}
}
or
// Event sales_order_invoice_pay
public function syncOrder ($observer)
{
$invoice = $observer->getEvent()->getInvoice();
switch ($invoice->getState()) {
case Mage_Sales_Model_Order_Invoice::STATE_PAID :
//do your stuff
break;
}
return $this;
} 在order的状态设置为complete 的时候,就会去执行syncOrder方法了
Magento订单状态变更监听
本文介绍如何在Magento中使用观察者模式监听订单状态变化,并在订单状态变为完成时执行特定操作。通过配置XML文件和编写Observer类的方法,可以实现在订单状态变为完成时触发的业务逻辑。
264

被折叠的 条评论
为什么被折叠?



