Вы здесь

Как сделать скидку при покупке определённого числа одного товара?

1

Здравствуйте.
Цель уменьшить стоимость товара до указанной при заказе от 10 штук.

Создал у продукта второе поле Цена. Хочу применить его к товару, если соблюдается условие.
Настроил условие

Total product quantity comparison
Parameter: Order: [commerce-line-item:order], Quantity: 10 (http://joxi.ru/BA06Mj7CjoM3my.png)

Общие настройки правила - http://joxi.ru/8AnzGdMcvxzxAO.png

Но работает не совсем так как я хотел.
Если добавить в корзину 10 товаров - то да.. У меня применяется цена2 как нужно. Всё отлично!
Но если добавить два разных товара по 5 штук - то к обоим применяется всё равно применяется цена2. Видно потому что общее число товаров в корзине 10.

А мне нужно, чтобы
- если в корзине 2 товара по 5 штук, то прявило не применяется.
- если в корзине 1 товар 10 штук, а второй товар 5 шутк, то цена2 применяется только к первому товару. а не ко всем.

Пробовал настроить с условиями "Total quantity of product line items in the cart" и "Total quantity of selected product comparison" - но что-то не вышло.. Наверное я не так их понял...

Подскажите, пожалуйста, как это сделать?

Искал в сети - но мануалы только по организации другой цены для отдельных ролей, а не в зависимости от количества заказанного товара ((

Версия Drupal: 
7.x
Связанные проекты: 
Drupal Commerce
Вопрос задан 12.12.2016 - 19:34
Аватар пользователя Quty
Quty
27

Вы патологически не умеете формулировать заголовки? Повторяю - заголовок вопроса должен содержать вопросительное слово и знак вопроса. Все вопросы без нормальных заголовков будут удалятся без предупреждения.

Комментарий оставлен 12.12.2016 - 22:33

Да, прошу прощения ((
Это у меня какая то реверсивная психология..

Комментарий оставлен 13.12.2016 - 01:10

Ответы

2

В условии надо сравнивать не число всех товаров в заказе, а число текущего товара - $line_item->quantity

Ответ дан 14.12.2016 - 18:27
Аватар пользователя xandeadx
xandeadx
1417

В этом и состоит вопрос. Не знаю, как именно это сделать..
Это в условии Total product quantity comparison ?
У меня нет возможности выбрать значения количества ((

Комментарий оставлен 16.12.2016 - 18:26

Условие - Data comparsion
Селектор - commerce-line-item:quantity
Оператор - Is greater than
Значение - 10

Комментарий оставлен 16.12.2016 - 18:52

Восемнадцать мешков благодарности!
Оказывается я не в ту сторону копал..

Проблему решил другим способом.. Для потомков сейчас опишу отдельным ответом. Но Ваш ответ - это именно то, что мне было нужно! Ещё раз спасибо!

Комментарий оставлен 17.12.2016 - 22:51
0

Пока ждал ответ по Rules саму проблему решил при помощи модуля https://www.drupal.org/project/commerce_price_table - очень большое преимущество перед Rules, что для каждого товара в отдельности можно гибко указывать разные диапазоны количества (1-10 для одного товара / 1-8, 9-20 для другого товара и т.д). Очень удобно и прямо на странице самого товара. С Rules для достижения подобного результата понадобилось бы настраивать отдельное правило для каждого товара.

Но есть и минусы. Предусмотренная возможность скрыть основную стоимость не работает. Приходится дублировать первую цену. Но это не критично.

Ответ дан 17.12.2016 - 22:57
Аватар пользователя Quty
Quty
27
0

https://www.drupal.org/project/commerce_discount позволяет это сделать - выбрать именно товар и именно его количество.
Так же заполняется правило и делается либо скидка с заказа, либо скидка с товара.
Вот так выглядит часть админки этого модуля: http://joxi.ru/nAyLnM9sYjLBv2

Ответ дан 13.12.2016 - 14:35
Аватар пользователя shu
shu
131

Не уверен, что это будет удобно.
Здесь под сотню товаров.. и у каждого цена уменьшается на разное значение. А на самом деле будет пять шагов (при заказе 1-10, 11-20, 21-30, 31-40, 41+). Выбирать товар и настраивать скидку отдельно от самого товара в этом случае будет неудобно.

Когда дополнительное поле цены на странице редактирования самого товара и оно применяется через правило - то это самое оно! Неужели rules не умеет делать, как мне нужно?

Комментарий оставлен 13.12.2016 - 14:53
0

Как-то так, быть может? http://xandeadx.ru/blog/drupal/786

Ответ дан 13.12.2016 - 19:04

За ссылку спасибо, пригодится. Но не в этом случае.
100+ товаров. У каждого нужно проставить 5 цен, отношение между которыми разные, а не по одной формуле. Представляете себе этот объём кода? И для новых товаров, каждый раз дописывать код?

Комментарий оставлен 14.12.2016 - 15:33

На вскидку - можно к товару добавить поля (5 штук) в которых будет отношение, а в функции использовать эти поля как переменные.

Комментарий оставлен 17.12.2016 - 20:14