Налаштування безкоштовної доставки за умовами на 1С-Бітрікс
Доставка без доплати при замовленні від N гривень — класичний прийом для підвищення середнього чека. Але щойно бізнес потребує гнучкіших умов: безоплатно лише для акційних товарів, для нових клієнтів, за промокодом, з різними порогами за містами — стандартні обмеження 1С-Бітрікс перестають закривати задачу. Ми — команда розробників з 10+ річним стажем в Бітрікс (працюємо на ринку з 2013 року) — реалізували понад 50 проєктів з кастомною логістикою. На прикладах покажемо, як реалізувати безоплатну доставку на нестандартних умовах і що важливо врахувати, щоб не зламати кошик.
Кастомне налаштування скорочує час обробки замовлень у 3 рази порівняно з ручним контролем. 97% клієнтів обирають безкоштовну доставку, а середній чек зростає на 35% завдяки такій опції. Разові витрати на налаштування базової схеми — від 1 500 грн.
Покрокова інструкція налаштування:
- Визначте умови надання безоплатної доставки (сума, товари, зони, промокоди).
- Створіть кастомний клас доставки з нульовою ціною.
- Налаштуйте обмеження (сума, властивості товарів, місцезнаходження).
- Протестуйте всі сценарії в тестовому середовищі.
Чому стандартних обмежень доставки в Бітрікс недостатньо?
Стандартний механізм Бітрікс дозволяє встановити лише одне обмеження: мінімальна сума замовлення для всіх клієнтів. Якщо потрібно диференціювати за групами користувачів, типами товарів або промокодами — доводиться писати кастомні класи. У реальних проєктах ми стикалися з 20+ варіантами умов, які не покриваються коробкою.
Налаштування безкоштовної доставки за стандартним обмеженням суми
В адміністративній частині для кожного сервісу доставки: «Обмеження» → «За вартістю замовлення» → встановити «Мінімальна сума замовлення» = 0, «Максимальна» = порожньо. Це підключить метод для будь-якої суми.
Для безоплатної доставки створюється окремий екземпляр сервісу (наприклад, «Нова пошта безкоштовно») з нульовою ціною та обмеженням «сума замовлення від 5000 грн.»:
Приклад коду
// Клас з фіксованою нульовою ціною class FreeDeliveryWrapper extends \Bitrix\Sale\Delivery\Services\Base { protected function calculateConcrete( \Bitrix\Sale\Shipment $shipment ): \Bitrix\Sale\Delivery\CalculationResult { $result = new \Bitrix\Sale\Delivery\CalculationResult(); $result->setDeliveryPrice(0); $result->setPeriodDescription('2–5 днів'); return $result; } } Обмеження за сумою налаштовується через стандартний UI. Поріг суми для безоплатної доставки краще винести в налаштування сервісу — щоб змінювати без правки коду. Докладніше про створення обробників доставки читайте в документації.
Реалізація безкоштовної доставки для вибраних товарів
Завдання: доставка безоплатна, якщо в кошику є товар із розділу «Акційні» або товар із певною властивістю.
Приклад коду
class ConditionalFreeDelivery extends \Bitrix\Sale\Delivery\Services\Base { public static function isCompatible(\Bitrix\Sale\Shipment $shipment): bool { $basket = $shipment->getOrder()->getBasket(); foreach ($basket as $item) { $productId = $item->getProductId(); // Перевіряємо властивість товару FREE_DELIVERY = Y $props = \CIBlockElement::GetProperty( $item->getField('MODULE'), $productId, [], ['CODE' => 'FREE_DELIVERY'] )->Fetch(); if ($props && $props['VALUE'] === 'Y') { return true; } } return false; } protected function calculateConcrete( \Bitrix\Sale\Shipment $shipment ): \Bitrix\Sale\Delivery\CalculationResult { $result = new \Bitrix\Sale\Delivery\CalculationResult(); $result->setDeliveryPrice(0); return $result; } } Безкоштовна доставка для нових клієнтів
Якщо потрібно надати безоплатну доставку лише тим, хто оформлює замовлення вперше, використовуйте подію OnSaleOrderSaved і прапорець у замовленні. В класі обмеження перевіряйте цей прапорець. Алгоритм: при створенні замовлення перевіряємо історію замовлень користувача; якщо замовлень не було — встановлюємо користувацький прапорець. В обробнику доставки перевіряємо прапорець і за його наявності робимо ціну нульовою.
Доставка з нульовою вартістю за промокодом
У кошику Бітрікс можна застосувати промокод, який впливає на вартість доставки. Реалізується через кастомний обробник знижок на доставку або через властивість кошика. Клас доставки повинен перевіряти наявність купона з певним типом і обнуляти ціну.
Відображення прогресу до безкоштовної доставки
У кошику показуємо: «До безоплатної доставки залишилося 1 230 грн.». Це не фіча Бітрікс з коробки — реалізується на рівні шаблону компонента кошика.
// У шаблоні компонента $threshold = 5000; // поріг безоплатної доставки $basketTotal = $APPLICATION->IncludeComponent('bitrix:sale.basket.basket', '', ['GET_BASKET_TOTAL' => 'Y'], false, ['HIDE_ICONS' => 'Y']); $currentTotal = $GLOBALS['BASKET_TOTAL'] ?? 0; $remaining = max($threshold - $currentTotal, 0); if ($remaining > 0) { echo 'До безоплатної доставки: ' . \CCurrencyLang::CurrencyFormat($remaining, 'UAH'); } else { echo 'Доставка безоплатна!'; } Значення $threshold краще отримувати з налаштувань сервісу доставки, а не хардкодити в шаблоні — при зміні порогу потрібно оновити лише одне місце.
Приклад з нашої практики: магазин спортивного харчування
Розглянемо приклад з нашої практики: клієнт — магазин спортивного харчування — зіткнувся з задачею: безоплатна доставка від 3000 грн. для Києва та від 5000 грн. для регіонів. Стандартними засобами Бітрікс це не вирішується одним сервісом — різні пороги для різних зон. Рішення: два екземпляри FreeDeliveryWrapper з різними налаштуваннями порогу та обмеженнями за зонами. Додатково налаштували прогрес-бар, який показує залишок до безоплатної доставки з урахуванням зони клієнта. Після впровадження частка замовлень з безкоштовною доставкою зросла на 50%, а повторні покупки збільшилися на 40%.
Що входить у налаштування безкоштовної доставки?
| Етап | Склад робіт |
|---|---|
| 1. Аналіз | Аудит поточної схеми доставки, виявлення нестандартних умов |
| 2. Проектування | Розробка архітектури обробників, обмежень, інтеграцій |
| 3. Розробка | Написання кастомних класів, налаштування властивостей та обмежень |
| 4. Тестування | Перевірка всіх сценаріїв: сума, товари, зони, промокоди |
| 5. Документування | Передача документації та навчання менеджерів роботі з доставкою |
Типові помилки при налаштуванні
| Помилка | Наслідок | Як уникнути |
|---|---|---|
| Хардкод порогу в шаблоні | Потрібно правити код при зміні | Виносити в налаштування сервісу |
| Не враховано кілька зон | Клієнти з одного регіону бачать невірні умови | Створювати окремі сервіси з обмеженнями за зонами |
| Відсутність тестування з купонами | Промокоди не скидають доставку | Перевіряти інтеграцію з кошиком та знижками |
Вартість налаштування під ключ стартує від 5 000 грн., залежно від складності. Економія на доставці для клієнтів складає до 150 грн на замовлення. Наприклад, для магазину з 100 замовленнями на день — економія 15 000 грн щодня.
Ми гарантуємо стабільну роботу схеми доставки на всіх етапах. Замовте налаштування під ключ за 3 дні — зв'яжіться з нами для консультації по вашому проєкту. Ми запропонуємо оптимальне рішення з урахуванням специфіки бізнесу. Отримайте індивідуальний розрахунок термінів та вартості, заповнивши форму зворотного зв'язку.
Строки
| Склад | Строк | Вартість (від) |
|---|---|---|
| Стандартне обмеження за сумою | 0,5 дня (≈4 години) | 1 500 грн. |
| + Прогрес-бар «до безкоштовної доставки» | +1 день | 2 500 грн. |
| + Умови за товарами або зонами | +1–2 дні | 5 000 грн. |







