Перейти к содержимому

Уведомления покупателю - письма и SMS по статусам заказа

Разбираемся, откуда берутся письма о заказе, как поправить их текст, добавить своё уведомление и не превратить смену статуса в поток сообщений покупателю.

Решение

Находим событие нужного статуса:

// штатные события заказа называются по смыслу и по коду статуса
// SALE_NEW_ORDER - заказ оформлен
// SALE_STATUS_CHANGED_F - заказ перешёл в статус F
// SALE_ORDER_PAID - заказ оплачен
// у каждого события свой набор полей, доступных в шаблоне письма

У каждого статуса заказа своё почтовое событие. Письмо приходит не «от заказа вообще», а от конкретного события, и искать нужно именно его, а не общий шаблон писем магазина.

Правим шаблон письма:

- шаблон привязан к событию и к сайту: у второго сайта свой шаблон
- поля события подставляются в текст по именам, список виден в описании события
- выключенный шаблон не удаляют, а выключают: он ещё пригодится

Шаблон письма привязан к сайту и к событию. Правка шаблона на одном сайте не меняет письма на втором, и это первое, что проверяют, когда «письмо не поменялось».

Отправляем своё уведомление из кода:

\Bitrix\Main\Mail\Event::send([
'EVENT_NAME' => 'VENDOR_ORDER_READY',
'LID' => $order->getSiteId(),
'C_FIELDS' => ['ORDER_ID' => $order->getId(), 'EMAIL' => $email],
]);
// событие сначала заводят в настройках, иначе письмо просто никуда не уйдёт

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

Отправляем SMS вместо письма:

$sms = new \Bitrix\Main\Sms\Event('SALE_STATUS_CHANGED_F', [
'ORDER_ID' => $order->getId(), 'PHONE_NUMBER' => $phone,
]);
$sms->send();
// SMS-шаблон заводится отдельно от почтового, и текст в нём короче

SMS - отдельный канал со своими шаблонами и своей ценой. Короткое сообщение о готовности заказа доходит лучше письма, но отправлять им всё подряд дорого и раздражает покупателя.

Тихие часы стоит задать до первого ночного сообщения. Уведомление о смене статуса в три часа ночи запоминается покупателем надолго, и не с лучшей стороны.

Уведомления удобно проверять на своей учётной записи с настоящим заказом. Тестовое письмо из интерфейса показывает шаблон, но не показывает, какие поля приедут пустыми на живом заказе.

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

Типичные проблемы

Покупатель получает по три письма подряд.

Статус меняется несколько раз за один сеанс, и каждое изменение шлёт письмо. Уведомления отправляют по итогу, а не по каждому шагу.

Правка шаблона не изменила письмо.

Правился шаблон другого сайта или другого события. Шаблоны привязаны и к сайту, и к событию сразу.

В письме пустые поля вместо данных.

В событие переданы не те имена полей, что ждёт шаблон. Список полей смотрят в описании самого события.

Уведомление приходит раньше, чем создан заказ.

Отправка висит на событии «до сохранения» вместо «после». В таком порядке номера заказа ещё нет.

SMS приходят ночью.

Отправка идёт сразу, без учёта времени покупателя. Тихие часы задают до запуска уведомлений.

Частые вопросы

Как добавить своё уведомление?

Завести своё событие и шаблон, а потом отправлять его из кода. Письмо напрямую отправлять не нужно.

Как проверить письмо, не оформляя заказ?

Отправкой события с теми же полями из скрипта. Проверка на настоящем заказе всё равно нужна.

Что дороже: письма или SMS?

SMS платные и заметно дороже, зато доходят лучше. Их оставляют для важных событий вроде готовности заказа.

Нужно ли согласие на такие сообщения?

Уведомление о заказе покупатель ждёт, а рекламная рассылка требует согласия. Смешивать их в одном канале не стоит.

Смежное

Первоисточник