Налаштування cross-dockingu на 1С-Bitrix
Cross-docking — схема, при якій товар від поставщика поступає на транзитний склад та негайно відправляється покупцю без довгого зберігання. Для інтернет-магазину це означає: замовлення прийнято, товару нема на своєму складі, створюється замовлення поставщику, товар приходить та йде далі. Bitrix не має вбудованої підтримки cross-dockingu, але логістика реалізується через кастомні статусу замовлень та інтеграцію з поставщиком.
Схема замовлення при cross-dockingu
- Клієнт оформляє замовлення на сайті — створюється
b_sale_orderзі статусом «Очікує поставщика» - Автоматично або вручну створюється замовлення поставщику (EDI, API, email)
- Статус змінюється на «Товар у дорозі від поставщика»
- Приход товару на транзитний склад фіксується в
b_catalog_store_product - Негайна відправка клієнту, статус «Передано в доставку»
Кастомні статусу замовлень
Статусу замовлень зберігаються в b_sale_status та b_sale_status_lang. Додайте нові статусу для cross-docking ланцюга:
-
CROSS_WAITING— очікує поставщика -
CROSS_IN_TRANSIT— товар їде від поставщика -
CROSS_ARRIVED— прибув на транзитний склад -
CROSS_SHIPPED— відправлено клієнту
Створіть статусу через \Bitrix\Sale\OrderStatus::add() або безпосередньо через API:
\Bitrix\Sale\OrderStatusTable::add([
'ID' => 'CW',
'SORT' => 55,
'COLOR' => '#FF9900',
]);
\Bitrix\Sale\OrderStatusLangTable::add([
'STATUS_ID' => 'CW',
'LID' => 'uk',
'NAME' => 'Очікує поставщика',
]);
Автоматичне створення замовлення поставщику
При переходу замовлення в статус «Очікує поставщика» через событие OnSaleStatusOrder:
AddEventHandler('sale', 'OnSaleStatusOrder', function($orderId, $newStatus) {
if ($newStatus === 'CW') {
$order = \Bitrix\Sale\Order::load($orderId);
$basket = $order->getBasket();
foreach ($basket as $item) {
$productId = $item->getProductId();
$supplier = SupplierCatalog::getSupplierByProduct($productId);
if ($supplier) {
SupplierOrderService::create($supplier, [
'PRODUCT_ID' => $productId,
'QUANTITY' => $item->getQuantity(),
'ORDER_REF' => $orderId,
]);
}
}
}
});
SupplierCatalog та SupplierOrderService — кастомні класи. Замовлення поставщику може відправляться по API, EDI, або email з PDF-документом.
Моніторинг транзитного складу
Для транзитного зберігання створіть окремий склад в b_catalog_store з типом «Транзитний». Приход від поставщика реєструється через \Bitrix\Catalog\StoreDocumentTable з типом A (поступлення). При створенні документа залишок на транзитному складі збільшується — сигнал для агента негайної відправки клієнту.
Що налаштовуємо
- Додаткові статусу замовлення для cross-docking ланцюга
- Обробник события
OnSaleStatusOrderдля автозаснування замовлення поставщику - Таблицю
bl_supplier_productsз прив'язкою товарів до поставщиків - Транзитний склад в
b_catalog_storeта логіку руху документів - Звіт по cross-docking замовленнях з часом очікування поставщика







