B2B-портал «Аргумент»: собственное API, интеграция с 1С и контроль обменов

Как мы построили надёжную экосистему для оптовой торговли на базе кастомного REST API и дашбордов мониторинга

При создании B2B-портала для крупного дистрибьютора мы столкнулись с типичными вызовами: тысячи клиентов, персональные скидки, сложная номенклатура, десятки тысяч заказов в месяц. Штатный обмен 1С-Битрикс не справлялся с объёмами и не давал нужной гибкости. Мы разработали собственное решение —на основе портала от  «Аргумент» от компании факт, построенный на принципах микросервисной архитектуры, с выделенным фронтендом, бэкендом на Битрикс и полностью кастомным REST API для синхронизации с 1С. В этой статье — ключевые технические находки, организация обменов и система контроля, которая позволяет управлять интеграцией без сюрпризов.

Главная идея: Мы не используем «чёрный ящик» готовых модулей. Спроектировали собственный API, дашборды мониторинга и конвейер обмена через очереди RabbitMQ. Всё работает предсказуемо, логируется и масштабируется горизонтально.

Архитектура: почему два сервера и кастомный API

Портал «Аргумент» разделён на фронтенд и бэкенд. Фронтенд — одностраничное приложение (Vue.js), отдаваемое через Nginx. Бэкенд — классический Битрикс, который выступает в роли поставщика API и административного интерфейса. Такое разделение позволило:

  • Независимо масштабировать нагрузку (например, под пиковые заказы усиливать бэкенд, а фронтенд оставлять лёгким).
  • Быстро кастомизировать интерфейс без риска сломать обмены с 1С.
  • Использовать современный стек для фронтенда (Vue, Webpack, ES6) и сохранить мощь Битрикса для администрирования.

Серверные требования — минимум 8 ядер, 32 ГБ RAM для бэкенда и 4 ядра, 8 ГБ RAM для фронтенда. Вся инфраструктура поднята на CentOS 9 Stream с использованием BitrixVM в качестве базового окружения.

Собственное REST API: безопасность и контроль

Мы реализовали отдельный REST-слой, который соединяет 1С и портал. Он не привязан к штатным веб-сервисам Битрикс — это полностью наша разработка. Ключевые эндпоинты:

  • /auth/ — авторизация по токену. Без валидного токена запросы отклоняются.
  • /catalog/product/ — приём номенклатуры, брендов, разделов, свойств.
  • /catalog/price/ и /catalog/stock/ — обновление цен и остатков.
  • /order/ — выгрузка заказов из портала в 1С.
  • /discount/ — синхронизация персональных скидок и договоров (модуль B2B-SKIDKI).
  • /version/ — служебный эндпоинт для мониторинга версии API.

Все запросы логируются, поддерживаются инкрементальные обмены (только изменённые за период). Тяжёлые выгрузки (например, полного каталога) уходят в очередь через RabbitMQ — это снимает пиковую нагрузку с сервера 1С и гарантирует, что обмен не упадёт по таймауту.

Важно для стабильности: Токен доступа хранится только в переменных окружения и в 1С. Он не светится в коде клиента. Администратор выдаёт токен, а все вызовы идут с проверкой подписи.

Интеграция с 1С: полная синхронизация «по изменениям»

В 1С (конфигурации УТ 11, КАА 2.4) настроены регламентные задания, которые через каждые 5-10 минут отправляют в API портала:

  • Новые и изменённые товары, бренды, разделы.
  • Актуальные остатки и цены (в том числе персональные для оптовых клиентов).
  • Статусы заказов (отгружен, в пути, завершён).
  • Выставленные счета и акты сверки (опционально).

Обмен работает в обе стороны: заказы, созданные на портале, немедленно отправляются в 1С через POST-запрос. При ошибке (неверный артикул, недостаток остатка) API возвращает код ошибки, и заказ не уходит до исправления. Это исключает появление «битых» заказов в учётной системе.

Дашборды обменов: как мы перестали «гадать»

