Налаштування автоматичної зміни статусів замовлення 1С-Бітрікс

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

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

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

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

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

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