2012-01-02 41 views
0

在我的自定义模块中,我想在结帐过程的各个阶段完成时采取一些操作。我正在使用Magento事件调度系统来实现这一点。不幸的是,核心产品中的事件调度系统似乎有些杂乱无章。 一个结账阶段是用户输入他们的账单地址。当使用一个页面结帐方法,我能参加这次活动的观察员:Magento多文档结帐系统中的事件派发

controller_action_postdispatch_checkout_onepage_saveBilling 

我不知道这是表示一个帐单地址已进入了最好的事件,但它似乎工作正常。

当使用multishipping结帐过程时,我看不到我可以听的相关事件。帐单地址和付款方式在同一结帐阶段。最相关的事件中,我能想出是:

controller_action_postdispatch_checkout_multishipping_overview 

这也是射击下订单。

有没有更好的方法来做到这一点?

谢谢。

回答

1

登录和grep,我的朋友,日志和grep :)我记录了所有事件,同时通过多货运结帐流程,这里是商品的转储。

不是去欺骗的目的的情况下,该列表是哪个事件被触发多次,以什么顺序兴趣:

controller_action_predispatch_checkout_multishipping_index controller_action_postdispatch_checkout_multishipping_index controller_action_predispatch_checkout_multishipping_addresses controller_action_layout_render_before_checkout_multishipping_addresses controller_action_postdispatch_checkout_multishipping_addresses controller_action_predispatch_checkout_multishipping_addressesPost checkout_type_multishipping_set_shipping_items controller_action_postdispatch_checkout_multishipping_addressesPost controller_action_predispatch_checkout_multishipping_shipping controller_action_layout_render_before_checkout_multishipping_shipping controller_action_postdispatch_checkout_multishipping_shipping controller_action_predispatch_checkout_multishipping_shippingPost checkout_controller_multishipping_shipping_post controller_action_postdispatch_checkout_multishipping_shippingPost controller_action_predispatch_checkout_multishipping_billing controller_action_layout_render_before_checkout_multishipping_billing controller_action_postdispatch_checkout_multishipping_billing controller_action_predispa tch_checkout_multishipping_overview controller_action_layout_render_before_checkout_multishipping_overview controller_action_postdispatch_checkout_multishipping_overview controller_action_predispatch_checkout_multishipping_overviewPost checkout_type_multishipping_create_orders_single controller_action_postdispatch_checkout_multishipping_overviewPost controller_action_predispatch_checkout_multishipping_success checkout_multishipping_controller_success_action controller_action_layout_render_before_checkout_multishipping_success controller_action_postdispatch_checkout_multishipping_success

+0

这就是我在做什么,但我再往前走一步,也看看事件发生的是什么阶段。例如,'controller_action_postdispatch_checkout_multishipping_billing'看起来很有趣,但实际上,当从结帐过程的“送货信息”阶段点击“继续记帐信息”按钮时,即在**账单地址阶段之前**时,会触发该按钮。在输入账单地址的阶段(“账单信息”阶段),最好的候选人似乎是我在文章中提到的那个。 – user265330 2012-01-03 15:37:51

+0

嘿,我的坏,很抱歉假设你还没有这样做。我认为,根据在这个过程中被解雇的事件的数量,我认为那里必须有一个满足你的需求。你是说,举例来说,controller_action_predispatch_checkout_multishipping_addressesPost与controller_action_postdispatch_checkout_multishipping_overview相关的用途不大? – kalenjordan 2012-01-04 05:24:09

+0

你好。当从“送货信息”阶段移动到“账单信息”阶段时,会触发controller_action_predispatch_checkout_multishipping_addressesPost事件,但我正在查找何时用户在结账过程中完成了其结算地址,这将从“结算信息”信息“阶段进入”下订单“阶段。 – user265330 2012-01-04 13:07:01