Налаштування мінімальної суми замовлення для B2B у 1С-Бітрікс
Мінімальна сума замовлення в B2B — це не просто обмеження, це економічна необхідність: обробка замовлення на 500 грошових одиниць при вартості логістики 300 грошових одиниць збиткова. Завдання — реалізувати перевірку так, щоб різні клієнти мали різні мінімуми й обмеження застосовувалося до, а не після оформлення.
Стандартний спосіб через налаштування магазину
У Бітриксі є базове обмеження мінімальної суми замовлення: Магазин → Налаштування → Основні налаштування → поле «Мінімальна сума замовлення». Це єдине значення для всіх користувачів. При спробі оформити замовлення нижче порогу виводиться повідомлення про помилку, кнопка «Оформити» недоступна.
Для B2B з єдиним мінімумом цього достатньо. Але на практиці оптові компанії мають різні мінімуми для різних груп: новий клієнт — 10К, постійний оптовик — 5К, VIP-дилер — без обмежень.
Групові мінімуми через обробник подій
Реалізується через обробник OnBeforeSaleOrderAdd. Логіка:
- Визначаємо групу користувача або його дилерську компанію
- Отримуємо мінімальну суму для цієї групи з налаштувань (опції модуля або Highload-блок)
- Порівнюємо з сумою замовлення
$order->getPrice() - Якщо сума нижче — додаємо помилку через
$event->addError(), замовлення не створюється
Зберігання мінімумів за групами: таблиця опцій модуля або Highload-блок b2b_order_limits з полями UF_GROUP_ID / UF_COMPANY_ID, UF_MIN_ORDER_AMOUNT, UF_CURRENCY.
Попередження в кошику
Блокувати на етапі створення замовлення — пізно. Користувач повинен бачити попередження прямо в кошику, коли набирає позиції. Це робиться в компоненті кошика: у result_modifier.php обчислюємо суму поточного кошика й мінімум для користувача, додаємо в $arResult прапор IS_BELOW_MINIMUM й суму до досягнення порогу. Шаблон показує інформер: «До мінімальної суми замовлення не хватає 3 200 грошових одиниць».
Мінімум за категоріями
Іноді мінімум задається не для всього замовлення, а для конкретних категорій товарів (наприклад, категорія «Крихкі товари» відпускається мінімум на 15К). Реалізується через ту саму подію OnBeforeSaleOrderAdd: групуємо позиції кошика за IBLOCK_SECTION_ID, перевіряємо мінімум для кожної категорії з Highload-блока правил.
Графіки виконання
Налаштування базового обмеження мінімальної суми через інтерфейс: 1 день. Розробка групових мінімумів з попередженням у кошику: 3-5 днів.







