观察员结帐开始(Observer for Checkout Start)

2019-08-16 16:49发布

有没有在Magento观察员检测结帐过程的开始? 这将包括命中页面checkout/onepage/checkout/onestepcheckout/ 。 我想如果可能避免重写控制器。

Answer 1:

每个控制器动作将导致其在发射多种有针对性的活动Mage_Core_Controller_Varien_Action (链接) ,超类的所有动作控制器。 这些事件不同地涉及“全动作名称”,从模块的路由器配置+控制器路径+行动,以及正被请求的路径名的。

在标准onepage结账的情况下,完整的动作名称是checkout_onepage_index和路由名称是checkout_onepage

renderLayout():

controller_action_layout_render_before_'.$this->getFullActionName()

preDispatch()方法:

controller_action_predispatch_' . $this->getRequest()->getRouteName() controller_action_predispatch_' . $this->getRequest()->getRouteName() controller_action_predispatch_' . $this->getFullActionName() controller_action_predispatch_' . $this->getFullActionName()

postDispatch()方法:

controller_action_postdispatch_' . $this->getRequest()->getRouteName() controller_action_postdispatch_' . $this->getRequest()->getRouteName() controller_action_postdispatch_' . $this->getFullActionName() controller_action_postdispatch_' . $this->getFullActionName()

你观察到将取决于OneStepCheckout模块如何捕捉路线事件。 该getRouteName()如果你需要的路线和模块来区分基于事件可能是有用的。 你要测试“客户登录”和“客户将被注销”的情景。 虽然predispatch事件是优选的涉及重定向逻辑,你要对复制车/报价+客户会话逻辑平衡您的需求。



Answer 2:

看看@ controller_action_predispatch_checkout_onepage_index事件

见“前往收银台”事件的Magento?



Answer 3:

为什么你想这样做,那么晚? 根据您要检查什么,你可以将它们添加到购物车后做呢? checkout_cart_save_before



文章来源: Observer for Checkout Start