在结帐页面上应用优惠券时,事件观察者不会从自定义模块触发

时间:2012-03-02 20:44:28

标签: php xml events magento observer-pattern

我想在结帐过程中应用优惠券后做点什么。我使用了'catalogrule_after_apply'事件以及Observer.php中的相应函数。优惠券仍在应用,而没有按照我的观察员方法。我有其他事件触发,所以无效的xml不会是这种情况。问题可能是我正在使用的事件,但我找不到任何会产生相同效果的事件。建议?

等/ config.xml中

<config>
       <events>
            <catalogrule_after_apply>
                <observers>
                    <promosource>
                        <type>singleton</type>
                        <class>promosource/observer</class>
                        <method>addSourceIdToSessionFromCoupon</method>
                    </promosource>
                </observers>
            </catalogrule_after_apply>
        </events>
</config>

助手/ Observer.php

<?php
class Russ_Promosource_Model_Observer
{
    public function __construct()
    {
    }

    public function addSourceIdToSessionFromCoupon($observer) {

                die ('event observer worked');
    }

}

提前谢谢。

1 个答案:

答案 0 :(得分:0)

当您点击管理员中的“应用规则”时,会触发您正在观察的事件 对于你想做的事情,我会使用salesrule_validator_process事件。然后,观察者可以访问应用的规则:

    public function couponApplied($observer)
    {
        $rule = $observer->getEvent()->getRule();
        $couponCode = $rule->getCouponCode();
        $ruleId = $rule->getRuleId();
    }

HTH