Интернет-магазины

Как проверить товарный каталог после импорта из Excel, 1С или PIM: практический QA-чек-лист

914 
 

Кому полезна эта статья. Веб-студиям, которые сдают клиенту магазин с наполненным каталогом. Интеграторам 1С/Bitrix/PIM, отвечающим за обмены и миграции товарных данных. E-commerce-разработчикам и менеджерам digital-проектов, которым нужно принять или сдать работу по каталогу. Владельцам магазинов, которые хотят понимать, что именно они подписывают в акте приёмки. Методика ниже воспроизводима вручную: достаточно Excel-фильтров и пары небольших скриптов.

Меня зовут Дамир Аюпов, я backend/data-инженер и автор Vericata — сервиса проверки качества технических каталогов: он вытаскивает из товарных карточек названия, артикулы, описания и характеристики, нормализует единицы измерения и ищет противоречия между источниками. Эта статья — не про сервис, а про повторяемую методику приёмочного QA, из которой сервис вырос. Все иллюстрации взяты из одного недавнего аудита.

Что это был за аудит. Домен — оборудование водоснабжения: скважинные, поверхностные и циркуляционные насосы ДЖИЛЕКС и PUMPMAN, насосные станции, гидроаккумуляторы, сменные мембраны, автоматика. Объектом проверки стал обезличенный каталог крупного мультиканального продавца инженерного оборудования: розничная витрина для Москвы, региональная витрина для Казани и B2B-портал. Всего в выборке было 145 страниц: 97 карточек продавца и 48 официальных страниц производителей. Важно: производители здесь ни в чём не «виноваты» — все находки касаются карточек продавца, а официальные страницы использовались как проверочный источник.

Разделение труда было жёстким. Программа выполняла механическую часть: аккуратный обход публичных страниц (с уважением к robots.txt, паузами и кэшем), разбор карточки с раздельным хранением зон — короткого описания, полной таблицы и блока «главные характеристики», — нормализацию единиц, сравнение значений внутри страницы, между каналами и, где модель определялась надёжно, с официальной карточкой, и на выходе — список кандидатов в ошибки. Человек выполнял содержательную часть: разбирал каждого «жёсткого» кандидата по сохранённой копии страницы, официальному источнику и логике предметной области. Никто не читал все 145 страниц глазами — смысл конвейера именно в том, чтобы человеку досталось 19 случаев, а не полторы сотни.

Результат измерялся балансом, а не количеством найденного. После ручной проверки из 19 кандидатов осталось 12 подтверждённых строк отчёта, соответствующих четырём корневым проблемам на шести SKU. Ещё 4 кандидата были отклонены как ложные срабатывания, а 3 остались на ручной проверке. Одна корневая проблема может давать несколько строк, потому что повторяется в нескольких каналах, — и выдавать 12 строк за 12 независимых ошибок было бы нечестно.

Дальше — сама методика: три уровня проверки, восемь классов проблем, чек-лист и формат итогового отчёта.


1. Почему количество импортированных строк ничего не говорит о качестве


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

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

2. Три уровня проверки


Уровень 1 — карточка против самой себя. Одна характеристика на странице часто встречается в нескольких местах: в коротком описании, таблице, блоке ключевых параметров и названии модели. Если их привести к одной единице и сравнить, внутренние противоречия видны без всякого эталона — и спорить с ними трудно: страница опровергает себя сама.

Уровень 2 — канал против канала. Один SKU сверяется между сайтом, региональными витринами, B2B-порталом, выгрузками на маркетплейсы. Этот уровень ловит рассинхронизацию обменов. Но помните вывод из предыдущего раздела: ноль различий здесь — не сертификат чистоты.

Уровень 3 — карточка против официального источника. Характеристики сопоставляются со страницей производителя. Главный подводный камень — поколения: продавцы часто торгуют снятыми с производства линейками, которых на сайте производителя уже нет, а «похожая» актуальная модель — другой товар. В нашем аудите из 97 карточек надёжно сопоставить с официальными страницами удалось только 7 — и это честнее, чем натянуть старую линейку на новую и получить ложные расхождения.


3. Восемь классов проблем


