我试图在且仅在订单已付款且状态现已设置为“正在处理”之后才将订单发送给第三方。用于设置它以适用于所有支付类型的最佳观察者是什么?

阅读了几个来源后,似乎是这样的:

sales_order_invoice_pay

应该适用于所有付款方式,但似乎它已在 Magento 1.9 上删除: http://rabee.me/codes/magento/cheatsheet/1.9/ (此列表不完整,请检查下面的更新 )

另一个选择是:

'sales_order_payment_pay'

但是,当我测试它时,将付款方式设置为“支票/汇票”,在使用“订单”>“发票”>“提交发票”在后端生成发票后,它不会被触发

此方法只能与其他付款方式一起调用吗?(贝宝/authorize.net)

更新:

看完之后:另一个问题似乎保证我在付款(在线或离线)后导出订单的唯一方法是在创建发票时捕获,对于 Magento 1.9 来说,正确的观察者是:

sales_order_invoice_register

通过在线方式 paypal/authorize.net 付款后,发票是否会自动创建并发送?在沙盒/测试模式下使用它们时,这仍然是真的吗?

更新2:

经过多次测试似乎 'sales_order_invoice_pay' 是实现我所需要的正确方法。

有帮助吗?

解决方案

关于什么 checkout_onepage_controller_success_action. 。订单支付成功后即可使用。还有一个活动 sales_order_payment_capture. 。它也可能用于您的情况。我之前没用过。

检查这个 关联

编辑

根据讨论,似乎 sales_order_invoice_pay 是捕获已付款订单的完美观察者,并且该事件在 Magento 1.9 中仍然可用。(未弃用)

如需更多参考,请查看此 关联

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top