Настройка маршрутизации доставки на 1С-Битрикс

Наша компания занимается разработкой, поддержкой и обслуживанием решений на Битрикс и Битрикс24 любой сложности. От простых одностраничных сайтов до сложных интернет магазинов, CRM систем с интеграцией 1С и телефонии. Опыт разработчиков подтвержден сертификатами от вендора.
Предлагаемые услуги
Показано 1 из 1 услугВсе 1626 услуг
Настройка маршрутизации доставки на 1С-Битрикс
Простая
~1 рабочий день
Часто задаваемые вопросы
Наши компетенции:
Этапы разработки
Последние работы
  • image_website-b2b-advance_0.png
    Разработка сайта компании B2B ADVANCE
    1177
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Разработка веб-сайта для компании ФИКСПЕР
    811
  • 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 Appointment Booking Widget for a Medical Center
    564
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Разработка на базе 1С Предприятие для компании МИРСАНБЕЛ
    747
  • image_crm_dolbimby_434_0.webp
    Разработка сайта на CRM Битрикс24 для компании DOLBIMBY
    655
  • image_crm_technotorgcomplex_453_0.webp
    Разработка на базе Битрикс24 для компании ТЕХНОТОРГКОМПЛЕКС
    976

Настройка маршрутизации доставки на 1С-Битрикс

Маршрутизация доставки — это автоматический выбор способа доставки, склада отправки и зоны доставки в зависимости от адреса покупателя. В Битрикс базовая маршрутизация настраивается через зоны доставки и правила, но для сложных сценариев с несколькими складами и разными перевозчиками нужна дополнительная логика.

Зоны доставки в Битрикс

Зоны доставки хранятся в b_sale_location — это иерархический справочник регионов. Способы доставки (b_sale_delivery_service) привязываются к зонам через b_sale_delivery_location. Когда покупатель выбирает город, Битрикс показывает только те способы доставки, которые работают в эту зону.

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

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

Выбор склада отправки по адресу

Логика «какой склад ближе к адресу доставки» в стандартном Битрикс отсутствует. Реализуется через обработчик события 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 с маппингом регионов на склады отправки
  • Логику выбора склада при создании отгрузки
  • Правила приоритизации перевозчиков по весу и региону
  • Административный интерфейс управления правилами маршрутизации