Настройка консолидации заказов с разных складов 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_catalog_store, остатки — в b_catalog_store_product. Резервирование при заказе работает через b_sale_reserve_quantity. При оформлении заказа Битрикс не выбирает склад автоматически — это делается вручную или через кастомную логику.

Для определения, с какого склада везти каждый товар, используйте \Bitrix\Catalog\StoreProductTable::getList() с фильтром по PRODUCT_ID и условием AMOUNT > 0.

Стратегии консолидации

Стратегия 1: Максимальная скорость — каждый товар отправляется с ближайшего склада сразу при наличии. Клиент получает несколько посылок. Реализация: при создании заказа агент немедленно разбивает его на подзаказы по складам.

Стратегия 2: Минимальное количество посылок — ждём сборки всего заказа на одном «главном» складе, куда перемещаются нужные позиции. Реализация: межскладское перемещение через b_catalog_store_document с типом M.

Стратегия 3: Гибридная — товары в наличии отправляем сразу, под заказ ждём.

Разбивка заказа на подзаказы

Создайте таблицу bl_order_shipments с полями order_id, store_id, status, items_json. При подтверждении заказа агент анализирует корзину:

foreach ($basket as $item) {
    $stores = StoreProductTable::getList([
        'filter' => ['PRODUCT_ID' => $item->getProductId(), '>AMOUNT' => 0],
        'order'  => ['AMOUNT' => 'DESC'],
    ])->fetchAll();

    $bestStore = $stores[0]['STORE_ID'] ?? $defaultStoreId;

    $shipments[$bestStore][] = [
        'product_id' => $item->getProductId(),
        'quantity'   => $item->getQuantity(),
    ];
}

Каждая группа записывается в bl_order_shipments. Статусы подзаказов отслеживаются независимо.

Отображение клиенту

В личном кабинете и письме о заказе показывайте разбивку: «Посылка 1 (склад Москва): 2 товара — отправлена», «Посылка 2 (склад СПб): 1 товар — в пути». Компонент личного кабинета получает данные из bl_order_shipments и объединяет их с основным заказом по order_id.

Что настраиваем

  • Таблицу bl_order_shipments для хранения информации о подзаказах по складам
  • Агент анализа наличия и распределения товаров по складам
  • Стратегию консолидации (настраивается в b_option)
  • Обновление статусов подзаказов при изменении документов склада
  • Отображение подзаказов в личном кабинете клиента и в административном интерфейсе