Налаштування узгодження замовлення для B2B у 1С-Бітрікс
У корпоративних закупівлях звичайний працівник не має права самостійно оплатити замовлення на велику суму. Йому потрібно узгодження керівника або фінансового директора. Без цієї логіки на боці Бітрікса покупець змушений узгоджувати замовлення поза системою — електронною поштою або в мессенджері — й повертатися оформляти вручну.
Схема узгодження
Стандартний сценарій для B2B: працівник створює замовлення зі статусом «На узгодженні» → сповіщення йде керівнику → керівник у кабінеті підтверджує або відхиляє → при підтвердженні замовлення переходить у обробку, при відхиленні — працівнику приходить сповіщення з причиною.
Складніші схеми: узгодження за сумою (до 50К — не потрібно, від 50К до 200К — один рівень, від 200К — два рівні), або узгодження за категорією товарів.
Реалізація через статуси замовлень
У Бітриксі замовлення має статус (b_sale_status). Додаємо кастомні статуси:
-
APPROVAL— очікує узгодження -
APPROVED— узгоджено, передано в обробку -
REJECTED— відхилено
Додавання статусів: CSaleStatus::Add() або через панель управління Магазин → Налаштування → Статуси замовлень.
При створенні замовлення працівником (не власником компанії) — обробник OnSaleOrderSaved перевіряє роль користувача. Якщо роль потребує узгодження й сума вище порогу — статус замовлення змінюється на APPROVAL, стандартна обробка тимчасово приостанавлюється.
Сповіщення й інтерфейс узгодження
При переході в APPROVAL — поштова подія B2B_ORDER_APPROVAL_REQUEST йде узгоджуючому. У листі: список позицій, сума, посилання на сторінку узгодження.
Сторінка узгодження в кабінеті — список замовлень зі статусом APPROVAL для поточного користувача (або для компанії, якщо у нього роль approver). Кнопки: «Узгодити» / «Відхилити» з полем причини. При натисканні — AJAX-запит до обробника, який змінює статус замовлення через CSaleOrder::UpdateStatus() й відправляє сповіщення творцю.
Багаторівневе узгодження
Для двохрівневої схеми — Highload-блок order_approvals: UF_ORDER_ID, UF_APPROVER_ID, UF_LEVEL (1, 2), UF_STATUS, UF_COMMENT, UF_DATE. Замовлення переходить у основну обробку тільки коли всі записи зі статусом approved. При відхиленні на будь-якому рівні — замовлення отримує статус REJECTED, ланцюжок переривається.
Графіки виконання
Налаштування одноповерхового узгодження: 1 тиждень. Багаторівнева схема з гнучкими правилами: 2-3 тижні.







