Уявіть: інтернет-магазин на Бітрікс зростає, але клієнти скаржаться — не можна вибрати зручний час доставки. Стандартна форма пропонує лише дату, а кур'єрська служба вимагає слоти «з 10 до 14» або «з 18 до 22». Ми стикалися з цим десятки разів за 5+ років роботи з Бітрікс. Рішення неочевидне: вбудовані служби доставки не вміють керувати інтервалами. Доводиться реалізовувати через властивості замовлення або кастомний інтерфейс. Один із наших клієнтів — інтернет-магазин продуктів — втрачав до 30% замовлень через відсутність вибору часу. Після впровадження динамічних слотів конверсія зросла на 15%. Інший клієнт, із сезонними піками, стикався з double booking при піковому навантаженні — вирішили через транзакції та теговане кешування.
Чому стандартна служба доставки не підходить?
Поширена помилка — думати, що в Бітрікс достатньо увімкнути опцію «інтервал часу» в налаштуваннях доставки. Насправді механізму слотів немає в жодній штатній службі. Потрібно або використовувати властивості замовлення (тип «Список»), або розробляти динамічну систему на highload-блоках. Перший варіант — швидкий, але статичний. Другий — гнучкий, але потребує програмування.
Як реалізувати динамічні слоти з обмеженням місткості?
Найчастіший запит від клієнтів — «слоти з лімітами». Наприклад, на інтервал 10:00–14:00 можна прийняти лише 10 замовлень. Реалізація через highload-блок DeliverySlots:
| Поле |
Тип |
Опис |
UF_DATE |
Дата |
Дата доставки |
UF_SLOT |
Рядок |
Інтервал (10:00–14:00) |
UF_CAPACITY |
Число |
Максимум замовлень |
UF_BOOKED |
Число |
Заброньовано |
При виборі дати та слота в кошику виконується AJAX-запит до кастомного компонента:
$entity = \Bitrix\Highloadblock\HighloadBlockTable::compileEntity('DeliverySlots');
$slots = $entity::getList([
'filter' => [
'UF_DATE' => $date,
'<=UF_BOOKED' => 'UF_CAPACITY - 1',
],
'select' => ['UF_SLOT', 'UF_CAPACITY', 'UF_BOOKED'],
]);
Після підтвердження замовлення — UF_BOOKED збільшується всередині транзакції, щоб уникнути double booking. Це надійніше, ніж перевірка на фронті. Для прискорення роботи використовуємо теговане кешування: список слотів кешується на 1 хвилину, при оновленні UF_BOOKED кеш скидається.
Як налаштувати статичний список інтервалів за 4 кроки
- Створіть властивість замовлення типу «Список» з потрібними інтервалами (наприклад, «10:00–14:00», «14:00–18:00»).
- Прив'яжіть властивість до служби доставки в налаштуваннях модуля «Торговий каталог».
- У компоненті оформлення замовлення вкажіть параметр
PROPERTIES з кодом властивості.
- Додайте умову виведення властивості лише для потрібної служби доставки.
Цей підхід підходить для магазинів з простою логістикою до 50 замовлень на день. Якщо потрібні ліміти або інтеграція з календарем кур'єрів — використовуйте динамічні слоти.
Що входить у роботу?
При замовленні налаштування інтервалів доставки під ключ ми:
- аналізуємо вимоги та поточну архітектуру,
- обираємо оптимальний варіант (статичний список / динамічні слоти / інтеграція з кур'єрським API),
- проектуємо highload-блоки та налаштовуємо кешування,
- реалізуємо кастомний компонент вибору слота з валідацією,
- тестуємо на навантаження та деплоїмо в продакшн,
- передаємо документацію та навчаємо вашу команду.
Гарантуємо, що система не «впаде» при пікових замовленнях — використовуємо теговане кешування та асинхронну перевірку слотів. Усі операції оновлення бронювань виконуються в транзакціях, виключаючи подвійні записи.
Який підхід обрати: статичний список чи динамічні слоти?
Статичний список (властивість замовлення з типом «Список») — для магазинів з простою логістикою до 50 замовлень на день. Динамічні слоти з highload-блоком дають контроль місткості в реальному часі — краще в 3 рази для інтернет-магазинів із сезонними піками. А інтеграція з календарем кур'єрів (наприклад, через REST API кур'єрської служби) дозволяє повністю автоматизувати планування.
Типові помилки при налаштуванні
-
Double booking: виникає, якщо не використовувати транзакції при оновленні
UF_BOOKED. Завжди обгортайте запис у Bitrix\Main\Application::getConnection()->startTransaction() і комітьте лише після успішного оновлення.
-
Тайм-аути при піковому навантаженні: вирішуються кешуванням списку слотів на 1 хвилину (тегований кеш). Налаштувати можна через
\Bitrix\Main\Data\Cache::createInstance().
-
Некоректне відображення застарілих слотів: видаляйте минулі слоти через агент щоденно. Наприклад,
CAgent::AddAgent(...).
Терміни налаштування
| Варіант |
Термін |
| Статичний список через властивість замовлення |
2–4 години |
| Динамічні слоти з обмеженням місткості |
1–2 дні |
| + інтеграція з календарем кур'єрів |
2–4 дні |
Вартість розраховується індивідуально після аналізу ваших завдань. Ми пропонуємо безкоштовну консультацію: опишіть свою ситуацію — інженер підбере оптимальне рішення. Досвід — 5+ років, 100+ проектів з Бітрікс. Отримайте консультацію — напишіть у чат або на пошту. Замовте налаштування інтервалів і позбудьтеся втрат замовлень.
Інтеграція доставки: від розрізнених 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 робочий день.