Налаштування оптових цін по обсягу замовлення в 1С-Bitrix
Оптова скидка по обсягу — класична механіка: чим більше беруш, тим дешевше кожна одиниця. В Bitrix реалізується кількома способами залежно від того, обсяг якого типу вважається: кількість одиниць конкретного товару, сума всієї корзини або кількість у розрізі категорії.
Квантовані ціни: вбудований механізм
Модуль catalog підтримує квантовані (ступінчасті) ціни через таблицю b_catalog_price. Для одного товару можна задати кілька рядків з одним типом ціни, але різними значеннями QUANTITY_FROM та QUANTITY_TO. Чим більше кількість у рядку — тим нижча ціна.
Налаштування в панелі управління: карточка товару → вкладка «Ціни» → для потрібного типу ціни додаємо кілька рядків з різними діапазонами. Або програмно через CCatalogProductPrice::Add() / CCatalogProductPrice::Update() при імпорті.
При додаванні товару в корзину Bitrix автоматично визначає потрібний рядок по кількості та застосовує відповідну ціну. Це працює без додатного коду — стандартна логіка модуля sale.
Скидки по сумі корзини
Якщо ціна залежить не від кількості конкретного товару, а від загальної суми замовлення — використовуємо модуль скидок (CCatalogDiscount). Створюємо скидку типу «На корзину» з умовою ORDER_PRICE > N → скидка X%. Кілька рівнів: при сумі 50К — 5%, при 100К — 8%, при 200К — 12%.
Налаштування: Магазин → Правила роботи з цінами. Умова — «Сума замовлення», дія — «Скидка на всю корзину» в процентах або фіксованою сумою. Скидки накопичуються за пріоритетом — важливо правильно виставити прапорці «Зупиняти подальше застосування».
Скидки по обсягу в категорії
Більш складний сценарій: скидка застосовується, якщо покупець узяв товарів з категорії X на суму більше Y. Стандартні інструменти модуля catalog це покривають через розширені умови скидки — вибираємо «Розділ інфоблока» у умові, вказуємо поріг суми.
Якщо логіка нестандартна (наприклад, скидка рахується по сумі кількох категорій або з урахуванням вагових коефіцієнтів) — реалізуємо через обробник події OnSaleBasketBeforeSaved з кастомним розрахунком.
Відображення ступінчастих цін
Покупець повинен бачити таблицю цін при різних обсягах ще до додавання в корзину. В компоненті карточки товару (bitrix:catalog.element) в result_modifier.php витягуємо всі рядки b_catalog_price для товару з QUANTITY_FROM > 0, формуємо масив QUANTITY_PRICES та виводимо у шаблоні таблицею:
| Кількість | Ціна за од. |
|---|---|
| 1–9 | 1 200 грн. |
| 10–49 | 1 050 грн. |
| 50+ | 900 грн. |
Налаштування ступінчастих цін для існуючого каталога (через інтерфейс + імпорт): 3–5 днів. Розробка кастомної логіки скидок з відображенням: 1–2 тижні.







