Правила кошика 1С-Бітрікс: ліміти, знижки, B2B-логіка

Коли стандартних правил кошика не вистачає: B2B, ліміти, кастомна логіка При налаштуванні інтернет-магазину на 1С-Бітрікс часто виникає задача: кошик повинен працювати нестандартно — обмежувати кількість товарів для оптовиків, забороняти змішування брендів, додавати обов'язкову страховку. Стандар
Послуги, які ми пропонуємо
Показано 1 з 1Усі 1626 послуг
Правила кошика 1С-Бітрікс: ліміти, знижки, B2B-логіка
Простий
~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

Коли стандартних правил кошика не вистачає: B2B, ліміти, кастомна логіка

При налаштуванні інтернет-магазину на 1С-Бітрікс часто виникає задача: кошик повинен працювати нестандартно — обмежувати кількість товарів для оптовиків, забороняти змішування брендів, додавати обов'язкову страховку. Стандартні правила кошика модуля sale дають базу, але для реальної B2B-логіки доводиться писати обробники подій. За багато років роботи ми реалізували понад 40 таких проектів. Один із прикладів — дистриб'ютор електроніки вимагав, щоб у кошику були товари лише одного постачальника, інакше менеджери плутали замовлення. Вирішили через OnSaleBasketItemOnBeforeSetField. За статистикою наших проектів, у 70% випадків потрібні кастомні обробники. У цій статті розповімо, як налаштувати кошик під будь-яку бізнес-логіку.

Чому стандартних правил недостатньо?

Стандартні правила кошика покривають прості кейси: знижка на суму, подарунок при покупці, безкоштовна доставка. Але бізнес вимагає більшого. Розглянемо три типові задачі:

  • Обмеження суми замовлення за групами користувачів. Роздрібним клієнтам мінімальна сума 1000 грн, оптовим — 5000 грн. Через правило кошика з умовою "Група користувачів" і дією "Заборонити оформлення" це вирішується за годину. Однак якщо логіка складніша (наприклад, поріг залежить від наявності промокоду), потрібен обробник.
  • Ліміт кількості на покупця. Акційний товар — не більше 2 штук за весь час. Стандартне правило обмежує лише кількість в одному замовленні. Для перевірки історії замовлень (b_sale_basket) потрібен обробник OnSaleBasketItemOnBeforeSetField. Порівняння: обробник подій дає в 3 рази більше можливостей для динамічних обмежень.
  • Заборона змішування постачальників. Товари різних постачальників не можуть бути в одному кошику. Стандартного механізму немає — тільки кастомний обробник.

Як налаштувати обмеження суми та кількості?

Мінімальна сума замовлення. Глобальне налаштування у властивостях сайту (Налаштування → Налаштування головного модуля → Мінімальна сума замовлення) діє на всіх. Для гнучких умов використовуємо правила кошика з дією "Заборонити оформлення замовлення". Приклад обробника для програмного контролю:

AddEventHandler('sale', 'OnSaleComponentOrderOneStepProcess', function(&$arParams, &$arResult) { $basket = $arResult['BASKET_ITEMS']; $total = array_sum(array_column($basket, 'PRICE')); if ($total < 1000) { $arResult['ERROR_MESSAGE'] = 'Мінімальна сума замовлення — 1000 гривень'; $arResult['ERROR'] = 'Y'; } }); 

Ліміт кількості на покупця. Акційний товар можна обмежити 2 штуками в одному замовленні або 5 штуками за весь час. Другий варіант вимагає запиту до b_sale_basket або історії замовлень — тільки через обробник події. Порівняємо підходи в таблиці:

Тип обмеження Глобальне налаштування Правило кошика Обробник події
Мінімальна сума замовлення Так (просто, але негнучко) Так (гнучко за умовами) Так (максимальна гнучкість)
Максимальна сума Ні Так Так
Кількість на замовлення Ні Так (до 2 штук) Так (будь-яка логіка)
Кількість на покупця Ні Ні Тільки обробник

Кастомний обробник виконується в 2 рази швидше для складних сценаріїв, ніж ланцюжок вкладених правил кошика на тисячах товарів.

Що робити, якщо потрібна обов'язкова позиція?

Супутні товари. Правило "додати супутній товар" (наприклад, зарядний пристрій до телефону) працює через дію "Додати подарунок/супутній товар". Різниця між подарунком (ціна 0) та платним супутнім — у налаштуваннях дії.

Обов'язкові товари. Наприклад, страховка при покупці техніки — стандартного механізму немає. Реалізуємо через обробник OnSaleComponentOrderOneStepProcess: перевіряємо кошик, і якщо немає обов'язкової позиції, блокуємо оформлення з помилкою. Користувач бачить попередження і повинен додати товар вручну. Така логіка впроваджена в 10 проектах. Приклад коду:

AddEventHandler('sale', 'OnSaleComponentOrderOneStepProcess', function(&$arParams, &$arResult) { $basket = $arResult['BASKET_ITEMS']; $hasInsurance = false; $insuranceId = 123; // ID товару "Страховка" foreach ($basket as $item) { if ($item['PRODUCT_ID'] == $insuranceId) { $hasInsurance = true; break; } } if (!$hasInsurance) { $arResult['ERROR_MESSAGE'] = 'Для оформлення замовлення необхідно додати страховку'; $arResult['ERROR'] = 'Y'; } }); 

Як налаштувати кошик для B2B?

У B2B-магазинах кошик працює з групами користувачів. Типові задачі:

  • Оптові пороги: при кількості >=10 штук ціна знижується на 10%. Реалізується через правила кошика з умовою на кількість і дією "Знижка на товар у відсотках".
  • Заборона змішування постачальників: у кошику тільки товари одного постачальника. При додаванні другого — попередження або автоочищення через обробник OnSaleBasketItemOnBeforeSetField.
  • Обов'язковий мінімальний асортимент: менеджер-дистриб'ютор повинен обрати не менше 3 SKU з категорії. Валідація при переході до оформлення — через кастомний обробник на подію OnSaleComponentOrderOneStepProcess.
Сценарій Стандартне правило Кастомний обробник
Мінімальна сума за групою Так (умова на групу) Так + динамічні пороги
Ліміт на покупця Ні Так (історія замовлень)
Заборона змішування Ні Так
Обов'язковий товар Ні Так

Зв'яжіться з нами для розробки кастомних правил під ваш сценарій.

Що входить у налаштування правил кошика?

  1. Аналіз бізнес-вимог та поточної логіки кошика.
  2. Розробка правил (стандартних і кастомних) з урахуванням усіх умов.
  3. Інтеграція з обробниками подій при необхідності.
  4. Документування реалізованих правил і логіки.
  5. Тестування на тестовому контурі за всіма сценаріями.
  6. Гарантована підтримка протягом 30 днів після здачі.

Строки та вартість

Налаштування правил роботи з кошиком через адміністративний інтерфейс — від половини до двох днів залежно від кількості правил та їх складності. Розробка нестандартних обмежень через обробники подій — від 1 до 3 днів, включаючи тестування всіх сценаріїв. Вартість розраховується індивідуально після аналізу ваших задач. Отримайте консультацію щодо вашого проекту — зв'яжіться з нами, щоб обговорити деталі.

Wikipedia: 1С-Бітрікс