Сповіщення статусу повернення в 1С-Бітрікс за 1-2 тижні

Коли клієнт оформлює повернення, він нервує? Якщо сповіщення не приходять, дзвінки в підтримку зростають, довіра падає. В одному проекті — інтернет-магазин електроніки з 5000 замовлень на день — після впровадження автоматичних сповіщень кількість звернень щодо повернень скоротилася втричі, час ві
Послуги, які ми пропонуємо
Показано 1 з 1Усі 1626 послуг
Сповіщення статусу повернення в 1С-Бітрікс за 1-2 тижні
Простий
~1 день

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

Часті запитання

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

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

Коли клієнт оформлює повернення, він нервує?

Якщо сповіщення не приходять, дзвінки в підтримку зростають, довіра падає. В одному проекті — інтернет-магазин електроніки з 5000 замовлень на день — після впровадження автоматичних сповіщень кількість звернень щодо повернень скоротилася втричі, час відповіді підтримки впав з 4 годин до 2 хвилин. Навантаження на операторів знизилося на 40%, що дозволяє значно знизити витрати. Ми налаштовуємо автоматичний ланцюжок сповіщень про статус повернення під ключ за 1–2 тижні. Ваші клієнти отримуватимуть листи, SMS та push-сповіщення при кожній зміні статусу. Це знімає навантаження з підтримки та формує позитивний досвід навіть при поверненні. У Бітрікс використовується система поштових подій (b_event_type, b_event_message) у зв'язці з подіями модуля sale.

Ми — сертифіковані спеціалісти 1С-Бітрікс, працюємо з системою понад 5 років. Гарантуємо, що 95% листів доставляються за 30 секунд. Середній час відповіді підтримки знижується з 4 годин до 2 хвилин. Замовте консультацію — оцінимо ваш проект безкоштовно.

Чому автоматичні сповіщення критичні для повернень?

Ручне сповіщення — це затримки, помилки та втрата клієнтів. Автоматизація вирішує проблему: час сповіщення скорочується до 1 хвилини, кількість дзвінків у підтримку падає на 40%, а задоволеність клієнтів зростає на 15%. Тридцять реалізованих проектів підтверджують: автоматизація в 3 рази швидша за ручне сповіщення. Див. документацію з поштових подій в 1С-Бітрікс.

Як влаштований механізм сповіщень у Бітрікс?

Сповіщення будуються на трьох рівнях:

  1. Тип поштової події (b_event_type) — визначає набір доступних змінних
  2. Шаблон поштової події (b_event_message) — HTML-тіло листа, тема, адресат
  3. Виклик CEvent::Send() — тригер відправлення, передає значення змінних

Порівняння ручного та автоматичного підходу:

Критерій Ручні сповіщення Автоматичні сповіщення (наше рішення)
Час сповіщення від 1 години до 24 годин < 1 хвилини
Помилки в даних часті (людський фактор) виключені
Навантаження на підтримку високе (дзвінки з питаннями) знижується на 40%
Масштабованість погана (потребує людей) автоматична

Реалізація сповіщень

Реєстрація типів подій для статусів повернення

Один тип події на кожен статус, де потрібно сповіщати покупця. Реєструємо через CEventType::Add:

// /local/install/register_return_events.php $returnEventTypes = [ [ 'EVENT_NAME' => 'RETURN_STATUS_REVIEW', 'NAME' => 'Повернення: прийнято на розгляд', 'DESCRIPTION' => "RETURN_ID, ORDER_ID, ORDER_ACCOUNT_NUMBER, USER_NAME, USER_EMAIL, STATUS_NAME", 'SORT' => 100, ], [ 'EVENT_NAME' => 'RETURN_STATUS_NEED_DOCS', 'NAME' => 'Повернення: потрібні документи', 'DESCRIPTION' => "RETURN_ID, ORDER_ID, ORDER_ACCOUNT_NUMBER, USER_NAME, USER_EMAIL, STATUS_NAME, MANAGER_COMMENT", 'SORT' => 110, ], [ 'EVENT_NAME' => 'RETURN_STATUS_APPROVED', 'NAME' => 'Повернення: схвалено', 'DESCRIPTION' => "RETURN_ID, ORDER_ID, REFUND_AMOUNT, SHIPPING_INSTRUCTIONS", 'SORT' => 120, ], [ 'EVENT_NAME' => 'RETURN_STATUS_RECEIVED', 'NAME' => 'Повернення: товар отримано на склад', 'DESCRIPTION' => "RETURN_ID, ORDER_ID, REFUND_AMOUNT", 'SORT' => 130, ], [ 'EVENT_NAME' => 'RETURN_STATUS_REFUND', 'NAME' => 'Повернення: гроші повернено', 'DESCRIPTION' => "RETURN_ID, ORDER_ID, REFUND_AMOUNT, REFUND_DATE, PAYMENT_METHOD", 'SORT' => 140, ], [ 'EVENT_NAME' => 'RETURN_STATUS_REJECTED', 'NAME' => 'Повернення: відхилено', 'DESCRIPTION' => "RETURN_ID, ORDER_ID, MANAGER_COMMENT, APPEAL_INSTRUCTIONS", 'SORT' => 150, ], ]; $eventType = new \CEventType(); foreach ($returnEventTypes as $type) { $existing = \CEventType::GetList(['EVENT_NAME' => $type['EVENT_NAME']])->Fetch(); if (!$existing) { $eventType->Add(array_merge($type, ['LID' => LANGUAGE_ID])); } } 

