Настройка зон доставки на 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 проектов по доставке).
Интеграция доставки: от разрозненных API к единому калькулятору за 5 дней
Покупатель бросает корзину на этапе доставки — не видит расчёта или видит заведомо неверную цену. Каждый такой случай теряет конверсию. Автоматизация логистики в 1С-Битрикс решает эту проблему: мы подключаем службы доставки так, чтобы цена показывалась мгновенно, а трекинг обновлялся без участия менеджера. За 8 лет реализовано более 50 проектов с каталогами от 500 до 100 000 SKU. Среднее время подключения одной транспортной компании — 4 дня.
Как ускорить подключение служб доставки к 1С-Битрикс?
Главная сложность — не сам вызов API, а адаптация к логике каждого перевозчика. СДЭК, Boxberry, Почта России, ПЭК, DPD — у каждого свой формат запроса, тарификация и обработка ошибок. Мы используем готовые адаптеры под каждую ТК, что сокращает время интеграции втрое по сравнению с реализацией с нуля. Развернутый кейс: интернет-магазин товаров для дома (15 000 товаров) — подключили СДЭК и Boxberry за 5 дней, автоматизировали расчёт и создание заказов. Обращения в поддержку по доставке снизились на 60%, средний чек вырос на 8% за счёт индикатора бесплатной доставки.
Почему API каждой транспортной компании — отдельный квест?
СДЭК — объёмный вес и карта ПВЗ
API v2 (/api/v2/calculator/tarifflist) принимает габариты, вес и адреса — возвращает все доступные тарифы. Подводные камни: объёмный вес рассчитывается по формуле (Д × Ш × В) / 5000. Если физический вес 2 кг, а объёмный 8 кг — СДЭК берёт по объёмному. Не учтёте в калькуляторе — покупатель увидит одну цену, а заплатит другую. Карта ПВЗ загружается через /deliverypoints. Виджет СДЭК можно встроить, но он конфликтует со стилями Битрикс — рисуем свою карту на Яндекс.Картах. Автоматическое создание заказа через /api/v2/orders — при оформлении заявка улетает в СДЭК, возвращается трек-номер. Печать накладных и этикеток из админки — через /api/v2/print/orders. Тарифы: склад-склад, склад-дверь, дверь-дверь, экспресс, постамат.
Boxberry — широкая сеть ПВЗ в регионах
Самая широкая сеть пунктов выдачи в малых городах. API проще, чем у СДЭК, но есть нюансы с наложенным платежом и частичным выкупом. Карта ПВЗ с фильтрацией: примерка, оплата картой, работа в выходные. Обязательно проверяем корректную обработку ответа 0 при отсутствии ПВЗ.
Почта России — стабильность ценой скорости
API «Отправка» — расчёт стоимости, автоформирование бланков ф.103 и ф.116, трекинг по трек-номеру. Тарифы: посылка, бандероль, EMS. Международные отправления. API медленнее коммерческих ТК — закладываем таймауты 10 секунд, используем асинхронные агенты Битрикс для обновления статусов.
ПЭК — тяжёлые грузы и сбор
Когда нужно отправить диван или оборудование. Расчёт сборных грузов, страхование, обрешётка. Доставка до терминала и от двери до двери. Индексы терминалов ПЭК подгружаем в инфоблок для автоподстановки.
DPD — экспресс-доставка с временными слотами
DPD по России и за рубеж. Доставка в выбранный временной интервал, возврат подписанных документов. В расчёте учитываем объёмный вес по формуле (Д×Ш×В)/4000 — отличие от СДЭК.
Пример: типичные ошибки при интеграции Boxberry
Отсутствие фильтрации ПВЗ по признаку `onlyPrepaid` приводит к ошибкам при наложенном платеже. Игнорирование параметра `partialReturn` ломает частичный выкуп. API возвращает код города в формате "770000000000" — требуется маппинг на index города.
Как объединить разные ТК в едином калькуляторе?
Используем гибридный подход: модуль-агрегатор, который маршрутизирует запросы к разным API и нормализует ответы. Это позволяет сравнивать тарифы в реальном времени без переключения между личными кабинетами. В ответе модуля — единая структура: название тарифа, цена, срок, тип доставки. Кэширование тегированное: при изменении настроек модуля очищается только кэш расчёта для выбранного города, остальное остаётся. Событие OnBeforeDeliveryCalculate вешаем на кастомный обработчик — так подменяем стандартную логику доставки.
Расчёт стоимости: какие грабли встречаются?
Автоматический калькулятор суммирует физический и объёмный вес товаров в корзине, прибавляет вес упаковки, выбирает наибольший. Звучит просто, но:
- Габариты должны быть заполнены у каждого товара. Нет габаритов — нет расчёта. На каталоге в 10 000 SKU обязательно найдутся товары без размеров — для них заводим дефолтные значения (например, 0.1×0.1×0.1 м) и предупреждаем менеджера через почтовое событие.
- Промоакции и пороги бесплатной доставки — гибкая настройка: по сумме заказа, для VIP-клиентов, при конкретном способе оплаты. Реализуем через пользовательские свойства корзины.
- Индикатор «До бесплатной доставки осталось N руб.» — простая штука, но поднимает средний чек на 5–12%. Вычисляем по сумме корзины и ближайшему порогу, выводим в шаблоне корзины.
Как автоматизировать трекинг, самовывоз и курьерскую доставку?
Трекинг. Автоматический опрос API транспортных компаний — агент Битрикс каждые 30 минут проверяет статусы заказов, у которых STATUS_DELIVERY != 'DELIVERED'. При изменении — обновление статуса заказа в системе и уведомление покупателю (email, SMS, push). Встроенная страница трекинга в личном кабинете — покупателю не нужно идти на сайт ТК. Карта с текущим местоположением, прогнозируемая дата доставки, возможность переадресации.
Самовывоз. Собственные точки выдачи на карте: адреса, график, контакты. Поиск ближайшей по адресу покупателя. Проверка наличия в реальном времени, бронирование до определённого часа. QR-код для быстрого получения и SMS о готовности к выдаче.
Курьерская доставка. Зоны доставки с разной стоимостью. 2-часовые слоты, управление расписанием курьеров, ограничение заказов на слот. Доставка день в день — приём до 14:00, экспресс за 2-4 часа с наценкой за срочность. Интеграция с навигацией для оптимизации маршрутов.
Мультисклад. Несколько складов с адресами и зонами обслуживания. Автоматический выбор склада отгрузки по адресу покупателя — приоритет ближайшему, где есть все товары заказа. Если на одном складе всего нет — разделение заказа по складам (мультидоставка). Синхронизация остатков через 1С или WMS (CommerceML), используем события OnBeforeBasketAdd для проверки доступности.
Сравнение транспортных компаний
| Параметр |
СДЭК |
Boxberry |
Почта России |
ПЭК |
DPD |
| Покрытие |
Россия, СНГ |
Регионы, малые города |
Вся РФ |
РФ, тяжёлые грузы |
РФ, экспресс |
| Скорость доставки |
2–7 дней |
3–10 дней |
5–15 дней |
3–10 дней |
1–4 дня |
| Сложность API |
Средняя |
Низкая |
Высокая (XML) |
Средняя |
Средняя |
| Особенность |
Широкий набор тарифов, постаматы |
Самая широкая сеть ПВЗ |
Стабильный, но медленный ответ |
Страхование, обрешётка |
Временные интервалы |
Из каких этапов состоит подключение служб доставки?
-
Анализ логистики (1–2 дня) — география, средний вес, объём заказов, интеграция с 1С. Рекомендуем комбинацию ТК.
-
Подключение API (3–5 дней на ТК) — настройка расчётов, карт ПВЗ, автоматическое создание заказов через агенты и события.
-
Настройка трекинга (1–2 недели) — агенты обновления статусов, шаблоны уведомлений, страница трекинга.
-
Тестирование (2–3 дня) — проверка на реальных адресах, сравнение тарифов, контроль ошибочных расчётов, нагрузочное тестирование.
-
Деплой и обучение (1 день) — выгрузка модуля, передача доступов, обучение менеджеров.
-
Гарантийная поддержка (1 месяц) — исправление багов, корректировка конфигураций, донастройка кэширования.
Ориентировочные сроки реализации
| Этап |
Срок |
| Подключение одной ТК (API) |
3–5 дней |
| Карта выбора ПВЗ |
2–3 дня |
| Настройка самовывоза |
2–3 дня |
| Система трекинга |
1–2 недели |
| Мультисклад |
2–4 недели |
| Комплексная логистическая система |
4–8 недель |
Сроки зависят от количества ТК, сложности каталога и необходимости интеграции с 1С/ERP. Стоимость рассчитывается индивидуально — ориентируйтесь на экономию: снижение операционных затрат на доставку до 40% и сокращение обращений в поддержку на 60%. Например, один из клиентов с магазином электроники (20 000 товаров) вернул инвестиции за 3 месяца за счёт уменьшения числа «забытых» заказов.
Готовы ускорить логистику вашего интернет-магазина? Свяжитесь с нами — поможем подобрать оптимальную комбинацию ТК под ваш ассортимент и бюджет. Закажите консультацию, и мы подготовим предложение за 1 рабочий день.