Синхронізація замовлень у 1С-Бітрікс: резервування та обмін

Роздрібна мережа стикається з трьома потоками замовлень одночасно: інтернет-магазин Бітрікс, POS-термінали в магазинах і телефонні дзвінки. Без синхронізації залишки резервуються кілька разів паралельно — до 15% замовлень скасовуються через нестачу товару. Ми, інженери з 10+ років досвіду, забезпечу
Послуги, які ми пропонуємо
Показано 1 з 1Усі 1626 послуг
Синхронізація замовлень у 1С-Бітрікс: резервування та обмін
Простий
~1 день

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

Часті запитання

Останні роботи

  • image_website-b2b-advance_0.webp
    Розробка сайту компанії B2B ADVANCE
    1460
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    Розробка веб-сайту для компанії ФІКСПЕР
    1019
  • 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
    763
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Розробка на базі 1С Підприємство для компанії МИРСАНБЕЛ
    882
  • image_crm_dolbimby_434_0.webp
    Розробка сайту на CRM Бітрікс24 для компанії DOLBIMBY
    809
  • image_crm_technotorgcomplex_453_0.webp
    Розробка на базі Бітрікс24 для компанії ТЕХНОТОРГКОМПЛЕКС
    1164

Роздрібна мережа стикається з трьома потоками замовлень одночасно: інтернет-магазин Бітрікс, POS-термінали в магазинах і телефонні дзвінки. Без синхронізації залишки резервуються кілька разів паралельно — до 15% замовлень скасовуються через нестачу товару. Ми, інженери з 10+ років досвіду, забезпечуємо двосторонній обмін замовленнями та залишками між Бітрікс і 1С у реальному часі. Це означає: оплата онлайн миттєво резервує товар на складі, POS-продаж одразу зменшує залишки в інтернеті, конфлікти відсутні. Під ключ — від вибору архітектури схеми до навчання персоналу.

Чому три ізольовані потоки замовлень убивають складський облік?

Типовий сценарій: клієнт оплачує онлайн товар, який уже проданий через POS 10 хвилин тому. Бітрікс списує залишок тільки після формування замовлення, а POS-продаж уже зменшила фізичний залишок. У результаті онлайн-замовлення приймається, але відвантажити нічого. Впровадження синхронізації скорочує втрати від подвійних продажів на 15-20%.

Як вибрати майстра синхронізації?

Критерій 1С як майстер Бітрікс як майстер Гібрид (не рекомендується)
Джерело правди Бітрікс Немає єдиного
Замовлення онлайн Передаються в 1С Обробляються в Бітрікс Дублюються
Офлайн-продажі Фіксуються в 1С Створюються в Бітрікс через API Втрата замовлень
Залишки Синхронізуються в Бітрікс Синхронізуються в 1С Перезаписуються
Конфлікти при паралельних продажах Вирішуються в 1С Вирішуються в Бітрікс Виникають в обох системах

80% конфліктів минають, якщо вибрати майстра до початку розробки. Проконсультуйтеся з нашими спеціалістами на етапі аудиту.

Архітектура синхронізації: протоколи та схема

1С як майстер

1С є джерелом істини щодо замовлень і залишків. Бітрікс передає онлайн-замовлення в 1С, офлайн-продажі фіксуються там же, залишки синхронізуються назад.

Бітрікс як майстер

Усі замовлення (онлайн і офлайн через POS) збираються в Бітрікс, 1С отримує дані для бухгалтерії.

Синхронізація через CommerceML

Стандартний обмін 1С-Бітрікс (/bitrix/admin/1c_exchange.php) покриває базовий сценарій. Налаштування в модулі sale. Як зазначено в документації 1С-Бітрікс, стандартний обмін через CommerceML підходить для пакетного обміну замовленнями та залишками. Обмеження: пакетний раз на N хвилин. Для реального часу потрібні вебхуки або черги.

REST API та черга повідомлень

Протокол Швидкість Складність реалізації Підходить для
CommerceML Пакетний (раз на N хвилин) Середня Базовий обмін з 1С
REST API Реальний час Висока Нестандартні POS, вебхуки
Черга повідомлень (RabbitMQ) Мілісекунди Дуже висока Великі мережі, highload

