Настройка автоматической смены статусов заказа 1С-Битрикс

Ситуация: у интернет-магазина на 1С-Битрикс объём заказов вырос до 200 в день, и менеджеры тратят по 6 часов на ручную смену статусов: подтверждение оплаты, отмена просроченных, перевод в доставлены. В результате растёт нагрузка, клиенты жалуются на задержки, а возвраты увеличиваются на 20% из-за пр
Услуги, которые мы предлагаем
Показано 1 из 1Все 1626 услуг
Настройка автоматической смены статусов заказа 1С-Битрикс
Простой
~1 день

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

Часто задаваемые вопросы

Последние работы

  • image_website-b2b-advance_0.webp
    Разработка сайта компании B2B ADVANCE
    1415
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    Разработка веб-сайта для компании ФИКСПЕР
    995
  • 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
    733
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Разработка на базе 1С Предприятие для компании МИРСАНБЕЛ
    863
  • image_crm_dolbimby_434_0.webp
    Разработка сайта на CRM Битрикс24 для компании DOLBIMBY
    772
  • image_crm_technotorgcomplex_453_0.webp
    Разработка на базе Битрикс24 для компании ТЕХНОТОРГКОМПЛЕКС
    1134

Ситуация: у интернет-магазина на 1С-Битрикс объём заказов вырос до 200 в день, и менеджеры тратят по 6 часов на ручную смену статусов: подтверждение оплаты, отмена просроченных, перевод в доставлены. В результате растёт нагрузка, клиенты жалуются на задержки, а возвраты увеличиваются на 20% из-за пропущенных уведомлений. Мы автоматизируем смену статусов под ключ: от простого события при оплате до полной интеграции с транспортными компаниями и бизнес-процессами. Наш подход снижает ручное вмешательство на 70% и существенно экономит бюджет на FTE менеджера. Мы занимаемся автоматизацией Битрикс более 5 лет, реализовали проекты для 50+ магазинов.

Как работает автоматическая смена статусов заказа?

Система реагирует на ключевые события в жизненном цикле заказа. Рассмотрим три основных подхода.

Автосмена статуса при оплате

Событие OnSalePaymentPaid срабатывает когда платёжный модуль помечает оплату проведённой — и при ручном подтверждении менеджером, и при автоматическом IPN от платёжной системы (например, ЮKassa или Сбер):

AddEventHandler('sale', 'OnSalePaymentPaid', function(\Bitrix\Main\Event $event) { $payment = $event->getParameter('ENTITY'); $order = $payment->getOrder(); if ($payment->isPaid() && $order->getField('STATUS_ID') === 'WAIT_PREPAY') { $order->setField('STATUS_ID', 'F'); $order->save(); } }); 

Автоотмена по истечению времени

Реализуется через агент Битрикс — он запускается по расписанию и проверяет заказы без оплаты. Лимит 50 заказов за итерацию защищает от таймаута при большом накопленном объёме:

// Регистрация агента (разово) \CAgent::AddAgent( 'Local\\Sale\\OrderAgents::cancelUnpaidOrders();', 'local', 'N', 3600, // каждый час '', 'Y', \ConvertTimeStamp(time() + 3600, 'FULL'), ); class OrderAgents { public static function cancelUnpaidOrders(): string { $deadline = new \Bitrix\Main\Type\DateTime(); $deadline->add('-24 hours'); $result = \Bitrix\Sale\Internals\OrderTable::getList([ 'filter' => [ 'STATUS_ID' => 'WAIT_PREPAY', '<DATE_INSERT' => $deadline, ], 'select' => ['ID'], 'limit' => 50, ]); while ($row = $result->fetch()) { $order = \Bitrix\Sale\Order::load($row['ID']); if ($order) { $order->setField('STATUS_ID', 'CANCEL'); $order->save(); } } return 'Local\\Sale\\OrderAgents::cancelUnpaidOrders();'; } } 

Автоматизация через бизнес-процессы

Для сложных цепочек с условиями и задержками — бизнес-процессы Sale (Интернет-магазин → Бизнес-процессы заказов). Доступные триггеры:

  • По статусу — запуск при переходе в определённый статус
  • По оплате — при подтверждении или возврате платежа
  • По времени — через N часов/дней после создания или смены статуса

Пример: «Через 2 часа после перехода в Передан курьеру — отправить SMS с запросом оценки». Реализуется без кода через конструктор BP.

Почему стоит автоматизировать смену статусов?

