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

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

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

Этапы разработки

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

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

Ситуация: у интернет-магазина на 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 дней.