Автоматизация процесса отправки писем в Drupal легко реализуется с помощью модуля Rules. Этот модуль позволяет создавать правила, для вылнения каких-либо действий, при наступлении определенных событий, не обязательно связанных с Drupal Commerce.
Создание правила
В нашем случае, правило должно реагировать на событие обновление заказа. Создаем такое правило:
Конфигурация → Процесс → Правила → Добавить новое правило
(Configuration → Workflow → Rules → Add new rule)
Заполняем необходимые поля:
Имя (Name): например, Send e-mail on change status to processing
Реакция на событие (React on event):
Commerce Order → После обновления существующей commerce order
(Commerce order → After updating an existing commerce order)
Условия
Условием, при котором должен отправляться e-mail, является изменение статуса заказа на нужный вам, например Обработка. Добавляем условие:
Условия → Добавить condition (Conditions → Add condition)
Выбираем:
Данные → Сравнение данных (Data → Data comparsion)
Селектор данных (Data selector): commerce-order:status
Далее надо убедиться, что выбрано сравнение:
Оператор значение (Operator value): равно (equals)
И выбрать в качестве значения нужный нам статус:
Значение (Data value): Обработка (Processing)
В данном случае, письмо будет отправляться при каждом обновлении заказа, пока он имеет такой статус. Чтобы этого не происходило, нужно добавить еще одно условие, которое будет проверять значение статуса перед изменением:
Добавить and (Add and)
Оставляем нетронутым чекбокс:
Обратить (Negate)
добавляем второе условие так, чтоб оно было в связке с первым:
AND → Добавить condition (AND → Add condition)
Опять выбираем:
Данные → Сравнение данных (Data → Data comparsion)
Селектор данных (Data selector): commerce-order-unchanged:status
Снова надо убедиться, что выбрано сравнение:
Оператор значение (Operator value): равно (equals)
И выбрать в качестве значения тот же статус:
Значение (Data value): Обработка (Processing)
Обязательно отметить чекбокс:
Обратить (Negate)
Действие
В Rules есть возможность совершать множество различных действий, в том числе отправлять e-mail. Добавляем действие:
Действия → Добавить action (Actions → Add action)
Выберите action для добавления (Select the action to add):
Система → Отправить письмо (System → Send mail)
Заполняем все стандартные поля для отправки писем и составляем шаблон самого сообщения. Есть возможность использовать токены. На этом создание правила заканчивается.
Вместо заключения: Какие могут быть сложности
Составление шаблона письма может оказаться не тривиальным процессом, некоторые токены "выброшены" как есть, некоторые содержат HTML разметку, что не подходит для Plain Text писем, которые Drupal 7 отправляет по умолчанию. Для отправки сообщений в формате HTML Рекомендую обратить внимание на модуль Mime Mail, который в свою очередь требует Mail System.
Если стандартных статусов заказа Drupal Commerce окажется недостаточно, можно добавить кастомные статусы при помощи модуля Commerce Custom Order Status. К сожалению, модуль не решает проблемы редактирования и удаления стандартных статусов.
Спасибо! в тексте перевода немного опечатка
"Реакция на событие (React on event):
Commerce Товар → После обновления существующей commerce товар (Commerce order → After updating an existing commerce order)"
Нужно:
Реакция на событие (React on event):
Commerce Order→ После обновления существующей commerce Order (Commerce order → After updating an existing commerce order)
короче товар перепутал с ордер) )
Спасибо! Исправил.
offtop: disqus жжет, цепляет комментарии сразу к двум разным нодам.
У меня нет полей Commerce почему?
Реакция на событие (React on event):
Commerce Order → После обновления существующей commerce order
(Commerce order → After updating an existing commerce order)
Причин может быть много:
В общем, с такой постановкой вопроса, вряд ли можно определить причину.