Налаштування повідомлень про статус доставки 1С-Бітрікс

Наша компанія займається розробкою, підтримкою та обслуговуванням рішень на Бітрікс та Бітрікс24 будь-якої складності. Від простих односторінкових сайтів до складних інтернет-магазинів, CRM систем з інтеграцією 1С та телефонії. Досвід розробників підтверджено сертифікатами від вендора.
Пропоновані послуги
Показано 1 з 1 послугУсі 1626 послуг
Налаштування повідомлень про статус доставки 1С-Бітрікс
Проста
~1 робочий день
Часті питання

Наші компетенції:

Етапи розробки

Останні роботи

  • image_website-b2b-advance_0.png
    Розробка сайту компанії B2B ADVANCE
    1262
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Розробка веб-сайту для компанії ФІКСПЕР
    851
  • 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
    585
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Розробка на базі 1С Підприємство для компанії МИРСАНБЕЛ
    751
  • image_crm_dolbimby_434_0.webp
    Розробка сайту на CRM Бітрікс24 для компанії DOLBIMBY
    657
  • image_crm_technotorgcomplex_453_0.webp
    Розробка на базі Бітрікс24 для компанії ТЕХНОТОРГКОМПЛЕКС
    989

Налаштування повідомлень про статус доставки в 1С-Бітрікс

Повідомлення про зміну статусу доставки — одна з ключових комунікацій з покупцем після оформлення замовлення. «Ваше замовлення відправлено», «Прибуло до вашого міста», «Кур'єр виїхав» — кожне таке повідомлення знижує навантаження на підтримку та підвищує лояльність. Технічно це зв'язка трекінгу з подієвою системою 1С-Бітрікс.

Типи повідомлень

Email — стандартний канал, налаштовується через події пошти 1С-Бітрікс. Підходить для несрочних статусів: «Замовлення відправлено», «Прибуло на склад».

SMS — критичні повідомлення: «Кур'єр виїжджає», «Замовлення чекає в ПВЗ». Вимагає підключення SMS-провайдера.

Push — для магазинів з мобільним додатком або PWA.

Email-повідомлення через події 1С-Бітрікс

// Реєстрація типу події (один раз, при встановленні)
\Bitrix\Main\EventManager::getInstance()->registerEventHandler(
    'main', 'OnBeforeEventSend',
    'my_module', \My\DeliveryNotification::class, 'onBeforeEventSend'
);

Створюємо подію пошти DELIVERY_STATUS_UPDATE в розділі Налаштування → Пошта → Типи поштових подій:

  • Поля: ORDER_ID, STATUS_NAME, TRACK_NUMBER, DELIVERY_NAME, ORDER_URL

Шаблон листа (Налаштування → Пошта → Поштові шаблони) використовує ці поля. Різним статусам — різні шаблони: для «Відправлено» та для «Чекає в ПВЗ» тексти різні.

Тригер повідомлення

class DeliveryStatusNotifier
{
    public static function notify(int $orderId, string $oldStatus, string $newStatus): void
    {
        // Не всі статуси вимагають повідомлення
        $notifiableStatuses = [
            'SHIPPED'         => 'Замовлення відправлено',
            'ARRIVED_CITY'    => 'Прибуло до вашого міста',
            'IN_PVZ'          => 'Очікує в пункті видачі',
            'OUT_FOR_DELIVERY' => 'Кур\'єр виїжджає',
            'DELIVERED'       => 'Замовлення доставлено',
        ];

        if (!isset($notifiableStatuses[$newStatus])) return;

        $order = \Bitrix\Sale\Order::load($orderId);
        if (!$order) return;

        $props = $order->getPropertyCollection();

        \Bitrix\Main\Mail\Event::send([
            'EVENT_NAME' => 'DELIVERY_STATUS_UPDATE',
            'LID'        => $order->getSiteId(),
            'C_FIELDS'   => [
                'ORDER_ID'      => $orderId,
                'STATUS_NAME'   => $notifiableStatuses[$newStatus],
                'TRACK_NUMBER'  => $props->getItemByOrderPropertyCode('TRACKING_CODE')?->getValue(),
                'EMAIL'         => $props->getItemByOrderPropertyCode('EMAIL')?->getValue(),
                'ORDER_URL'     => $this->getOrderUrl($orderId),
            ],
        ]);
    }
}

SMS-повідомлення

SMS підключається через провайдера (SMSC.ru, SMS.ru, Devino тощо). Загальна схема: при зміні статусу надсилаємо HTTP-запит до API провайдера.

private function sendSms(string $phone, string $message): void
{
    $response = $this->httpClient->get(
        'https://smsc.ru/sys/send.php',
        [
            'login'   => $this->getOption('SMS_LOGIN'),
            'psw'     => $this->getOption('SMS_PASSWORD'),
            'phones'  => $phone,
            'mes'     => $message,
            'sender'  => $this->getOption('SMS_SENDER'),
        ]
    );

    if (strpos($response, 'OK') === false) {
        \Bitrix\Main\Diag\Debug::writeToFile('SMS error: ' . $response, 'sms');
    }
}

SMS тільки для статусів «Кур'єр виїжджає» та «Очікує в ПВЗ» — не спамимо покупця.

Важливий нюанс: частота повідомлень

Не варто повідомляти про кожен проміжний статус. Покупець не хоче отримувати 8 листів про етапи шляху посилки — тільки про значущі події. Таблиця рекомендованих повідомлень:

Статус Email SMS
Відправлено Так Ні
Прибуло до міста Ні Ні
Очікує в ПВЗ Так Так
Кур'єр виїжджає Ні Так
Доставлено Так Ні

Захист від дублювання повідомлень

Polling-агент може опитати статус кілька разів поспіль і отримати той самий статус, що вже був. Без захисту покупець отримає повторне повідомлення.

private static function alreadyNotified(int $orderId, string $status): bool
{
    $existing = \Bitrix\Sale\Internals\OrderTable::getList([
        'filter' => [
            'ID'      => $orderId,
            '=COMMENTS' => '%NOTIFIED:' . $status . '%',
        ],
    ])->fetch();
    return (bool)$existing;
}

Простіше: зберігати надіслані повідомлення як бітову маску або JSON в окремому полі/властивості замовлення. Перевіряємо перед відправкою — якщо статус вже надсилався, пропускаємо.

Шаблони повідомлень: що писати

Шаблони для кожного статусу зберігаються в подіях 1С-Бітрікс. Мінімальний набір контенту для кожного шаблону:

  • Відправлено: трек-номер, назва служби доставки, посилання на трекінг на сайті служби
  • Очікує в ПВЗ: адреса ПВЗ, години роботи, термін зберігання (7–14 днів)
  • Доставлено: подяка, посилання на повторне замовлення або відгук

Шаблони створюються в розділі Налаштування → Пошта → Поштові шаблони. Кожному типу події — свій шаблон з правильним subject line.

Терміни виконання

Налаштування email-повідомлень із шаблонами для 3–5 статусів — 1 робочий день. З додаванням SMS і захистом від дублювання — +1 день. Повна система з кастомними шаблонами для кожного статусу і кожної служби — 2–2.5 дні.