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

Наша компанія займається розробкою, підтримкою та обслуговуванням рішень на Бітрікс та Бітрікс24 будь-якої складності. Від простих односторінкових сайтів до складних інтернет-магазинів, CRM систем з інтеграцією 1С та телефонії. Досвід розробників підтверджено сертифікатами від вендора.
Пропоновані послуги
Показано 1 з 1 послугУсі 1626 послуг
Налаштування зон доставки на 1С-Бітрікс
Проста
~1 робочий день
Часті питання

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

Етапи розробки

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

  • image_website-b2b-advance_0.png
    Розробка сайту компанії B2B ADVANCE
    1262
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Розробка веб-сайту для компанії ФІКСПЕР
    851
  • image_bitrix-bitrix-24-1c_development_of_an_online_appointment_booking_widget_for_a_medical_center_594_0.webp
    Розробка на базі Бітрікс, Бітрікс24, 1С для компанії Development of an Online
    585
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Розробка на базі 1С Підприємство для компанії МИРСАНБЕЛ
    751
  • image_crm_dolbimby_434_0.webp
    Розробка сайту на CRM Бітрікс24 для компанії DOLBIMBY
    657
  • image_crm_technotorgcomplex_453_0.webp
    Розробка на базі Бітрікс24 для компанії ТЕХНОТОРГКОМПЛЕКС
    989

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

Зони доставки визначають, які служби доставки доступні для кожного регіону, та дозволяють встановлювати різні тарифи для різних географічних областей. У 1С-Бітрікс зони реалізовані через механізм «Місцезнаходжень» — стандартний, але такий, що вимагає розуміння.

Як працюють місцезнаходження в 1С-Бітрікс

1С-Бітрікс зберігає ієрархію місцезнаходжень у таблицях b_sale_location та b_sale_location_name. Ієрархія: країна → регіон → район → місто. Кожне місцезнаходження має CODE (рядковий, наприклад RU-77 для Москви) та ID.

Служби доставки прив'язуються до місцезнаходжень у розділі Магазин → Налаштування → Служби доставки → [служба] → Місцезнаходження. Якщо місцезнаходження не додано — служба для нього недоступна.

Налаштування зон через адміністративний інтерфейс

Три сценарії налаштування зон:

Сценарій 1: Доставка тільки до певних міст Додаємо конкретні міста до списку місцезнаходжень служби. Служба буде доступна тільки для них.

Сценарій 2: Доставка по всій країні, крім деяких регіонів Додаємо «Росія» як батьківське місцезнаходження. Служба доступна скрізь. Винятки реалізуються окремою логікою в обробнику (isCompatible()) або через створення кількох служб.

Сценарій 3: Різні тарифи для різних зон Створюємо кілька екземплярів однієї служби: «Доставка по Москві» (ціна 300 руб.), «Доставка по МО» (ціна 500 руб.), «Доставка по Росії» (за тарифом). Кожна прив'язана до своєї зони місцезнаходжень.

Кастомні зони через обмеження

Стандартні місцезнаходження 1С-Бітрікс не завжди збігаються із зонами доставки реальних служб. Кастомні зони реалізуються через таблицю-маппінг:

// Таблиця зон: city_name → zone_id
// Зберігається в інфоблоці або кастомній таблиці
$zoneTable = [
    'Москва'          => 'zone_1',
    'Санкт-Петербург' => 'zone_1',
    'Новосибірськ'    => 'zone_2',
    // ...
];

// В обробнику служби доставки:
protected function calculateConcrete(\Bitrix\Sale\Shipment $shipment): \Bitrix\Sale\Delivery\CalculationResult
{
    $city = $this->getShipmentCity($shipment);
    $zone = ZoneMapper::getZone($city);
    $price = $this->getPriceByZone($zone);
    // ...
}

Прив'язка вартості до зон

Вартість по зонах зберігається в налаштуваннях служби доставки (b_sale_delivery_service_params) або в окремій кастомній таблиці. Приклад структури:

Зона Мін. термін Макс. термін Ціна
zone_1 (Москва, СПб) 1 2 300
zone_2 (міста-мільйонники) 2 4 450
zone_3 (решта Росії) 3 7 650

Перевірка зони в реальному часі

Для динамічного визначення зони за введеною адресою — AJAX-запит при введенні міста у форму замовлення. Визначаємо зону, оновлюємо список доступних служб і цін без перезавантаження сторінки.

Обмеження: коли стандартних зон не вистачає

Стандартний механізм місцезнаходжень 1С-Бітрікс спирається на довідник міст, який не завжди збігається з реальністю. Поширені проблеми:

  • Покупець вводить «Новосибірськ» — в довіднику є. Вводить «Новосиб» або «НСК» — не знаходить.
  • Служби доставки зонують територію інакше, ніж адміністративний поділ (наприклад, Московська область — одна зона, але ближнє Підмосков'я до 30 км — інший тариф).
  • Розрахунок по зоні потрібен, але адреса містить тільки вулицю без міста — 1С-Бітрікс не знає зону.

У таких випадках зональний розрахунок повністю виноситься в код обробника служби доставки, а довідник місцезнаходжень 1С-Бітрікс використовується тільки для відображення форми (не для фільтрації служб).

Імпорт місцезнаходжень

При первинному налаштуванні магазину з нуля або при зміні структури місцезнаходжень — масовий імпорт через стандартний агент \Bitrix\Sale\Location\Admin\LocationHelper або безпосередньо в таблиці b_sale_location, b_sale_location_name. Для російського ринку використовується довідник ФІАС або КЛАДР, перетворений у формат 1С-Бітрікс. Готові набори даних постачаються у дистрибутиві 1С-Бітрікс та оновлюються через оновлення платформи.

Зони та валюта

Якщо магазин працює в кількох країнах — зони прив'язуються до країн, а кожна країна має свою валюту. 1С-Бітрікс підтримує кілька валют на сайті (Магазин → Налаштування → Валюти). Тариф служби доставки задається в базовій валюті сайту, конвертація відбувається автоматично за курсом ЦБ. При кастомних зонах вартість вказується явно в потрібній валюті в налаштуваннях служби.

Терміни виконання

Налаштування зон через стандартний інтерфейс місцезнаходжень — 1 робочий день. Кастомні зони з таблицею-маппінгом і динамічним розрахунком — 2–3 дні. Імпорт та актуалізація довідника місцезнаходжень (ФІАС/КЛАДР) — 0.5 дня.