0

成功下订单后,我需要在 Magento 中以编程方式对某些产品类型的订单开具发票。这是针对虚拟礼品卡的,为了将礼品卡号码通过电子邮件发送出去,订单必须在管理后端开具发票。

我认为“虚拟商品”已经有了这样的功能,但我的产品有“礼品卡”类型,而不是“虚拟”类型,因此我必须自己做。

到目前为止,我已经设法确保该产品只能单独订购,因此订单中不会混入任何实物产品。此外,我还能够在结账时检测到礼品卡,以隐藏任何非直接或不可靠的付款方式。

现在我所要做的就是添加一个观察者来检查订单状态更改为“已收到付款(保留在帐户中)”或只是从任何先前的订单状态中“收到付款”,例如“付款待处理”。只是 Magento 中没有这样的事件 - 至少据我通过搜索得知。

所以我想我会将自动发票代码连接到 Magento 发送订单确认电子邮件的位置 - 但我根本找不到那个位置。

关于我可以在哪里插入代码以自动为订单开票的任何建议?最好在收到付款方面尽可能“安全” - 但我会解决任何问题,并且总是可以手动返回并阻止与可疑欺诈和订单相关的礼品卡,而这些礼品卡以某种方式未收到付款。

提前感谢您提供有关如何完成此操作的任何提示!

4

1 回答 1

0

我认为最好的选择是观察事件sales_order_place_after, sales_order_payment_place_end,它在下订单付款时被触发(见这里)。要 100% 确保向您的观察者添加代码以检查到期订单是否为零$order->getTotalDue() == 0

于 2013-02-01T14:27:55.007 回答