Здравствуйте.
Цель уменьшить стоимость товара до указанной при заказе от 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" - но что-то не вышло.. Наверное я не так их понял...
Подскажите, пожалуйста, как это сделать?
Искал в сети - но мануалы только по организации другой цены для отдельных ролей, а не в зависимости от количества заказанного товара ((
Ответы
В условии надо сравнивать не число всех товаров в заказе, а число текущего товара - $line_item->quantity
В этом и состоит вопрос. Не знаю, как именно это сделать..
Это в условии Total product quantity comparison ?
У меня нет возможности выбрать значения количества ((
Условие - Data comparsion
Селектор - commerce-line-item:quantity
Оператор - Is greater than
Значение - 10
Восемнадцать мешков благодарности!
Оказывается я не в ту сторону копал..
Проблему решил другим способом.. Для потомков сейчас опишу отдельным ответом. Но Ваш ответ - это именно то, что мне было нужно! Ещё раз спасибо!
Пока ждал ответ по Rules саму проблему решил при помощи модуля https://www.drupal.org/project/commerce_price_table - очень большое преимущество перед Rules, что для каждого товара в отдельности можно гибко указывать разные диапазоны количества (1-10 для одного товара / 1-8, 9-20 для другого товара и т.д). Очень удобно и прямо на странице самого товара. С Rules для достижения подобного результата понадобилось бы настраивать отдельное правило для каждого товара.
Но есть и минусы. Предусмотренная возможность скрыть основную стоимость не работает. Приходится дублировать первую цену. Но это не критично.
https://www.drupal.org/project/commerce_discount позволяет это сделать - выбрать именно товар и именно его количество.
Так же заполняется правило и делается либо скидка с заказа, либо скидка с товара.
Вот так выглядит часть админки этого модуля: http://joxi.ru/nAyLnM9sYjLBv2
Не уверен, что это будет удобно.
Здесь под сотню товаров.. и у каждого цена уменьшается на разное значение. А на самом деле будет пять шагов (при заказе 1-10, 11-20, 21-30, 31-40, 41+). Выбирать товар и настраивать скидку отдельно от самого товара в этом случае будет неудобно.
Когда дополнительное поле цены на странице редактирования самого товара и оно применяется через правило - то это самое оно! Неужели rules не умеет делать, как мне нужно?
Как-то так, быть может? http://xandeadx.ru/blog/drupal/786
За ссылку спасибо, пригодится. Но не в этом случае.
100+ товаров. У каждого нужно проставить 5 цен, отношение между которыми разные, а не по одной формуле. Представляете себе этот объём кода? И для новых товаров, каждый раз дописывать код?
На вскидку - можно к товару добавить поля (5 штук) в которых будет отношение, а в функции использовать эти поля как переменные.
facepalm
Вы патологически не умеете формулировать заголовки? Повторяю - заголовок вопроса должен содержать вопросительное слово и знак вопроса. Все вопросы без нормальных заголовков будут удалятся без предупреждения.
Да, прошу прощения ((
Это у меня какая то реверсивная психология..