0

我不想将折扣券应用于已经打折的产品,即特价产品。所以我创建了一个事件监听:

<?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);                
    } 
   }
   }
 ?>

但是当我点击应用优惠券按钮时它甚至不打印你好世界..plz帮助

4

2 回答 2

0

您缺少 config.xml 的结尾吗?您可能只是没有粘贴它。您确定您的模块已启用吗?看看这个免费的扩展,它可以帮助您调试扩展 - http://www.magentocommerce.com/magento-connect/magneto-debug-8676.html

于 2012-07-20T18:04:43.243 回答
0

我有同样的问题。我认为以下是正确的方法:

 <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>

愿这对你有所帮助。

于 2015-01-19T10:36:51.630 回答