Как найти место, когда применяются правила ценообразования в корзине покупок?


Я ищу место в коде, где применяются правила цены корзины покупок. Допустим, я создал правило, и когда я добавляю в корзину какой-либо товар, соответствующий этому правилу, это правило будет применено и может изменить цену. Я пытаюсь изучить модуль SalesRules, но безуспешно. Может быть, кто-нибудь подскажет мне правильное направление?

 1
Author: Viacheslav Kondratiuk, 2013-03-05

1 answers

Отправная точка для всех правил продаж находится в Наблюдателе:

\Mage_SalesRule_Model_Observer::sales_quote_address_discount_item()

Там вызывается \Mage_SalesRule_Model_Validator::process(), где проверяется, следует ли применять правило:

if (!$this->_canProcessRule($rule, $address)) {
    continue;
}

if (!$rule->getActions()->validate($item)) {
    continue;
}

И после этого применяются скидки.

Я надеюсь, что это поможет вам на вашем пути к правилам продаж.

 4
Author: Fabian Blechschmidt, 2019-01-29 15:32:04