Разработка 1С-шины для интеграции каталога Комус с маркетплейсом ЕВРАЗа

Решение проблемы актуальности данных о цене и наличии товаров поставщика во внутреннем маркетплейсе металлургической компаниии
Комус — один из лидеров российского рынка поставок для офиса и бизнеса: от снабжения канцелярией, компьютерной техникой, продуктами и мебелью до обеспечения производственных площадок.
ЕВРАЗ — современная горнодобывающая и металлургическая компания, один из крупнейших производителей стали и металлопроката в мире.
В ассортименте представлен большой спектр товаров для упаковки и маркировки, профессиональная химия, рабочая одежда и СИЗ, складская техника, оборудование для торговых залов, гостиниц, товары для медицины и многое другое.
Интеграционная шина для подключения к внутреннему маркетплейсу — еще один естественный шаг в сложной цепочке автоматизаций системы планирования и управления ЕВРАЗа.

Что мы уже сделали для ЕВРАЗа

Все поставщики и подрядчики взаимодействуют с компанией через личные кабинеты и маркетплейс.
О своем участии в разработке этих сервисов мы рассказывали в нашем блоге.
Ассортимент Комуса обновлялся на маркетплейсе Евраза с помощью ручной загрузки файлов. Этот процесс был длительным и трудоемким.

Что нужно было изменить

Менеджеры Комус ВРУЧНУЮ формировали и загружали на маркетплейс Евраза большой XML-файл с ассортиментом, ценами и остатками.
1
Объем XML-файла и высокая трудоемкость создания не позволяли делать обновления регулярными, поддерживать актуальность данных.
2
Регламент работы с поставщиком требовал оперативной поставки заказанной продукции. Но из-за неактуальных остатков процент отказов был выше норматива.
3
Любые изменения могли появиться на портале только при следующем полном обновлении. Быстро изменить цены на отдельные товары было проблематично.
4
Не было возможности вручную поправить данные, если этого требовала ситуация. Ошибиться в паре цифр в документе из тысячи строк легко, а исправить можно только полной перезагрузкой.
5

Требования к новой системе

Не связана напрямую с учетной системой Комус
Формирует пакеты данных в требуемом формате для выгрузки партнеру
Аккумулирует обрабатывает и хранит данные
На этапе проектирования и подготовки ТЗ определились с минимальным функционалом.
Имеет интерфейс для корректировки данных и параметров обмена, хранит историю
Получает данные из разных источников
Простым решением, на котором построено множество интеграций, является использование API. Почему потребовалась «прослойка» вместо прямого обмена данными между системами?
Получение актуальных данных через запросы к API сайта возможно, но одновременно создает ряд проблем:
  • требуется создание новых методов, которых нет в текущем API;
  • на маркетплейс нужно выгружать отдельные позиции, а не всю номенклатуру. Для этого нужен интерфейс с возможностью фильтрации и отбора товаров.
Использование промежуточный шины позволило гораздо эффективнее решать задачи проекта.

Цель проекта

Создать универсальный инструмент (шину) обмена данными, который Комус может использовать в интеграциях с партнерами — интернет-магазинами, маркетплейсами, b2b-платформами, передавая им актуальные данные об ассортименте, ценах и остатках.
С помощью шины можно получать из разных источников, обрабатывать, хранить и передавать данные в требуемом виде, а также предоставлять интерфейс для ручной настройки передаваемых данных. Система должна быть универсальной и готовой для масштабирования для интеграции с новыми платформами.
Внутренний маркетплейс Евраза стал первой площадкой на которой интеграционная шина была запущена в промышленную эксплуатацию.
Разработали механизм управления xml-тегами для различных структур файлов по спецификациям партнеров
Доработка функционала создания фида: указание сроков доставки в зависимости от региона/склада и остатков
Реализация механизма включения/исключения артикулов при формировании фида (вручную или из файла)
Разработка универсальной критериальной модели, позволяющей гибко настраивать фид под требования конкретного b2b-партнера и площадки
Создание интерфейса (вкладок) для фильтрации данных в критериальной модели
Изменение архитектуры хранения ссылок на изображения, порядка обработки и получения ссылок на изображения
Интеграция 1С с облачным s3 хранилищем, в которое теперь могут выгружаться файлы фидов

Задачи, которые мы решили в ходе разработки интеграционной шины

Разработка архитектуры проекта, описание состава справочников, регистров, модулей
Реализация функционала работы с региональностью для оптимизации поставок с центрального и региональных складов
Это наиболее крупные и интересные задачи из 200+, связанные с разработкой и интеграцией шины. О некоторых из них расскажем подробнее.
Разработка механизма разделения фида, передаваемого партнеру, для ускорения его обработки
Интеграционная шина построена на базе 1С: Управление торговлей (1С: УТ) в типовой конфигурации с нашими расширениями. Собственные конфигурации функциональнее и удобнее, но у них есть нюансы с обновлением, документированием и последующей поддержкой.

Разработка архитектуры проекта

