Попробовать

Коды Честного Знака «не загружаются»: три причины

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

1. GTIN — это не баркод Wildberries

Внутри кода маркировки лежит (01)GTIN(21)серийный номер. GTIN — четырнадцатизначный номер, который продавец регистрирует сам в GS1. Баркод Wildberries — тринадцать цифр, и площадка выдаёт его сама; у товаров маркетплейса он обычно начинается с 20.

Это разные номера разных систем. Сравнение «в лоб» не совпадёт никогда, и ни один код не привяжется к товару.

Как сравнивать правильно: GTIN приводится к тринадцати знакам (ведущий ноль отбрасывается) и сверяется с тем номером, который продавец зарегистрировал в GS1 для этого товара, а не с баркодом площадки. Если GTIN системе незнаком — это вопрос, а не отказ: у человека надо спросить, чей это товар, и запомнить ответ.

2. Невидимый разделитель режет код на части

В коде маркировки группы отделяются символом GS — 0x1D. Он невидим, но он есть, и в выгрузках встречается как настоящий символ.

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

Лечится явным разбором: строки режутся только по \r\n, \r и \n, а 0x1D остаётся внутри кода. Заодно стоит принимать записи, где разделитель написан текстом: , <GS>, ~ — выгрузки бывают разные.

3. Этикетка знает, чей это код, — если её прочитать

На печатной PDF-этикетке Честного Знака самого кода текстом нет: он нарисован Data Matrix. Зато рядом человеческим текстом напечатано описание: «Джинсы Cuore Fiore, цвет голубой, размер 27, состав: 100% хлопок, артикул джинс.03-голубой».

Артикул продавца и размер дают однозначную идентификацию товара — ту же, что в карточке на маркетплейсе. Значит, незнакомый GTIN можно не спрашивать у человека, а опознать по подписи с той же страницы.

Две вещи, на которых здесь легко ошибиться:

Почему на этом нельзя экономить

Код маркировки выдан один раз и за деньги. Наклеенный не на тот товар, он превращается в штраф от площадки, а неполный комплект кодов — в возврат всей поставки: товар без маркировки площадка не примет, а товар, у которого коды есть не на всё, не примет тем более.

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


В EasyCRM коды распознаются прямо с PDF-этикеток, товар определяется по артикулу и размеру с той же страницы, а реестр «Мои КИЗы» показывает, что свободно, что израсходовано и кто печатал.

Завести кабинет