Маркировка обуви: коды в каталоге поставщика

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

Чем файл кодов обуви отличается от обычного прайса

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

Второе отличие — единица идентификации. GTIN, четырнадцатизначный код товара внутри DataMatrix, присваивается не модели целиком, а каждому размеру: у одной модели столько GTIN, сколько размеров в ряду. Поэтому сопоставить коды с каталогом «по наименованию» не выйдет в принципе — наименование у всех размеров одно и то же.

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

Как выглядит выгрузка кодов от поставщика

Чаще всего это CSV или XLSX, где одна колонка — полный код DataMatrix: четырнадцать цифр GTIN, затем серийный номер и криптографический хвост. Иногда код уже разбит на колонки: GTIN отдельно, серийник отдельно. Вокруг данных живёт служебная обвязка: шапка с реквизитами производства, строки-итоги, пустые строки-разделы, а то и коды коробов в том же столбце.

Выгрузка кодов маркировки обуви от поставщика: шапка с реквизитами, коды пар и коробов в одном столбце
Сырая выгрузка от производства: служебная шапка, коды пар и коды коробов вперемешку

Вторая засада — обёртки. Код может прийти чистой строкой, а может — с идентификаторами применения в скобках: «(01)…(21)…». Ваша система обычно ждёт один конкретный вид, и приводить файл к нему придётся самостоятельно. Для ориентира — что из чего состоит:

Фрагмент кодаЧто внутри
GTINПервые 14 цифр — идентификатор связки «модель + размер»
Серийный номерУникальный номер конкретной пары внутри GTIN
КриптохвостПроверочная часть кода, обрезать её нельзя

Сопоставление GTIN с артикулом каталога

Связующее звено между файлом кодов и каталогом — GTIN. Попросите у поставщика таблицу соответствия «GTIN → артикул, размер» или соберите её из его каталога, если GTIN там присутствует. Держите это соответствие отдельным файлом и сверяйте по нему две вещи: каждому GTIN соответствует ровно один артикул, а каждому артикулу — ожидаемое число кодов.

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

Чистка и подготовка файла в конвертере

Когда соответствие «GTIN — артикул» есть, файл приводят к виду, который примет ваша учётная система. Откройте конвертер на странице подготовки кодов для «Честного знака» и загрузите выгрузку:

  1. Шаг «Структура»: укажите, с какой строки начинается таблица, и уберите служебную шапку и строки-разделы — иначе они попадут в данные и собьют сверку.
  2. Шаг «Колонки»: на колонку кода назначьте «Убрать пробелы» — хвостовые и неразрывные пробелы из выгрузок — и «Заменить текст» для обёрток вида «(01)» и «(21)». Лишние колонки удалите, оставшиеся переименуйте под ваш шаблон.
  3. Шаг «Фильтры»: отсейте строки, которые не тянут на код пары, — пустые, итоговые и коды транспортных коробов, по длине значения или по признаку в отдельной колонке, если поставщик её даёт.
  4. «Экспорт»: скачайте XLSX со значениями или CSV в UTF-8 с точкой с запятой.
Шаг «Колонки» в конвертере: действия «Убрать пробелы» и «Заменить текст» на колонке кода маркировки
Шаг «Колонки»: обёртки «(01)» и «(21)» сняты, пробелы убраны — в превью чистые коды

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

Типовые ошибки при подготовке файла кодов

  • Потерян ведущий ноль GTIN. CSV открыли двойным кликом — Excel превратил код в число, и ноль исчез. Сверка по такому GTIN не находит ни одного артикула.
  • Дубли кодов. Поставщик прислал выгрузку повторно, и она пересеклась с предыдущей. Один код на две пары — гарантированный конфликт при загрузке.
  • Коды коробов в файле пар. Система ждёт коды единиц товара, а получает транспортные — пакет отклоняется целиком.
  • Обрезанный криптохвост. Код перекопировали «до первых двадцати пяти символов» — такой код не читается сканером и не проходит проверку.
  • Полупары посчитаны как пары. В прайсе два левых ботинка по отдельности, а код выписан на пару — количества не сойдутся никогда.
Шаг «Фильтры» в конвертере: из файла кодов обуви отсеяны коды коробов и пустые строки
Шаг «Фильтры»: коды коробов и служебные строки отсеяны, в файле только пары

Частые вопросы

Поставщик прислал коды одним столбцом без артикулов — как понять, какой код к какой модели?

Никак, пока нет таблицы соответствия. Из каждого кода извлеките GTIN — первые четырнадцать цифр — и запросите у поставщика связку «GTIN → артикул, размер». По ней коды раскладываются по позициям каталога автоматически; вручную по наименованиям эта работа не делается.

В файле вперемешку коды пар и коробов — что делать?

Разделить до загрузки. Если у поставщика есть признак типа кода в отдельной колонке — отфильтруйте по нему. Если нет, ориентируйтесь на длину и структуру значения: транспортные коды отличаются форматом от кодов единиц товара. Отсейте лишние фильтром в конвертере и выгрузите пары отдельным файлом.

Excel превратил коды в числа вида 4,6E+12 — файл испорчен?

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

Можно ли из каталога «модель, размеры 36–41» автоматически получить строки кодов?

Нет, и это принципиально: коды не генерируются из каталога, их выписывает производитель или импортёр на каждую произведённую пару. Каталог нужен для обратной задачи — разложить уже выданные коды по своим позициям через соответствие «GTIN — артикул».