Інтеграція 1С-Бітрікс із WMS-системами

Наша компанія займається розробкою, підтримкою та обслуговуванням рішень на Бітрікс та Бітрікс24 будь-якої складності. Від простих односторінкових сайтів до складних інтернет-магазинів, CRM систем з інтеграцією 1С та телефонії. Досвід розробників підтверджено сертифікатами від вендора.
Послуги, які ми пропонуємо
Показано 1 з 1Усі 1626 послуг
Інтеграція 1С-Бітрікс із WMS-системами
Середній
~1-2 тижні
Часті запитання

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

Етапи розробки

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

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

Інтеграція 1С-Бітрікс із WMS-системами

Коли інтернет-магазин переходить із ручного обліку на систему управління складом (WMS), перша ж проблема — розсинхронізація залишків. Замовлення оформлено на сайті, резерв виставлено в 1С-Бітрікс, але WMS про це ще не знає. До моменту комплектації виявляється, що товару немає на потрібній комірці. Інтеграція вирішує саме цей замкнутий цикл, а не просто «передає дані».

Що саме потрібно синхронізувати

Стандартний обмін між 1С-Бітрікс і WMS охоплює три потоки даних:

Залишки та резерви. WMS — джерело правди щодо фізичної наявності. Бітрікс отримує залишки та оновлює b_catalog_product (поля QUANTITY, QUANTITY_RESERVED). Частота синхронізації критична: при обороті 200+ замовлень на день затримка в 15 хвилин вже створює oversell.

Замовлення. Нове замовлення з Бітрікс → WMS для резервування та комплектації. Статуси комплектації з WMS → Бітрікс для оновлення статусу замовлення покупця. Тут важлива атомарність: замовлення або прийнято WMS, або ні — «зависаючі» передачі неприпустимі.

Товарний довідник. Номенклатура, штрихкоди, одиниці виміру, упаковки. Зазвичай майстер-дані ведуться в ERP/1С, а WMS і Бітрікс синхронізуються від нього.

Архітектура інтеграції

Прямого API-стику «Бітрікс ↔ WMS» не існує — кожна WMS має власний API або підтримує формати EDI/XML. Вибір архітектури залежить від вимог до надійності та реального часу:

Polling (опитування за розкладом). Агент у Бітрікс кожні N хвилин запитує WMS API, отримує зміни, оновлює залишки. Проста схема, але є лаг = інтервал опитування. Реалізується через обробник у \Bitrix\Main\EventManager або власний агент.

Webhook/черга подій. WMS надсилає подію при кожній зміні залишку. Бітрікс приймає через REST-ендпоінт (власний контролер або Bitrix REST API). Менша затримка, але потрібна черга (RabbitMQ, Redis Streams), щоб не втрачати події при перевантаженнях.

Через брокер 1С. Якщо в ланцюжку є 1С:Підприємство, обмін іде через нього: Бітрікс ↔ 1С (стандартний CommerceML/REST) ↔ 1С ↔ WMS (через правила обміну або прямий API 1С WMS). Важча схема, але контроль на боці 1С.

Технічні деталі реалізації на боці Бітрікс

Залишки оновлюються через \Bitrix\Catalog\ProductTable::update() або низькорівневий CCatalogProduct::Update(). При оновленні важливо інвалідувати кеш: \Bitrix\Catalog\Catalog::clearProductCache($productId). Без цього сайт показуватиме старі залишки з кешу ще 30–60 хвилин.

Резервування при створенні замовлення: об'єкт \Bitrix\Sale\Order при збереженні автоматично виставляє резерв через \Bitrix\Sale\Basket::setField('RESERVE_QUANTITY'). Якщо інтеграція оновлює залишки напряму в БД, обходячи API — резерви злітають. Завжди працюємо через публічний API модуля sale.

Для передачі замовлень у WMS вішаємося на подію OnSaleOrderSaved або OnSaleStatusOrderChange — залежно від того, за яким тригером WMS повинен починати комплектацію. Подія обробляється синхронно в рамках того самого HTTP-запиту, тому довгі API-виклики до WMS краще виносити в чергу.

Часті проблеми

Дублювання замовлень у WMS. Відбувається, якщо мережа нестабільна і Бітрікс повторює запит при таймауті. Рішення: ідемпотентні запити з ORDER_ID Бітрікс як зовнішнім ключем у WMS — повторна передача оновлює наявний запис, не створює новий.

Розбіжність одиниць виміру. Бітрікс зберігає штуки, WMS працює з палетами та коробками. Якщо таблиця відповідності од. вим. Бітрікс → од. вим. WMS не заповнена — залишки передаються некоректно. Вирішується довідником конвертації на боці інтеграційного шару.

Таймаут при масовому оновленні залишків. WMS повертає 10 000 позицій одним запитом, Бітрікс обробляє пакетно з set_time_limit() і \Bitrix\Main\Application::getInstance()->getDbConnection()->startTransaction().

Орієнтири за строками

Сценарій Строк
Проста інтеграція: залишки за розкладом 2–4 тижні
Двосторонній обмін замовленнями та залишками 4–8 тижнів
Інтеграція через 1С-брокер зі складною логікою 2–4 місяці

Вартість розраховується індивідуально — залежить від API конкретної WMS-системи, обсягу номенклатури та вимог до реального часу. Починаємо з аудиту поточних процесів і технічної документації WMS.