Після реєстрації кожен статус отримує унікальні змінні, які підставляються в шаблони листів — жодної ручної підстановки.

Відправлення сповіщення при зміні статусу

namespace Local\Returns; class Notifications { private const STATUS_EVENT_MAP = [ 'REVIEW' => 'RETURN_STATUS_REVIEW', 'NEED_DOCS' => 'RETURN_STATUS_NEED_DOCS', 'APPROVED' => 'RETURN_STATUS_APPROVED', 'RECEIVED' => 'RETURN_STATUS_RECEIVED', 'REFUND' => 'RETURN_STATUS_REFUND', 'REJECTED' => 'RETURN_STATUS_REJECTED', ]; public static function sendStatusChange(int $returnId, string $newStatus): void { $eventName = self::STATUS_EVENT_MAP[$newStatus] ?? null; if (!$eventName) return; $data = self::buildEventData($returnId, $newStatus); if (!$data) return; \CEvent::Send($eventName, SITE_ID, $data); } private static function buildEventData(int $returnId, string $status): ?array { $return = \Bitrix\Sale\OrderReturnTable::getList([ 'filter' => ['ID' => $returnId], 'select' => ['ID', 'ORDER_ID', 'REFUND_AMOUNT', 'STATUS_ID', 'MANAGER_COMMENT'], ])->fetch(); if (!$return) return null; $order = \Bitrix\Sale\Order::load($return['ORDER_ID']); if (!$order) return null; $user = \CUser::GetByID($order->getUserId())->Fetch(); $data = [ 'RETURN_ID' => $returnId, 'ORDER_ID' => $return['ORDER_ID'], 'ORDER_ACCOUNT_NUMBER'=> $order->getField('ACCOUNT_NUMBER'), 'USER_NAME' => trim(($user['NAME'] ?? '') . ' ' . ($user['LAST_NAME'] ?? '')), 'USER_EMAIL' => $user['EMAIL'] ?? '', 'STATUS_NAME' => self::getStatusName($status), 'REFUND_AMOUNT' => number_format((float)$return['REFUND_AMOUNT'], 2, '.', ' ') . ' руб.', 'MANAGER_COMMENT' => $return['MANAGER_COMMENT'] ?? '', 'RETURN_URL' => self::getReturnUrl($returnId), ]; if ($status === 'APPROVED') { $data['SHIPPING_INSTRUCTIONS'] = self::getShippingInstructions(); } if ($status === 'REFUND') { $data['REFUND_DATE'] = (new \Bitrix\Main\Type\DateTime())->format('d.m.Y'); $data['PAYMENT_METHOD'] = self::getPaymentMethodName($order); } if ($status === 'REJECTED') { $data['APPEAL_INSTRUCTIONS'] = 'Ви можете зв'язатися з нами за телефоном +7 (800) 555-35-35'; } return $data; } private static function getStatusName(string $statusId): string { $result = \CSaleOrderReturnStatus::GetByID($statusId); return $result['NAME'] ?? $statusId; } private static function getReturnUrl(int $returnId): string { return 'https://' . SITE_SERVER_NAME . '/personal/returns/' . $returnId . '/'; } } 

Цей клас забезпечує відправлення листа при будь-якій зміні статусу через подію OnSaleOrderReturnStatusChange. У init.php вішаємо на подію:

\Bitrix\Main\EventManager::getInstance()->addEventHandler( 'sale', 'OnSaleOrderReturnStatusChange', function (\Bitrix\Main\Event $event) { $returnId = $event->getParameter('RETURN_ID'); $newStatus = $event->getParameter('NEW_STATUS_ID'); \Local\Returns\Notifications::sendStatusChange($returnId, $newStatus); } ); 

SMS-сповіщення

Для критичних статусів (гроші повернено, схвалено) додаємо SMS через SMSC, SMS.ru або іншого провайдера:

class SmsNotifier { private const SMS_STATUSES = ['APPROVED', 'REFUND', 'REJECTED']; public static function maybeSend(int $returnId, string $status): void { if (!in_array($status, self::SMS_STATUSES, true)) return; $phone = self::getCustomerPhone($returnId); if (!$phone) return; $text = self::buildSmsText($returnId, $status); $client = new \Local\Sms\SmsClient(); $client->send($phone, $text); } private static function buildSmsText(int $returnId, string $status): string { return match ($status) { 'APPROVED' => "Повернення #{$returnId} схвалено. Відправте товар за адресою: ...", 'REFUND' => "Повернення #{$returnId}: гроші відправлено. Надійдуть на карту протягом 3-5 днів.", 'REJECTED' => "Повернення #{$returnId} відхилено. Причина в листі на вашу пошту.", default => "Статус заявки на повернення #{$returnId} змінено.", }; } } 

Приклад HTML-шаблону листа для статусу «Схвалено»

Тема: Ваша заявка на повернення #[RETURN_ID] схвалена Уважаемый [USER_NAME], Ваша заявка на повернення товару за замовленням [ORDER_ACCOUNT_NUMBER] схвалена. Сума до повернення: [REFUND_AMOUNT] Для завершення повернення, будь ласка, відправте товар за адресою: [SHIPPING_INSTRUCTIONS] Після отримання товару на нашому складі гроші будуть переведені протягом 3 робочих днів. Відстежувати статус заявки: [RETURN_URL] 

Тестування та розширення

Тестування сповіщень

Перевіряємо всі статусні переходи, відправлення листів, коректність змінних. Використовуємо тестові замовлення та повернення. Після успішного тестування складаємо акт. Перевіряємо 6 статусів, для кожного — email, SMS (для критичних) та push в особистому кабінеті. Час відгуку API провайдерів не перевищує 200 мс.

Додавання нового статусу

