我刚刚开始整理Magento模块,该模块绕过整个Magento结账流程,而是通过XML-RPC将购物车详细信息发送给第三方履行公司。
没有快到任何地方,可以使用一些指导。我的理解是我应该根据通过继续结账触发的事件创建一个带有观察者的模块。麻烦的是,我无法确定哪个事件会发生,我已经通过这里的整个大量列表;
http://www.nicksays.co.uk/magento_events_cheat_sheet/
我已经尝试过了;
checkout_submit_all_after - 成功处理订单后触发
checkout_cart_add_product_complete - 产品添加到购物车后触发
checkout_cart_save_before - 产品加入购物车后触发
checkout_type_onepage_save_order - 无法解决此问题
checkout_onepage_controller_success_action - 成功处理订单后触发
我不知道这是否意味着我必须创建一个自定义事件,或者是否存在与我正在做的事情完全不同且更好的替代方案。构建和发送XML我将留下另一个问题(开始意识到我可能会在这里完成我的手)但是任何提示都非常感激。
感谢您的帮助。
答案 0 :(得分:20)
controller_action_predispatch_checkout_onepage_index
应该是您正在寻找的事件。所有控制器都继承preDispatch方法,该方法为predispatch触发通用事件,并根据请求的操作路径触发特定事件。您想要的控制器位于checkout
模块中,名为onepage
,默认操作为index
。
查看Mage_Core_Controller_Varien_Action::preDispatch()
以查看相关代码