Налаштування маршрутизації доставки на 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С-Bitrix

Маршрутизація доставки — це автоматичний вибір способу доставки, складу відправки та зони доставки залежно від адреси покупця. У Bitrix базова маршрутизація налаштовується через зони доставки та правила, але для складних сценаріїв з кількома складами та різними перевозниками потрібна додаткова логіка.

Зони доставки у Bitrix

Зони доставки зберігаються в b_sale_location — це ієрархічний довідник регіонів. Способи доставки (b_sale_delivery_service) прив'язуються до зон через b_sale_delivery_location. Коли покупець вибирає місто, Bitrix показує лише ті способи доставки, які працюють у цю зону.

Додайте прив'язку способу доставки до зони:

\Bitrix\Sale\Delivery\Services\Manager::save([
    'ID'     => $deliveryServiceId,
    'ACTIVE' => 'Y',
    'RESTRICTED_LOCATION' => [$locationId1, $locationId2],
]);

Вибір складу відправки за адресою

Логіка «який склад ближче до адреси доставки» у стандартному Bitrix відсутня. Реалізується через обробник события OnSaleShipmentBeforeSave або через кастомний обробник оформлення замовлення.

Проста реалізація — таблиця bl_store_zones з відповідністю location_id → store_id. При створенні отправки визначаємо регіон з адреси доставки та призначаємо склад:

$locationId = $order->getPropertyCollection()
    ->getItemByOrderPropertyCode('LOCATION')
    ?->getValue();

$storeId = StoreZoneTable::getStoreByLocation($locationId) ?? DEFAULT_STORE_ID;

$shipment->setField('DELIVERY_DOC_NUM', $storeId);

Пріоритизація перевозників

При кількох активних службах доставки можна автоматично пропонувати оптимальну за вартістю або швидкістю. Створіть правила пріоритизації в bl_delivery_rules:

Поле Описання
location_group Регіон або група регіонів
order_weight_from / to Діапазон ваги
delivery_service_id Пріоритетна служба доставки
priority Порядок пропозиції

Агент або компонент кошика при розрахунку доставки сортує доступні служби за цими правилами.

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

Для управління правилами маршрутизації без редагування коду створіть адміністративний компонент. Використовуйте CAdminList або React-компонент у /local/admin/. Дані зберігаються в b_option (для простих налаштувань) або у користувальницькій таблиці (для складних).

Що налаштовуємо

  • Зони доставки в b_sale_location та прив'язку служб доставки до зон
  • Таблицю bl_store_zones з маппінгом регіонів на склади відправки
  • Логіку вибору складу при створенні отправки
  • Правила пріоритизації перевозників за вагою та регіоном
  • Адміністративний інтерфейс управління правилами маршрутизації