当前位置:  开发笔记 > 编程语言 > 正文

订单成功发送时总是会发送Magento事件?

如何解决《订单成功发送时总是会发送Magento事件?》经验,为你挑选了2个好方法。

我发现Magento事件调度是一个非常令人沮丧的领域.我认为很多挫折感像往常一样,缺乏文档.

我希望我的代码可以在访问者浏览网站的各个阶段触发.所以我在Mage :: dispatchEvent中进行了一些调试,然后我浏览了网站以查看每个阶段触发的事件.有很多!

我感兴趣的两个地方是:

当访问者选择了帐单地址并转到结帐流程的下一个阶段时.

当用户成功下订单时

对于帐单地址一,我看到被解雇的事件看起来相关:

controller_action_predispatch_checkout_onepage_saveBilling
controller_action_postdispatch_checkout_onepage_saveBilling

'pre'和'post'告诉我实际上有一个'checkout_onepage_saveBilling'事件,但是没有,所以我的第一个问题是为什么'pre'和'post'?

对于成功的订单,看起来不错的事件是:

checkout_onepage_controller_success_action
checkout_multishipping_controller_success_action

我的第二个问题是,所有付款方式都会触发这些事件吗?例如,如果使用Google Checkout或PayPal(标准重定向),事件是否会触发,以及在什么时候?从PayPal返回网站时?如果是这样,那么如果用户在完成付款后没有返回该问题会产生什么问题.

谢谢你的帮助.



1> Morgon..:

可悲的是,我注意到checkout_submit_all_afterPaypal Express订单没有触发.

如果没有修改Paypal模型来添加它(或者可能挂钩他们可能触发的事件 - 我还没有检查过),我认为checkout_onepage_controller_success_action可能真的是唯一可以完全依靠每种类型订单的事件.



2> Josh..:

在调用操作之前将触发predispatch事件,postdispatch事件将在操作完成后触发.因此,如果您需要知道操作的结果是什么,则应使用postdispatch事件.

对于成功订单,请检查checkout_submit_all_after事件.

如果您还没有看到它,https://www.nicksays.co.uk/magento-events-cheat-sheet-1-9/,是Magento活动的便捷参考.

推荐阅读
小白也坚强_177
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有