Drupal Commerce. Скидки

Главные вкладки

Аватар пользователя Unica Unica 26 августа 2013 в 12:20

У товара есть 3 колонки цен: розничная, от 5000 р., от 10000 р. Если общая сумма заказа меньше 5К - используем первую цену, от 5К до 10К - вторую цену, свыше 10К - третью цену.

Попробовала реализовать через правила. Проверяю итоговую сумму в корзине и если она попадает в нужный диапазон - заменяю цену:

Вроде бы всё хорошо. Проблемы начинаются при пересчете корзины, если меняется количество товара. Пример: товар ТЭН стоит 1000 р. в розницу, 970 рублей, если сумма заказа больше 5К и 950 рублей, если сумма заказа больше 10К. Второй товар Подводка всегда стоит 100 р. (не имеет скидок) - добавлен для "чистоты эксперимента", чтоб гарантировано попасть в диапазон.

Покупаем 8 ТЭНов:

Общая сумма без учета скидки 8*1000+100=8100, попали - берем цену на ТЭН 970 р. Всё замечательно.

Меняем количество ТЭНов на 10 и нажимаем "Пересчитать содержимое корзины". Видим следующее:

Хотя общая сумма без учетов скидки 10*1000+100=10100, применяется всё та же цена 970 р., хотя должна бы уже быть 950 р. Видимо, так считается потому, что после применения первой скидки общая сумма корзины меньше 10К.

А вот если при собирании корзины сразу ввести 10 ТЭНов - то всё в порядке:

Как заставить правило опираться при пересчете цены на изначальную цену (base-price), а не промежуточную со скидкой?
Я первый раз использую Rules. Понимаю, что копать надо куда-то в сторону компонент, чтоб добраться в селекторе до составляющей base-price, но не понимаю, как именно это сделать.

Комментарии

Аватар пользователя Unica Unica 2 сентября 2013 в 8:06

А подробнее можно? Что значит "Базовую цену ищите среди токенов"? Где именно искать? При создании именно условия - искала, не нашла. Или всё же компонента должна быть создана?

Аватар пользователя jvb jvb 2 сентября 2013 в 8:44

Unica wrote:
А подробнее можно? Что значит "Базовую цену ищите среди токенов"? Где именно искать? При создании именно условия - искала, не нашла. Или всё же компонента должна быть создана?

Попробуйте сперва задать условие "Если содержимое равно ваш тип товара". Или "Если тип товара равен Ваш тип товара" даже если Вы используете всего один тип товара. Я когда задавал такое условие, то после него появлялись токены присущие моему типу товара. Нигде это явно не описано, даже на сайте Соммерсе.

надеюсь это поможет найти токены базовой цены.

Аватар пользователя Unica Unica 2 сентября 2013 в 9:08

Эти условия заданы - можно видеть на первом скрине из приложенных. Но до базовой цены после этого я долезть так и не смогла.

Аватар пользователя jvb jvb 2 сентября 2013 в 9:38

А что , если попробовать создать акцию через "Настройки Магазина->акции->скидки"(admin/commerce/store/discounts)?

Создать акциию с $off или %off без дат начала и конца акции. Получится уже практически готовое правило. Которое можно отыскать также и в "Настройки магазина->правила ценообразования"(/admin/commerce/config/product-pricing) и добавить туда условие на цену?

Аватар пользователя Unica Unica 2 сентября 2013 в 9:50

Вы предлагаете использовать модуль Commerce Discount?
Можно попробовать, конечно. Но не приду ли я к тому же самому?

Есть у кого-нибудь ещё идеи, как добраться до базовой цены?

Аватар пользователя Unica Unica 3 сентября 2013 в 7:17

Насколько я понимаю, commerce-line-item и общее содержимое корзины - это не одно и то же. В любом случае, попробовала так - скидки вообще перестали работать.