Одна из самых ценных частей решения — дашборд обменов, интегрированный в CRM (Битрикс24). Он показывает историю каждого вызова API: статус (успех / ошибка / в процессе), время выполнения, комментарий ошибки. Группировка позволяет видеть сводку по каждому типу обмена (номенклатура, цены, заказы). Логи хранятся 7 дней и автоматически удаляются.

Для администраторов доступен центр контроля версий — таблица, где отображается текущая версия API на каждом сервере (разработка, тестирование, продакшн), номер коммита из GitHub и дата последнего деплоя. Это полностью исключает путаницу: всегда понятно, какая сборка работает на боевом контуре.

Кастомизации и обновления: как не потерять изменения

Платформа «Аргумент» не предполагает «лёгкого» механизма кастомизации. Все наши доработки (а их более 30 — от вывода короткого кода товара до переработанных прайс-листов и стикеров каталога) вынесены в отдельную директорию /ext_www/custom/. При обновлении ядра «Аргумента» (со стороны разработчика) эта папка не затрагивается, но после каждого апдейта мы вручную проверяем совместимость и при необходимости адаптируем кастомные компоненты. Процесс обновления включает:

  1. Бэкап базы данных и файлов.
  2. Git pull из репозитория (ветка main).
  3. Запуск миграций (если есть изменения в БД).
  4. Очистку кэша Битрикс и перезапуск очередей RabbitMQ.
  5. Проверку ключевых сценариев (оформление заказа, выгрузка прайс-листа).

Установка и развёртывание: от репозитория до продакшна

Код фронтенда и бэкенда хранится в GitHub. Для развёртывания на новой машине достаточно:

  • Установить git и настроить SSH-ключи для доступа к репозиторию.
  • Склонировать репозиторий в нужную директорию (/var/www/).
  • Установить зависимости (npm install для фронта, композер для бэка).
  • Собрать фронт (npm run build) и перезапустить менеджер процессов (pm2).
  • Настроить веб-сервер (nginx/Apache) и права доступа.

Все конфигурационные файлы (параметры подключения к БД, токен API, настройки RabbitMQ) вынесены в .env. Это упрощает перенос между средами и исключает «зашитые» пароли в коде.

Преимущества подхода

  • Полный контроль над обменами — мы сами решаем, какие данные и как синхронизировать. Нет «магии» стандартных модулей.
  • Высокая отказоустойчивость — очереди RabbitMQ гарантируют, что заказы не потеряются даже при временной недоступности 1С.
  • Прозрачный мониторинг — дашборд в CRM позволяет 1С-никам и администраторам видеть каждый запрос, время ответа и ошибки.
  • Масштабируемость — фронтенд и бэкенд можно разнести на разные серверы, а при необходимости добавить кэширующие прокси и балансировщики.
  • Гибкая кастомизация — мы не ограничены шаблонами «Аргумента», можем менять логику ценообразования, прайс-листов, точек доставки.

Результат: что получил заказчик

На базе описанного решения мы запустили B2B-портал для дистрибьютора с ассортиментом более 20 000 позиций и 1 500 активными оптовыми клиентами. Портал работает 2 года без единого сбоя обмена. Время оформления заказа сократилось с 30 минут до 3-5, нагрузка на отдел продаж снизилась на 70%, а клиенты получили личные кабинеты с персональными ценами, актами сверки и историей заказов.

Обсудить внедрение B2B-портала Рассчитать стоимость проекта Все B2B-решения

Разделы

  • Реклама. Рекламодатель ООО "АЛЬФА" ОГРН 1157847073405 erid: 2VtzquYGf7w

  • Реклама. Рекламодатель ООО "АЛЬФА" ОГРН 1157847073405 erid: 2VtzqwXpKPw

  • Реклама. Рекламодатель ООО "АЛЬФА" ОГРН 1157847073405 erid: 2VtzqwdmcT3

  • Реклама. Рекламодатель ООО "АЛЬФА" ОГРН 1157847073405 erid: 2Vtzqx4whE8

Закажите консультацию

Подберем оптимальный вариант для Ваших задач

Спасибо за обращение, мы с вами свяжемся!