Классификация важнее любого конкретного правила: она определяет, что автоматизировать, что показывать человеку и как считать итог.



Класс 8 — не экзотика, а обязательная часть списка: без него отчёт о качестве чужих данных быстро превращается в отчёт о багах собственных скриптов.


4. Как это выглядит вживую: обезличенные примеры

Противоречие плюс единица (классы 1 и 2). Карточка скважинного насоса: в описании максимальное рабочее давление «5», в таблице той же страницы — «50 бар», рядом — максимальный напор 50 м. Проверка порядка величины уже позволяет оценить, какое значение правдоподобно: p = ρgh, столб воды 50 м — это примерно 4,9 бар, так что «5» согласуется с напором, а «50 бар» ошибается на порядок. Показательно, что расхождение воспроизводилось во всех трёх каналах продавца — одинаковая проблема была опубликована во всех трёх каналах, поэтому её источник, вероятно, находился выше уровня отдельных витрин.



Чужой товар в описании (класс 4). Три карточки сменных мембран одного бренда (24, 50 и 100 литров) несли общее описание, в котором упоминался другой бренд, стоял чужой артикул и описывался мембранный бак целиком — другой класс товара, а не сменная мембрана к нему. Каждый слой по отдельности мог бы быть случайностью; три слоя вместе — уверенный сигнал. Затронуты 3 SKU в двух регионах.

Значение не в том поле (класс 3).
Модель с обозначением «55/50», где по официальной легенде производителя первое число — максимальный расход в л/мин, а второе — максимальный напор в метрах. В поле напора на карточке стояло 55 м: значение расхода, по всей видимости, попало в поле напора. Расхождение всего в 10% — физикой такое не поймать, его ловит именно расшифровка модельного кода. Важно: механизм ошибки методика не доказывает и не должна — она фиксирует противоречие между названием и таблицей.

Несовместимые единицы в дубле поля (классы 1 и 2). У циркуляционного насоса поле «Максимальный расход» встречалось в таблице дважды: «38 л/мин» и «38 л/сек». Разница — в 60 раз: 38 л/с — это 136,8 м³/ч, не согласуется с порядком характеристик прибора мощностью около 95 Вт. Технический урок: храните все вхождения поля, а не первое попавшееся — иначе дубль проглотится молча.

И обязательно — снятые кандидаты (класс 8). Подпись «Напорный патрубок, 1 дюйм» однажды была распознана как значение напора — правило породило пачку ложных кандидатов за один прогон, и это был баг разметки полей, а не каталога. Ещё четыре кандидата отклонились на верификации, потому что сравнивали снятую линейку с её преемником: разные поколения могут легитимно отличаться мощностью, и ошибкой продавца это не является.


Разместите
тендер бесплатно

Наша система сама подберет вам исполнителей на услуги, связанные с разработкой сайта или приложения, поисковой оптимизацией, контекстной рекламой, маркетингом, SMM и PR.

Заполнить заявку 13691 тендер
проведено за восемь лет работы нашего сайта.



5. Чек-лист приёмки каталога после импорта


Применим к любому стеку — Excel, 1С, Bitrix, PIM — и не требует специального софта.

Объём и структура

  • Количество товаров сходится с источником по категориям и брендам, а не только общим итогом

  • Нет дублей по артикулу и штрихкоду

  • Для каждой категории составлен список обязательных полей, и они заполнены (для насоса: расход, напор, мощность)

  • Пустое значение отличается от нуля, «0» не используется как заглушка


Единицы измерения

  • У каждого числового поля определена базовая единица и список допустимых вариантов записи

  • Точечно проверены пары-ловушки: л/мин против л/с и м³/ч, Вт против кВт, бар против атм и МПа, мм против см

  • Десятичная запятая и пробелы-разделители разрядов пережили импорт (число «4 500» не развалилось на два)

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

Карточка против самой себя

  • Характеристики из короткого описания сходятся с таблицей на той же странице

  • Поля, встречающиеся в карточке дважды, совпадают и по значению, и по единице

  • Модельный код расшифрован и сверен с характеристиками — только если производитель публикует официальную легенду обозначений

