Magento只执行最后一个事件

时间:2012-09-13 10:13:34

标签: magento

我有一个小问题。我已经注册了两个事件,但只有最后一个被称为, 有人可以帮助我

<!-- Events -->
<events>
  <checkout_type_onepage_save_order_after>
    <observers>
      <save_after>
        <type>singleton</type>
        <class>XXX_testr_Model_Observer_OrderObserver</class>
        <method>orderSubmitEvent</method>
      </save_after>
    </observers>
  </checkout_type_onepage_save_order_after>

  <customer_save_after>
    <observers>
      <XXX_testr_observer_observer>
        <type>singleton</type> 
        <class>XXX_testr_Model_Observer_Observer</class>
        <method>customerSaveEvent</method>
      </XXX_testr_observer_observer>
    </observers>
  </customer_save_after>                
</events>

3 个答案:

答案 0 :(得分:0)

乍一看,它可能是一个观察者名称冲突,尝试将其命名为独特的

尝试改变:

save_after

为:

sdz_wawiconnector_observer_save_after

答案 1 :(得分:0)

根据您的使用情况,使用控制器抛出事件checkout_onepage_controller_success_action可能会更幸运。

答案 2 :(得分:0)

首先,我可以说你的xml是有效的。

检查这些事情:

  1. 观察者名称的重复(可能是save_after或XXX_testr_observer_observer已存在)
  2. 查看您放置这些观察者的部分,然后您希望它们被执行。例如,您将它们放入前端部分,因此customer_save_after将不会在admin中运行。
  3. 检查是否有其他观察者(来自第三方扩展程序)之前没有崩溃。或者,例如,它可以使用&#39; die&#39;在其代码中。
  4. 检查某个其他扩展程序是否重写了核心型号/控制器(或者您的商店在app / code / local / Mage / ..部分中进行了此类重写)并且其代码中没有事件调度程序