gpt4 book ai didi

Magento:订单状态的观察者已完成

转载 作者:行者123 更新时间:2023-12-03 21:09:55 25 4
gpt4 key购买 nike

在 Magento 上,我正在开发一个佣金模块,我需要在销售完成而不是下订单时向我的代理付款。

理想情况下,我希望在订单状态变为“完成”时捕获它,但我还没有找到观察者来执行此操作?

我可以将此添加到装运观察者,但一个订单可以有多个装运,因此不正确。

或者,我总是可以启动一个 cron 作业来计算最后一小时的订单,但似乎又不是正确的方法。

关于什么是正确方法的任何建议。

最佳答案

使用观察者“sales_order_save_commit_after”或“sales_order_invoice_pay”然后您可以获得订单状态,并根据您想要的状态进行操作。这是一个例子:

// for event sales_order_save_commit_after
public function commissionCalculationOnComplete($observer)
{
$order = $observer->getOrder();
if($order->getState() == Mage_Sales_Model_Order::STATE_COMPLETE){
// do your order complete stuff
}
}

或者
// Event sales_order_invoice_pay
public function triggerProvisionCalculation ($observer)
{
$invoice = $observer->getEvent()->getInvoice();
switch ($invoice->getState()) {
case Mage_Sales_Model_Order_Invoice::STATE_PAID :
//do your stuff
break;
}
return $this;
}

您必须检查您没有进行两次计算,因为每次保存订单时都会触发此方法。

关于Magento:订单状态的观察者已完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7927618/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com