Magento 1.7观察者方法

时间:2015-07-05 19:51:45

标签: php magento

我相信下面的代码存在配置问题,模块已激活,但观察者未在事件中被触发。有谁能发现这个问题?

应用程序的/ etc /模块/ James_CoreProductCheck.xml

<?xml version="1.0"?>
<config>
<modules>
    <James_CoreProductCheck>
        <active>true</active>
        <codePool>local</codePool>
    </James_CoreProductCheck>
</modules>
</config>

应用程序/代码/本地/詹姆斯/ CoreProductCheck的/ etc / config.xml中

<?xml version="1.0"?>
<config>
 <modules>
   <James_CoreProductCheck>
     <version>0.0.1</version>
   </James_CoreProductCheck>
 </modules>
<global>
<models>
  <james_coreproductcheck>
    <class>James_CoreProductCheck_Model</class>
  </james_coreproductcheck>
</models>
  <events>
    <checkout_cart_product_add_after>
      <observers>
        <james_coreproduct_check_model_observer>
          <type>singleton</type>
          <class>James_CoreProductCheck_Model_Observer</class>
          <method>check</method>
        </james_coreproduct_check_model_observer>
      </observers>
    </checkout_cart_product_add_after>
  </events>
</global>
</config>

应用程序/代码/本地/詹姆斯/ CoreProductCheck /型号/ Observer.php

class James_CoreProductCheck_Model_Observer {

   public function check(Varien_Event_Observer $observer) {

      Mage::log('Yet another product added', null, 'product-updates.log');

 }
}

2 个答案:

答案 0 :(得分:1)

尝试这个。

     <events>
        <checkout_cart_product_add_after>
            <observers>
                <sales_quote_add_item>
                    <class>James_CoreProductCheck_Model_Observer</class>
                    <method>check</method>
                </sales_quote_add_item>
            </observers>
        </checkout_cart_product_add_after>  
    </events>

确保清除缓存。谢谢:))

答案 1 :(得分:0)

尝试使用不同的模块名称而不是CoreProductCheck。

因此您的代码将如下所示,它将完美运行。

应用程序/代码/本地/詹姆斯/ Prodcheck的/ etc / config.xml中

<?xml version="1.0"?>
<config>
  <modules>
    <James_Prodcheck>
      <version>1.0.0</version>
    </James_Prodcheck>
  </modules>
  <global>
       <events>
      <checkout_cart_product_add_after> 
        <observers>
          <checkout_cart_product_add_after> 
            <type>singleton</type> 
            <class>prodcheck/observer</class> 
            <method>check</method>  
            <args></args> 
          </checkout_cart_product_add_after>
        </observers>
      </checkout_cart_product_add_after>
    </events>
  </global>
</config> 

和观察者文件app / code / local / James / Prodcheck / Model / Observer.php

class James_Prodcheck_Model_Observer
{

            public function check(Varien_Event_Observer $observer)
            {
                //Your code stuff.
            }

}