Upc barcode что это
Upc barcode что это
В процессе добавления своего товара для продажи на Амазон Вам как продавцу потребуется указать UPC или EAN код. Эти коды используются для маркировки/идентификации товаров.
UPC (Universal Product Code) — это 12-значный код, который используется в США, а
EAN (European Article Number) — в европейских странах. В отличии от UPC, код EAN имеет 13 знаков.
Следует заметить, что оба стандарта EAN — 13 цифр и UPC — 12 цифр утверждены GS1 (международная организация, которая занимается вопросами стандартизации учета и штрихового кодирования логистических единиц).
● В мире музыкальной дистрибьюции UPC-код присваивается релизу целиком (альбому, EP, синглу), включающему набор треков и обложку. Каждому альбому присваивается один-единственный UPC.
По своей сути UPC-код является штрих-кодом. Точно так же, если бы вы выпускали свой альбом на компакт-диске, на заднике обложки был бы проставлен штрих-код (UPC-код) релиза. ●
На первом этапе вам не обойтись без UPC-кода! Когда вы будете продавать товар на Амазоне под зарегистрированным собственным брендом то вы можете обратиться в GS1 и получить уникальный идентификатор товара для своего товара, который будете использовать впоследствии вместо UPC.
Еще весьма популярный вопрос – сколько мне нужно кодов для моего товара если у меня товар имеет ряд вариаций ( цвет, размер и т.п.)
Коды UPC используются Amazon для идентификации продуктов в их базе данных, и если вы добавляете новый уникальный листинг, вам нужен уникальный код UPC.
Помните, что каждому уникальному предмету нужен уникальный UPC, например:
Если вы продаете футболки, каждому уникальному цвету понадобится уникальный UPC. Если у вас есть 20 Black, 20 White и 20 Green для продажи, вам понадобятся 3 уникальных кода UPC, по 1 для каждого уникального цвета. А если еще разные размеры, то количество UPC = количество размеров * количество цветов.
Чтобы начать использовать UPC-код (ы), вам понадобится учетная запись Amazon Merchant, которая позволит вам добавлять новые продукты в каталог Amazon (учетная запись Pro Seller). После входа в свою учетную запись, перейдите на вкладку «Ресурсы» в верхней левой панели навигации, нажмите «Добавить продукт», затем нажмите ссылку «Создать новый товар»:
После нажатия этой страницы вы попадете на страницу, чтобы выбрать категорию своего продукта, которую вы выберете, в зависимости от продукта, который вы продаете. Вы можете искать категорию или просматривать категорию:
Впоследствии заполните все вкладки необходимой информацией (в каждой вкладке), а также любую другую информацию, которую вы можете предоставить. Обратите внимание, что вы можете сохранить изменения, а затем вернуться и отредактировать их после заполнения всех необходимых полей.
Обратите внимание, что каждый UPC может использоваться только для 1 уникального продукта. Когда вы используете UPC, его нельзя использовать для другого продукта, поскольку каждый UPC уникален.
Также обратите внимание, что если Amazon не принимает код UPC, добавьте в конце кода или вначале 0 (ноль), и он сохранится без проблем.
Стандартизацией и регистрацией кодов UPC занимались организации UCC (Uniform Code Council, Inc.) в США и ECCC (Electronic Commerce Council of Canada) в Канаде. В 2005 году эти организации объединились с европейской ассоциацией EAN и образовали глобальную организацию по стандартизации GS1.
Регистрация штрих-кодов на продукцию от А до Я в 2021 году простыми словами и без боли
Многие предприниматели сталкиваются с новшествами в законодательстве или новыми правилами игры в современном технологическом мире. В большинстве случаев поставщики работающие с крупными ритейлерами и маркетплейсами такими как Wildberries, AliExpress, Ozon, «Беру», Lamoda, Goods.ru,X5 Retail Group, Магнит, Краное и белое, Лента, Ашан, Монеточка, Дикси, Metro Cash & Carry натыкаются на пунктик в договоре о наличии зарегистрированных штрих-кодов на реализуемую продукцию.
В этой статье я постараюсь вам рассказать, процесс регистрации на продукцию и какую задачу он решает. Разобраться что такое штрихкодирование продукции простыми словами и как это сделать легко и просто в 2021 году.
Минуя бюрократические проволочки и нудные программные процедуры – НЕ откладывая свое желание, наконец- то свободно вздохнуть и работать в ногу со временем, а так же получить экспертные знания.
Штрихкодирование — это графический код который наносится на упаковку, изделие, продукцию, содержащий в себе информацию о продукции — где и кем произведено, а также его характеристики. Упрощает жизнь для складского учета НЕ только на собственном производстве, но и для реализации до конечного потребителя.
Самый простой пример для понимания — это когда вы ходите за покупками в любой крупный или средний магазин, супермаркет или торговый центр — на кассе считывается штрих-код на вашем товаре, который вы хотите купить. Специальный сканер считывает штрих-код под разными углами или правильнее сказать плоскостями. Ваша покупка отображается в интерфейсе кассового аппарата с наименованием и весом или другими единицами измерения (метры, штуки и т.д.), после оплаты списывается с остатков. Но это прям вкратце…
На самом деле весь процесс — это система цифрового обмена, которая и звучит с одной стороны сложно, но с другой значительно облегчает жизнь в современном мире. Представьте, что около 15 лет назад в России, когда не было еще таких технологий в природе поход в магазин – если к примеру это был крупный продуктовый магазин (как в советские времена называли гастроном) занимали кучу времени на очереди – пока продавец он, же кассир, взвешивал, упаковывал, укладывал и это при том условии что товар был под рукой, а если нет, то уходил с концами на склад – и поход в магазин превращался в квест.
Итак, сегодня имея на руках современные технологии благодаря штриховому кодирование предприниматель понимает движение товара, его остатков и вообще логистику (подробнее ниже) как на внутреннем рынке, так и на рынке импорта и экспорта.
А потребитель не стоит полдня в очереди, получает свой товар и информацию о производителе, характеристике товара.
Так почему же регистрация штрих-кодов платная? Дело в том, что огромный спрос на удобное использование штрих-кодов требовало контроля и правильного распределения, так сказать в разрезе категории товаров и так далее…А если бы каждый генерировал свой штрих-код на продукцию, то возникла бы путаница даже в масштабах одной деревни – литературно выражаясь. В связи, с чем возникла потребность создания организации, которая в свою очередь регламентировала, генерировала и выдавала индивидуальные/уникальные штрих-коды предприятиям.
На территории России существуют две международные организации, которые выдают уникальные штрих-коды для продукции как для нужд внутри рынка, так и для экспорта продукции. Об особенностях этих организаций поговорим ниже.
Кто такие GS1 и DiSAI и с чем их едят
GS1 — эта организация созданная в 2005 году в Европе и Америке, прародителем является UCC (Uniform Code Council, Inc.) в США и ECCC (Electronic Commerce Council of Canada) в Канаде, которые создали электронный обмен данными и применение штрих-кодов не только на вид конечного продукта, но и в логистике, а именно серийный код транспортной упаковки (SSCC). Согласно легенде первым штриховым кодом продукции, считанным в супермаркете 26 июня 1974 года в 8.01 утра в городе Трой (штат Огайо) является жевательная резинка Wrigley’s, хотя бытует мнение, что это был маркетинговый ход, но одна из тех первых упаковок жвачки со штрих-кодом хранится в Смитсоновском музее американской истории. Данная организация носит статус международной.
DiSAI — это организация создана в 2007 г. усилиями российских разработчиков и тоже носит статус международной организации.
Обе организации занимаются регистрацией штрих-кодов продукции, в том числе самых популярных типов штрих-кодов EAN-13 и ITF-14 – это продукты массового потребления.
В чем отличие этих двух организаций? Отличие в том, что приобретая штрих-коды у регистраторов системы GS1 Вы оплачиваете ежегодный взнос за использование уникальных штрих-кодов, тогда как у аккредитованных регистраторов системе DiSAI штрих-коды закрепляются за покупателем навсегда. Выбор за Вами…
Но Вы должны знать, что действуют он только через аккредитованных представителей, которые в свою очередь проходят обучение/аккредитацию согласно регламенту организации, и это на самом деле сокращает путь для предпринимателя и любой организации у которых есть потребность.
Почему выбран именно этот графический код в виде прямых линий? Дело в том, что черные линии поглощаются под считывающим устройством, а белые отражаются, таким образом, генерируются сигналы по принципу, да и нет…
Не углубляясь в историю происхождения, которая содержит подробности технического характера с победами и провалами, скажу, что история возникновения данного вида штрих-кода каким мы обычно привыкли видеть длилась почти 25 лет с 1948 года по 1973 год, в том числе применялась система кодировки символов короткими и длинными посылками для передачи их по линиям связи, известная как «код Морзе» или «морзянка».
Теперь давайте разберемся для понимания, расшифровку штрих-кода:
Итак давай разберемся по порядку:
EAN – это European Article Number, что в переводе на русский европейский номер товара, в контексте глобальная международная система номеров – этот стандарт является универсальным для всех стран.
Как было ранее описано в блоке «Кто такие GS1 и DiSAI и с чем их едят» про международные организации, в чьей власти выдавать и регистрировать уникальные штрих-коды, генерируют и выдают коды EAN-13 и множество других видов штрих-кодов.
Какие бывают виды EAN:
Так почему же 13 цифр, и снова дело в истории возникновения. Дело в том, что когда было сформирована вся процедура считывания штрих-кода специальными сканерами в Америке и Канаде применялся 12ти значный штриховой код и для реализации в Европе добавили один номер и он, кстати говоря, не последний, а первый.
Интересным фактом также является и то, что данный префикс не означает страну происхождения, а указывает код регионального регистратора, важное уточнение, где зарегистрировалась компания, печатающая код на своей упаковке.
К примеру, Вы производите подушки в Китае, а продаете в России. Коды регистрируете с префиксом начинающиеся на 460-469 (код страны РФ). И на упаковке в Китае, наносите или как чаще бывает, наклеиваете штрих-код страны, где Вы зарегистрированы, в данном примере в России.
Популярность кода EAN-13 заключается в его применение для товаров широкого потребления – проще говоря самый универсальный штриховой код.
И так к кому же обращаться. В России представители GS1 и DiSAI это аккредитованные организации, по специфике деятельность которых связана с консалтинговыми услугами по оформлению как это обычно на практике документов государственной регистрации.
Напомню, что GS1 – предоставляют уникальные штрих-коды на один год, на народном языке абонентская плата, в свою очередь DiSAI предоставляет на пожизненное использование. Конечно, тут уже решать самому предпринимателю, но в силу практического опыта в производстве, я рекомендовал бы второй вариант.
Как происходит процедура в нашей компании:
Вам достаточно предоставить платежное поручение с акцептом банка и ваш штрих-коды активируется, это означает, что при реализации своей продукции будь то экспорт, гипермаркеты, маркетплейсы и другие торговые организации на территории РФ штрих-кода будут легитимны – т.е. законны. Если работа проделана без ошибок и платеж оперативно направлен, то в течении часа Вы становитесь полноценным обладателем.
Надеюсь, что это Вам стал понятен процесс регистрации штрих-кодов в 2021 году, за чем нужна процедура штрихкодирования на продукцию и понимание за чем всё это надо.
Универсальные идентификаторы: штрих коды и их расшифровки
Штрих коды на этикетках различной продукции давно воспринимаются как данность. Они значительно упростили жизнь в логистике, сфере продаж и позволили автоматизировать торговые процессы. С помощью последовательности черных и белых полос кодируют информацию о родословной и некоторых наиболее существенных параметрах товаров.
Путь становления на ноги штрих кода был долгим и тернистым. От момента зарождения первых идей до внедрения технологии в массы прошло без малого четыре десятилетия.
Краткий исторический экскурс
История возникновения штрих кодов уходит корнями в 1932 год. В этот нелегкий период Великой депрессии американский студент Уоллес Флинт опубликовал базовые тезисы, в которых была описана работа идеального супермаркета того времени. Не вдаваясь в подробности, для автоматизации торговых процессов предполагалось использовать перфокарты. Техническая реализация затеи оказалась сложной, поэтому идею отложили на полку до лучших времен.
Вновь к ней вернулись в 1948 году, когда для маркировки товаров было предложено прибегнуть к помощи УФ-чернил. Линейный штрих был изобретен буквально год спустя. В его создании использовались технологии азбуки Морзе и звуковых дорожек. Говоря доступным языком, последовательность точек и тире была переведена в штриховые линии, а для считывания информации взывали к методам озвучки кинофильмов. Таковой заключался в преобразовании элементов различного уровня прозрачности на пленке в звук.
Новоиспеченная технология дожидалась своего часа до 3 апреля 1973 года — именно в этот день была зарегистрирована версия «Универсального товарного кода» UPC (Universal Product Code). Спустя год с небольшим хвостиком под лучом сканера на кассовом аппарате супермаркета был «пробита» первая товарная позиция — упаковка жвачки Wrigley’s Juicy Fruit.
«Жуйке» Juicy Fruit от Wrigley’s была уготована участь стать первой ласточкой, штрих код которой «пробили» на кассовом аппарате магазина. Случилось это 26 июня 1974 года в 8 часов утра. |
Лицезреть ее воочию можно и поныне — пачка жевательной резинки представлена на суд публике в музее Смитсоновского института.
Наши дни
В современных реалиях на конвейер поставлено свыше 50 систем штрихового кодирования. Наибольшее распространение получили коды UPC и EAN (Европейская система кодирования). В общемировой практике чаще всего применяются 13-разрядные штрих-коды типа EAN-13. О них то мы и поговорим.
Для пущей наглядности давайте-ка разберем по пунктикам подноготную штрих кода с картинки ниже.
Из символов под графической линейкой штрих кода можно почерпнуть немало полезной информации. |
Первые две-три цифры в нем обозначают код страны, где зарегистрирована торговая марка. Следующие 4-5 символов несут информацию о предприятии-изготовителе. Еще пять цифр описывают потребительские свойства продукции:
Наконец, в конце всегда стоит циферка контрольной суммы, которая служит для проверки правильности считывания штрих-кода сканером. Она же является показателем подлинности продукта.
Расчет контрольной суммы производится путем нехитрых математических манипуляций в шесть простых шагов:
Таким образом, проверить подлинность товарной позиции можно самостоятельно, вооружившись обычным калькулятором.
Всего существует три основных вида кодов EAN:
Для товарных позиций больших размеров порой применяется упрощенная система кодирования EAN-8, использующая в деле короткий штрих код из 8 символов.
Импортные товары поступают на отечественный рынок со штрих кодами, по которым можно без особых трудностей определить страну-производителя. Вот наиболее «ходовые» из них:
Перечень распространенных в отечественных широтах кодов стран, отсортированный по возрастанию чисел. |
Двумерные коды
Новый виток развития технологии шрифтового кодирования — двумерные коды, разработанные для кодирования большого массива данных. Расшифровка такого кода производится в двух измерениях — по вертикали и горизонтали. Массовому потребителю они известны, в частности, благодаря матричным QR-кодам.
Быстрая оплата квитанций за коммуналку — лишь один из немногих кейсов применения QR-кодов. |
Любой QR-код содержит несколько обязательных элементов: три больших «квадратика», окруженные пустым пространством (по ним программа-сканер определяет позицию кода и корректирует искажение перспективы), а также «квадратик» меньшего размера (служит для определения ориентации служебных областей).
По QR-коду можно сесть на поезд, быстро оплатить квитанцию, получить сведения о туристической достопримечательности, загрузить книгу или приложение на мобильный гаджет. Сценариев их применения существует уйма, а сгенерировать собственный QR-код под силу любому желающему. Достаточно лишь вооружиться специальной программкой для смартфона. Он же служит считывателем данных QR-кода при помощи камеры.
Малоизвестные факты о штрихкодах — загадочные цифры под штрихкодом
Число зверя, штрихи смерти — насколько все это реально? Можно ли зашить в штрихкод видеоролик или фото голой Эммы Уотсон? Бывают ли “неправильные штрихкоды”, и что вообще значит “неправильный штрихкод”?
В “Клеверенсе” мы разрабатываем платформу Mobile SMARTS для создания мобильных решений по учету маркированного товара и постоянно сталкиваемся с детскими ошибками в маркировке. Обычно они вызваны простым нежеланием людей хоть немного разбираться в теме.
Наша платформа тоже не идеальна, но кое-что в своём деле мы понимаем. Статья не к тому, что типа мы крутые и разбираемся, а все вокруг не крутые и не разбираются, нет. У каждого свои задачи, мы тоже часто лажаем. Просто тема набирает популярность и выходит в массы, а любые ошибки стоят денег.
Сначала для затравки расскажем про кассовый штрихкод, а затем про загадочный GS1 DataMatrix, который используется в проекте тотальной маркировки товаров.
Сама статья больше развлекательная, всё изложенное при желании легко гуглится, но может и побудить кого-то изучить тему глубже.
Загадочные цифры под штрихкодом
Цифры под штрихкодом — что это такое? Знающие люди говорят, что тут всё просто: именно эти цифры “зашиты” в штрихкод. Девушка на кассе вбивает в программу цифры под штрихкодом — и вуаля — товар найден.
К сожалению, это заблуждение. Цифры под штрихкодом не “зашиты” в штрихкод. Для разговоров у камина сойдет, а для айтишника беда.
Это распространенное заблуждение приводит к тому, что когда встает задача распечатать штрихкод, человек гуглит бесплатный онлайн генератор штрихкода, пихает в поле эти самые цифры, и… получает проблему на ровном месте.
Надписи под штрихкодом называются Human readable interpretation (HRI). Одно только название уже должно наводить на мысль, что тут не всё в порядке.
Рассмотрим подробнее, где тут собака зарыта.
Кассовый штрихкод
Пример про кассовый штрихкод — для затравки. Он на самом деле не вызывает никаких проблем, потому что за 50 лет использования в софте и оборудовании были вставлены 1000 костылей, чтобы обойти все проблемы (ну почти). Зато он хорошо иллюстрирует вопрос.
Вот в этих двух штрихкодах (EAN-13) ниже, под которыми написано “4601200000003” и “0123456789128”, в обоих нет штрихов для первой цифры. В первом штрихкоде нет штрихов для “4” (она закодирована другим способом), а во втором штрихкоде вообще в принципе нет лидирующего нуля, хотя он и напечатан под штрихкодом.
Да-да, именно первой цифры, а не последней (чексуммы) как можно было бы подумать. Последняя цифра (чексумма) в полосках этих штрихкодов как раз-таки есть, иначе затея с чексуммой не будет работать.
Рассмотрим поближе, что тут происходит.
В первом приведенном штрихкоде (“4601200000003”) в начале идут две длинные полосочки, они кодируют “начало штрихкода”, далее идут штрихи и пропуски для цифры “6”, затем про цифры “0”, “1”, “2”, “0” и “0”, две длинные полосочки в центре говорят про середину, затем пять одинаковых групп штрихов и пропусков кодируют “00000”, далее идут штрихи и пропуски для цифры “3” и завершающие две длинные полоски про конец штрихкода. Итого, в штрихкоде есть штрихи только про “601200000003”. Цифра “3” (последняя) в полосках штрихкода есть, а первой “4” нет! Откуда же взялась “4”?
Дело в том, что “4” закодирована грязным хаком. Для неё не хватает места, и вообще всё это большой исторический казус.
Изначально такие кассовые штрихкоды появились в США, там они состоят из 12 цифр и называются UPC (Universal Product Code). Для переноса технологии в Европу и адаптации стандарта Европе нужны были дополнительные цифры, потому что американские 12 все уже были заняты.
Первым товаром, приобретенным по штрих-коду на этикетке, стал блок из 10 жевательных резинок Wrigley Juicy Fruit. Это произошло в супермаркете Marsh города Трой (Огайо) в четверг, 26 июня 1974 года в 8.01 утра. В историю вошли и имя покупателя, и имя кассира, открывших новую страницу розничной торговли. Теперь упаковка жвачки, которая тогда обошлась в 67 центов, вместе с чеком хранятся в музее американской истории Смитсоновского института.
Чтобы расширить емкость, можно было бы просто добавить еще немного штрихов и пропусков, но в те времена это серьезно ухудшало считываемость. Поэтому вместо того, чтобы просто увеличить штрихкод в ширину, был применен “хак”.
По американскому стандарту любая из цифр штрихкода может быть записана: а) обычными штрихами и пропусками; б) их зеркальным отражением; в) инверсией черного и белого; г) зеркальной инверсией. Всё это нужно для того, чтобы можно было печатать инверсные штрихкоды (белым по черному) и сканировать штрихкод вверх ногами (зеркальное отражение в случае штрихкода — то же самое, что и поворот на 180°).
В “американском” штрихкоде (который на 12 цифр) первые 6 цифр кодируются обычными штрихами, а вторые 6 цифр инвертированными штрихами (где черные штрихи заменены на белые полоски и наоборот). Это сделано для того, чтобы понимать, перевернут штрихкод или нет, нормально я его сканирую или вверх ногами (и затем декодировать цифры в правильном порядке, а не задом наперед).
В новом “европейском” штрихкоде (который на 13 цифр), первая цифра (например, “4”) кодируется не штрихами, а путем «перетасовывания» способов кодирования следующих за ней 6 цифр из первого блока (второй блок из 6 оставили в покое).
Например, следующая за четверкой “6” выводится как обычно, штрихи следующего за ней “0” выводятся в обратном порядке (зеркально), следующие за ней “1” и “2” выводится снова в обычном виде, следующие два “0” снова зеркально. Общая длина штрихкода и число штрихов в результате этого трюка не меняется.
Для “американского сканера” такая белиберда не имеет смысла, а для Европы это тайный знак того, что в штрихкоде закодирована еще одна цифра! (да, мы всегда знали, что европейцы извращенцы).
Для всех цифр от “1” до “9” были придуманы такие правила тасовки способов кодирования. Для “0” ничего нет, т.е. 13-значный штрихкод с лидирующим нулем визуально ничем не отличается от 12-значного штрихкода без этого лишнего ноля (EAN-13 с лидирующим нулем эквивалентен UPC-А).
Из этого получается первый прикол, что если перед нами “американский” штрихкод (в котором варианты кодирования не “перетасованы”), то “американский сканер” читает 12 цифр, а условный “европейский сканер” может считать, что в нем есть лидирующий «0», и считывать лишний ноль (т.к. для кодирования ноля не предусмотрено никакой “перетасовки”, этого “лидирующего нуля” очевидно в принципе нигде нет в штрихкоде).
Конечно, мир давно глобализован, поэтому “американский” сканер и “европейский” сканер — это просто условности. Сканер один и тот же, но у него есть настройка: нужно ли ему в принципе считывать EAN-13 (Европа) или читать только UPC-А (США), а если считывать EAN-13, то надо ли добавлять лишний ноль к американским штрихкодам UPC-А.
С этим связана одна распространенная проблема при внедрении штрихкодирования: когда в базе данных у компании либо нет нолей в начале штрихкодов, а сканер считывает с “лишним” нолем, либо наоборот, в базе данных есть ноль в начале, а сканер его “не считывает” (хотя, что там считывать, — этого ноля в принципе в штрихкоде нет).
Казалось бы, сложно накосячить в использовании EAN-13/UPC. Тем не менее, люди делают следующие ошибки:
В наших программных продуктах, таких как “Магазин 15” или “Склад 15”, построенных на платформе Mobile SMARTS, мы решаем эту проблему очень просто: сканер устройства всегда автоматически настраивается на возврат ноля, а поиск товара по базе данных производится два раза: и с нолем, и без ноля (чтобы уж точно найти товар).
Сканер мы стараемся настраивать программно, без участия человека. Если сканер нельзя настроить программно — то это всегда проблема, потому что по умолчанию сканером может обрезаться не только 0 (который в начале), но еще и чексумма (которая в конце), тогда в программу придут не 13, а уже 11 символов, зачастую даже без указания типа штрихкода (такие замечательные сканеры тоже бывают).
В этом случае мы бессильны улучшить результат. 11 символов могли прийти от сканирования любого другого типа штрихкода, мы не можем считать все штрихкоды как EAN-13. Чтобы настроить сканер, человеку придется сканировать с листа настроечные штрихкоды или заходить в какие-нибудь меню, а всё это — источники ошибок.
GS1 DataMatrix
Этот пример стал популярным благодаря введению обязательной маркировки товаров. История полна граблей, велосипедов и трупиков мелких животных, как сарай вашей бабушки.
Ну ладно, допустим с EAN-13 можно придраться и сказать, что первая цифра всё-таки есть в штрихкоде, просто она закодирована не совсем штрихами (хотя для лидирующего “0” это и не так).
Возьмем тогда другой пример, штрихкод GS1 DataMatrix «(21)abba01(01)04601200000003»:
В этом штрихкоде “внутри” нет ни скобок, ни символа «0», ни буквы «a», ни переноса строки.
Что тут происходит?
Во-первых, никакие скобки в штрихкод не кодируются, они печатаются только для удобства прочтения человеком. Это снова называется Human readable interpretation (HRI), привет, кожаный мешок.
Во-вторых, в штрихкоде есть специальные управляющие символы, которые должна расставить та программа, которая формирует данные для штрихкода. Не какая-то бесплатная opensource программа, написанная умными очкариками, а ваша программа, та самая, которую пишете Вы, мой друг. В этот раз символы, которые нужно вставить, не имеют отношения к “коррекции” и т.п., а размечают данные, которые нужно закодировать в штрихкод.
В самом начале в штрихкод вставляется управляющий символ, который называется FNC1 и имеет код 232, что соответствует либо странному печатаемому символу «Þ» (ANSI), либо русской букве “и” (Windows-1251), смотря какую кодировку использовать. Этот символ говорит, что у нас не просто абы какой DataMatrix, а именно GS1 DataMatrix, данные в котором имеют определенный формат: массив данных из пар (“код поля”, “значение поля”).
Этот управляющий символ FNC1 попадает в самое начало штрихкода, но его нельзя “передать” в штрихкод в составе данных.
Кроме того, непечатаемые символы, вполне очевидно, нельзя копипастить в составе строки, хаха! Страдай, кожаный мешок!
Указание, нужен префикс или не нужен, обычно передают как отдельную настройку (галочку) в программу формирования штрихкода. Если передать префикс как часть данных, то получим либо ошибку, либо два префикса в штрихкоде (в зависимости от используемой программы).
Далее, поскольку в штрихкоде внутри нет скобок, то уже непонятно, где кончается одно поле и начинается другое, где тут номера полей. Без скобок получается “21abba010104601200000003” (тут “01” встречается три раза, ха-ха).
Где заканчивается “01” из значения поля (21) и начинается настоящее (01)?
Это решается следующим способом:
По стандарту GS1 поля имеют формат. Не абы что, а формат значения. Например, значение для (01) должно состоять из 14 цифр и баста (нельзя 13 цифр, нельзя 12 цифр, нельзя не цифры). А поле (21), наоборот, имеет переменную длину, разрешены цифры, латинские буквы обоих регистров, знаки препинания и даже (опачки!) скобки.
Если после значения для (21) штрихкод не закончился, и там еще что-то есть, то в данные вставляется разделитель (это может быть снова или FNC1, или непечатаемый символ GS с кодом 29).
А общее правило звучит так: спецсимвол GS не вставляется, только в случае если AI начинается с пары цифр из этой вот таблицы:
Для всех остальных полей GS1 (не из этой таблицы) в конце значения нужно вставлять GS.
Т.е., мы получим “FNC121abba01GS0104601200000003” (только помним, что первый FNC1 мы не будем передавать в программу формирования штрихкода, а второй GS — это не строка “GS”, а один символ с кодом 29).
Эти требования — именно про данные, а не про штрихкод DataMatrix, потому что в штрихкод DataMatrix можно положить любые данные, они прекрасно закодируются и прочитаются. Тут речь о GS1 DataMatrix, который имеет определенный формат, и ваша программа должна соблюсти этот формат, прежде чем подавать данные в штрихкод.
Вообще говоря, в мире существуют программы печати штрихкодов, которым можно скармливать данные со скобками и они сами всё разрулят. Но это специализированный софт, который стоит денег, а не тот бестолковый и бесплатный онлайн-генератор штрихкодов, которым вы пользуетесь.
И наконец. То, как это будет напечатано и то, как это будет отсканировано, — две большие разницы. То, как данные печатаются под штрихкодом, и как они передаются сканером — это в чистом виде настройки принтера и сканера.
В нашем примере мы закодировали в штрихкод поля порядке: сначала (21), потом (01), а на изображении под штрихкодом распечаталось сначала (01), потом (21). Это снова называется Human readable interpretation (HRI), и порядок вывода в подписи соответствует правилу “потому что так принято”.
Сканер штрихкодов тоже имеет свои настройки, которые заставляют его переставлять поля, вставлять скобки и другие символы, переносить строки и т.п.
В большинстве случаев сканер прочитает наш штрихкод как “21abba01GS0104601200000003”. Никакого лидирующего FNC1, никаких скобок, GS не печатаемый и не виден в “Блокноте” (нужно использовать хотя бы Notepad+).
И принтер, и сканер могут делать со штрихкодами что хотят: добавлять и убирать символы, менять их местами — ради соответствия гайдлайну или для совместимости со сторонней программой.
Что еще интересно: в этом штрихкоде только 16 байт данных (на 24 символа без скобок).
Вот что тут происходит:
Т.е. чтобы закодировать “a”, нужно записать в штрихкод “b”, чтобы закодировать “1”, нужно записать “2” и т.д., именно поэтому прямо в самом штрихкоде нет байта 97 (значение буквы “a” в ASCII).
Итого, в приведенном штрихкоде “закодировано” в байтах 232, 151, 98, 99, 99, 98, 131, 232, 131, 134, 190, 142, 130, 130, 130, 133. И это еще до кодов коррекции и паддинга!
Непонимание процесса кодирования приводит к тому, что, например, для начавшейся обязательной маркировки обуви люди печатают на принтер неправильно сформированные данные и получают неправильные штрихкоды, которые выглядят вполне нормально, читаются приложением “Честный знак”, но данные в них неверные, как минимум это не GS1 DataMatrix.
Штрихкоды неправильно напечатаны, неправильно читаются, и такая обувь не считается правильно промаркированной.
В своем софте “Кировка” мы боремся с этим следующим образом: для печати принимаем в качестве исходных данных любой мусор, пытаемся распарсить его как GS1 DataMatrix, разбираем на косточки. Если всё прошло удачно, то конвертируем в правильный формат, чтобы принтер это понял; а при сканировании перепроверяем данные от сканера, делая таким образом вывод о правильности печати.
Для этого нам, конечно, приходится работать на нативном уровне и со сканером мобильных устройств, и с принтерами, чтобы всё это было правильно ими интерпретировано, а мы собирали максимально полную информацию.
Выполним еще одно упражнение: посмотрим, какого размера должен быть штрихкод GS1 DataMatrix для хранения кода маркировки обуви и легпрома.
На сайте «Честного знака» написано, что код маркировки обуви должен содержать следующие поля (для легпрома те же требования):
Для каждого из этих полей в данных для штрихкода должен быть указан идентификатор применения GS1 (AI, application identifier).
Таблица codeword для DataMatrix
Таблица, объясняющая кодирование КМ обуви в DataMatrix:
Что | Формат | Codewords | Сколько байт | Всего байт, минимум | Всего байт, максимум |
---|---|---|---|---|---|
— | Codeword [232] | 1 | 1 | 1 | |
AI (00) | — | Codeword [130] | 1 | 2 | 2 |
GTIN | 14 цифр | Codeword со [130] по [229] | 7 | 9 | 9 |
AI (21) | — | Codeword [141] | 1 | 10 | 10 |
s/n | 13 знаков ASCII | Codewords с [1] по [128] и со [130] по [229] | от 7 до 13* | 17 | 23 |
— | Codeword 30 | 1 | 18 | 24 | |
AI (91) | — | Codeword 221 | 1 | 19 | 25 |
Ключ проверки | 4 цифры | Codeword с 130 по 229 | 4 | 23 | 29 |
AI (92) | — | Codeword 222 | 1 | 24 | 30 |
Код проверки | 88 знаков ASCII | Codewords с [1] по [128] и со [130] по [229] | от 44 до 88* | 28 | 118 |
* если в данных для штрихкода есть пары подряд идущих цифр, то они будут кодироваться одним байтом, а не двумя (Codewords со [130] по [229]), и это экономит байты.
Как видно, размер данных в теории может меняться в широких пределах от 68 до 118 байт. На практике разброс меньше, длина ближе к 118, потому что в серийном номере и в криптокоде мало цифр и много знаков препинания, включая скобки.
Согласно GS1 DataMatrix Guideline, такие данные укладываются в штрихкоды размером от 36х36 до 44х44 (колонок и строк битов, не миллиметров). В миллиметрах размер будет зависеть от разрешающей способности принтера (обычно это 203-600 dpi).
Таблица из GS1 DataMatrix Guideline
А как же голая Эмма Уотсон? Рассмотрим в следующей статье.