我想在结账过程中应用优惠券后做点什么。我在Observer.php中使用了"catalogrule_after_apply"事件和相应的函数。优惠券仍在应用中,没有击中我的Observer方法。我有其他事件触发,所以无效的xml不会出现这种情况。问题可能是我使用的事件,但我找不到任何其他事件能产生同样的效果。建议?
etc/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>
Helper/Observer.php
<?php
class Russ_Promosource_Model_Observer
{
public function __construct()
{
}
public function addSourceIdToSessionFromCoupon($observer) {
die ('event observer worked');
}
}
提前谢谢。
当您在管理员中单击"应用规则"时,会触发您观察到的事件
对于你想做的事情,我会使用salesrule_validator_process
事件。你是观察者,然后可以访问应用的规则:
public function couponApplied($observer)
{
$rule = $observer->getEvent()->getRule();
$couponCode = $rule->getCouponCode();
$ruleId = $rule->getRuleId();
}
HTH