"По мере роста предприятия разрастается хаос в данных. Иногда он начинается с информации о продуктах (например у торговых компаний), но может начинаться и с клиентских данных, с дублирования информации об инфраструктуре (для телекома) и т. п. Рано или поздно встаёт вопрос о повышении качества данных (т. е. повышении корректности, удалении дубликатов, стандартизации).
Мы в kt.team часто консультируем клиентов на предмет качества данных, и настало время рассказать про то, с чего обычно начинают наши клиенты в области торговли, — с PIM-систем".
MDM- и PIM-системы: что это такое и зачем они нужны
Классическая MDM-система — это система, которая знает про разные источники данных и отвечает за качество данных, т. е. содержит «золотую запись» данных. Например, ваши пункты продаж обладают одной информацией о клиентах, интернет-магазин — другой, маркетинговые сервисы — третьей. MDM-система может привести все адреса и имена клиентов к единому стандарту, найти одних и тех же клиентов, записанных по-разному, и устранить ошибки на основании разных алгоритмов.
MDM-системы управляют разными областями данных, которые часто называют доменами (домен «клиенты», домен «продукты» и т. д.).
Сегодня можно сказать, что PIM-система — это MDM-система по домену «продукты».
Благодаря MDM в едином пространстве содержатся валидаторы на изменения, интеграции с другими системами и правила, по которым эта информация выгружается в другие системы.
Все возможные атрибуты, всё-всё-всё о каждой сущности — всё сосредоточено в MDM.
Понять суть MDM-систем намного проще, если в качестве примера рассматривать PIM-системы. Поэтому далее поговорим именно про них.
PIM-системы позволяют сосредоточить всю информацию от операторов, фотографов, поставщиков, а также различные правила по продуктам. С помощью PIM-систем можно управлять разными представлениями товаров на маркетплейсах и в соцсетях.
Базовый список возможностей PIM-систем:
- определить все атрибуты для ваших товаров и их обязательность для канала (например для сайта картинка может быть обязательна, а для выгрузки в «1С» — нет);
- определить категории товаров в разных источниках;
- оценить качество данных о продуктах по критериям полноты и достоверности с помощью как простых валидаций, так и сложных алгоритмов;
- настроить алгоритмы работы операторов, ответственных за информацию о картинках. Например, подсказать им, какие продукты нужно заполнять в первую очередь. При размещении осенне-зимней коллекции в августе можно установить главный приоритет для источников «собственный сайт», далее — для источников «маркетплейс», а после этого — для остальных атрибутов и категорий товаров;
- иметь в одном месте выгрузки на все сторонние источники вроде систем ERP, WMS и CMS, дистрибьюторов или даже на маркетплейсы (Wildberries, OZON, «Яндекс.Маркет» и т. д.) с некоторыми оговорками по ценообразованию;
- определять рабочий процесс по верификации информации о продукте (например чтобы информацию перед публикацией проверил бренд-менеджер);
- для PIM-систем с DAM можно определять рабочий процесс по файлам, связанным с продуктом (т. е. по картинкам и документам), а также по метаинформации о картинках (когда сделано фото, какой тип съёмки, является ли этот документ сертификатом, какие у него дата выдачи и срок действия и т. п.);
- управлять маркетинговым представлением продукта (в Instagram картинка и описание одни, на сайте — другие, в рекламе для сегмента «мамочки» — третье). Как правило, такие системы гордо называют PXM-системами.
Как правило, PIM-системы также имеют возможность настройки статусов продукта («Валидация менеджером», «Готов к публикации» и т. д.) и инструменты массовой обработки товаров (быстро загрузить что-то из файла XLS, обновить общий атрибут для группы товаров и т. п.).
Наиболее продвинутые PIM-системы включают в себя DAM-системы (или PLM-системы), т. е. системы управления файлами и картинками, которые могут иметь собственные атрибуты.
В таком случае у изображений, которые являются атрибутами товаров, могут быть свои атрибуты, например «Картинка боковая», «Сертификация». Вы не просто указываете картинку в качестве атрибута, но и эта картинка сама по себе находится в определённом каталоге, может быть переиспользована, и по ней может быть создан отдельный workflow («на ретуши», «устарело», «нужно переснять»).
В каких случаях бизнесу нужна PIM-система
- Если у вас сложные бизнес-процессы по продуктам (например собственный фотопродакшн или большой штат сотрудников, поддерживающих информацию и контент),
- если у вас много информации о продуктах (производство, бренд-менеджеры, продажи — каждый генерирует свои XLS-таблицы, и уже ими жонглируют),
- если у вас большое количество информационных систем,
- если в текущих информационных системах вроде «1С» ваши операторы тратят очень много времени на рутинные операции,
то MDM/PIM-система вам, скорее всего, нужна.
Вы сможете упростить все бизнес-процессы и разгрузить другие источники от ненужной информации. Например, зачем «1С» хранить картинки для сайта и категорию, в которой этот сайт находится?
Давайте рассмотрим те две системы, в разработке на которых мы наиболее экспертны: Akeneo и Pimcore. С точки зрения технологического стека они очень похожи: это PHP / Symfony 4, MySQL и Elasticsearch. Но по подходу это две очень разные системы.
MDM/PIM-система Pimcore
Pimcore — это MDM-система. Несмотря на то что в её названии звучит PIM, де-факто в ней просто есть раскладка, которая позволяет работать с продуктами. Там же есть и CRM (раскладка, позволяющая работать с клиентами), плюс можно создавать любые другие сущности, которые нужны для решения бизнес-задач.
Это не означает, что PIM-функционал там слабый. Наоборот, он очень сильный, ещё и с возможностью пользоваться дедупликацией.
Просто хочу подчеркнуть, что Pimcore изначально заточена не только под управление информацией о продуктах. В связи с этим объясняется и высокая сложность конфигурирования системы, и её максимальная универсальность (как в части атрибутов, так и в части API для этих сущностей).
PIM-система Akeneo
В отличие от универсального Pimcore, Akeneo — это только PIM-система, т. е. узкоспециализированный инструмент.
Есть две версии этого продукта: Enterprise и Community. В архитектурном плане это одна система (одно ядро) с разным набором модулей. Версия Enterprise отличается тем, что в ней больше модулей и по большей части они связаны с управлением продуктами в крупных организациях (там, где много согласований, сложные права доступа, где у операторов большая иерархия и т. п.).
Мощная иерархия атрибутов, как в Pimcore, тут отсутствует. Атрибуты делятся на атрибуты, группы атрибутов и семейства. Нет возможности создать «абстрактную сущность», от которой можно отнаследоваться. Например, нет возможности создать «Мебель» со своими атрибутами, а потом расширить её с помощью «Дивана» и «Стола», которые будут добавлены в качестве атрибутов «Мебели».
Основные задачи PIM-систем
1. Позволять вносить всем заинтересованным сторонам необходимые изменения и дополнения в данные по продукту в одной области и гарантировать доступ к обновлённым данным в других областях.
Демо: поиск и добавление товаров в Akeneo PIM.
2. Устранять противоречия между данными, которые, в свою очередь, могут оказывать существенное влияние на ведение бизнеса. Сюда входят приоритизация источников, алгоритмы действий при наличии противоречивых данных, алгоритмы стандартизации информации и т. п.
3. Загружать данные из различных источников: CMS, CRM-, ERP-систем, узкоспециализированных программ вроде САПР/CAD (например хранить в одном месте всю документацию, чертежи и свойства по продукту).
4. Выгружать данные в разные источники с контролем обязательности атрибутов. Например, если мы хотим, чтобы на сайт не попадали товары без картинок, мы настраиваем это в PIM-системе. При этом предоставляем оператору прозрачную информацию о продуктах, чтобы он видел, какие из них не попадают на сайт и по какой причине. Сюда же относится и выгрузка фидов для вендоров или централизованная отправка выгрузок на маркетплейсы вроде Wildberries, OZON, Amazon, «Яндекс.Маркета», AliExpress и т. п.
Демо: импорт и экспорт данных в Akeneo PIM.
5. Обеспечивать обработку и пополнение контента в системе с учётом политики прав и ролей в компании. Пополнять контент может любой сотрудник с соответствующим правом доступа, например маркетолог, менеджер по продажам или даже копирайтер.
В качестве дополнительной информации о товарах можно вносить описания, изображения, видеообзоры. Текст возможно автоматически переводить внутри системы на другие языки, что значительно упрощает адаптацию данных к локальным требованиям. Если же мы поставляем товары, например, в Испанию, то переводчикам на испанский лучше дать доступ именно к испанским атрибутам и только для тех продуктов, которые отправляются в эту страну.
Демо: роли в Akeneo PIM.
Akeneo и Pimcore для сложносоставных продуктов
Допустим, ваш бизнес — услуги сотовой связи. У вас есть тарифная сетка, которая отличается большим количеством нюансов для разных районов страны. В некоторых регионах часть тарифов вообще неприменима. Ценообразование в данном случае — свойство продукта (цена далеко не всегда является свойством продукта, чаще — свойство канала продаж, но именно тут — свойство продукта).
Ваш продукт — со сложным ценообразованием, при этом вам важно знать и контролировать все факторы изменения цены.
Другой пример: вы производите диваны. Обивку для них можно изготовить из тысячи материалов разных цветов и фактуры. Они различаются габаритами, механизмом раскладывания, материалом подлокотников. Эти отличия — не просто свойства товаров, они определённым образом зависят друг от друга: диваны некоторых ценовых категорий могут иметь обивку только из определённого вида тканей и только ограниченного количества цветов, а некоторые конструкции имеют разные опции.
Давайте рассмотрим, как Akeneo и Pimcore помогают работать с данными для таких сложносоставных продуктов.
Akeneo поддерживает плоскую модель данных (с нюансами: в версии Enterprise могут быть составные атрибуты, т. е. атрибут может содержать свои атрибуты).
Таким образом, подобного рода задачи сводятся к тому, что Akeneo расширяется специальным конфигуратором — разработчики пишут модуль для управления сложной иерархической структурой в плоской структуре Akeneo.
Составной атрибут в Akeneo Enterprise и Pimcore означает, что атрибут содержит свои атрибуты. Например, атрибут «Цвет» может содержать название, HEX- и CMYK-коды и картинку, а атрибут «Ткань» — название ткани и условия её стирки/мойки.
В Pimcore эта задача решается коробочным интерфейсом: любой класс может быть расширен, и тот, в свою очередь, тоже может быть расширен. Атрибуты могут быть связью, в т. ч. многие ко многим, составными, вычисляемыми.
Наиболее интересные кейсы для понимания работы Akeneo и Pimcore могут быть такими: у бизнеса есть некая базовая продукция с базовой ценой (например базовая модель дивана с обивкой из определённой ткани), а при добавлении какой-либо конфигурации нужно автоматически изменить цену (диван с другой обивкой стоит дороже), причём сделать это по правилам (есть несколько категорий ткани, и цена для каждой следующей категории увеличивается на 100 рублей за погонный метр).
Интерфейс настройки атрибутов в Akeneo выглядит так:
В Pimcore:
Функционал Pimcore и Akeneo
Pimcore — это гибкая, удобная и многофункциональная MDM-система. Давайте познакомимся с её возможностями подробнее и обсудим, какие из них есть и в Akeneo.
Качество данных / cемантика
И Pimcore, и Akeneo поддерживают связанность и высокое качество для различных наборов данных: структурированных и неструктурированных, внутренних и внешних. Информацию можно сопоставлять, проверять и стандартизировать, чтобы всегда иметь актуальные и точные данные для операций. К примеру, можно обогащать информацию о товарах, используя другие сайты и облачные сервисы. С точки зрения управления качеством данных Pimcore богаче архитектурно, зато Akeneo — нагляднее.
Эти системы также позволяют форматировать разнообразные наборы данных на основе отраслевых стандартов, бизнес-правил, уникальных тестов, метаданных и машинного обучения. Можно менять значения данных в соответствии с ограничениями домена, ограничениями целостности данных или другими бизнес-правилами.
Управление рабочим процессом (workflow, validation workflow) и статусная модель для продуктов
Иногда нужно провести товары по статусам так же, как таск-трекер проводит задачу. Например, последовательность статусов товара может быть такой: «Новый», «На проверке копирайтером», «На проверке бренд-менеджером», «Опубликован».
Такая возможность есть и в Akeneo (Enterprise), и в Pimcore.
Вполне возможно, что в процессе проведения товара между статусами бренд-менеджер заметит неточность в части атрибутов. Тогда он сможет оставить комментарий и отправить продукт на доработку, и оператор увидит необходимость корректировок. Другой вариант: бывает нужно написать какой-нибудь валидатор.
Статус может быть связан с запуском процедуры импорта или экспорта данных этого продукта.
В Pimcore есть понятие валидаторов и правил отмены операции. Например, нельзя опубликовать продукт, если его цена не обновлялась более 30 дней, нельзя отправить на валидацию продукт в статусе «Заблокирован» и т. п.
Эти валидации могут быть вычисляемыми (в т. ч. можно отправить запрос во внешнюю систему для принятия решения).
В интерфейсе Pimcore workflow выглядит так:
Digital asset management — DAM (он же product content management)
В любой PIM-системе — даже без DAM — есть возможность загрузить картинки к товару.
Однако бывает нужно сделать так, чтобы файлы сами по себе были независимыми сущностями (например фотографы просто делают фото и не указывают артикул или нам нужно переиспользовать одно фото в разных продуктах). В таком случае нужен DAM. Сначала он назывался PCM, и, кажется, название взято от SAP. Теперь это просто DAM.
DAM — это системы по хранению файлов (картинок, документов) со своими атрибутами. Бывает, нам нужно не просто знать фото артикула, но и отличать, что это именно боковое фото. Не просто видеть, что это скан сертификата, но и определять срок, когда он заканчивается. Т. е. файл сам по себе обрастает метаданными и эти метаданные могут быть связаны с продуктами (например нельзя публиковать товар с истёкшим сертификатом).
Весь этот функционал можно настроить в DAM.
Как правило, DAM подключается туда, где генерируется контент (чтобы можно было использовать штатный NFS или какой-либо другой сетевой протокол доступа к «папке»), а контент-менеджеры используют файлы из DAM в своих продуктах (присваивают фото и сертификаты конкретным артикулам).
При этом если нам нужно будет отправить все сертификаты, мы сможем сделать это одним кликом (даже предоставить публичную ссылку на скачивание, чтобы не пересылать гигабайты по почте). И в выгрузку попадут только те сертификаты, дата которых актуальна.
DAM является частью и Pimсore, и Akeneo (только Enterprise, хотя к Community можно подключить любой open source DAM или даже написать свой, если требования скромные).
В Pimcore также есть простые функции работы с документами и редактирования изображений (через сторонние библиотеки).
Версионирование
Версионирование показывает, когда, кем и как именно обновлён продукт (GIT для продуктов).
Оно позволяет откатиться к предыдущей версии, отправить на согласование новую редакцию и просто понять, что если в продукте обновился один атрибут, который важен, например, только для сайта, то и выгрузить обновление нужно только на сайт, а остальным не сообщать об изменениях.
Эти функции есть и в Akeneo Community (хотя здесь функционал сильно урезан), и в Akeneo Enterprise, и в Pimcore.
Качество данных и заполненность атрибутов
Бывает необходимо знать, что у нас заполнены не все нужные атрибуты в разрезе каналов (канал — это получатель информации: сайт, маркетплейс, ERP и т. п.).
А иногда это нужно знать не просто в разрезе канала, но и в разрезе какой-либо группы продуктов. В Akeneo Enterprise можно смотреть за наполненностью и качеством данных по группе в разрезе источников — это называется Teamwork Assistant. Например: скоро осенне-зимний сезон, и мы выделяем все товары для этого сезона в отдельную группу. В результате мы видим процент заполненности по каналам с наложенным фильтром группы, и нам проще отслеживать прогресс по наполненности.
Загрузка данных о продукте из Excel и других таблиц
Кроме настраиваемых профилей импорта и экспорта, обе системы (Akeneo и Pimcore) имеют немного разный подход к данным.
Pimcore из коробки позволяет осуществлять очень гибкую работу с внешними таблицами прямо из интерфейса, причём по любым сущностям (атрибуты, товары, клиенты). Прямо в интерфейс возможно загрузить любой табличный документ и указать, какие поля и куда внести.
Akeneo заточена на работу с продуктами и имеет сервис обогащения информации (Franklin), а также достаточно простые механизмы импорта и экспорта (можно загрузить таблицу, настроив профиль импорта). Franklin собирает сведения о продукте в Интернете и умным образом объединяет их, устраняя противоречивость данных.
Предоставление информации о продукте внешними пользователями (поставщиками, производителями)
Иногда бывает необходимо сделать так, чтобы информация о продукте обогащалась за счёт завода-производителя.
Вспоминается сервис доставки еды, в котором есть большое количество поставщиков, и все они должны поставлять информацию о продукции самостоятельно. Внутренние пользователи лишь подтверждают загрузку этой информации и проверяют её корректность.
В Akeneo Enterprise для этого есть облачный сервис Onboarder, а в Akeneo Community и Pimcore единственный вариант — использовать имеющиеся права доступа и гибко конфигурировать их так, чтобы поставщикам всё-таки был предоставлен определённый доступ.
Хотя лучше всё же настроить импорт данных из их источников (и чаще всего какой-то такой импорт уже имеется).
PIM и PXM, или пара слов о маркетологах
PXM (product experience management) — это такой PIM, который умеет предоставлять разную информацию в разные маркетинговые каналы.
Если классический PIM рассматривает информацию о продукте как «золотую запись» (да, у продукта могут быть разные локализации — языковые и т. п., — но это один набор атрибутов), то PXM рассматривает продукт как набор описаний для разных маркетинговых каналов.
Условно, если вы производите воду, то для мамочек её надо позиционировать одним образом, а для офисов — другим. Продукт один и тот же, а его маркетинг — разный.
Akeneo заявляет, что её Onboarder и Franklin вместе с самой PIM и есть PXM. На деле же и Akeneo, и Pimcore предоставляют схожий интерфейс для реальной маркетинговой активности: это вариации продукта, которые можно объединить или связями (Akeneo и Pimcore), или наследованием (Pimcore).
EDI и PIM
Если вы получаете EDI-сообщения (например от европейского производителя) и хотите автоматически загружать их в информационную систему, без разработки не обойтись.
Полезной информации там немного, но для первичного наполнения информации о продукте (который потом пойдёт по сложным workflow обогащения) вполне подойдёт.
Причины — как в многообразии EDI-сообщений и их форматов, так и в редкой надобности таких обменов.
Однако в России спрос на EDI повышается, и многообразие форматов сглаживают крупные ЭДО-центры (СБИС / «Диадок» / «СКБ Контур» и т. п.), так что эта задача преобразуется в задачу на интеграцию с каким-либо местным ЭДО-провайдером.
MDM, PIM и микросервисный подход
Немаловажным является вопрос отношения к продуктам, если в вашей компании — микросервисная экосистема.
Строго говоря, без доработок Akeneo вы не сможете управлять бизнес-процессами Akeneo PIM из вашей BPMS. В Pimcore дела обстоят чуть проще ввиду богатых возможностей доступа workflow через API. Однако мы рекомендуем не интегрировать такие бизнес-процессы и относиться к PIM как к закрытой системе, которая имеет собственные бизнес-процессы. Всё, что вы можете делать с такой системой из других сервисов, — пользоваться её API.
Иногда бизнес-процессы и продукты очень сильно переплетены. Например, когда продукт — это тарифы одного из операторов связи, которые имеют сложные бизнес-процессы, но крайне сильно переплетены с процессами акций, часовыми поясами регионов и биллингом. В таком случае лучше управлять продуктами через бизнес-процессы Camunda и иные интерфейсы, связанные с ней.
Строго говоря, чем больше и сложнее процессы, тем меньше для них подходят модульные системы (пусть и open source).
Другой вариант: разработать модуль для Akeneo или Pimcore так, чтобы интерфейсы и валидаторы получались из Camunda или jBPM, а отображались PIM-системой. Конечно, это недешёвая разработка, но такое решение позволит сохранить прозрачность бизнес-процессов из BPMS при сохранении богатого интерфейса PIM.
Вывод
Итак, мы рассмотрели возможности систем Akeneo и Pimcore со многими их сходствами и отличиями. Стоит запомнить, что Akeneo — всё же PIM-система, которая нацелена на работу с продуктами, тогда как Pimcore — более обширное решение, MDM-система.
Что касается стоимости Akeneo, то версия Enterprise будет стоить не менее 30 тысяч евро в год, и доработка Community иногда может оказаться дешевле.
Для лучшего знакомства с этой темой вам могут быть полезны эти материалы (все строки кликабельны):
- PIM-система: как не утонуть в информации и держать всё под контролем;
- интеграция с PIM-системой;
- интеграция с Pimcore;
- что такое MDM-, PIM-, DAM-, PXM-системы;
- и следующее видео.