Настройка кроссдокинга на 1С-Битрикс
Кроссдокинг — схема, при которой товар от поставщика поступает на транзитный склад и немедленно отправляется покупателю без длительного хранения. Для интернет-магазина это означает: заказ принят, товара нет на своём складе, создаётся заказ поставщику, товар приходит и уходит дальше. Битрикс не имеет встроенной поддержки кроссдокинга, но логистика реализуется через кастомные статусы заказов и интеграцию с поставщиком.
Схема заказа при кроссдокинге
- Клиент оформляет заказ на сайте — создаётся
b_sale_orderсо статусом «Ожидает поставщика» - Автоматически или вручную создаётся заказ поставщику (EDI, API, email)
- Статус меняется на «Товар в пути от поставщика»
- Приход товара на транзитный склад фиксируется в
b_catalog_store_product - Немедленная отправка клиенту, статус «Передан в доставку»
Кастомные статусы заказов
Статусы заказов хранятся в b_sale_status и b_sale_status_lang. Добавьте новые статусы для кроссдокинговой цепочки:
-
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' => 'ru',
'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 (поступление). При создании документа остаток на транзитном складе увеличивается — это сигнал для агента немедленной отправки клиенту.
Что настраиваем
- Дополнительные статусы заказа для кроссдокинговой цепочки
- Обработчик события
OnSaleStatusOrderдля автосоздания заказа поставщику - Таблицу соответствия товаров поставщикам
bl_supplier_products - Транзитный склад в
b_catalog_storeи логику движения документов - Отчёт по кроссдокинговым заказам с временем ожидания поставщика







