Интеграция интернет-магазина парфюмерии с 1С через REST API

Изображение 1
Изображение 2
Изображение 3
Изображение 4
Изображение 5
Изображение 6
Изображение 7

Интеграция интернет-магазина парфюмерии с 1С через REST API

APIРазработка под ключ
Статус: Активный
Ссылки:

Сеть магазинов парфюмерии и косметики запустила интернет-магазин с более чем 15 000 SKU, включая товары с множеством характеристик (объём, тип аромата, бренд, пол, страна производителя). Ранее данные выгружались раз в сутки через CommerceML, что приводило к продажам позиций, которых не было в наличии, и потере доверия клиентов. Требовалось обеспечить отображение актуальных остатков по каждому складу (розничные магазины + центральный склад) в реальном времени, автоматически резервировать товар при оформлении заказа и передавать заказы в 1С для комплектации. Ключевым условием была безопасность и возможность масштабирования на сезонные пиковые нагрузки (перед 8 марта, Новым годом). Со стороны заказчика была выполнена доработка конфигурации 1С для публикации HTTP-сервисов и настройка регламентных заданий.

Технологии

  • 1С: платформа 8.3, конфигурация «Управление торговлей» (ред. 11), доработанная HTTP-сервисами для REST API, авторизация по токенам (Bearer token).
  • Сайт: Svelte kit, Node.js, Redis, Nginx, Docker.
  • Протокол обмена: REST API через HTTPS, форматы JSON, инкрементальная синхронизация изменений.
  • Мониторинг: Sentry для отслеживания ошибок, Grafana для аналитики производительности.

Решение

  1. Доработка 1С со стороны заказчика: созданы HTTP-сервисы с эндпоинтами
  2. Все запросы защищены JWT-токенами, для каждого склада настроены права доступа.
  3. Оптимизация каталога: в 1С доработаны справочники под потребности сайта: добавлены реквизиты «Ароматические ноты», «Пол», «Тип аромата», которые передаются в JSON как массив свойств. Это позволило на сайте реализовать удобные фильтры и сортировку без дополнительных запросов.
  4. Архитектура синхронизации: на сайте реализован фоновый обновление данных, которое каждые 2 минуты запрашивает в 1С список изменённых позиций. Остатки и цены для популярных товаров кэшируются в Redis с TTL 30 секунд, что снижает количество запросов к 1С в 5 раз. При просмотре карточки товара данные о наличии читаются из Redis - отклик страницы < 150 мс.
  5. Обработка заказов: при оформлении заказа сайт отправляет синхронный POST-запрос в 1С с передачей состава заказа, выбранного склада и данных клиента. 1С проверяет остатки в момент запроса, резервирует товар и возвращает номер заказа и статус. Если 1С недоступна, заказ помещается в очередь (Redis) и обрабатывается автоматически при восстановлении соединения - это исключило потери заказов даже во время ночных технических работ.
  6. Логирование и мониторинг: в 1С настроено логирование всех входящих запросов (IP, время, переданные данные) для аудита. На сайте все ошибки взаимодействия с API фиксируются в Sentry, настроены алерты при превышении времени ответа > 3 секунд или при появлении ошибок резервирования.

В результате внедрения время обновления остатков сократилось с 24 часов до менее чем 1 минуты, количество невыкупленных заказов из-за отсутствия товара снизилось, а ручная обработка заказов в 1С была автоматизирована. Система успешно выдержала пиковые нагрузки в предпраздничные дни, обрабатывая до 120 заказов в минуту.