Налаштування безкоштовної доставки за умовами на 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 грн. |
Інтеграція доставки: від розрізнених API до єдиного калькулятора за 5 днів
Покупець кидає кошик на етапі доставки — не бачить розрахунку або бачить свідомо невірну ціну. Кожен такий випадок втрачає конверсію. Автоматизація логістики в 1С-Бітрікс вирішує цю проблему: ми підключаємо служби доставки так, щоб ціна показувалася миттєво, а трекінг оновлювався без участі менеджера. Більше 50 реалізованих проєктів з каталогами від 500 до 100 000 SKU, досвід понад 8 років. Середній час підключення однієї транспортної компанії — 4 дні.
Як прискорити підключення служб доставки до 1С-Бітрікс?
Головна складність — не сам виклик API, а адаптація до логіки кожного перевізника. СДЕК, Boxberry, Нова пошта, ПЕК, DPD — у кожного свій формат запиту, тарифікація та обробка помилок. Ми використовуємо готові адаптери під кожну ТК, що скорочує час інтеграції втричі порівняно з реалізацією з нуля. Розгорнутий кейс: інтернет-магазин товарів для дому (15 000 товарів) — підключили СДЕК та Boxberry за 5 днів, автоматизували розрахунок та створення замовлень. Звернення до підтримки з доставки знизилися на 60%, середній чек зріс на 8% за рахунок індикатора безкоштовної доставки.
Чому API кожної транспортної компанії — окремий квест?
СДЕК — об'ємна вага та карта ПВЗ
API v2 (/api/v2/calculator/tarifflist) приймає габарити, вагу та адреси — повертає всі доступні тарифи. Підводні камені: об'ємна вага розраховується за формулою (Д × Ш × В) / 5000. Якщо фізична вага 2 кг, а об'ємна 8 кг — СДЕК бере по об'ємній. Не врахуєте в калькуляторі — покупець побачить одну ціну, а заплатить іншу. Карта ПВЗ завантажується через /deliverypoints. Віджет СДЕК можна вбудувати, але він конфліктує зі стилями Бітрікс — малюємо свою карту на Яндекс.Картах. Автоматичне створення замовлення через /api/v2/orders — при оформленні заявка летить у СДЕК, повертається трек-номер. Друк накладних та етикеток з адмінки — через /api/v2/print/orders. Тарифи: склад-склад, склад-двері, двері-двері, експрес, постамат.
Boxberry — широка мережа ПВЗ в регіонах
Найширша мережа пунктів видачі в малих містах. API простіше, ніж у СДЕК, але є нюанси з післяплатою та частковим викупом. Типові помилки при інтеграції: відсутність фільтрації ПВЗ за ознакою onlyPrepaid → помилки при післяплаті; ігнорування параметра partialReturn → ламає частковий викуп. API повертає код міста у форматі "770000000000" — потрібне маппінг на index міста.
Нова пошта — лідер українського ринку
Для України — обов'язкове підключення Нової пошти через API v2. Розрахунок вартості, створення ЕН, друк накладної, трекінг. Карта відділень з фільтрацією (поштомати, прийом платежів). Асинхронне оновлення статусів через агент Бітрікс кожні 15 хвилин.
ПЕК — важкі вантажі та збір
Коли потрібно відправити диван або обладнання. Розрахунок збірних вантажів, страхування, обрешітка. Доставка до терміналу та від дверей до дверей. Індекси терміналів ПЕК підвантажуємо в інфоблок для автопідстановки.
DPD — експрес-доставка з часовими слотами
DPD по Україні та за кордон. Доставка у вибраний часовий інтервал, повернення підписаних документів. У розрахунку враховуємо об'ємну вагу за формулою (Д×Ш×В)/4000 — відмінність від СДЕК. Документація DPD: volumetric weight factor 4000.
Як об'єднати різні ТК в єдиному калькуляторі?
Використовуємо гібридний підхід: модуль-агрегатор, який маршрутизує запити до різних API та нормалізує відповіді. Він обробляє запити в 5 разів швидше, ніж окремі інтеграції, завдяки паралельним викликам через curl_multi. У відповіді модуля — єдина структура: назва тарифу, ціна, термін, тип доставки. Кешування теговане: при зміні налаштувань модуля очищується лише кеш розрахунку для обраного міста, решта залишається. Подію OnBeforeDeliveryCalculate вішаємо на кастомний обробник — так підміняємо стандартну логіку доставки.
Розрахунок вартості: які граблі зустрічаються?
Автоматичний калькулятор підсумовує фізичну та об'ємну вагу товарів у кошику, додає вагу упаковки, обирає найбільшу. Звучить просто, але:
- Габарити мають бути заповнені у кожного товару. Немає габаритів — немає розрахунку. На каталозі в 10 000 SKU обов'язково знайдуться товари без розмірів — для них заводимо дефолтні значення (наприклад, 0.1×0.1×0.1 м) і попереджаємо менеджера через поштову подію.
- Промоакції та пороги безкоштовної доставки — гнучке налаштування: за сумою замовлення, для VIP-клієнтів, при конкретному способі оплати. Реалізуємо через користувацькі властивості кошика.
- Індикатор «До безкоштовної доставки залишилося N» — проста річ, але піднімає середній чек на 5–12%. Обчислюємо за сумою кошика та найближчим порогом, виводимо в шаблоні кошика.
Як автоматизувати трекінг, самовивіз та кур'єрську доставку?
Трекінг. Автоматичне опитування API транспортних компаній — агент Бітрікс кожні 30 хвилин перевіряє статуси замовлень, у яких STATUS_DELIVERY != 'DELIVERED'. При зміні — оновлення статусу замовлення в системі та повідомлення покупцеві (email, SMS, push). Вбудована сторінка трекінгу в особистому кабінеті — покупцю не потрібно йти на сайт ТК. Карта з поточним місцезнаходженням, прогнозована дата доставки, можливість переадресації.
Самовивіз. Власні точки видачі на карті: адреси, графік, контакти. Пошук найближчої за адресою покупця. Перевірка наявності в реальному часі, бронювання до певної години. QR-код для швидкого отримання та SMS про готовність до видачі.
Кур'єрська доставка. Зони доставки з різною вартістю. 2-годинні слоти, управління розкладом кур'єрів, обмеження замовлень на слот. Доставка день у день — прийом до 14:00, експрес за 2-4 години з націнкою за терміновість. Інтеграція з навігацією для оптимізації маршрутів.
Мультисклад. Декілька складів з адресами та зонами обслуговування. Автоматичний вибір складу відвантаження за адресою покупця — пріоритет найближчому, де є всі товари замовлення. Якщо на одному складі всього немає — розділення замовлення по складах (мультидоставка). Синхронізація залишків через 1С або WMS (CommerceML), використовуємо події OnBeforeBasketAdd для перевірки доступності.
Порівняння транспортних компаній
| Параметр |
СДЕК |
Boxberry |
Нова пошта |
ПЕК |
DPD |
| Покриття |
Україна, СНД |
Регіони, малі міста |
Вся Україна |
Україна, важкі вантажі |
Україна, експрес |
| Швидкість доставки |
2–7 днів |
3–10 днів |
1–3 дні |
3–10 днів |
1–4 дні |
| Складність API |
Середня |
Низька |
Висока (XML) |
Середня |
Середня |
| Особливість |
Широкий набір тарифів, постамати |
Найширша мережа ПВЗ |
Стабільна, швидка відповідь |
Страхування, обрешітка |
Часові інтервали |
Етапи підключення служб доставки
-
Аналіз логістики (1–2 дні) — географія, середня вага, обсяг замовлень, інтеграція з 1С. Рекомендуємо комбінацію ТК.
-
Підключення API (3–5 днів на ТК) — налаштування розрахунків, карт ПВЗ, автоматичне створення замовлень через агенти та події.
-
Налаштування трекінгу (1–2 тижні) — агенти оновлення статусів, шаблони повідомлень, сторінка трекінгу.
-
Тестування (2–3 дні) — перевірка на реальних адресах, порівняння тарифів, контроль помилкових розрахунків, навантажувальне тестування.
-
Деплой та навчання (1 день) — вивантаження модуля, передача доступів, навчання менеджерів.
-
Гарантійна підтримка (1 місяць) — виправлення багів, коригування конфігурацій, доналаштування кешування.
Що входить у вартість інтеграції
- Документація зі схемою обміну (логістичні маршрути, тарифні зони).
- Налаштовані доступы до API кожної ТК, ключі, вебхуки.
- Шаблони повідомлень (email, SMS, push) для статусів доставки.
- Навчання менеджерів: робота з адмінкою, друк документів, обробка помилок.
- Півроку технічної підтримки після запуску.
Орієнтовні терміни реалізації
| Етап |
Термін |
| Підключення однієї ТК (API) |
3–5 днів |
| Карта вибору ПВЗ |
2–3 дні |
| Налаштування самовивозу |
2–3 дні |
| Система трекінгу |
1–2 тижні |
| Мультисклад |
2–4 тижні |
| Комплексна логістична система |
4–8 тижнів |
Терміни залежать від кількості ТК, складності каталогу та необхідності інтеграції з 1С/ERP. Вартість розраховується індивідуально — орієнтуйтеся на економію: зниження операційних витрат на доставку до 40% та скорочення звернень до підтримки на 60%. Наприклад, один із клієнтів з магазином електроніки (20 000 товарів) повернув інвестиції за 3 місяці за рахунок зменшення кількості «забутих» замовлень. Середня економія наших клієнтів — 15 000 грн на місяць на логістиці.
Готові прискорити логістику вашого інтернет-магазину? Зв'яжіться з нами — допоможемо підібрати оптимальну комбінацію ТК під ваш асортимент та бюджет. Замовте консультацію — і ми підготуємо пропозицію за 1 робочий день.