На вход 1С: УТ получает данные из нескольких источников. Это связано с тем, что данные, необходимые для формирования фида, исторически разделены. Товары и их признаки, цены, остатки, склады — в учетной системе, изображения — в медиа-хранилище.
1С-шина
Давать прямой доступ к учетной системе неправильно по соображениям безопасности и нагрузки. Даже несмотря на возможность создавать безопасные подключения. Правильным решением в таком случае является создание DMZ — сегмента сети, содержащего частные сервисы, отделенные от общедоступных.
Внутри сегмента выстроена архитектура, включающая шину и источники данных. Шина по расписанию собирает данные, обрабатывает их, собирает пакеты (xls-файлы или фиды) и выгружает на маркетплейсы и b2b-площадки.
Если цены требуется зафиксировать на определенный период, или наоборот, скорректировать, то есть возможность загрузки в шину вручную подготовленного файла с необходимым набором артикулов и типом цен.
Каждая B2B-площадка или маркетплейс определяет собственные требования к способу получения и формату данных о товарах, остатках и ценах от поставщиков. Помимо основных параметров должна передаваться и вспомогательная информация, необходимая для правильного формирования карточек товара и логистики (габариты, тип упаковки, вес, цвет и т.д).

Механизм создания фида

Для маркеплейсов механизм другой. Чтобы получить файл с данными о товарах в нужной маркетплейсу форме, менеджер загружает на ftp Комуса xls-файл с перечнем артикулов. Шина по расписанию его забирает и после ряда автоматических обработок, в ходе которых он обогащается данными в соответствии с шаблоном, файл выгружается обратно на ftp. Менеджер получает результат в течение нескольких минут. Весь процесс логируется, в случае ошибок на e-mail ответственного лица отправляется сообщение.
Создание фида
Фид для компании Евраз формируется в 1С-шине путем импорта сведений о номенклатуре, товарных группах, складах, остатках и т.д. Механизм шины позволяет фильтровать эти данные, добавлять к ним изображения, актуальные цены и отправлять результат на сервер Евраза.
Для хранения ссылок на изображения создан отдельный регистр сведений. В нем ссылки и изображения связываются по артикулу номенклатуры. У каждого изображения в этом регистре есть специальный индекс, который показывает приоритет выгрузки.
Одни маркетплейсы принимают фид, где пути к картинкам — это отдельные теги <picture> для каждого изображения, другие требуют перечислить все пути в одном теге. При этом важно указать, какая из картинок является основной.
Требования маркетплейсов по структуре ссылок на основное и дополнительные изображения товара различны. Это требовалось учесть при создании механизма формирования фида.

Изменение способа хранения ссылок на изображения и порядка их обработки

Чтобы шина была универсальной мы реализовали оба способа записи ссылок.
Ссылки, записанные в один тег, разделяются символом «|», «;» или пробелом, который пользователь выбирает в настройках в зависимости от требований конкретного маркетплейса.

Реализация функционала выгрузки остатков нескольких складов

В ранних версиях шины выгрузка фидов для маркетплейса Евраза производилась с учетом остатков на каждом из доступных складов. Сколько складов — столько фидов. Как временное решение оно себя оправдало. В более поздней версии был реализован механизм выбора нескольких складов для загрузки остатков в одном товарном фиде.
Решение предполагает добавление запроса на получение остатков по уже отфильтрованным товарам. Система сделает обход и запишет в файл остатки по указанным в настройках складам.
В зависимости от наличия товара на том или ином складе пользователю будут показаны разные сроки доставки.
Если позиция отсутствует на всех складах, она попадёт в выгрузку, если на неё можно сделать индивидуальный заказ. Тогда вместо кнопки заказа будет показана кнопка предзаказа. В противном случае позиция не выгружается. Также учитывается факт установления цен.

Интеграция с «облаком»

На форме каждого узла критериальной модели, создана вкладка с настройкой подключения к месту выгрузки сформированного xls-файла или фида. Есть возможность для одного узла выгружать файл сразу в несколько конечных мест:
  • ftp-сервер партнера;
  • облачное хранилище;
  • локальная файловая система.
Проект мы начинали с решения задачи повышения актуальности данных поставщика на внутреннем маркетплейсе ЕВРАЗа.

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

Резюме проекта

8
подключенных партнеров за первые 2 месяца
500
часов на разработку критериальной модели
5
специалистов в команде: разработчики, тестировщик, ПМ
часов на разработку кодовой базы
100
месяца на подготовку и разработку MVP выгрузки фида
3
В течение первого месяца полноценной работы 1С-шины удалось на 6% сократить количество отказов по оформленным заказам.
Результат достигнут благодаря решению проблемы регулярности обновления данных по ассортименту, остаткам и ценам Комуса во внутреннем маркетплейса ЕВРАЗа.
%
5
%
11

ИНТЕРВОЛГА имеет опыт работы в масштабных проектах с крупными партнерами.

Мы делаем сложные интеграции под ключ для любого бизнеса.

Умеем управлять проектами, поэтому нам доверяют сложную разработку.

Если перед вами стоит задача внедрения, замены или интеграции корпоративных систем — опишите ваши потребности. Мы предложим решение.

20+ лет
на ИТ-рынке
1000+
успешных проектов
10 000
часов разработки в месяц
130+
штатных сотрудников
80+
разработчиков Битрикс, Битрикс24, 1С
14
производственных команд
Заявка на разработку
Нажимая кнопку «Отправить», я даю свое согласие на обработку моих персональных данных, в соответствии с Федеральным законом от 27.07.2006 года №152-ФЗ «О персональных данных», на условиях и для целей, определенных в Согласии на обработку персональных данных
Хотите получать лучшие статьи от INTERVOLGA раз в месяц?
Подпишитесь на рассылку — спамить не будем