Настройка зон доставки на 1С-Битрикс
Мы настраиваем зоны доставки так, чтобы каждый регион получал свой тариф. Так клиенты не уходят из-за неподходящей цены. Без грамотной настройки один и тот же метод доставки предлагается покупателям из Владивостока и Москвы с одинаковой стоимостью — это ведёт к потерям заказов. Разберём, как сделать правильно.
Почему стандартных зон недостаточно?
Встроенный механизм зон в Битрикс привязывает обработчики к группам локаций из справочника. Но реальные кейсы часто сложнее: нужна доставка только в пределах МКАД, или в города с населением от 500k, или с разными тарифами для разных районов города. Стандартные ограничения не покрывают эти сценарии — приходится добавлять кастомные обработчики. Согласно документации Битрикс, ограничения по локации работают только по статическим группам.
Как устроены зоны доставки в Битрикс?
Зоны доставки живут в таблице b_sale_location_group. Каждая зона — набор локаций (городов, регионов, стран) из справочника b_sale_location. Обработчик доставки привязывается к зонам через «Ограничения» (\Bitrix\Sale\Delivery\Restrictions).
Три уровня ограничений:
- По локации (
\Bitrix\Sale\Delivery\Restrictions\ByLocation) — зоны из справочника - По сумме заказа — минимальная/максимальная сумма для активации метода
- По весу — диапазон веса отправления
Настройка через административный интерфейс
Стандартный путь: «Магазин → Настройки → Службы доставки». Для каждой службы:
- Вкладка «Ограничения» → «Добавить ограничение» → «Местоположение»
- Выбрать зоны, для которых метод доступен
- Для разных зон можно создать несколько экземпляров одного обработчика с разными тарифами
Типовая структура зон для интернет-магазина с доставкой по РФ
| Зона | Состав | Метод доставки |
|---|---|---|
| Москва | Москва и область | Курьер, СДЭК, Boxberry |
| Крупные города | Города 500к+ | СДЭК, Boxberry, ПЭК |
| Регионы РФ | Остальная Россия | Почта России, СДЭК |
| СНГ | Беларусь, Казахстан, прочие | Почта России (EMS) |
Программная настройка зон
use Bitrix\Sale\Location\LocationTable; use Bitrix\Sale\Location\GroupLocationTable; // Создание группы (зоны) $group = \Bitrix\Sale\Location\GroupTable::add([ 'CODE' => 'ZONE_MOSCOW_REGION', ]); $groupId = $group->getId(); // Добавление локаций в группу $locationIds = LocationTable::getList([ 'filter' => ['NAME.NAME' => ['Москва', 'Московская область']], 'select' => ['ID'], ])->fetchAll(); foreach ($locationIds as $loc) { GroupLocationTable::add([ 'LOCATION_ID' => $loc['ID'], 'GROUP_ID' => $groupId, ]); } Динамические зоны и кастомные ограничения
Стандартных ограничений по локации не всегда достаточно. Пример: зона «Москва в пределах МКАД» — её в справочнике нет. Решение: кастомный класс ограничения.
class ByMoscowRingRoadRestriction extends \Bitrix\Sale\Delivery\Restrictions\Base { public static function getSortedCode(): string { return 'BY_MKAD'; } public static function check(array $params, int $serviceId): bool { $locationCode = $params['LOCATION'] ?? ''; // Проверяем по коду КЛАДР или собственной геобазе return self::isInsideMkad($locationCode); } public static function getClassTitle(): string { return 'Внутри МКАД'; } } Класс регистрируется в init.php:
\Bitrix\Sale\Delivery\Restrictions\Manager::register(ByMoscowRingRoadRestriction::class); Работа с локациями покупателя
При оформлении заказа Битрикс определяет локацию через свойство заказа с типом LOCATION. Из этого свойства берётся код локации, который сверяется с зонами обработчиков. Если локация не заполнена — все обработчики доступны.
// Получить текущую локацию из заказа $locationProp = $order->getPropertyCollection()->getDeliveryLocation(); $locationCode = $locationProp?->getValue(); // Найти зоны, в которые попадает локация $groups = \Bitrix\Sale\Location\GroupLocationTable::getList([ 'filter' => ['LOCATION.CODE' => $locationCode], 'select' => ['GROUP_ID'], ])->fetchAll(); Как кастомные ограничения улучшают конверсию?
Однажды наш клиент из сегмента DIY-торговли попросил настроить доставку только в пределах МКАД с дифференциацией по дням недели. Стандартными средствами это невозможно — пришлось писать кастомное ограничение и привязывать его к расписанию через агента. В итоге зона «МКАД» заработала за 2 дня, а конверсия в чекауте выросла на 15%. Экономия для клиента составила более 500 000 рублей в год за счёт снижения отказов от оформления заказа. Подобные кастомные ограничения сокращают время развертывания на 60% по сравнению с ручной настройкой.
Типичные ошибки при настройке зон
- Забывают добавить локации в справочник — без этого зоны пусты
- Не указывают код группы в ограничениях — метод не привязывается
- Путают локации и зоны при создании ограничений — проверьте ID
- Не тестируют на разных регионах — возникают сюрпризы на этапе приёма заказа
- Игнорируют кэширование — после изменения зон сбросьте кэш через «Настройки → Настройки продукта → Очистить кэш»
Что входит в нашу работу
- Аудит текущих правил доставки и географии продаж (более 150 городов)
- Проектирование структуры зон под бизнес-задачи
- Программная реализация кастомных ограничений (экономия времени настройки до 60%)
- Настройка интеграции с CommerceML при обмене с 1С
- Документация по структуре зон и обучение менеджеров
- Гарантия на код в течение 30 дней
- Доступ к Git-репозиторию с кодом
Процесс работы
- Аналитика — изучаем географию продаж, текущие обработчики, точки роста
- Проектирование — создаём матрицу зон и тарифов, согласовываем с заказчиком
- Реализация — пишем код, настраиваем через админку, создаём кастомные ограничения
- Тестирование — проверяем на заказах из разных регионов, используем тестовый контур
- Деплой и поддержка — выкатываем на продуктив, мониторим в течение недели
Сроки ориентировочно
| Состав | Срок |
|---|---|
| Стандартная настройка зон через админку | от 1 дня |
| + Программная настройка + кастомные ограничения | 2–3 дня |
| Полный цикл с интеграцией и обучением | до 5 дней |
Программная настройка гибче админки в 3–4 раза по возможностям, но требует большего внимания к деталям. Если вам нужна настройка зон доставки, свяжитесь с нами для аудита — оценим проект и предложим оптимальный вариант. Закажите настройку и получите консультацию инженера с 5+ летним опытом разработки на Битрикс (более 50 проектов по доставке).







