Magento - применить скидку без правила корзины покупок - PullRequest
3 голосов
/ 11 сентября 2011

У меня следующая проблема:

Существует стороннее расширение, которое автоматически добавляет товары в корзину в качестве подарков, когда пользователь добавляет какой-то конкретный товар.Также применяется купон.Например, он добавляет бесплатный приемник WiFi, когда пользователь хочет купить телевизор.Он добавляет товары достаточно хорошими, но должно быть правило корзины покупок, чтобы сделать 100% скидку на эти товары.

Что мне нужно сделать, это сделать это расширение, чтобы добавить эти товары бесплатно без правила корзины покупок,Единственное событие, которое я нашел, связанное со скидками, это sales_quote_address_discount_item, но любые операции с ним не дали результатов.

Так что я был бы очень признателен, если бы кто-то указал мне правильное направление: где именно в коде эта скидкаприменяется и как я могу сделать то же самое из этого расширения?

Ответы [ 3 ]

7 голосов
/ 11 сентября 2011

Скидка с купона применяется в Mage_SalesRule_Model_Validator по методу process().Этот метод вызывается каждый раз, когда в кавычке вызывается collectTotals().Вам нужно будет переопределить этот класс (и, возможно, несколько других), чтобы переопределить поведение купона.Внутри этого метода salesrule_validator_process есть событие, которое вы можете использовать вместо переопределения всего метода, но оно будет зависеть от того, какую логику вам нужно изменить, чтобы выяснить, происходит ли это в нужном вам месте.

2 голосов
/ 28 февраля 2014

Посмотрите на этот модуль;он может добавлять товары в корзину в качестве подарка и устанавливать их цену в 0 $ при их добавлении: http://www.code4business.de/make-a-gift-magento-warenkorbpreisregeln-um-geschenke-erweitern/.

. Для этого он захватывает два события salesrule_validator_process и sales_quote_collect_totals_before.Это ничего не переписывает.Код также подробно описан в http://www.webguys.de/magento/turchen-21-kostenlose-produkte-uber-warenkorb-preisregeln/.

. Требуется правило цены - но только для определения продукта (или условия), за который вы получаете свой подарок.Подарок всегда бесплатный;дополнительное правило не требуется.

2 голосов
/ 13 сентября 2011

Вы также можете добавить свою собственную логику после того, как событие add_to_cart_after сработало.(Например, создайте свое собственное событие apply_discount_after_add_to_cart;)

...