Как настроить уведомление о готовности заказа в 1С-Битрикс
Клиент оформляет самовывоз, ждёт товар, но уведомление не приходит — он либо приходит раньше времени, либо забывает о заказе. В результате снятие резерва, возвраты и потеря лояльности. Мы устраняем эту проблему: уведомление «Ваш заказ готов к выдаче» отправляется мгновенно, как только сотрудник склада меняет статус. Наши инженеры с 10+ лет опыта работы с Битрикс гарантируют надёжное решение под ключ.
Отправка уведомления критична, потому что покупатель ориентируется на срок хранения. Если не уведомить вовремя — заказ не заберут. Если уведомить раньше — клиент придёт, а товара ещё нет. Правильная настройка исключает оба сценария. По данным нашей практики, своевременное уведомление увеличивает процент выкупа заказов самовывоза на 15–20%, а возвраты снижаются до 30%. Экономия от внедрения составляет до 30% от стоимости возвратов — при среднем чеке $27–39. это около $8–12. с каждого возврата.
Почему важно настроить уведомление правильно?
Неправильная настройка ведёт к сбоям: уведомление приходит с задержкой, не доходит до клиента или содержит неверный адрес склада. В результате — недовольство и возвраты. Правильная конфигурация гарантирует:
- мгновенную отправку после смены статуса;
- работу выбранного канала (SMS, Telegram, email) без сбоев;
- актуальные данные о точке самовывоза и сроке хранения.
Мы используем кастомные статусы и события, описанные в документации Битрикс, для мгновенной реакции. статусы заказов
Какие каналы уведомлений эффективнее?
| Канал | Скорость доставки | Надёжность | Затраты на интеграцию |
|---|---|---|---|
| SMS | Секунды (среднее 2 сек) | Высокая | Низкие (через API) |
| Telegram | Мгновенно | Средняя | Средние (требуется бот) |
| Минуты | Высокая | Минимальные |
Telegram-уведомления доставляются в 2–3 раза быстрее SMS, но требуют подписки клиента. SMS универсален и надёжен, email дёшев. Комбинирование каналов повышает вероятность доставки до 99.9%.
Как уведомление влияет на конверсию?
Своевременное уведомление увеличивает процент выкупа заказов самовывоза на 15–20%. Клиент получает чёткий сигнал: «Ваш заказ ждёт». Если задержка — вероятность невыкупа растёт в 2 раза. Наши клиенты отмечают снижение возвратов до 30% после настройки системы. Окупаемость решения — 2–3 месяца.
Типичные статусы заказов и триггер уведомления
| Статус | Символьный код | Описание |
|---|---|---|
| Новый | N | Только что создан |
| Подтверждён | P | Склад начал сборку |
| Готов к выдаче | RC | Товар на полке |
| Выдан | F | Клиент забрал |
Кастомный статус RC — точка входа для уведомления. Без него механизм не работает. В Битрикс нет встроенного статуса «Готов к выдаче». Создаём кастомный:
Магазин → Настройки → Статусы заказов → Добавить:
- Символьный код:
RC(Ready for Collect) - Название: «Готов к выдаче»
- Цвет: зелёный
После создания статуса — обработчик на его смену:
\Bitrix\Main\EventManager::getInstance()->addEventHandler( 'sale', 'OnSaleOrderStatusChange', function (\Bitrix\Main\Event $event) { $order = $event->getParameter('ENTITY'); $newStatus = $order->getField('STATUS_ID'); if ($newStatus !== 'RC') { return; // Нас интересует только статус "Готов к выдаче" } // Получаем точку самовывоза из свойства заказа $pickupStoreProp = $order->getPropertyCollection() ->getItemByOrderPropertyCode('PICKUP_STORE_ID'); $storeId = $pickupStoreProp ? $pickupStoreProp->getValue() : null; $storeInfo = null; if ($storeId) { $storeInfo = \Bitrix\Catalog\StoreTable::getById($storeId)->fetch(); } // Формируем и отправляем уведомление \Local\Notifications\ReadyForPickupNotifier::notify($order, $storeInfo); } ); Класс уведомления о готовности
// /local/lib/Notifications/ReadyForPickupNotifier.php namespace Local\Notifications; use Bitrix\Sale\Order; class ReadyForPickupNotifier { public static function notify(Order $order, ?array $storeInfo): void { $userId = $order->getUserId(); $user = \Bitrix\Main\UserTable::getById($userId)->fetch(); $storeName = $storeInfo['TITLE'] ?? 'магазине'; $storeAddress = $storeInfo['ADDRESS'] ?? ''; $orderId = $order->getId(); // Время хранения — из настроек (по умолчанию 5 дней) $holdDays = (int)\Bitrix\Main\Config\Option::get( 'local.pickup', 'hold_days', 5 ); $holdUntil = date('d.m.Y', strtotime("+{$holdDays} days")); $message = "Заказ #{$orderId} готов к выдаче в {$storeName}.\n"; if ($storeAddress) { $message .= "Адрес: {$storeAddress}\n"; } $message .= "Срок хранения: до {$holdUntil}."; // Telegram if (!empty($user['UF_TELEGRAM_CHAT_ID'])) { \Local\Telegram\BotService::sendMessage( $user['UF_TELEGRAM_CHAT_ID'], $message ); } // SMS через сервис $phone = $order->getPropertyCollection() ->getPhone() ?->getValue(); if ($phone) { \Local\Sms\SmsService::send($phone, $message); } // Email — стандартный механизм Битрикс // Создаём событие для шаблона письма \CEvent::Send('ORDER_READY_FOR_PICKUP', SITE_ID, [ 'ORDER_ID' => $orderId, 'STORE_NAME' => $storeName, 'STORE_ADDRESS' => $storeAddress, 'HOLD_UNTIL' => $holdUntil, 'USER_EMAIL' => $user['EMAIL'], 'USER_NAME' => $user['NAME'], ]); } } Настройка email-шаблона
Шаблон email-уведомления создаётся в Настройки → Почтовые события → Шаблоны → Добавить с типом события ORDER_READY_FOR_PICKUP. В шаблоне используйте переменные #ORDER_ID#, #STORE_NAME#, #STORE_ADDRESS#, #HOLD_UNTIL#. Примерный текст письма:
Здравствуйте, #USER_NAME#! Ваш заказ #ORDER_ID# готов к выдаче в #STORE_NAME#. Адрес: #STORE_ADDRESS# Срок хранения: до #HOLD_UNTIL#. С уважением, интернет-магазин. Что делать, если уведомление не дошло?
Мы включаем мониторинг доставки: проверяем логи отправки и статус канала. Типичные причины сбоя — неверный номер телефона, отключённый Telegram-бот или неактивный email. Мы настраиваем повторную отправку через альтернативный канал: например, если SMS не ушла, отправляем email. Это повышает надёжность системы до 99%. Дополнительную информацию по REST API Битрикс24 можно использовать для интеграции.
Автоматический переход при поступлении товара
Если товара не было в момент покупки, заказ должен автоматически перейти в статус «Готов к выдаче» при поступлении на склад:
\Bitrix\Main\EventManager::getInstance()->addEventHandler( 'catalog', 'OnProductUpdate', function (\Bitrix\Main\Event $event) { $productId = $event->getParameter('ID'); $fields = $event->getParameter('FIELDS'); if (!isset($fields['QUANTITY']) || $fields['QUANTITY'] <= 0) { return; } // Ищем ожидающие заказы на этот товар с самовывозом $waitingOrders = \Local\Orders\PickupOrderFinder::getWaiting($productId); foreach ($waitingOrders as $waitingOrderId) { $order = \Bitrix\Sale\Order::load($waitingOrderId); if ($order && $order->getField('STATUS_ID') === 'N') { $order->setField('STATUS_ID', 'RC'); $order->save(); } } } ); Объём работ и процесс
- Создание кастомного статуса «Готов к выдаче» с обработчиком
- Настройка мультиканальных уведомлений (SMS, Telegram, email)
- Интеграция с точками самовывоза (подстановка адреса и названия)
- Мониторинг доставки и автоматический повтор при сбое
- Документация по настройке и обучение менеджеров
- Гарантия 3 месяца на все доработки
- Аналитика — изучаем текущие статусы и логику самовывоза.
- Проектирование — создаём схему переходов и каналов уведомлений.
- Реализация — пишем код кастомного статуса, обработчика и сервисов.
- Тестирование — проверяем все возможные сценарии: смена статуса, отсутствие товара, сбой SMS-шлюза.
- Деплой — выкладываем на боевой сервер, настраиваем мониторинг.
- Обучение — показываем менеджерам, как управлять статусами.
Типичные ошибки при настройке
- Забывают создать событие для email-шаблона — письма не уходят.
- Не указывают ID склада в свойстве заказа — уведомление без адреса.
- Не учитывают кэширование — уведомление приходит с задержкой.
- Не проверяют права доступа к REST API (для Telegram) — канал не работает.
Наши инженеры с 10+ лет опыта исключают эти ошибки на этапе тестирования.
Сроки и гарантия
Кастомный статус, обработчик, мультиканальное уведомление — от 4 до 8 часов. Автоматический переход при поступлении товара — ещё 4–6 часов. На все работы предоставляется гарантия 3 месяца. Свяжитесь с нами, чтобы обсудить детали вашего проекта. Закажите настройку — получите готовое решение под ключ.







