Кейсы

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

Разработали единый API для подключения 200+ точек 1С:Розница, чтобы сделать интеграции прозрачными, асинхронными и управляемыми.

Наши клиенты

Клиенты и партнеры

Capital Group
ФСК
Самолёт
Точно
Dogma
Сбер Сити
FM Logistic
Danone
Рельеф-Центр
Pandora
Saint-Gobain
Askona
FIX PRICE
Снежная Королева
Музторг
ТВОЕ
Greenway
Polaris
Campari
Яндекс
Лента
Международный бренд парфюмерии и косметики
Такси 369
РАЭК
EKF
ЛЭТУАЛЬ
Inventive Retail Group

Ключевые тезисы

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

Клиент

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

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

Проблема

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

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

Задача

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

Разобрать похожий проект с архитектором

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

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

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

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

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

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

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

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

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

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

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

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

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

Разобрать похожую задачу: Разработали единый API для…

Отправить через: