【发布时间】:2013-02-01 10:44:57
【问题描述】:
成功下订单后,我需要在 Magento 中以编程方式为某些产品类型的订单开具发票。这是针对虚拟礼品卡的,为了将礼品卡号码通过电子邮件发送出去,订单必须在管理后端开具发票。
我认为“虚拟商品”已经有了这样的功能,但我的产品类型是“礼品卡”,而不是“虚拟”,因此我必须自己做。
到目前为止,我已设法确保该产品只能单独订购,因此订单中不会混入任何实物产品。此外,我还能够在结账时检测到礼品卡,以隐藏任何非直接或不可靠的付款方式。
现在我所要做的就是添加一个观察者来检查订单状态更改为“已收到付款(在帐户中保留)”或只是从任何先前的订单状态中“收到付款”,例如“付款待处理”。只是 Magento 中没有这样的事件 - 至少据我通过搜索得知。
所以我想我会将自动发票代码连接到 Magento 发送订单确认电子邮件的位置 - 但我根本找不到那个位置。
关于我可以在哪里插入代码以自动为订单开票的任何建议?就收到的付款而言,最好尽可能“安全” - 但我会解决任何问题,并且总是可以手动返回并阻止与可疑欺诈和未收到付款的订单有关的礼品卡。
提前感谢您提供有关如何完成此操作的任何提示!
【问题讨论】:
-
由于我还没有为正常订单开自动发票,我似乎无法使用:
sales_order_payment_capture或sales_order_payment_pay。但我可能正在做某事。通过使用事件sales_order_payment_place_end,我认为订单状态被正确设置为“新”的订单在我的后端获得状态“付款保留/已收到” - 根据此解释:blog.baobaz.com/en/tag/magento-state-and-status -
现在尝试使用事件
sales_order_place_after来获取订单对象。
标签: php magento checkout observers