Налаштування інтервалів доставки в 1С-Бітрікс

Уявіть: інтернет-магазин на Бітрікс зростає, але клієнти скаржаться — не можна вибрати зручний час доставки. Стандартна форма пропонує лише дату, а кур'єрська служба вимагає слоти «з 10 до 14» або «з 18 до 22». Ми стикалися з цим десятки разів за 5+ років роботи з Бітрікс. Рішення неочевидне: вбудов
Послуги, які ми пропонуємо
Показано 1 з 1Усі 1626 послуг
Налаштування інтервалів доставки в 1С-Бітрікс
Простий
~1 день

Наші компетенції:

Часті запитання

Останні роботи

  • Розробка сайту компанії B2B ADVANCE
    Розробка сайту компанії B2B ADVANCE
    1460
  • Розробка веб-сайту для компанії ФІКСПЕР
    Розробка веб-сайту для компанії ФІКСПЕР
    1019
  • Розробка на базі Бітрікс, Бітрікс24, 1С для компанії Development of an Online
    Розробка на базі Бітрікс, Бітрікс24, 1С для компанії Development of an Online
    764
  • Розробка на базі 1С Підприємство для компанії МИРСАНБЕЛ
    Розробка на базі 1С Підприємство для компанії МИРСАНБЕЛ
    882
  • Розробка сайту на CRM Бітрікс24 для компанії DOLBIMBY
    Розробка сайту на CRM Бітрікс24 для компанії DOLBIMBY
    809
  • Розробка на базі Бітрікс24 для компанії ТЕХНОТОРГКОМПЛЕКС
    Розробка на базі Бітрікс24 для компанії ТЕХНОТОРГКОМПЛЕКС
    1166

Уявіть: інтернет-магазин на Бітрікс зростає, але клієнти скаржаться — не можна вибрати зручний час доставки. Стандартна форма пропонує лише дату, а кур'єрська служба вимагає слоти «з 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 кроки

  1. Створіть властивість замовлення типу «Список» з потрібними інтервалами (наприклад, «10:00–14:00», «14:00–18:00»).
  2. Прив'яжіть властивість до служби доставки в налаштуваннях модуля «Торговий каталог».
  3. У компоненті оформлення замовлення вкажіть параметр PROPERTIES з кодом властивості.
  4. Додайте умову виведення властивості лише для потрібної служби доставки.

Цей підхід підходить для магазинів з простою логістикою до 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+ проектів з Бітрікс. Отримайте консультацію — напишіть у чат або на пошту. Замовте налаштування інтервалів і позбудьтеся втрат замовлень.