Я сделал проверочный слой для PDF-каталогов и Excel: как находить расхождения в товарных данных до того, как они попадут в карточки
В e-commerce и B2B-дистрибуции есть не самая заметная, но очень дорогая проблема: товарные данные живут сразу в нескольких источниках.
Есть PDF-каталог производителя. Есть Excel или выгрузка товарной базы. Есть карточки на сайте. Есть фильтры, подборщики, дилерские кабинеты, прайсы и внутренние справочники.
И всё это должно совпадать.
На практике это совпадает не всегда.
Где-то мощность указана в кВт, а где-то в Вт. Где-то габариты записаны в другом порядке. Где-то характеристики одного и того же модельного ряда расходятся между источниками. Где-то рядом с моделью стоит код, который выглядит как артикул, но им не является.
Пока товаров немного, это можно проверить руками. Когда их сотни или тысячи, ручная проверка превращается в болото.
Я решил собрать проверочный слой, который помогает находить такие расхождения автоматически, но не делает вид, что может “магически всё исправить”.
Что я проверял
Задача была такой: взять технический PDF-каталог производителя и Excel или товарную выгрузку, сопоставить модели и характеристики, нормализовать значения и получить отчёт по расхождениям.
Не как финальное автоисправление, а как безопасный процесс:
PDF + Excel → проверочный слой → размеченный Excel → отчёт → ручная проверка спорных мест.
Для демо я взял публичную выборку по климатическому оборудованию Ballu/BHC. В инженерном оборудовании ошибки в характеристиках могут стоить дорого: неверная мощность, габариты, расход воздуха, напряжение или комплектация могут влиять на фильтры, подбор модели, работу менеджера и доверие дилера.
Почему это не просто PDF-парсер
Сначала кажется: “ну что там, распарсил PDF, сравнил с Excel”.
Но PDF-каталоги не предназначены для машинного чтения. Таблицы могут быть разными, часть характеристик может быть в связанных таблицах, значения могут быть написаны в разных единицах, а коды рядом с моделью не всегда означают артикул товара.
Поэтому проект быстро превратился не в один парсер, а в цепочку обработки:
— извлечение данных из PDF; — построение индекса моделей и характеристик; — классификация таблиц; — сопоставление с Excel или товарными строками; — нормализация единиц измерения; — набор детерминированных правил; — ручная проверка спорных случаев; — генерация размеченного Excel и отчётов.
Главный принцип: лучше честно отправить спорный случай на ручную проверку, чем автоматически “починить” данные неправильно.
Результат на демо-выборке
На небольшой демо-выборке по Ballu/BHC получилось:
— 110 строк Ballu; — 84 группы связанных BHC-моделей; — 10 групп с конкретными расхождениями характеристик; — 45 отличий по парам поле/значение.
Я специально называю это не “доказанными ошибками”, а кандидатами на ручную проверку.
В товарных данных часто есть несколько источников правды. PDF может быть старее сайта. Excel может быть внутренней выгрузкой. Карточка может относиться к другой комплектации. У одного модельного ряда могут быть разные варианты исполнения.
Поэтому корректная формулировка такая: система показывает, где источники расходятся, и помогает специалисту быстрее принять решение.
Как выглядит результат
Результат — это не только логи для разработчика, а рабочий файл для человека.
На выходе можно получить:
— короткое summary; — список видимых расхождений; — матрицу отличий по группам связанных моделей; — строки, требующие ручной проверки; — комментарии по спорным местам.
Идеальный сценарий: специалист открывает размеченный Excel и видит очередь проверки. Где критично, где спорно, где нужно уточнить источник, где автоматическое решение было бы опасным.
То есть система не заменяет эксперта по товарным данным, а снимает с него часть рутины и помогает быстрее найти проблемные места.
Отдельно про коды и артикулы
Сначала мне казалось, что если код стоит рядом с моделью, его можно использовать для маппинга.
После ручной проверки стало понятно: нет.
Иногда это код внутреннего блока или компонента. Иногда — код соседнего товара в визуальном блоке. Иногда — код аксессуара, цвета или варианта исполнения.
Поэтому я добавил отдельный слой разведки по кодам. Он не подставляет найденные коды автоматически. Он группирует их, показывает возможный смысл и отправляет в ручную проверку.
Это важная часть проекта: не каждый найденный код является артикулом товара. Если подставлять такие связи автоматически, можно испортить карточки, фильтры, прайсы и интеграции.
Почему я не стал делать “ИИ всё исправит”
Сейчас модно обещать: загрузите файл, ИИ всё поймёт, всё исправит, всё сделает.
В товарных данных такой подход опасен.
Если модель неправильно решит, что один код относится к другому товару, ошибка не останется внутри отчёта. Она может поехать дальше: в карточки, фильтры, выгрузки, дилерские кабинеты и внутренние справочники.
Поэтому архитектура проекта такая: сначала правила и ручная проверка, а обучаемый слой — потом.
ML и LLM могут быть полезны как помощники:
— подсказать похожие случаи; — сгруппировать паттерны; — предложить правило; — объяснить, почему строка спорная; — помочь приоритизировать ручную проверку.
Но финальные решения не должны применяться автоматически без валидации.
Catalog Playground
После первого демо я понял, что нельзя строить систему только под один каталог. Нужен безопасный способ разведки новых PDF.
Так появился отдельный режим, который берёт папку с PDF-каталогами и делает разведку в режиме report-only.
Он показывает:
— какие PDF удалось прочитать; — сколько таблиц найдено; — есть ли товарные сигналы; — какие таблицы похожи на уже поддержанные профили; — где нужны новые профили; — какие каталоги можно считать quick win; — какие каталоги лучше пока не обещать автоматизировать.
Важный момент: этот режим ничего не меняет в основной проверке. Он не переписывает данные, не добавляет правила автоматически и не делает вид, что новый каталог уже поддержан.
Он помогает ответить на более практичный вопрос: стоит ли этот каталог брать в следующий этап подключения?
Коммерческий пилот
Я не считаю, что такой инструмент нужно сразу продавать как большую платформу “для всех PDF мира”.
Более реалистичный первый шаг — коммерческий пилот на ограниченном наборе данных.
Как это может выглядеть:
— взять небольшой набор PDF-каталогов и Excel-выгрузок; — согласовать объём проверки; — запустить проверочный слой; — получить размеченный Excel и отчёт; — вручную проверить спорные случаи; — понять, какие категории и бренды стоит подключать дальше.
То есть первый продукт — это мини-аудит товарных данных, а не внедрение платформы на весь ассортимент.
На выходе бизнес получает не абстрактную “автоматизацию”, а конкретный результат: где данные расходятся, какие случаи требуют проверки и где дальнейшая автоматизация может окупиться.
Что проект не обещает
Я специально фиксирую ограничения, потому что без них такой продукт легко превращается в “AI magic” на слайдах.
Проект не обещает:
— универсальную автоматическую обработку всех брендов; — автоматическое исправление клиентских данных; — мгновенный SKU-mapping без ручной проверки; — полное покрытие всех категорий без подключения профилей; — автоматическое применение ML-решений; — замену специалиста по товарным данным.
Это проверочный слой, а не автопилот без руля.
Где тут может быть SaaS
В будущем такой проект можно развивать как managed SaaS.
Но не в формате “загрузите любой PDF и получите идеальную правду”.
Более честная модель:
— для поддержанных брендов и категорий проверка работает быстро; — новые каталоги проходят разведку; — под новые категории подключаются профили; — спорные случаи идут в ручную проверку; — клиент получает историю проверок, отчёты и размеченные Excel-файлы.
Чем больше поддержанных профилей, тем меньше ручной работы на следующего клиента. Именно здесь может появиться повторяемость и подписочная модель.
Но начинать, на мой взгляд, лучше не с большого SaaS, а с маленьких коммерческих пилотов.
Если вам актуально
Сейчас я ищу 2–3 компании, которым актуальна проблема качества товарных данных.
Если у вас есть PDF-каталоги производителей, Excel-выгрузки, карточки товаров и ощущение, что данные периодически расходятся, можно начать с маленького пилота.
Он может дать:
— размеченный Excel; — отчёт по расхождениям; — список спорных случаев; — оценку непокрытых мест; — понимание, где автоматизация окупится.
Не нужно сразу внедрять систему на весь ассортимент. Достаточно взять один понятный кусок данных и проверить, есть ли там повторяемая боль.
Итог
Для меня этот проект стал хорошим напоминанием: в B2B часто ценность лежит не в самом “умном ИИ”, а в скучной, но важной проверке данных.
Найти расхождение.Показать источник.Не переписать всё автоматически.Отдать специалисту понятный файл.Снизить ручную рутину и риск ошибки.
Иногда именно такой слой между хаосом источников и товарной карточкой оказывается самым полезным.
Если вам близка эта боль — напишите мне. Могу показать демо-файл и обсудить небольшой пилот.