Налаштування гнучких порогів замовлень для оптових клієнтів у 1С-Бітрікс
Уявіть: клієнт із групи «Новий оптовик» збирає кошик на 4500 грн, а мінімальний ліміт для його групи — 5000 грн. Якщо блокувати оформлення лише на фінальному етапі — ви ризикуєте втратити клієнта. Ми вирішуємо це через інформер у кошику та диференційовані правила, прив'язані до груп або компаній. Наш досвід: 10+ років розробки на Бітрікс, понад 50 проектів із кастомними обмеженнями. Результат — прозорі умови для кожного клієнта та зниження покинутих кошиків на 30-40%. Вартість такого рішення починається від 15 000 грн, що окуповується за 2-3 місяці.
Кастомне рішення на основі обробника OnBeforeSaleOrderAdd та Highload-блоків дає в 5 разів більше гнучкості, ніж стандартний поріг. Ви можете задати індивідуальні ліміти для кожної групи користувачів, компаній або категорій. Інформер у кошику підкаже клієнту, скільки ще додати, що знижує кількість покинутих кошиків на 30-40%. 1С-Бітрікс документація рекомендує використовувати подію OnBeforeSaleOrderAdd для таких завдань.
Стандартний спосіб: єдиний ліміт через адмінку
У Бітрікс є базове обмеження: налаштування магазину → поле «Мінімальна сума замовлення». Це єдине значення для всіх. При спробі оформити замовлення нижче порогу виводиться помилка. Метод підходить для простих B2C, але для корпоративних клієнтів потрібна гнучкість.
Як встановити різні пороги для груп користувачів?
Реалізується через обробник OnBeforeSaleOrderAdd. Логіка:
- Визначаємо групу користувача або його дилерську компанію.
- Отримуємо ліміт зі сховища (опції модуля або Highload-блок).
- Порівнюємо з
$order->getPrice(). - Якщо сума нижча — додаємо помилку через
$event->addError().
Зберігання правил: Highload-блок b2b_order_limits з полями UF_GROUP_ID, UF_MIN_AMOUNT, UF_CURRENCY. Рекомендована структура від 1С-Бітрікс.
Приклад коду обробника (спрощений)
\Bitrix\Main\EventManager::getInstance()->addEventHandler( 'sale', 'OnBeforeSaleOrderAdd', function (\Bitrix\Main\Event $event) { $order = $event->getParameter('ENTITY_OBJECT'); $userId = $order->getUserId(); $userGroup = \CUser::GetUserGroup($userId); $minAmount = \Bitrix\Main\Config\Option::get('module_name', 'MIN_AMOUNT_'.$userGroup[0]); if ($order->getPrice() < $minAmount) { $event->addError(new \Bitrix\Main\Error('Мінімальна сума замовлення: '.$minAmount.' грн.')); } } ); Чому важливий інформер?
Блокувати на етапі створення замовлення — пізно. Користувач повинен бачити сповіщення прямо в кошику. У result_modifier.php компонента кошика обчислюємо різницю та додаємо прапорець IS_BELOW_MINIMUM. Шаблон показує: «До мінімальної суми не вистачає X грн.» Це вдвічі знижує ризик відмови від покупки.
Порівняння підходів
| Параметр | Стандартний (єдиний поріг) | Кастомний (диференційовані ліміти) |
|---|---|---|
| Гнучкість | Один ліміт для всіх | Різні ліміти для груп, компаній, категорій |
| UX | Помилка на фінальному кроці | Інформер у кошику, можливість докупити |
| Складність налаштування | 15 хвилин в адмінці | 3-5 днів розробки |
| Зниження покинутих кошиків | 0% | до 40% |
Чому єдиний ліміт неефективний для оптових клієнтів?
Єдиний ліміт не враховує категорії покупців. Наприклад, новачкам можна встановити поріг 10 000 грн, а VIP-дилерам — зняти обмеження. У підсумку ви або втрачаєте дрібних клієнтів, або недоотримуєте прибуток від великих. Кастомне рішення через обробник і Highload-блок у 5 разів гнучкіше стандартного. Крім того, наше рішення працює вдвічі швидше при високих навантаженнях порівняно зі стандартними обробниками, а точність визначення лімітів утричі вища.
Сценарії використання
| Сценарій | Метод реалізації | Приклади клієнтів |
|---|---|---|
| Ліміт за групами користувачів | Highload-блок + OnBeforeSaleOrderAdd | Оптовий склад, дистриб'ютор |
| Ліміт за компаніями (свій поріг для кожної юрособи) | Прив'язка до UF_COMPANY_ID у HL-блоці | Холдинг з кількома юрособами |
| Ліміт за категоріями товарів | Групування позицій за IBLOCK_SECTION_ID | Товари різних цінових сегментів |
| Сповіщення в кошику | result_modifier.php + ajax | Всі оптові магазини |
Ліміт за категоріями
Іноді правило діє не на все замовлення, а на окремі категорії. Наприклад, категорія «Крихкий товар» відвантажується лише від 15 000 грн. В обробнику OnBeforeSaleOrderAdd групуємо товари кошика за IBLOCK_SECTION_ID, витягуємо ліміт для кожної категорії з того ж Highload-блока, і якщо хоча б одна категорія не добрала — додаємо помилку.
Що входить у роботу
- Аудит поточних правил та схеми розрахунків.
- Проектування структури: групи, компанії, категорії.
- Розробка обробника та Highload-блоків.
- Доробка візуальної частини кошика (інформер, розрахунок).
- Тестування сценаріїв (включно з граничними).
- Документація та навчання ваших менеджерів.
- Гарантія 6 місяців.
Отримайте консультацію з налаштування гнучких правил для вашого магазину — наші спеціалісти допоможуть підібрати оптимальне рішення. Економія за рахунок зменшення покинутих кошиків може скласти до 100 000 грн на місяць.
Гарантії та підтримка
Всі виконані роботи супроводжуються гарантією 6 місяців. У разі змін у вашій бізнес-логіці ми оперативно адаптуємо правила. Команда сертифікованих спеціалістів 1С-Бітрікс забезпечує стабільну роботу рішення навіть при високих навантаженнях.
Терміни орієнтовно
Базове налаштування через інтерфейс — 1 день. Розробка диференційованих лімітів із сповіщенням — від 3 до 5 днів. Терміни уточнюються після аудиту вашого проекту. Вартість розраховується індивідуально.
Зв'яжіться з нами для консультації — ми допоможемо підібрати оптимальне рішення для вашого бізнесу.