Помимо экономии времени, автоматизация снижает риск ошибок человеческого фактора (пропущенный платёж, забытая отмена) и улучшает пользовательский опыт — клиенты получают актуальную информацию без задержек. Наши клиенты отмечают сокращение времени обработки заказа на 70% и уменьшение количества возвратов на 15% за счёт своевременных уведомлений. Для простых сценариев агенты обрабатывают заказы в 2 раза быстрее, чем бизнес-процессы, но BP удобнее при сложной логике.

Какой подход выбрать: агенты или бизнес-процессы?

Критерий Агенты (код) Бизнес-процессы (BP)
Гибкость Полный контроль логики Ограничен шаблонами
Скорость разработки Часы Минуты (если шаблон готов)
Требуется разработчик Да Нет (можно силами администратора)
Интеграция с внешними API Простая Сложнее (через REST)
Масштабирование Ограничение 50 заказов за шаг Зависит от производительности

Какие events используются для автосмены?

Типовые сценарии и триггеры сведены в таблицу:

Текущий статус Событие Новый статус
WAIT_PREPAY Оплата F (Выполнен)
WAIT_PREPAY 24 часа без оплаты CANCEL (Отменён)
D (Доставлен) 14 дней без претензий CLOSED (Закрыт)

Подробнее о событии OnSalePaymentPaid — в официальной документации. Автоматизация в целом описана на Wikipedia.

Процесс работы

  1. Аналитика — изучаем текущие статусы, сценарии, логику обмена с 1С.
  2. Проектирование — выбираем подход (события/агенты/BP) для каждого сценария.
  3. Реализация — пишем код или настраиваем BP, тестируем на тестовом заказе.
  4. Тест — прогоняем все сценарии (оплата, отмена, доставка) в staging-среде.
  5. Деплой — переносим на боевую, мониторим логи в первые сутки.

Что входит в настройку (deliverables)

  • Создание файла local/php_interface/init.php с обработчиками событий (если нужно).
  • Настройка агентов с указанием периодичности.
  • Конфигурация бизнес-процессов (если требуется) через админку.
  • Интеграция с webhook от транспортной компании (например, СДЭК API или Почта России API).
  • Документация: описание всех автоматических переходов.
  • Доступ к git-репозиторию с кодом.
  • Обучение администратора (1 час).
  • Гарантия 14 дней на корректную работу скриптов.

Типичная ошибка при интеграции транспортной компании: если в webhook приходит статус, которого нет в маппинге, заказ остаётся без изменения. Решение: добавить логирование неизвестных статусов и настроить уведомление администратору.

Интеграция со статусами транспортных компаний

// Webhook от ТК — POST /bitrix/tools/delivery_webhook.php $trackNumber = $_POST['track']; $deliveryStatus = $_POST['status']; $shipmentResult = \Bitrix\Sale\Internals\ShipmentTable::getList([ 'filter' => ['TRACKING_NUMBER' => $trackNumber], 'select' => ['ORDER_ID'], ]); if ($shipment = $shipmentResult->fetch()) { $order = \Bitrix\Sale\Order::load($shipment['ORDER_ID']); $statusMap = ['delivered' => 'D', 'returned' => 'RETURN_INIT', 'lost' => 'PROBLEM']; $newStatus = $statusMap[$deliveryStatus] ?? null; if ($newStatus && $order) { $order->setField('STATUS_ID', $newStatus); $order->save(); } } 

Автозавершение доставленных заказов

Перевод в «Закрыт» через 14 дней после доставки без претензий:

public static function completeDeliveredOrders(): string { $deadline = new \Bitrix\Main\Type\DateTime(); $deadline->add('-14 days'); $result = \Bitrix\Sale\Internals\OrderTable::getList([ 'filter' => ['STATUS_ID' => 'D', '<DATE_STATUS' => $deadline], 'select' => ['ID'], 'limit' => 100, ]); while ($row = $result->fetch()) { $order = \Bitrix\Sale\Order::load($row['ID']); if ($order) { $order->setField('STATUS_ID', 'CLOSED'); $order->save(); } } return 'Local\\Sale\\OrderAgents::completeDeliveredOrders();'; } 

Сроки выполнения

Автосмена при оплате и один агент автоотмены — 3–5 часов. Полная автоматизация с интеграцией ТК, бизнес-процессами и несколькими агентами — 1–3 рабочих дня. Оценим ваш проект бесплатно — свяжитесь с нами для аудита. Закажите настройку и получите готовое решение с гарантией 14 дней.