Magento - Как разрешить только один бесплатный продукт в корзине

Магазин, в котором я работаю, продает столы. Мы также продаем ручки.

Если вы купите письменный стол, я бы хотел дать вам ручку бесплатно. любые дополнительные ручки, которые вы добавляете в свою корзину, должны быть оплачены.

В настоящее время у меня есть ценовое правило для корзины покупок, в котором говорится следующее:

CONDITIONS:
If an item is found in the cart with All of these conditions true:
Category is 3 (desk category)

Apply percent of product price discount: 100%

ACTIONS:
If All of these conditions are true:
SKU is one of pen1, pen2, pen3, etc...

Я всегда хочу только один бесплатный предмет в корзине. Я перепробовал почти все комбинации условий, которые только мог придумать, но простой факт заключается в том, что в Magento нет условия XOR или условия «выполнить это действие только один раз».

Я даже пытался настроить три одинаковых ценовых правила, по одному для каждого пера, с параметром «Остановить дальнейшую обработку правил», установленным на «Да». Каждое правило по-прежнему обрабатывается по очереди.

Самое близкое, что я пришел, это добавить условие, которое говорит

If total quantity  is  1  for a subselection of items in cart matching ANY  of these conditions:
SKU is one of pen1, pen2, pen3

Это условие допускает одну бесплатную ручку в корзине, но полностью отменяет скидку, если в корзину добавляется вторая ручка.

Можете ли вы улучшить это правило?


person Markie    schedule 12.03.2013    source источник
comment
stackoverflow.com/ вопросы/15345619/   -  person Andre Aus B    schedule 12.03.2013
comment
@Андре - близко, но не совсем. Я по-прежнему хочу, чтобы люди могли добавлять больше ручек в корзину, но я не хочу, чтобы на них обрабатывались правила корзины покупок. Я хочу, чтобы только один был свободен.   -  person Markie    schedule 12.03.2013
comment
Тем не менее, вы можете использовать наблюдателя в этом случае и реализовать свои проверки и бизнес-логику.   -  person Andre Aus B    schedule 12.03.2013
comment
Взгляните @ magentocommerce.com/answers/discussion/755/   -  person Renon Stewart    schedule 13.03.2013


Ответы (1)


Это не идеально, но у меня есть кое-что, что работает для меня.

Я добавляю одно правило на бесплатное перо. В каждом правиле есть пункт об исключении, в котором говорится

If an item is NOT FOUND  in the cart with ANY  of these conditions true:
SKU is one of: pen1, pen2, pen3

С ним нужно немного поиграться, и он слишком сложен для работы с какой-либо действительно сложной рекламной акцией, но он работает для коротких и простых рекламных акций. После долгих исследований я искренне думаю, что это лучший способ сделать это в Magento.

person Markie    schedule 02.05.2013