2012-06-25 26 views
0

我不想在已打折的產品上應用折扣券,即具有特殊價格的產品。所以,我創建了一個事件作爲聽:magento事件聽衆

<?xml version="1.0" ?> 
<config> 
<modules> 
    <Tweett_Fashionn> 
     <version>0.1.0</version> 
    </Tweett_Fashionn> 
</modules> 
<global> 
    <events> 
     <salesrule_validator_process> 
      <observers> 
       <Tweett_Fashionn_Hook> 
        <type>singleton</type> 
        <class>Tweett_Fashionn_Model_Observer</class> 
        <method>specialpricediscount</method> 
       </Tweett_Fashionn_Hook> 
      </observers> 
     </salesrule_validator_process> 
    </events> 
</global> 

和觀察者文件

<?php 
class Tweett_Fashionn_Model_Observer extends Varien_Event_Observer{ 
public function __construct(){ 
    echo "<p style='color:red'>Hello World .. </p>"; 
} 
public function specialpricediscount($observer){ 
    $item=$observer['item']; 
    $_product = Mage::getSingleton('catalog/product')->load($item->getProductId());   
    if($_product->getSpecialPrice()>0){ 
     $result = $observer['result']; 
     $result->setDiscountAmount(0);     
    } 
    } 
    } 
?> 

但它甚至不打印的hello world當我點擊申請按鈕優惠券幫助..plz

回答

0

我有同樣的issue.I認爲以下是正確的做法:

<salesrule_validator_process> 
     <observers> 
      <Namespace_Modulename> // your namespace_modulename 
       <type>model</type> //change singleton to model 
       <class>Tweett_Fashionn_Model_Observer</class> 
       <method>specialpricediscount</method> 
      </Namespace_Modulename> 
     </observers> 
    </salesrule_validator_process> 

也許這會幫助你。