Для великих мереж і highload підходить черга на RabbitMQ із затримкою не більше 2 секунд.

Реалізація: резервування та конфлікти

Офлайн-замовлення з POS

Коли касир оформлює продаж через POS, потрібно створити замовлення в Бітрікс з API або тільки списати залишки?

Приклад створення замовлення через REST API:

// Створення офлайн-замовлення в Бітрікс \Bitrix\Main\Loader::includeModule('sale'); \Bitrix\Main\Loader::includeModule('catalog'); $order = \Bitrix\Sale\Order::create(SITE_ID, $userId); $order->setField('CURRENCY', 'RUB'); $order->setField('USER_DESCRIPTION', 'Продаж у магазині: ' . $storeName); $basket = \Bitrix\Sale\Basket::create(SITE_ID); foreach ($items as $item) { $basketItem = $basket->createItem('catalog', $item['PRODUCT_ID']); $basketItem->setFields([ 'QUANTITY' => $item['QUANTITY'], 'CURRENCY' => 'RUB', 'LID' => SITE_ID, 'PRODUCT_PROVIDER_CLASS' => '\CCatalogProductProvider', ]); } $order->setBasket($basket); // Позначаємо джерело замовлення $order->setField('STATUS_ID', 'F'); // Виконано — офлайн-продаж завершено $order->setField('ADDITIONAL_INFO', json_encode([ 'source' => 'offline', 'store' => $storeId, 'pos_transaction_id' => $transactionId, ])); $result = $order->save(); 

Резервування залишків при онлайн-замовленні

Критична точка — момент резервування. Бітрікс управляє резервами через b_catalog_store_product і b_sale_product_reserve. Для Click & Collect резервуємо на конкретному складі.

Синхронізація залишків у реальному часі

Зміна залишків на будь-якій стороні має миттєво відображатися. Використовуємо чергу подій:

// При зміні залишків — додаємо в чергу \Bitrix\Main\EventManager::getInstance()->addEventHandler( 'catalog', 'OnProductUpdate', function (\Bitrix\Main\Event $event) { $productId = $event->getParameter('ID'); $fields = $event->getParameter('FIELDS'); if (isset($fields['QUANTITY'])) { // Ставимо в чергу синхронізації з 1С \Local\Queue\InventorySync::push([ 'product_id' => $productId, 'quantity' => $fields['QUANTITY'], 'timestamp' => time(), ]); } } ); 

Конфлікти паралельних продажів

Рішення — атомарне списання на рівні БД:

-- Атомарне списання з перевіркою UPDATE b_catalog_store_product SET QUANTITY = QUANTITY - 1 WHERE PRODUCT_ID = ? AND STORE_ID = ? AND QUANTITY >= 1; -- Якщо affected_rows = 0 — залишку немає, відхиляємо замовлення 

У Бітрікс реалізується через CCatalogProductProvider.

Як ми це робимо: кейс мережі з 10 000 SKU

Наш клієнт — мережа з 12 точок: 3 онлайн-потоки та офлайн-продажі через 1С:Роздріб. Стандартний CommerceML давав затримку 15 хвилин. Рішення: черга на RabbitMQ + кастомний агент із затримкою не більше 2 секунд. Конфлікти вирішуються за принципом «хто перший зафіксував транзакцію». Результат — 99.9% актуальність залишків. Окупився за 2 місяці.

Що входить у роботу та процес

  • Аудит поточної архітектури
  • Вибір майстер-системи та протоколу
  • Налаштування обміну замовленнями, статусами, залишками
  • Розробка кастомних агентів
  • Тестування під навантаженням
  • Документація та навчання
  • Підтримка 1 місяць

Процес: аналітика (1-2 дні) → проектування (1-2) → реалізація (3-5) → тестування (2-3) → деплой (1). Терміни — від 5 до 10 робочих днів.

Гарантія: роботи виконуються з використанням офіційної документації Бітрікс і 1С. Застосовуємо асинхронну обробку для мінімізації втрат.

Зв'яжіться з нами для безкоштовного аудиту вашої схеми. Отримайте план синхронізації для вашого бізнесу. Замовте інтеграцію та забудьте про проблеми із залишками.