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

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

Аватар пользователя dmyasnykov dmyasnykov 7 ноября 2017 в 16:45

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

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

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

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

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

Помогите составить правильное условие или рассмотрю даже готовые решения в виде модулей.

Лучший ответ

Аватар пользователя fairrandir fairrandir 7 ноября 2017 в 16:59

Сравнивайте, чтобы владелец/создатель заказа был текущим пользователем.

Комментарии

Аватар пользователя ХулиGUN ХулиGUN 7 ноября 2017 в 19:07

dmyasnykov wrote:

site:current-user:field-oborot

Тут ошибка... нужно скорее всего что-то типа commerce-order:buyer:field-oborot и устанавливать значение ему же. Насчёт название buyer не уверен. Друпала нет под рукой, но мысль, думаю ясна

Аватар пользователя dmyasnykov dmyasnykov 8 ноября 2017 в 11:05

спасибо за советы и что отозвались
нашел токен owner(владелец), с его помощью удалось вывести нужный результат, раньше его задействовать не получалось, видимо была где то ошибка, еще раз попробовал - получилось