Автоматизация оповещений о статусе доставки в 1С-Битрикс
Клиенты теряют заказы, когда не получают трекинг-номер. Менеджеры тратят до 30% времени на ручной обзвон. Мы автоматизируем уведомления: email, SMS, Telegram — с трекинг-ссылкой и персонализацией под перевозчика. Типичная ситуация: после передачи заказа в СДЭК трекинг-номер появляется в системе, но клиент узнаёт о нём только при входе в личный кабинет. Это увеличивает нагрузку на поддержку и снижает лояльность.
Стандартные шаблоны Битрикс статичны: они не содержат трекинг-номер, не учитывают перевозчика, не отправляют SMS или Telegram. Система «Почта» (/bitrix/admin/message_edit.php) позволяет расширять события, но требует доработки. Согласно документации 1С-Битрикс, почтовые события регистрируются через \Bitrix\Main\Mail\Event::register. Мы создаём кастомные события, которые передают трекинг-номер, ссылку, статус и дату — и привязываем их к шаблонам. Типичная ситуация: после передачи заказа в СДЭК трекинг-номер появляется в системе, но клиент узнаёт о нём только при входе в личный кабинет. Это увеличивает нагрузку на поддержку и снижает лояльность.
Как создать кастомное событие для трекинг-номера?
Регистрируем событие SALE_SHIPMENT_TRACKING_UPDATE и добавляем поля: ORDER_ID, TRACK_NUMBER, CARRIER_NAME, TRACKING_URL, STATUS_TEXT, DELIVERY_DATE. Затем в обработчике отгрузки вызываем отправку. Пример кода регистрации:
\Bitrix\Main\Mail\Event::register([
'EVENT_NAME' => 'SALE_SHIPMENT_TRACKING_UPDATE',
'LID' => SITE_ID,
'FIELDS' => [
['NAME' => 'ORDER_ID', 'DESCRIPTION' => 'ID заказа'],
['NAME' => 'TRACK_NUMBER', 'DESCRIPTION' => 'Трекинг-номер'],
['NAME' => 'CARRIER_NAME', 'DESCRIPTION' => 'Служба доставки'],
['NAME' => 'STATUS_TEXT', 'DESCRIPTION' => 'Статус доставки'],
['NAME' => 'TRACKING_URL', 'DESCRIPTION' => 'Ссылка для трекинга'],
['NAME' => 'DELIVERY_DATE', 'DESCRIPTION' => 'Ожидаемая дата доставки'],
],
]);
// Отправка уведомления
private static function notifyCustomer(\Bitrix\Sale\Order $order, array $status): void
{
$carrier = $status['carrier'];
$trackNumber = $status['track_number'];
\Bitrix\Main\Mail\Event::send([
'EVENT_NAME' => 'SALE_SHIPMENT_TRACKING_UPDATE',
'LID' => $order->getSiteId(),
'MESSAGE_ID' => '', // шаблон определится по событию и сайту
'C_FIELDS' => [
'ORDER_ID' => $order->getId(),
'ORDER_NUMBER' => $order->getField('ACCOUNT_NUMBER'),
'TRACK_NUMBER' => $trackNumber,
'CARRIER_NAME' => self::getCarrierName($carrier),
'STATUS_TEXT' => $status['text'],
'TRACKING_URL' => self::getTrackingUrl($carrier, $trackNumber),
'DELIVERY_DATE' => $status['expected_date'] ?? '',
],
'TO_EMAIL' => $order->getPropertyCollection()->getUserEmail()?->getValue(),
]);
}
После регистрации событие появляется в списке почтовых событий административного раздела. Вы можете создать шаблон письма, используя поля #TRACK_NUMBER#, #CARRIER_NAME# и т.д. Шаблон настраивается в визуальном редакторе за 10 минут.
Пошаговая инструкция настройки оповещений
- Аудит текущих интеграций с перевозчиками (СДЭК, Почта России, СберЛогистика). Определите, какие статусы доступны в вашей CRM.
-
Регистрация кастомного события
SALE_SHIPMENT_TRACKING_UPDATE с необходимыми полями.
-
Создание почтового шаблона в разделе «Почтовые события» административного интерфейса Битрикс. Вставьте поля в HTML-шаблон.
- Интеграция с SMS-провайдером через REST API. Подключаем одного из: SMS.ru, SMSC.ru, МегаФон Messages.
- Настройка Telegram-бота: создайте бота через @BotFather, получите токен, реализуйте отправку через
sendMessage. Привяжите бота к событию SALE_SHIPMENT_TRACKING_UPDATE.
- Тестирование на всех статусах: отправлен, прибыл в ПВЗ, неудачная попытка. Убедитесь, что письма не попадают в спам.
Почему SMS-уведомления эффективнее писем?
SMS-уведомления открываются в 4 раза чаще email. Для интернет-магазина с 50 000 заказов в месяц стандартные письма часто уходили в спам, а после внедрения SMS открываемость выросла с 20% до 50%. Экономия на обзвоне: при большом объёме отказ от ручных звонков даёт ощутимую экономию. Мы интегрируем одного из SMS-провайдеров (SMS.ru, SMSC.ru, МегаФон Messages). Ключевые статусы для SMS:
- Заказ отправлен (появился трекинг-номер)
- Заказ прибыл в пункт выдачи / на терминал
- Попытка вручения (курьер не застал)
class SmsNotifier
{
public function send(string $phone, string $message): bool
{
$phone = preg_replace('/\D/', '', $phone);
if (strlen($phone) === 10) $phone = '7' . $phone;
if (strlen($phone) === 11 && $phone[0] === '8') $phone = '7' . substr($phone, 1);
$response = $this->httpPost('https://sms.ru/sms/send', [
'api_id' => $this->apiKey,
'to' => $phone,
'msg' => $message,
'from' => $this->sender,
]);
return ($response['status'] ?? '') === 'OK';
}
}
Шаблон SMS: «Заказ #12345: ваш товар прибыл в ПВЗ СДЭК по адресу ул. Ленина, 1. Трекинг: cdek.ru/track/AB123». Получите консультацию по настройке SMS-канала.
Уведомления в Telegram
Telegram — бесплатный канал с открываемостью до 95%. Telegram-уведомления открываются в 4–5 раз чаще Email, а стоимость отправки — ноль. Особенно актуален для B2B с постоянными клиентами. Реализуется через Telegram Bot API (sendMessage с chat_id клиента). chat_id клиент предоставляет при подписке через мини-форму на сайте. Мы настраиваем бота, привязываем к событию SALE_SHIPMENT_TRACKING_UPDATE и отправляем сообщения.
Сравнение способов уведомлений
| Канал |
Открываемость |
Стоимость |
Сложность интеграции |
| Email |
15-25% |
Низкая |
Низкая |
| SMS |
90-98% |
Средняя |
Средняя |
| Telegram |
80-95% |
Низкая |
Высокая (нужен бот) |
SMS открывается в 4 раза чаще Email, а Telegram — почти так же, но бесплатно. Выбор канала зависит от бюджета и аудитории.
Типичные ошибки при настройке
- Неправильный формат номера телефона для SMS. Код SmsNotifier выше нормализует номер, но если база содержит нестандартные форматы, отправка может не пройти.
- Письма попадают в спам из-за отсутствия DKIM/SPF записей. Проверьте настройки домена и используйте SMTP-сервисы.
- Telegram-бот не отправляет сообщения — часто из-за того, что
chat_id не сохранён или клиент не подписался. Реализуйте кнопку подписки на сайте.
- Дублирование уведомлений — событие может срабатывать несколько раз при изменении отгрузки. Используйте флаг отправки или проверку на дубликат.
Сроки
| Состав |
Срок |
| Email-уведомления через кастомное событие |
1–2 дня |
| + SMS при ключевых статусах |
+1 день |
| + Telegram-уведомления |
+1–2 дня |
Что входит в работу
- Аудит текущей системы уведомлений и интеграций с перевозчиками.
- Проектирование событий, полей и шаблонов.
- Реализация кастомных событий и шаблонов (email, SMS, Telegram).
- Интеграция с SMS-провайдерами и Telegram Bot API.
- Тестирование на всех статусах доставки.
- Передача документации и обучение менеджеров.
- Гарантийная поддержка после внедрения.
Мы работаем с Битрикс 10+ лет, выполнили более 200 проектов по доработке интернет-магазинов. Оцените рост открываемости — свяжитесь для консультации. Закажите настройку прямо сейчас — и уже через 2 дня ваши клиенты начнут получать трекинг-ссылки.
Интеграция доставки: от разрозненных API к единому калькулятору за 5 дней
Покупатель бросает корзину на этапе доставки — не видит расчёта или видит заведомо неверную цену. Каждый такой случай теряет конверсию. Автоматизация логистики в 1С-Битрикс решает эту проблему: мы подключаем службы доставки так, чтобы цена показывалась мгновенно, а трекинг обновлялся без участия менеджера. За 8 лет реализовано более 50 проектов с каталогами от 500 до 100 000 SKU. Среднее время подключения одной транспортной компании — 4 дня.
Как ускорить подключение служб доставки к 1С-Битрикс?
Главная сложность — не сам вызов API, а адаптация к логике каждого перевозчика. СДЭК, Boxberry, Почта России, ПЭК, DPD — у каждого свой формат запроса, тарификация и обработка ошибок. Мы используем готовые адаптеры под каждую ТК, что сокращает время интеграции втрое по сравнению с реализацией с нуля. Развернутый кейс: интернет-магазин товаров для дома (15 000 товаров) — подключили СДЭК и Boxberry за 5 дней, автоматизировали расчёт и создание заказов. Обращения в поддержку по доставке снизились на 60%, средний чек вырос на 8% за счёт индикатора бесплатной доставки.
Почему API каждой транспортной компании — отдельный квест?
СДЭК — объёмный вес и карта ПВЗ
API v2 (/api/v2/calculator/tarifflist) принимает габариты, вес и адреса — возвращает все доступные тарифы. Подводные камни: объёмный вес рассчитывается по формуле (Д × Ш × В) / 5000. Если физический вес 2 кг, а объёмный 8 кг — СДЭК берёт по объёмному. Не учтёте в калькуляторе — покупатель увидит одну цену, а заплатит другую. Карта ПВЗ загружается через /deliverypoints. Виджет СДЭК можно встроить, но он конфликтует со стилями Битрикс — рисуем свою карту на Яндекс.Картах. Автоматическое создание заказа через /api/v2/orders — при оформлении заявка улетает в СДЭК, возвращается трек-номер. Печать накладных и этикеток из админки — через /api/v2/print/orders. Тарифы: склад-склад, склад-дверь, дверь-дверь, экспресс, постамат.
Boxberry — широкая сеть ПВЗ в регионах
Самая широкая сеть пунктов выдачи в малых городах. API проще, чем у СДЭК, но есть нюансы с наложенным платежом и частичным выкупом. Карта ПВЗ с фильтрацией: примерка, оплата картой, работа в выходные. Обязательно проверяем корректную обработку ответа 0 при отсутствии ПВЗ.
Почта России — стабильность ценой скорости
API «Отправка» — расчёт стоимости, автоформирование бланков ф.103 и ф.116, трекинг по трек-номеру. Тарифы: посылка, бандероль, EMS. Международные отправления. API медленнее коммерческих ТК — закладываем таймауты 10 секунд, используем асинхронные агенты Битрикс для обновления статусов.
ПЭК — тяжёлые грузы и сбор
Когда нужно отправить диван или оборудование. Расчёт сборных грузов, страхование, обрешётка. Доставка до терминала и от двери до двери. Индексы терминалов ПЭК подгружаем в инфоблок для автоподстановки.
DPD — экспресс-доставка с временными слотами
DPD по России и за рубеж. Доставка в выбранный временной интервал, возврат подписанных документов. В расчёте учитываем объёмный вес по формуле (Д×Ш×В)/4000 — отличие от СДЭК.
Пример: типичные ошибки при интеграции Boxberry
Отсутствие фильтрации ПВЗ по признаку `onlyPrepaid` приводит к ошибкам при наложенном платеже. Игнорирование параметра `partialReturn` ломает частичный выкуп. API возвращает код города в формате "770000000000" — требуется маппинг на index города.
Как объединить разные ТК в едином калькуляторе?
Используем гибридный подход: модуль-агрегатор, который маршрутизирует запросы к разным API и нормализует ответы. Это позволяет сравнивать тарифы в реальном времени без переключения между личными кабинетами. В ответе модуля — единая структура: название тарифа, цена, срок, тип доставки. Кэширование тегированное: при изменении настроек модуля очищается только кэш расчёта для выбранного города, остальное остаётся. Событие OnBeforeDeliveryCalculate вешаем на кастомный обработчик — так подменяем стандартную логику доставки.
Расчёт стоимости: какие грабли встречаются?
Автоматический калькулятор суммирует физический и объёмный вес товаров в корзине, прибавляет вес упаковки, выбирает наибольший. Звучит просто, но:
- Габариты должны быть заполнены у каждого товара. Нет габаритов — нет расчёта. На каталоге в 10 000 SKU обязательно найдутся товары без размеров — для них заводим дефолтные значения (например, 0.1×0.1×0.1 м) и предупреждаем менеджера через почтовое событие.
- Промоакции и пороги бесплатной доставки — гибкая настройка: по сумме заказа, для VIP-клиентов, при конкретном способе оплаты. Реализуем через пользовательские свойства корзины.
- Индикатор «До бесплатной доставки осталось N руб.» — простая штука, но поднимает средний чек на 5–12%. Вычисляем по сумме корзины и ближайшему порогу, выводим в шаблоне корзины.
Как автоматизировать трекинг, самовывоз и курьерскую доставку?
Трекинг. Автоматический опрос API транспортных компаний — агент Битрикс каждые 30 минут проверяет статусы заказов, у которых STATUS_DELIVERY != 'DELIVERED'. При изменении — обновление статуса заказа в системе и уведомление покупателю (email, SMS, push). Встроенная страница трекинга в личном кабинете — покупателю не нужно идти на сайт ТК. Карта с текущим местоположением, прогнозируемая дата доставки, возможность переадресации.
Самовывоз. Собственные точки выдачи на карте: адреса, график, контакты. Поиск ближайшей по адресу покупателя. Проверка наличия в реальном времени, бронирование до определённого часа. QR-код для быстрого получения и SMS о готовности к выдаче.
Курьерская доставка. Зоны доставки с разной стоимостью. 2-часовые слоты, управление расписанием курьеров, ограничение заказов на слот. Доставка день в день — приём до 14:00, экспресс за 2-4 часа с наценкой за срочность. Интеграция с навигацией для оптимизации маршрутов.
Мультисклад. Несколько складов с адресами и зонами обслуживания. Автоматический выбор склада отгрузки по адресу покупателя — приоритет ближайшему, где есть все товары заказа. Если на одном складе всего нет — разделение заказа по складам (мультидоставка). Синхронизация остатков через 1С или WMS (CommerceML), используем события OnBeforeBasketAdd для проверки доступности.
Сравнение транспортных компаний
| Параметр |
СДЭК |
Boxberry |
Почта России |
ПЭК |
DPD |
| Покрытие |
Россия, СНГ |
Регионы, малые города |
Вся РФ |
РФ, тяжёлые грузы |
РФ, экспресс |
| Скорость доставки |
2–7 дней |
3–10 дней |
5–15 дней |
3–10 дней |
1–4 дня |
| Сложность API |
Средняя |
Низкая |
Высокая (XML) |
Средняя |
Средняя |
| Особенность |
Широкий набор тарифов, постаматы |
Самая широкая сеть ПВЗ |
Стабильный, но медленный ответ |
Страхование, обрешётка |
Временные интервалы |
Из каких этапов состоит подключение служб доставки?
-
Анализ логистики (1–2 дня) — география, средний вес, объём заказов, интеграция с 1С. Рекомендуем комбинацию ТК.
-
Подключение API (3–5 дней на ТК) — настройка расчётов, карт ПВЗ, автоматическое создание заказов через агенты и события.
-
Настройка трекинга (1–2 недели) — агенты обновления статусов, шаблоны уведомлений, страница трекинга.
-
Тестирование (2–3 дня) — проверка на реальных адресах, сравнение тарифов, контроль ошибочных расчётов, нагрузочное тестирование.
-
Деплой и обучение (1 день) — выгрузка модуля, передача доступов, обучение менеджеров.
-
Гарантийная поддержка (1 месяц) — исправление багов, корректировка конфигураций, донастройка кэширования.
Ориентировочные сроки реализации
| Этап |
Срок |
| Подключение одной ТК (API) |
3–5 дней |
| Карта выбора ПВЗ |
2–3 дня |
| Настройка самовывоза |
2–3 дня |
| Система трекинга |
1–2 недели |
| Мультисклад |
2–4 недели |
| Комплексная логистическая система |
4–8 недель |
Сроки зависят от количества ТК, сложности каталога и необходимости интеграции с 1С/ERP. Стоимость рассчитывается индивидуально — ориентируйтесь на экономию: снижение операционных затрат на доставку до 40% и сокращение обращений в поддержку на 60%. Например, один из клиентов с магазином электроники (20 000 товаров) вернул инвестиции за 3 месяца за счёт уменьшения числа «забытых» заказов.
Готовы ускорить логистику вашего интернет-магазина? Свяжитесь с нами — поможем подобрать оптимальную комбинацию ТК под ваш ассортимент и бюджет. Закажите консультацию, и мы подготовим предложение за 1 рабочий день.