【问题标题】:What's the right magento observer event to capture order paid?什么是正确的magento观察者事件来捕获支付的订单?
【发布时间】:2014-09-24 02:49:47
【问题描述】:

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

在阅读了几个来源之后,它似乎是:

sales_order_invoice_pay

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

另一个选项是:

'sales_order_payment_pay'

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

此方法是否仅与其他付款方式一起调用? (贝宝/authorize.net)

更新:

阅读后:this other question似乎保证我在付款(在线或离线)后导出订单的唯一方法是捕获发票的创建时间,而对于 Magento 1.9正确的观察者是:

sales_order_invoice_register

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

更新 2:

经过大量测试,'sales_order_invoice_pay' 似乎是实现我需要的正确方法。

【问题讨论】:

    标签: php magento observers magento-1.9


    【解决方案1】:

    checkout_onepage_controller_success_action 呢。如果您的订单付款成功,则可以使用此功能。还有另一个事件sales_order_payment_capture。它也可能在您的情况下使用。我以前没用过。

    查看LINK

    编辑

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

    如需更多参考,请查看此Link

    【讨论】:

    • 感谢您的回复,好像下单后立即调用checkout_onepage_controller_success_action,并没有检查是否付款,sales_order_payment_capture 不适用于离线付款。似乎没有事件可以统治他们所有=(
    • 这可能会有所帮助stackoverflow.com/questions/6193054/…
    • @progtammer_rkt:谢谢,他们似乎建议“sales_order_invoice_pay”,不幸的是,该事件已在 Magento 1.9 中删除。我想会是 'sales_order_invoice_register' 或 'sales_order_payment_pay' 我会做一些测试,但如果有人成功实现了我的需求,确认哪个更好,这将非常有帮助。
    • 不。该事件存在于 magento 1.9 中。看看Mage_Sales_Model_Order_Invoice::pay()。那么您的代码中可能存在某种错误
    • 该列表很可能不完整。这是定义该事件github.com/speedupmate/Magento-CE-Mirror/blob/master/app/code/… 的文件。看看pay() 方法。还要检查您的系统并确保代码看起来相同。
    猜你喜欢
    • 1970-01-01
    • 2011-06-11
    • 2012-02-03
    • 1970-01-01
    • 1970-01-01
    • 2011-01-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多