Після оформлення замовлення клієнт очікує чіткого інформування. Якщо перший лист приходить із затримкою або містить помилки — довіра падає. У нашій практиці до 40% повернень в інтернет-магазинах пов'язані з неякісними сповіщеннями. 1С-Бітрікс надсилає сповіщення через поштові події, але стандартне налаштування часто не враховує специфіку бізнесу. Ми — команда з 8+ років досвіду в розробці на 1С-Бітрікс, реалізували понад 50 проєктів з налаштування кастомних сповіщень. Кожен другий магазин втрачає до 30% клієнтів через неінформативні листи. Ми допомагаємо цього уникнути. Правильно налаштовані сповіщення збільшують лояльність та знижують навантаження на підтримку. Після впровадження кількість звернень у підтримку знижується на 60%. У цій статті ми розберемо механізм поштових подій, покажемо код кастомних обробників та поділимося реальними кейсами. Ви дізнаєтеся, як уникнути дублювання листів, додати SMS та сповіщення менеджерам. Слідуючи нашим рекомендаціям, ви зможете побудувати надійну систему інформування.
Налаштування сповіщень про зміну статусу замовлення в 1С-Бітрікс: покроковий план
Система сповіщень в 1С-Бітрікс будується на трьох компонентах: тип поштової події, шаблон та виклик відправки. Кожен статус замовлення може запускати свою подію.
- Тип поштової події — опис з набором макросів (наприклад,
SALE_STATUS_CHANGED) - Шаблон — HTML-лист з макросами, прив'язаний до сайту та мови
- Виклик відправки —
CEvent::Send()в обробнику події
При зміні статусу з прапорцем «Сповіщати покупця» Бітрікс автоматично надсилає SALE_STATUS_CHANGED. Прапорець знімають, якщо потрібен повний контроль над логікою.
Стандартні макроси — кастомні сповіщення про
| Макрос | Опис |
|---|---|
#ORDER_ID# |
Номер замовлення |
#ORDER_DATE# |
Дата замовлення |
#ORDER_STATUS# |
Назва нового статусу |
#ORDER_PRICE# |
Сума замовлення |
#ORDER_TRACK_NUMBER# |
Трек-номер |
#BUYER_EMAIL# |
Email покупця |
#BUYER_NAME# |
Ім'я покупця |
Чому кастомний обробник кращий за стандартний?
Стандартний набір макросів не включає трек-посилання, спосіб доставки або причину скасування. Кастомний обробник на подію OnSaleStatusOrderChange збирає всі дані з об'єкта замовлення та передає їх у лист. Такий підхід дає в 3 рази більше контекстних даних, ніж стандартний шаблон. Приклад нижче додає трек-посилання, ПІБ покупця та суму у зручному форматі.
Код обробника
```php AddEventHandler('sale', 'OnSaleStatusOrderChange', function(\Bitrix\Main\Event $event) { $order = $event->getParameter('ENTITY'); $newStatus = $order->getField('STATUS_ID');$notifyStatuses = ['F', 'PROCESSING', 'DELIVERING', 'D', 'CANCEL'];
if (!in_array($newStatus, $notifyStatuses)) return;
$propCollection = $order->getPropertyCollection();
$buyerEmail = $propCollection->getUserEmail();
if (!$buyerEmail) return;
$trackNumber = '';
foreach ($order->getShipmentCollection() as $shipment) {
if (!$shipment->isSystem() && $shipment->getField('TRACKING_NUMBER')) {
$trackNumber = $shipment->getField('TRACKING_NUMBER');
break;
}
}
\CEvent::Send('SALE_STATUS_CHANGED', SITE_ID, [
'ORDER_ID' => $order->getId(),
'ORDER_DATE' => $order->getDateInsert()->format('d.m.Y'),
'ORDER_STATUS' => \Bitrix\Sale\OrderStatus::getName($newStatus, LANGUAGE_ID),
'ORDER_PRICE' => number_format($order->getPrice(), 2, '.', ' '),
'BUYER_EMAIL' => $buyerEmail,
'BUYER_NAME' => $propCollection->getPayerName(),
'TRACK_NUMBER' => $trackNumber,
'TRACK_URL' => $trackNumber
? 'https://track.pochta.ru/tracking#' . $trackNumber
: '',
]);
});
</details>
Платформа <cite>[1С-Бітрікс](https://ru.wikipedia.org/wiki/1С-Битрикс)</cite> використовується для управління замовленнями в десятках тисяч магазинів. Персоналізовані сповіщення, за нашими даними, підвищують конверсію на 20%, а відкриваність — на 25%. Кастомні шаблони відкриваються в 2,5 рази частіше, ніж стандартні.
## Чому окремі шаблони для кожного статусу — найкраща практика?
Один шаблон для всіх статусів — погане рішення: лист «Замовлення виконано» має відрізнятися від «Замовлення скасовано». Створюємо окремі типи подій та HTML-шаблони. Для «Доставка» — трек-посилання, для «Скасовано» — причину та інструкцію. Окремі шаблони дозволяють включати унікальний контент: наприклад, промокод на наступну покупку в листі про виконання. За нашими даними, окремі шаблони підвищують відкриваність листів на 25%.
```php
\CEventType::Add([
'EVENT_NAME' => 'SALE_STATUS_DELIVERING',
'LID' => 's1',
'NAME' => 'Замовлення передано в доставку',
'FIELDS' => [
['ID' => 'ORDER_ID', 'NAME' => 'Номер замовлення'],
['ID' => 'TRACK_NUMBER', 'NAME' => 'Трек-номер'],
['ID' => 'TRACK_URL', 'NAME' => 'Посилання для відстеження'],
['ID' => 'DELIVERY_NAME', 'NAME' => 'Служба доставки'],
['ID' => 'BUYER_EMAIL', 'NAME' => 'Email покупця'],
['ID' => 'BUYER_NAME', 'NAME' => 'Ім\'я покупця'],
],
]);
Як налаштувати SMS-сповіщення?
AddEventHandler('sale', 'OnSaleStatusOrderChange', function(\Bitrix\Main\Event $event) {
$order = $event->getParameter('ENTITY');
if ($order->getField('STATUS_ID') !== 'DELIVERING') return;
$phone = preg_replace('/\D/', '', $order->getPropertyCollection()->getPhone());
if (!$phone) return;
$text = "Замовлення #{$order->getId()} передано в доставку.";
$trackNumber = getOrderTrackNumber($order);
if ($trackNumber) $text .= " Трек: {$trackNumber}";
sendSms($phone, $text); // ваша інтеграція з SMS-шлюзом
});
Як сповіщати менеджерів при проблемних статусах?
if ($newStatus === 'RETURN_INIT') {
$managerEmail = getOrderManagerEmail($order);
if ($managerEmail) {
\CEvent::Send('SALE_RETURN_INITIATED', SITE_ID, [
'ORDER_ID' => $order->getId(),
'MANAGER_EMAIL' => $managerEmail,
'BUYER_NAME' => $propCollection->getPayerName(),
'BUYER_PHONE' => $propCollection->getPhone(),
'ORDER_PRICE' => number_format($order->getPrice(), 2, '.', ' '),
]);
}
}
Порівняння стандартного та кастомного підходу
| Параметр | Стандартний | Кастомний |
|---|---|---|
| Набір макросів | Фіксований (7 шт.) | Будь-які поля замовлення |
| Окремі шаблони | Один на всі статуси | Окремий на статус |
| SMS | Не підтримується | Легко додати |
| Сповіщення менеджерам | Тільки покупцю | Будь-яка роль |
| Трек-посилання | Тільки номер | Клікабельний URL |
Кастомний підхід у 3 рази інформативніший за стандартним за обсягом даних у листі.
Порівняння витрат на підтримку
| Рішення | Час на доопрацювання | Економія |
|---|---|---|
| Стандартні сповіщення | 2-4 години | Немає |
| Кастомні з окремими шаблонами | 4-8 годин | Істотна (до 30% бюджету) |
Наприклад, для магазину з 1000 замовлень на місяць економія на підтримці може становити до 5000 грн.
Типові помилки при налаштуванні
- Прапорець «Сповіщати покупця» не знято — листи дублюються
- Макроси втрачені при копіюванні шаблонів
- Дублювання подій через кілька обробників
- Відсутня перевірка email або телефону
Що входить у налаштування сповіщень
- Аналіз поточних поштових подій — перевірка шаблонів, статусів, прапорців.
- Проєктування логіки — які статуси сповіщають, які дані потрібні.
- Реалізація кастомних обробників — PHP-код на OnSaleStatusOrderChange.
- Створення окремих HTML-шаблонів — для кожного статусу свій дизайн.
- SMS-інтеграція — підключення шлюзу, налаштування текстів.
- Сповіщення менеджерів — оповіщення по поверненнях, скасуваннях.
- Тестування на всіх статусах — перевірка відправки, макросів, посилань.
- Документація — опис подій, шаблонів, коду.
- Навчання менеджерів — як керувати сповіщеннями.
- Підтримка 1 місяць — правки та доопрацювання.
Строки виконання
Базове налаштування 3–5 статусів з кастомними шаблонами — 4–8 годин. Розширене: окремі шаблони, SMS, сповіщення менеджерам, повне тестування — 1–2 робочих дні. Точний строк розраховується після консультації. Зв'яжіться з нами для консультації по вашому проєкту. Замовте налаштування під ключ — безкоштовна оцінка проекту за 1 день. Ми гарантуємо якість робіт та надаємо підтримку після впровадження.







