Синхронизация заказов в 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 Appointment Booking Widget for a Medical Center
    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С. Применяем асинхронную обработку для минимизации потерь.

Свяжитесь с нами для бесплатного аудита вашей схемы. Получите план синхронизации для вашего бизнеса. Закажите интеграцию и забудьте о проблемах с остатками.