Каждый интернет-магазин, который продаёт товары более чем от одного поставщика, сталкивался с болью, возникающей из-за того, что данные приходят в самом разном виде. И если вы ещё не настолько крупный игрок, чтобы диктовать поставщикам формат, приходится подстраиваться под то, что дают они.
Хотя уже прошла четверть двадцать первого века, у огромного количества поставщиков данные до сих пор в ужасном состоянии. На этом фоне данные в таблицах xls могут выглядеть очень продвинутым решением.
Если магазин небольшой и имеет до 500 товаров, он ещё может позволить себе ручную обработку каждой позиции. Но если у вас десятки тысяч товаров, без автоматизации уже не обойтись.
В чём заключается проблема данных от разных поставщиков
Этот перечень можно продолжать бесконечно, особенно если описывать проблемы каждого отдельного поставщика. Но есть несколько глобальных, распространённых проблем, с которыми сталкивается практически любой.
Прежде всего стоит понимать: данные от поставщика вам нужны для двух разных сценариев, первичное создание товаров и последующее обновление цен и остатков. И проблемы в этих двух сценариях разные.
Неполные данные для создания товаров.
Для создания товара нужны название, артикул, характеристики, категория, описание, изображение, цена, остаток. Но далеко не каждый поставщик даёт весь этот набор, многие предоставляют лишь ограниченные данные, достаточные только для обновления цены и остатка, но не для создания новой карточки товара с нуля.
Язык контента.
Даже те поставщики, которые дают полный набор данных для создания товара, обычно предоставляют его лишь на одном языке. К сожалению, до сих пор бывает, что это русский. А если ваш сайт многоязычный, автоматизированного контента для наполнения на всех нужных языках у вас просто нет.
Дубликаты артикулов.
Артикул, инструмент идентификации товара, и в пределах одного поставщика он уникален. Но разные поставщики нередко используют схожую логику формирования артикулов, и у вас могут оказаться несколько разных товаров с одинаковым артикулом.
Валюта, скидки, наценки.
Поставщики могут предоставлять цены в разных валютах, каждый со своими требованиями к курсу конвертации. Также они могут выдвигать условия по скидкам и собственным наценкам. В результате вы не можете наложить на все товары единую логику конвертации, скидок и наценки, приходится учитывать правила каждого поставщика по отдельности.
Категории и характеристики.
Пожалуй, самая большая проблема, и точно самая дорогая в решении. Разные поставщики могут предоставлять одни и те же группы товаров, но категории и характеристики у них могут называться по-своему, не так, как это уже принято на вашем сайте. Если это игнорировать, после импорта на сайте появится куча синонимичных категорий и характеристик, и это сделает навигацию, поиск и фильтрацию неудобными для покупателей.
Носитель данных.
И наконец, сама форма, в которой приходят данные. Она бывает трёх типов:
- пригодная для полной автоматизации (API, XML, файлы CSV или XLS, доступные по ссылке);
- пригодная лишь для ручного импорта (локальные файлы CSV или XLS, которые нужно каждый раз загружать вручную);
- совсем не пригодная для программной обработки без дополнительной работы (PDF, DOC, изображение прайса или просто страница на сайте поставщика).
Каждая из этих проблем сама по себе может стать большим вызовом. Но с увеличением количества поставщиков она может превратиться в катастрофу. Недавно к нам обратился магазин с 96 поставщиками. Из них лишь 5 предоставляли данные, пригодные для полной автоматизации. Большинство были в таблицах, но хватало и PDF, и DOC, и даже просто изображений. Учесть особенности всех 96 поставщиков отдельной программной логикой для магазина такого масштаба было бы совершенно нерентабельно. Впрочем, сегодня появился дополнительный инструмент, который существенно меняет эту экономику, искусственный интеллект, но о нём мы расскажем далее.
Что такое конвертер данных
Конвертер данных, или PIM (Product Information Management), это программа для приведения данных из разных источников к общему знаменателю.
Эта программа может вообще не иметь интерфейса, если участие человека в процессе не нужно. Или иметь интерфейс для загрузки локальных файлов. Или даже иметь сложные инструменты, которые превращают такой конвертер данных в полноценную систему управления складом.
Как конвертер данных решает распространённые проблемы
Стоит отметить, что конвертер данных это всегда кастомная программа, полностью заточенная под ваши реалии. Хотя существуют и готовые инструменты, которые могут помочь при определённых условиях. Например, если все ваши поставщики дают данные в таблицах и там есть все необходимые поля, существуют программы-конструкторы, где вы определяете, что данные из определённой колонки файла одного поставщика следует читать как, скажем, артикул, а у другого, из другой колонки. Это поможет разобрать данные из разных колонок в разных файлах. Но это не решит проблему дубликатов артикулов или синонимичных категорий и характеристик. А проблему с ценами такой конструктор решит только тогда, когда вы сами примените в этих таблицах формулы конвертации и переоценки ещё до слияния данных.
Когда мы беремся за разработку конвертера данных, нам нужно получить данные от всех поставщиков и доступ к базе данных сайта. Мы анализируем их и разрабатываем план приведения данных к общему виду. Нередко для этого нужна помощь заказчика, который хорошо разбирается в нюансах своих товаров.
Проблема дубликатов артикулов.
Для решения этой проблемы используются два вида артикулов. Артикул поставщика заводится в поле, содержимое которого может дублироваться. А для настоящего артикула создаётся собственная система, которая гарантирует уникальность. Это, в свою очередь, требует более точного контроля при обновлении данных, ведь ориентироваться на неуникальное поле артикула поставщика уже небезопасно, и нужно учитывать ещё какое-то поле.
Валюта, скидки и наценки.
Конвертер данных это идеальный инструмент для решения этих вопросов. Мы создаём отдельную логику работы с ценой под каждого поставщика, с учётом его курсов валют и ценовой политики. Цены всегда будут точно обработаны и выведены на сайте с соблюдением всех требований.
Категории и характеристики.
Для решения этого вопроса обычно привлекается специалист со стороны заказчика. Он составляет перечень соответствий, своего рода словарь, где указано, какие названия категорий и характеристик поставщика каким сущностям вашего сайта должны соответствовать. Здесь есть риск, что поставщик начнёт давать новые названия, не предусмотренные программой, поэтому для этого настраивается уведомление о необходимости доработки. Если же объём этой работы слишком велик, можно привлечь искусственный интеллект. Он способен построить соответствия самостоятельно и даже без проблем работать с новыми названиями, но всегда остаётся вероятность ошибки, и это стоит контролировать заказчику.
Проблему нехватки данных для первичного создания товаров, перевода или данных в форматах, не пригодных для импорта, нельзя решить чистой программной логикой. Но это можно решить с помощью искусственного интеллекта. Он способен собрать в сети данные о таких товарах, составить перечень характеристик и описания, подобрать изображения, сделать переводы. То же самое он может сделать с любыми носителями информации: собрать, обработать и привести данные к нужному виду. Но всегда с вероятностью ошибки, которую трудно контролировать в многотысячных интернет-магазинах.
Почему это должна быть отдельная программа, а не часть сайта
Так значительно дешевле.
Речь даже не о том, что писать эту программу с чистого листа проще, поскольку не мешают нюансы CMS, хотя это тоже правда. Речь о том, что конвертер данных может оказаться совсем не дешёвой программой, особенно если начнёт перерастать в полноценную систему управления складом. Актуальность CMS обычно держится 3–5 лет, и если обработка данных будет сильно связана с движком сайта, при его смене программу также придётся существенно переписывать. Логика конвертера данных редко устаревает, то есть морально остаётся актуальной, хотя неизбежно будет проходить адаптацию под изменения у поставщиков. Требования к технической актуальности для такой программы значительно ниже, чем для сайта, ведь это закрытая программа с ограниченным доступом, и взлом через устаревшие технологии маловероятен. А если писать конвертер данных не на громоздком фреймворке, а на чистом PHP или компактной платформе, адаптировать этот софт под новые версии языка программирования будет несложно. Так что конвертер данных может не терять актуальности на протяжении десятков лет.
Производительность.
Даже обычный импорт товаров может замедлять работу сайта. Импорт вместе с обработкой данных тем более способен тормозить сайт, а это, в свою очередь, подталкивает к тому, чтобы минимизировать такие замедления, делая обновление лишь раз в день. Конвертер данных может работать отдельно, даже на отдельном сервере, и обновлять сайт быстро, в режиме, приближённом к реальному времени.
Гибкость.
Если конвертер данных не привязан к конкретному движку сайта, он легко переживает его смену. Более того, те же самые обработанные данные вы можете направлять и в другие стороны, если у вас есть дополнительные интернет-магазины или офлайн-продажи.
Масштабируемость.
Отдельную систему значительно проще масштабировать и дорабатывать, добавляя новый функционал.
Путь развития
В зависимости от специфики вашего бизнеса со временем могут появляться дополнительные пожелания к возможностям конвертера данных. И в большинстве случаев их стоит реализовывать именно здесь, а не где-то отдельно.
Часто есть смысл перенести на сторону конвертера данных управление скидками. Поскольку он и так уже работает с ценами, а разные поставщики могут накладывать собственные ограничения на политику скидок, логично сразу заложить эту логику в систему и тем самым упростить вам дальнейшее управление скидками.
Поскольку конвертер данных собирает и накапливает информацию о наличии товара, именно здесь уместно развить полноценный функционал управления складом. Причём сразу с учётом двух источников наличия: собственных складов и складов поставщиков.
Именно здесь очень полезно вести учёт партий товара, ведь именно в этой системе партия фиксируется впервые, ещё до того, как товар попадает на сайт или склад.
И когда у вас уже есть информация о партиях, ценах и наценках, остаётся один шаг до того, чтобы увидеть реальную прибыль. Достаточно добавить интеграцию данных о продажах, и вы получаете полную картину: сколько заработали на каждой партии, товаре или поставщике.
Список возможностей на этом не заканчивается, и далеко не всё из него вписывается в канонический функционал какого-то конкретного типа систем. Но есть простой ориентир: всё, что касается данных о товарах, их ценах и остатках, стоит держать в одном месте. Так система, которая начиналась как скромный конвертер данных, постепенно превращается в центральный нервный узел всей товарной логики вашего бизнеса.
FAQ
Что такое PIM?
PIM (Product Information Management) – это программа, которая собирает, упорядочивает и обменивается данными о продуктах. Она позволяет управлять такими элементами, как описания, характеристики, цены, остатки и изображения в одном месте, прежде чем отправлять их в интернет-магазины и другие каналы сбыта.
Можно ли подключить нового поставщика позже после запуска?
Да. Если у нового поставщика свои уникальные особенности, то их нужно будет предусмотреть функционалом. Если же у нового поставщика данные в таком виде, как предусмотрено для одного из существующих поставщиков, можно использовать уже готовый шаблон.
Що буде, якщо постачальник змінить формат даних або додасть нову категорію?
Программа перестанет работать корректно. Если поставщик полностью изменил структуру данных, они перестанут импортироваться, и нужно будет снова настраивать интеграцию с ним. Если же структура осталась без изменений, но добавились новые данные, нужно будет обработать только новые данные.
Повлияет ли конвертер данных на скорость работы сайта?
Теоретически это возможно. Но этого можно избежать, например, разместив конвертер на отдельном сервере. Это потребует дополнительных ресурсов.
Привязан ли конвертер данных к конкретной CMS?
По умолчанию мы делаем это приложение отдельным. Но если по каким-то причинам вы захотите сделать его частью вашей CMS, это тоже возможно, хотя может быть сложнее, особенно в случае незнакомого нам движка.
Сколько стоит PIM?
Стоимость такой программы всегда индивидуальна. В первую очередь на цену влияют количество поставщиков, способ предоставления ими данных, насколько сильно данные каждого поставщика отличаются между собой, и нужны ли интерфейсы управления конвертацией или достаточно чисто программного управления.