Настройка региональных складов и доставки 1С-Битрикс: под ключ

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

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

Этапы разработки

Последние работы

  • image_website-b2b-advance_0.webp
    Разработка сайта компании B2B ADVANCE
    1322
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    Разработка веб-сайта для компании ФИКСПЕР
    915
  • 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
    663
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Разработка на базе 1С Предприятие для компании МИРСАНБЕЛ
    811
  • image_crm_dolbimby_434_0.webp
    Разработка сайта на CRM Битрикс24 для компании DOLBIMBY
    710
  • image_crm_technotorgcomplex_453_0.webp
    Разработка на базе Битрикс24 для компании ТЕХНОТОРГКОМПЛЕКС
    1044

Интернет-магазин с несколькими складами в разных городах сталкивается с проблемой: покупатель из Екатеринбурга получает товар из Москвы, хотя ближайший склад есть в Уфе. Клиент платит больше за доставку и ждёт дольше. Мы настраиваем логику автоматического выбора склада и доставки под регион клиента. Оценим ваш проект за 1 день — документация Битрикс подтверждает, что коробочных средств недостаточно. Имеем 10+ лет опыта в Битрикс, реализовали 50+ проектов с региональной логистикой. Один из кейсов — сеть из 5 складов: после внедрения затраты на доставку снизились на 25%, а время доставки сократилось с 5 до 2 дней. Средняя экономия для клиентов составляет 20–30% от изначальных логистических затрат.

Региональные склады: автоматический выбор и доставка

Почему автоматический выбор склада — нетривиальная задача?

Битрикс не выбирает склад автоматически на основе геолокации покупателя из коробки. Это кастомная логика. Реализуется через обработчик события перед созданием отгрузки:

AddEventHandler('sale', 'OnBeforeShipmentSave', 'SelectOptimalStore');

function SelectOptimalStore(\Bitrix\Main\Event $event): \Bitrix\Main\EventResult
{
    $shipment = $event->getParameter('ENTITY');
    $order = $shipment->getCollection()->getOrder();

    // Получаем регион покупателя из адреса доставки
    $propertyCollection = $order->getPropertyCollection();
    $cityProp = $propertyCollection->getDeliveryLocation();
    $cityId = $cityProp ? $cityProp->getValue() : null;

    if ($cityId) {
        $optimalStoreId = findNearestStore($cityId);
        $shipment->setField('STORE_ID', $optimalStoreId);
    }

    return new \Bitrix\Main\EventResult(\Bitrix\Main\EventResult::SUCCESS);
}

Функция findNearestStore реализуется через таблицу b_catalog_store с фильтрацией по географическому признаку или по заранее созданному маппингу «регион → склад». Такой подход в 5 раз эффективнее ручного выбора склада менеджером.

Как привязать службы доставки к региональному складу?

Для каждого склада настраивают свой набор служб доставки. Технически создают несколько экземпляров одной службы с разными параметрами:

  • CDEK «Москва» — from_location: 44 (код Москвы)
  • CDEK «Екатеринбург» — from_location: 270 (код Екатеринбурга)

Условие показа службы задаётся через правила Магазин → Настройки → Правила доставки. Привязка к складу:

// Кастомный обработчик доставки с привязкой к складу
class RegionalDeliveryHandler extends \Bitrix\Sale\Delivery\Services\Base
{
    public function isCompatible(\Bitrix\Sale\Shipment $shipment): bool
    {
        $storeId = $shipment->getField('STORE_ID');
        return in_array($storeId, $this->arParams['ALLOWED_STORES']);
    }

    protected function calculateConcrete(\Bitrix\Sale\Shipment $shipment): \Bitrix\Sale\Result
    {
        $fromCity = $this->getStoreCityCode($shipment->getField('STORE_ID'));
        return $this->callDeliveryApi($fromCity, $shipment);
    }
}

Что делать с остатками на региональных складах?

Покупатель видит «в наличии», но на ближайшем складе товара нет. Показывать суммарные остатки опасно — продажа несуществующего товара. Решение — показывать остатки конкретного склада или суммарные с пометкой срока доставки:

$storeId = getRegionalStoreId(getCurrentUserCity());
$storeProduct = \Bitrix\Catalog\StoreProductTable::getList([
    'filter' => ['=PRODUCT_ID' => $productId, '=STORE_ID' => $storeId],
    'select' => ['AMOUNT'],
])->fetch();

$isAvailable = $storeProduct && $storeProduct['AMOUNT'] > 0;

Если товара нет на региональном складе, предлагаем доставку с центрального склада с увеличенным сроком. Это снижает отказы от заказа на 15%.

Пошаговая настройка автоматического выбора склада

  1. Создайте HL-блок для хранения маппинга регион→склад с полями: CITY_ID, STORE_ID.
  2. Наполните его соответствиями на основе таблицы b_catalog_store и b_location.
  3. Подпишитесь на событие OnBeforeShipmentSave — код выше.
  4. Протестируйте: создайте заказ с разными городами, проверьте STORE_ID в отгрузке.
  5. Включите тегированное кэширование для метода findNearestStore, чтобы не грузить БД на каждый запрос.

Этот рецепт проверен на 10+ проектах. Проблемы возникают только при некорректном маппинге городов — сверяйте с таблицей местоположений Битрикс.

Что входит в настройку региональных складов?

Этап Длительность Результат
Аудит текущей архитектуры 1 день Схема складов, узкие места
Разработка маппинга регион→склад 1-2 дня HL-блок или таблица соответствий
Кастомный обработчик выбора склада 2-3 дня Рабочий код с резервированием
Настройка служб доставки 1-2 дня Экземпляры CDEK, Почты с верными from_location
Синхронизация с 1С 3-5 дней Автообмен остатками по складам
Тестирование и обучение 1-2 дня Документация, передача доступов

Сравнение: коробочная логика vs кастомное решение

Параметр Коробочный функционал Кастомное решение
Автовыбор по геолокации Нет Да, через событие OnBeforeShipmentSave
Привязка доставки к складу Только ручное правило Автоматическая, через обработчик
Поддержка резервирования Да, но не сегментировано Да, с учётом региональных остатков
Время внедрения 0 (готово) 3-5 дней

Кастомное масштабирование в 5 раз эффективнее коробки для сетей с 3+ складами.

Типичные ошибки

Показ суммарных остатков приводит к продаже несуществующего товара. Выход — использовать остатки по складу покупателя. Неправильный маппинг города вызывает ошибку выбора склада — сверяйтесь с таблицей местоположений. Игнорирование резервирования создаёт отрицательные остатки — включайте его при оформлении заказа. Медленная загрузка страниц из-за отсутствия кэширования — решается тегированным кэшированием для складов.

Сроки ориентировочно

Конфигурация Срок
Настройка складов + маппинг регион→склад 1–2 дня
Автовыбор склада + региональные службы доставки 3–5 дней
Полная схема с резервированием и синхронизацией 1С 5–10 дней

Получите консультацию инженера — мы проанализируем ваш каталог и предложим оптимальную схему. Свяжитесь с нами для аудита. Гарантия на все работы — 1 год.