@dmyasnykov

Drupal Commerce. Как сделать дисконтную накопительную скидку?

Пытаюсь сделать накопительную скидку для пользователей сайта. Условия простые:
если сумма оформленных заказов от 1000 до 2000 то скидка клиента на следующий заказ 3%, если от 2000 до 5000 то 5% и т.д. Плюс это все должно накапливаться и запоминаться на уровне пользователя, думаю с целью все понятно.

И так первое, что я сделал - в "управление полями пользователей" создал поле в которое буду записывать оборот клиента, после чего через рулс по условию буду просчитывать скидку в зависимости от оборота.

Далее нужно создать "правило" которое будет считать оборот клиента.

Делаю:
Событие - после обновления существующего заказа.
Условие - "Сравнение данных" статус заказа должен быть ранен "Завершен". (т.к. за не завершенные заказы давать скидку не хочется)
Действие - "Вычислить значение" commerce-order:total (общая сумма заказа) + site:current-user:field-oborot (поле "оборот" текущего пользователя) = результат
"Установить значение" оборот клиента = результат

Итог: все работает, НО оборот считает тому кто изменяет статус заказа, т.е. текущим пользователем который находится в условии, является админ который меняет статус заказа.

Помогите составить правильное условие или рассмотрю даже готовые решения в виде модулей.
  • Вопрос задан
  • 260 просмотров
Решения вопроса 1
andead
@andead
друпал девелопер, фрилансер
Вместо site:current-user:field-oborot пользуйтесь commerce-order:owner:field-oborot

Возможно придётся добавить условие Entity has field, чтобы Rules увидел поле field_oborot.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы