Разработали единый API для быстрого подключения 200+ систем «1С:Розница»

Разработали единый API для быстрого подключения 200+ систем «1С:Розница»
5 минут

Есть запрос на внедрение?

Напиши нашим консультантам и назначьте встречу

Клиент

Компания — производитель и продавец экологически чистой косметики и товаров для уборки, которая работает по схеме MLM и реализует товары в розницу.

Всего в сети компании — более 200 розничных торговых точек, в каждой из которых работает собственное приложение «1С».

Проблема

В предыдущей версии IT-архитектуры каждая система «1С:Розница» была соединена с контуром головной компании с помощью интеграции формата «точка – точка». В результате у компании возникали проблемы следующего порядка.

  • Было почти невозможно отследить, все ли системы торговых точек своевременно получают запросы и обновления. Архитектура была непрозрачной.
  • Иногда в системах торговых точек содержалась неактуальная информация, если в момент отправки данных из основного IT-контура система-получатель была офлайн.
  • «1С:ERP Управление предприятием» головной компании была перегружена запросами от розницы.

Задача

Организовать прозрачный, контролируемый и асинхронный обмен информацией между основными системами компании и «1С» в торговых точках.

Гипотеза 1: отдельные коннекторы для каждой из «1С:Розница»

Первоначальной гипотезой KT.Team стало создание отдельных коннекторов для получения информации под каждую из систем «1С:Розница».

Отдельные коннекторы для каждой пары "сущность + 1С:Розница" утяжеляли систему | KT.Team

Такой подход позволил бы разделить потоки информации и сделать их независимыми для каждой из систем «1С:Розница». За счёт систем мониторинга и логирования было бы в разы легче фиксировать проблемы в передаче данных.

Оборотной стороной такого подхода являлось огромное количество коннекторов: для каждой сущности (ассортимент, цены, остатки и т. д.) нужно было разработать более 200 коннекторов. При добавлении новой розничной точки также необходимо было создавать новые коннекторы для каждой из сущностей.

Финальное решение: общий API-коннектор по каждой сущности для всех розниц

Чтобы облегчить архитектуру в моменте и упростить дальнейший рост сети клиента, команда KT.Team предложила принципиально иной подход. На каждую сущность, которую нужно забирать из «1С:ERP Управление предприятием», приходится только один коннектор. Он с заданной периодичностью или при срабатывании заранее определённого триггера забирает весь объём информации по конкретной сущности: номенклатуре, ценам, остаткам и т. д. Затем полученные данные передаются в общее хранилище. Как бы ни росла розничная сеть клиента, этот коннектор всегда будет один и действовать он будет по заданному алгоритму.

Для розничных точек мы разработали единый API, работу которого можно описать так: «я отдаю номенклатуры любому потребителю, который готов забирать их по описанным правилам».

К этому API подключаются все «1С:Розница» торговых точек. В их коннекторах прописаны условия, уточняющие, какую информацию они должны забирать. Каждая из розничных точек может отправлять по этому API запрос: «отдай все номенклатуры, подходящие под мой уникальный идентификатор». В ответ получает либо информацию, либо пустой массив (если, например, со времени последнего взаимодействия ничего не обновилось). Если вдруг хранилище в данный момент недоступно, розница получает сообщение об ошибке.

Мы разработали схему работы компонента для «1С» для «1С:Розница» под каждую из сущностей.  При добавлении новой торговой точки потребуется минимум времени на подключение. Достаточно скопировать разработанные ранее компоненты, изменить идентификатор системы «1С:Розница» в настройках и добавить соответствующую настройку в корпоративный инструмент мониторинга для регулирования доступности и активности точки «1С:Розница».

Один API передаёт весь массив данных по сущности. Подключать новые системы в разы легче | KT.Team

Выгоды для клиента

  1. Есть единый контракт сообщения для запроса данных. Не нужно помнить или хранить документацию на стандарты более чем 200 разрозненных систем.
  2. На стороне ESB нет необходимости в размещении на сервере ESB и поддержании одинаковых типовых коннекторов для каждой сущности.
  3. Добавить новую розничную точку можно быстро и без лишних затрат на разработку.
  4. Каждая новая «1С:Розница» отображается в мониторинге на графике передачи данных. В случае недоступности какой-то из «1С:Розница» техническая поддержка получает соответствующее уведомление.
Оглавление
Другие кейсы

Смотреть все

Создали кастомизированную DAM-систему на основе Pimcore для сети магазинов «Лента»

Подробнее

Автоматизировали инвентаризацию на 22 складах площадью 816 000 кв. м.

Подробнее

Разработка сервиса доставки продуктов по подписке

Подробнее

Смотреть все

Мы используем файлы cookie, чтобы предоставить наилучшие возможности сайта

Ок