Связаться

Система управления товарными данными

2025–2026 • CATME PIM • Java-приложение и база данных

У книжного магазина есть список товаров, цены и остатки. Для покупателя нужны ещё обложки, описания, авторы, серии и понятные разделы. Эти сведения есть у издательств, оптовиков и книжных сетей — только разбросаны по разным каталогам и записаны по-разному.

Я спроектировал CATME PIM, чтобы магазин мог собрать эти сведения и дополнить ими свой каталог. Система принимает прайсы, приводит данные к общему виду, сопоставляет книги из разных источников и накапливает описания в общей базе. При следующем обновлении каталога собранные сведения используются снова.

Одна книга, разные предложения

Одно и то же издание встречается у нескольких поставщиков. У каждого свой артикул, цена и наличие. При этом в одном каталоге есть аннотация, в другом — хорошая обложка, в третьем — подробные характеристики. Магазину нужны и сведения о книге, и отдельные предложения, по которым её можно купить.

Я разделил их в модели данных. Запись поставщика сохраняет его предложение и происхождение сведений. Общая карточка книги — в системе она называется архетипом — собирает описание из разных источников. Записи сопоставляются по ISBN, номеру издания. Благодаря этому можно дополнить описание книги и сохранить связь с каждым поставщиком.

У каждого источника свои правила

Даже одинаковые сведения приходят в разном виде. Колонка со штрихкодом может называться «EAN» или «Штрих-код», размеры — быть записаны в разных единицах, а вместо серии иногда стоит «Не указано». Если перенести всё как есть, эти различия попадут и в каталог магазина.

Я заложил общий словарь полей и настройки для каждого источника: какие колонки читать, что они означают и как очищать значения. Так новый поставщик подключается к уже работающей обработке. Исправление правила применяется ко всем подходящим записям, в том числе при следующей загрузке его прайса.

Какие сведения заменять

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

На авторах обнаружилась ситуация, где простого заполнения пустых полей мало. Учётная система магазина хранила «Сакурадзака Х.», а в общей базе уже было полное имя — «Хироси Сакурадзака». Поле считалось заполненным и оставалось сокращённым. Я уточнил правило: для автора брать подготовленное имя из общей карточки, когда оно там есть. Это отдельное решение внутри общей задачи — улучшать описание, сохраняя нужные магазину данные.

Данные для карточек и поиска

Описание должно быть удобно и читать, и использовать в каталоге. «Аст», «АСТ» и «Издательство АСТ» обозначают одного издателя. Если оставить их разными значениями для фильтра, его книги окажутся в трёх группах. Поэтому в выгрузке есть название для показа и приведённое к единой форме значение для группировки. Так же устроены серии и издательские бренды.

Каталог получает и тематические признаки: система сопоставляет категории источников и серии с заданным словарём тем. Эти данные можно использовать для разделов и подборок. Правила очистки убирают значения вроде «Не указано» и характеристики переплёта, ошибочно попавшие в серию. Важен смысл того, что попадёт к покупателю.

Как я собирал систему

Я определял устройство всей PIM: что считать одной книгой, как связать её с предложениями, какие сведения сохранять и как дополнять каталог магазина. Вместе с ИИ разрабатывал обработку файлов, базу, правила и проверки. Решения уточнялись на реальных прайсах книжных сетей, оптовиков и издательств — с разными полями, пропусками и ошибками.

Проверка выходного Excel стала частью разработки. Например, по отчётам обработка завершалась успешно, но в файле оставались испорченные названия серий и несовместимые форматы размеров. По этим находкам мы меняли общие правила очистки: исправление должно работать при следующих загрузках, а результат — быть пригодным для каталога.

Что получает человек

На выходе — собственный каталог, дополненный описаниями, авторами, обложками, характеристиками и темами из накопленной базы. Он сохраняет цены и остатки магазина. Файл можно просмотреть в Excel или передать для загрузки в другую систему. Общая база остаётся для дальнейшей работы: сведения, однажды собранные о книге, доступны при обработке следующих прайсов.

Человек вместе с агентом подключает источники, задаёт правила обработки и разбирает спорные данные. Повторяемую работу выполняет PIM: очищает записи, находит совпадения, дополняет каталог и готовит выгрузку. Человек принимает результат по самому файлу. Ему больше не нужно вручную собирать описание каждой знакомой системе книги заново.

Из работы над PIM вырос отдельный CATME Converter, который готовит большие Excel-файлы к обработке. Другой самостоятельный проект — Система управления ассортиментом: поиск предложений, сборка закупки, приёмка и работа с остатками.