Настройка уведомлений о статусе доставки 1С-Битрикс

Наша компания занимается разработкой, поддержкой и обслуживанием решений на Битрикс и Битрикс24 любой сложности. От простых одностраничных сайтов до сложных интернет магазинов, CRM систем с интеграцией 1С и телефонии. Опыт разработчиков подтвержден сертификатами от вендора.
Предлагаемые услуги
Показано 1 из 1 услугВсе 1626 услуг
Настройка уведомлений о статусе доставки 1С-Битрикс
Простая
~1 рабочий день
Часто задаваемые вопросы
Наши компетенции:
Этапы разработки
Последние работы
  • image_website-b2b-advance_0.png
    Разработка сайта компании B2B ADVANCE
    1173
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Разработка веб-сайта для компании ФИКСПЕР
    811
  • image_bitrix-bitrix-24-1c_development_of_an_online_appointment_booking_widget_for_a_medical_center_594_0.webp
    Разработка на базе Битрикс, Битрикс24, 1С для компании Development of an Online Appointment Booking Widget for a Medical Center
    564
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Разработка на базе 1С Предприятие для компании МИРСАНБЕЛ
    745
  • image_crm_dolbimby_434_0.webp
    Разработка сайта на CRM Битрикс24 для компании DOLBIMBY
    655
  • image_crm_technotorgcomplex_453_0.webp
    Разработка на базе Битрикс24 для компании ТЕХНОТОРГКОМПЛЕКС
    976

Настройка уведомлений о статусе доставки на 1С-Битрикс

Уведомления о доставке — это не просто email «ваш заказ отправлен». Полноценная система включает SMS или мессенджер при ключевых событиях, трекинг-ссылку, и персонализированный текст в зависимости от перевозчика и статуса. Битрикс предоставляет инфраструктуру для рассылок, но её нужно правильно расширить.

Встроенные уведомления Битрикс

Битрикс рассылает уведомления через систему «Почта» (/bitrix/admin/message_edit.php). Шаблоны привязаны к событиям: SALE_ORDER_STATUS_CHANGE, SALE_NEW_ORDER, SALE_ORDER_CANCEL.

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

Кастомное событие при смене статуса доставки

Создаём собственное событие и добавляем шаблон:

// Регистрация события
\Bitrix\Main\Mail\Event::register([
    'EVENT_NAME' => 'SALE_SHIPMENT_TRACKING_UPDATE',
    'LID'        => SITE_ID,
    'FIELDS'     => [
        ['NAME' => 'ORDER_ID',      'DESCRIPTION' => 'ID заказа'],
        ['NAME' => 'ORDER_NUMBER',  'DESCRIPTION' => 'Номер заказа'],
        ['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(),
    ]);
}

SMS-уведомления

Для SMS интегрируем одного из 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».

Уведомления в Telegram

Часть магазинов отправляет уведомления через Telegram-бот — особенно актуально для B2B с постоянными клиентами. Реализуется через Telegram Bot API (sendMessage с chat_id клиента). chat_id клиент предоставляет при подписке через мини-форму на сайте.

Сроки

Состав Срок
Email-уведомления через кастомное событие 1–2 дня
+ SMS при ключевых статусах +1 день
+ Telegram-уведомления +1–2 дня