2013-06-05 89 views
1

你能否看到为什么我的观察者中的Mage :: log没有射击?非常沮丧。我期待他们在将商品添加到购物车后登录,但他们不是。你能看到问题吗? 我已启用日志记录。模块显示在config> advanced下的列表中。我已禁用缓存,但我正在清除以确保衡量。Magento模块观察员没有射击

config.xml文件:

<?xml version="1.0" encoding="UTF-8"?> 
<config>  
    <modules> 
     <Caitlinhavener_Dynamicprice> 
      <version>0.1.0</version> 
     </Caitlinhavener_Dynamicprice> 
    </modules> 
    <global> 
     <models> 
      <chdispatcher> 
       <class>Caitlinhavener_Dynamicprice_Model</class> 
      </chdispatcher> 
     </models> 

     <frontend> 
      <events> 
       <checkout_cart_product_add_after> 
        <observers> 
         <modify_to_custom_price> 
          <class>Caitlinhavener_Dynamicprice_Model_Observer</class> 
          <method>modifyPrice</method> 
         </modify_to_custom_price> 
        </observers> 
       </checkout_cart_product_add_after> 
      </events> 
     </frontend> 
    </global> 
</config> 

Observer.php:

<?php 
Mage::log('Im here') 
or exit("unable to log"); 
class Caitlinhavener_Dynamicprice_Model_Observer 
{ 
    public function modifyPrice(Varien_Event_Observer $obs) 
    { 
     // Get the quote item 
     $item = $obs->getQuoteItem(); 
     Mage::log('Get Quote Item '. var_dump($_item->debug()); 

     // Ensure we have the parent item, if it has one 
     $item = ($item->getParentItem() ? $item->getParentItem() : $item); 
     Mage::log('Get parent item ' . var_dump($_item->debug()); 

     // Load the custom price 
     //$price = "your custom price logic"; 
     $price = Mage::registry('dynamic_tier_price'); 
     Mage::log('Price is ' . $price); 

     // Set the custom price 
     $item->setCustomPrice($price); 
     $item->setOriginalCustomPrice($price); 
     // Enable super mode on the product. 
     $item->getProduct()->setIsSuperMode(true); 
     Mage::log('Item after super mode ' . var_dump($_item->debug()); 
    } 



} 
?> 

回答

1

你config.xml中是不正确(删除<frontend>标签)

<config> 
    .. 
    <global> 
     <models> 
     <chdispatcher> 
      <class>Caitlinhavener_Dynamicprice_Model</class> 
     </chdispatcher> 
    </models> 
    <events> 
     ... 
    </events> 

Magento中你有3个不同的事件范围(请参见Magento: Event Observer Scope

在您的config.xml中

<config> 
    <frontend> 
     <events> 
      ... 
     </events> 
    <frontend> 
    <adminhtml> 
     <events> 
      ... 
     </events> 
    <adminhtml> 
    <global> 
     <events> 
      ... 
     </events> 
    <global> 
</config>