Налаштування повідомлень про зміну статусу замовлення 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С-Бітрікс надсилає сповіщення через механізм поштових подій, який потребує свідомого налаштування під конкретний бізнес.

Механізм поштових подій

Система сповіщень будується на трьох шарах:

  1. Тип поштової події — опис з набором макросів (SALE_STATUS_CHANGED)
  2. Шаблон — HTML-лист з макросами, прив'язаний до сайту та мови
  3. Виклик відправкиCEvent::Send() в обробнику події

При зміні статусу з прапорцем «Повідомляти покупця» Бітрікс автоматично надсилає SALE_STATUS_CHANGED. Прапорець знімається, якщо потрібен повний контроль над логікою сповіщень.

Стандартні макроси

#ORDER_ID#           — номер замовлення
#ORDER_DATE#         — дата замовлення
#ORDER_STATUS#       — назва нового статусу
#ORDER_PRICE#        — сума замовлення
#ORDER_TRACK_NUMBER# — трек-номер
#BUYER_EMAIL#        — email покупця
#BUYER_NAME#         — ім'я покупця

Кастомний обробник з розширеними даними

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
            : '',
    ]);
});

Окремі шаблони за статусами

Один шаблон для всіх статусів — погане рішення: лист «Замовлення виконано» повинен відрізнятися від «Замовлення скасовано». Створюємо окремі типи подій:

\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' => "Ім'я покупця"],
    ],
]);

Для кожного статусу — окремий HTML-шаблон: трек-посилання для «Доставка», причина та інструкція для «Скасовано».

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, '.', ' '),
        ]);
    }
}

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

Налаштування стандартних сповіщень за 3–5 статусами з кастомними шаблонами — 4–8 годин. Окремі шаблони, SMS, сповіщення менеджерам, повне тестування — 1–2 робочих дні.