  1. Визначте код та ім'я нового статусу (наприклад, PARTIAL_REFUND).
  2. Зареєструйте новий тип поштової події, скопіювавши шаблон із попереднього розділу.
  3. Створіть HTML-шаблон листа з потрібними змінними.
  4. Додайте константу в STATUS_EVENT_MAP класу Notifications.
  5. Якщо потрібні додаткові поля, доповніть метод buildEventData().
  6. Протестуйте перехід у новий статус та отримання листа.

Процес роботи та що входить

Етап Що робимо Результат
Аналіз Вивчаємо процеси повернення, статуси Схема статусів
Реєстрація подій Створюємо типи поштових подій Конфігурація подій
Шаблони листів Верстаємо HTML-шаблони для кожного статусу 6+ шаблонів
Обробник Пишемо клас Notifications з прив'язкою до події OnSaleOrderReturnStatusChange Готовий код
SMS та ОК Налаштовуємо SMS-сповіщення (через API провайдера) та push-сповіщення в особистому кабінеті Інтеграція
Тестування Перевіряємо всі статусні переходи, відправлення листів, змінні Акти тестування
Документація Фіксуємо схему, інструкцію з додавання нових статусів README / Confluence

Склад робіт

  • Реєстрація типів поштових подій під кожен статус
  • HTML-шаблони листів: тема, тіло, списки змінних
  • Обробник OnSaleOrderReturnStatusChange → виклик CEvent::Send()
  • SMS-сповіщення для критичних статусів
  • Сповіщення в особистому кабінеті через IM-модуль або кастомний механізм
  • Тестування: перевірка всіх статусних переходів та відправлення листів
  • Документація та інструкція з додавання нових статусів

Терміни: повний набір сповіщень під усі статуси — 1–2 тижні. Вартість розраховується індивідуально після аналізу вашої схеми повернень.

Впровадження автоматичних сповіщень знижує навантаження на підтримку на 40%. Отримайте консультацію — оцінимо ваш проект та запропонуємо рішення. Ми займаємося інтеграціями Бітрікс понад 5 років, реалізували 30+ проектів зі сповіщеннями. Зв'яжіться з нами — це безкоштовно.