Уявіть: інтернет-магазин з трьома складами — Київ, Львів, Харків. Клієнт замовляє три позиції, кожна на різних складах. Без консолідації система відправить три посилки з потрійною вартістю доставки. Клієнт незадоволений, маржа падає. Ми вирішуємо це завдання за допомогою кастомної логіки на Бітрікс. За 10+ років ми реалізували понад 50 проектів зі складської логістики, і наше рішення стабільно працює під навантаженням до 10 000 замовлень на добу. При цьому вартість доставки для клієнтів знижується в середньому на 30%.
Чому Бітрікс не вміє консолідувати замовлення за замовчуванням?
Стандартний модуль «Склади» в 1С-Бітрікс зберігає залишки в b_catalog_store_product та резервування в b_sale_reserve_quantity, але не надає механізму автоматичного вибору складу при оформленні замовлення. Розробнику потрібно вручну писати логіку розподілу. Ми використовуємо \Bitrix\Catalog\StoreProductTable::getList() з фільтром по PRODUCT_ID і умовою AMOUNT > 0, щоб отримати доступні залишки. Далі обираємо склад за стратегією, заданою в налаштуваннях. При цьому враховуємо не лише наявність, але й відстань до клієнта, вартість доставки, завантаженість складу.
Стратегії консолідації: порівняння
| Стратегія | Швидкість виконання замовлення | Кількість посилок | Витрати на доставку |
|---|---|---|---|
| Максимальна швидкість | Висока (відправка одразу) | Багато (по складах) | Високі |
| Мінімальна кількість посилок | Низька (очікування збірки) | Одна | Низькі (одна доставка) |
| Гібридна | Середня | Оптимальна | На 40% нижче максимальної |
Стратегія 1: Максимальна швидкість — кожен товар відправляється з найближчого складу одразу за наявності. Клієнт отримує кілька посилок. Реалізація: при створенні замовлення агент негайно розбиває його на підзамовлення по складах.
Стратегія 2: Мінімальна кількість посилок — чекаємо збірки всього замовлення на одному «головному» складі, куди переміщуються потрібні позиції. Реалізація: міжскладське переміщення через b_catalog_store_document з типом M.
Стратегія 3: Гібридна — товари в наявності відправляємо одразу, під замовлення чекаємо. Оптимальний баланс між швидкістю та вартістю доставки. Гібридна стратегія дозволяє скоротити кількість посилок у 2–3 рази порівняно з максимальною швидкістю, одночасно зберігаючи час доставки на прийнятному рівні. За нашими даними, гібридна стратегія на 40% ефективніша за витратами на логістику.
Як ми реалізуємо розбивку замовлення на підзамовлення?
Створюємо таблицю 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. Статуси підзамовлень відстежуються незалежно. При зміні документа складу (наприклад, відвантаження) агент оновлює статус відповідного підзамовлення.
Логіка вибору складу налаштовується через b_option: для кожного товару можна задати пріоритет — спочатку залишки на складі, потім товари під замовлення. Якщо на складі недостатньо, шукаємо на інших. Якщо ніде немає — ставимо очікування. Це дозволяє змінювати стратегію без участі програміста.
Відображення клієнту: прозорість логістики
В особистому кабінеті та листі про замовлення показуємо розбивку: Посилка 1 (склад Київ): 2 товари — відправлена, Посилка 2 (склад Львів): 1 товар — в дорозі. Компонент особистого кабінету отримує дані з bl_order_shipments і об'єднує їх з основним замовленням по order_id. Це підвищує довіру та знижує кількість звернень до підтримки.
Процес роботи: етапи та терміни
| Етап | Тривалість | Результат |
|---|---|---|
| Аудит схеми складів | 1–2 дні | Аналітична записка |
| Проектування стратегії | 1–2 дні | Технічне завдання |
| Розробка агентів і таблиць | 2–5 днів | Робочий код |
| Тестування | 1–2 дні | Звіт про тестування |
| Деплой і документування | 1 день | Інструкції та навчання |
Що входить в роботу?
- Аудит поточної складської схеми та залишків
- Проектування стратегії консолідації під ваш бізнес
- Розробка таблиці
bl_order_shipmentsта агентів розподілу - Налаштування стратегії через
b_option(можливість перемикання без програміста) - Реалізація відображення підзамовлень в особистому кабінеті та адмінці
- Інтеграція з 1С через CommerceML для синхронізації залишків та відвантажень
- Документація з доопрацювання та навчання ваших менеджерів
- Гарантія на код — 6 місяців безкоштовної підтримки
Терміни та вартість
Терміни — від 5 до 14 робочих днів залежно від кількості складів та складності інтеграції. Вартість розраховується індивідуально після аудиту. Отримайте готове рішення під ключ: ми проаналізуємо вашу схему роботи і запропонуємо оптимальну стратегію консолідації. Зв'яжіться з нашими фахівцями — ми працюємо з будь-якими конфігураціями Бітрікс і гарантуємо результат. Замовте аудит поточної складської схеми — це безкоштовно і ні до чого не зобов'язує.