Каналы и официальный источник

  • Выборка SKU сверена между витринами и каналами

  • В отчёте зафиксировано: совпадение каналов не считается подтверждением корректности

  • Топовые SKU сверены с официальными карточками производителя

  • Сравниваются только одинаковые поколения и модификации; снятые линейки не «склеиваются» с преемниками

Контент

  • В описаниях нет чужих брендов и чужих артикулов

  • Кластеры дословно одинаковых описаний найдены и просмотрены: различает ли текст модели

  • Описание соответствует классу товара (мембрана — не бак, кабель — не катушка)

Процесс

  • У каждой находки сохранены доказательства: страница или строка, поле, оба значения с источниками

  • Каждый кандидат получает явный вердикт: подтверждён, отклонён с причиной или отправлен на ручную проверку

  • На каждый отклонённый false positive заведено правило или регрессионный тест — чтобы он не вернулся в следующем прогоне

6. Что можно автоматизировать

Хорошо автоматизируются: подсчёты и сверка объёмов; нормализация единиц и форматов чисел; сравнение нормализованных значений одного поля между зонами страницы и между каналами; поиск чужих брендов и артикулов; кластеризация одинаковых описаний; проверка полноты обязательных полей; расшифровка модельных кодов — строго по официальным легендам, без догадок. Общий принцип — fail-closed: всё, в чём алгоритм не уверен, уходит в очередь ручной проверки, а не в список ошибок. Габариты и характеристики упаковки не стоит поднимать до «ошибки» автоматически никогда: слишком много легитимных вариантов записи.

7. Что обязательно проверяет человек

Каждого «жёсткого» кандидата — по сохранённой странице, официальному источнику и предметной логике. Только человек надёжно отличает снятое поколение от преемника, знает, что легенда производителя может оговаривать округление, и решает, missing field перед ним или wrong value — это разные классы с разной серьёзностью. И финальное: решение о правке данных всегда остаётся за владельцем каталога; задача проверки — показать и доказать, а не молча исправить. Баланс кандидатов в отчёте обязан сходиться до единицы: в нашем случае 19 = 12 подтверждено + 4 отклонено + 3 в оставлено на ручной проверке.

8. Как выглядит итоговый XLSX

Рабочий формат приёмки — книга с русскоязычными листами: «Сводка» (объёмы, баланс кандидатов, счётчики по классам), «Подтверждённые расхождения», «Пропущенные поля», «Ручная проверка», «Отклонённые кандидаты» (обязательно с причиной снятия), «Сырые данные». Строка расхождения всегда конкретна: поле, значение А с указанием зоны и канала, значение Б с указанием зоны и канала, единицы, вердикт, комментарий. Формулировка «характеристики местами не совпадают» результатом не является. Отдельная колонка — идентификатор корневой проблемы: он связывает строки, порождённые одной причиной, и не даёт выдать 12 строк за 12 независимых ошибок.

9. Про Vericata

Vericata автоматизирует именно описанную механику: разбор карточек и PDF-каталогов, нормализацию единиц, три уровня сравнения и формирование кандидатов с очередью ручной верификации; спорные значения сервис не «исправляет» сам — только показывает с доказательствами. Пример обезличенного отчёта и бесплатная проверка до 20 товаров доступны на сайте Vericata

10. Вывод

Импорт завершён не тогда, когда обмен отработал без ошибок, а когда каталог прошёл приёмку по трём уровням: карточка против себя, канал против канала, карточка против официального источника. Количество строк — метрика объёма, а не качества; совпадение витрин — метрика синхронизации, а не корректности. Восемь классов проблем дают язык, на котором студия, интегратор и заказчик могут договориться о критериях приёмки заранее — и тогда чек-лист из этой статьи превращается из формальности в реальную страховку от «50 бар» в карточке бытового насоса.

Все примеры сняты с публичных страниц 13 июля 2026 года; к моменту публикации или чтения значения могли быть исправлены.

Выскажите мнение
Авторизуйтесь, чтобы добавить свой комментарий.




914

Лучшие статьи

Поделиться: 0 0 0

Оцените статью
Спасибо за оценку