Обозреватель событий не запускается из пользовательского модуля, когда на странице оформления заказа действует купон - PullRequest
0 голосов
/ 03 марта 2012

Я хочу сделать что-то после применения купона во время оформления заказа.Я использовал событие catalogrule_after_apply вместе с соответствующей функцией в Observer.php.Купон все еще применяется, не затрагивая мой метод наблюдателя.У меня другие события запускаются, поэтому недействительный 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');
    }

}

Заранее спасибо.

1 Ответ

0 голосов
/ 03 марта 2012

событие, которое вы наблюдаете, запускается, когда вы нажимаете «Применить правило» в админке.
Для того, что вы хотите сделать, я бы использовал событие salesrule_validator_process.Ваш наблюдатель может получить доступ к примененному правилу:

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

HTH

...