Kody kreskowe i GS1

GS1 Digital Link – jak zbudować kod QR zgodny z GS1

GS1 Digital Link to standard GS1, który zamienia numer GTIN (i opcjonalnie partię, numer seryjny czy datę ważności) w adres internetowy o ściśle określonej budowie, np. https://id.twojadomena.pl/01/09520123456788/10/ABC123?17=271231.

GS1 Digital Link – jak zbudować kod QR zgodny z GS1
Spis treści
  1. Po co GS1 Digital Link, skoro jest EAN?
  2. Składnia GS1 Digital Link URI
  3. Przykład krok po kroku – zbudowany i sprawdzony
  4. Resolver: id.gs1.org czy własna domena?
  5. QR czy Data Matrix z GS1 Digital Link?
  6. Rozmiar kodu, wymiar X i strefa ciszy
  7. Druk na drukarce etykiet
  8. Jak czytniki obsługują GS1 Digital Link
  9. Najczęstsze błędy
  10. Źródła

GS1 Digital Link to standard GS1, który zamienia numer GTIN (i opcjonalnie partię, numer seryjny czy datę ważności) w adres internetowy o ściśle określonej budowie, np. https://id.twojadomena.pl/01/09520123456788/10/ABC123?17=271231. Taki adres w kodzie QR odczyta skaner przy kasie, kolektor w magazynie i telefon klienta. Poniżej: reguły budowy URI według standardu URI Syntax 1.7.0 (sierpień 2026), sprawdzony przykład, wybór domeny, rozmiar kodu i konfiguracja czytników.

Według GS1 Digital Link to ustandaryzowana metoda kodowania identyfikatorów GS1 (GTIN, GLN, SSCC), dzięki której numer produktu staje się „bramą do informacji”, a marka może zmieniać treści cyfrowe bez zmiany opakowania. W praktyce jeden kod obsługuje:

  • kasę – QR z GS1 Digital Link URI to jeden z trzech kodów 2D, które wytyczne GS1 uznają za zgodne z POS (tło: Sunrise 2027 i kody 2D GS1),
  • konsumenta – według GS1 kod QR odczyta domyślna aplikacja aparatu w telefonie,
  • dane zmienne – partię, numer seryjny i datę ważności, których EAN-13 nie zapisze.

O nośnikach danych dla paszportu produktu, w tym o kodach z GS1 Digital Link, piszemy w artykule Cyfrowy Paszport Produktu (DPP) – nośniki danych i przygotowanie. Różnice między zwykłym QR, GS1 QR Code (z FNC1) a QR z GS1 Digital Link opisaliśmy w przewodniku rodzaje kodów kreskowych w firmie.

Element Przykład Reguła (URI Syntax 1.7.0, GS1)
Schemat https:// http lub https; HTTPS zalecany (rozdz. 3)
Domena id.twojadomena.pl domena, którą kontrolujesz, najlepiej z subdomeną „id” (GS1 Best Practices 1–2)
Klucz główny /01/09520123456788 AI 01 + GTIN zawsze w 14 cyfrach (4.1)
Kwalifikatory /22/…/10/ABC123/21/12345 opcjonalne, w stałej kolejności: 22 (wariant), 10 (partia), 21 (numer seryjny) (4.9)
Atrybuty ?17=271231 w zapytaniu jako pary klucz=wartość, łączone & lub ; (4.10, rozdz. 3)
  • GTIN-14. GTIN-8, GTIN-12 i GTIN-13 uzupełniasz zerami wiodącymi do 14 cyfr. Kasa i ERP muszą więc dopasować 14-cyfrowy GTIN z kodu 2D do 13-cyfrowego z EAN.
  • Formaty wartości są takie jak w identyfikatorach zastosowania GS1: AI 17 (data ważności) i AI 15 (data minimalnej trwałości) – 6 cyfr RRMMDD, AI 10 i AI 21 – do 20 znaków alfanumerycznych.
  • Inne klucze. Ścieżka może zaczynać się też m.in. od SSCC (00), GLN (414), GDTI – dokumentu (253), GRAI (8003) czy GIAI – środka trwałego (8004).
  • Wielkość liter. Po nazwie domeny URI rozróżnia wielkie i małe litery – abc123 to inna partia niż ABC123.

Znaki wymagające percent-encoding

Wartości GS1 korzystają z 82-znakowego podzbioru ISO/IEC 646. Znaki o specjalnym znaczeniu w adresach standard każe zapisywać kodami (sekcja 4.2):

Znak Zapis Znak Zapis Znak Zapis
! %21 * %2A ; %3B
# %23 + %2B < %3C
% %25 , %2C = %3D
& %26 / %2F > %3E
' %27 : %3A ? %3F
( %28 ) %29

Przykład krok po kroku – zbudowany i sprawdzony

Produkt: partia AB/12+3, numer seryjny 12345, data ważności 31.12.2027. Bazą jest numer z przykładów standardu GS1 (952012345678), a nie prawdziwy GTIN.

  1. Cyfra kontrolna – metoda GS1: cyfry mnożysz naprzemiennie przez 3 i 1, sumujesz i odejmujesz od najbliższej równej lub wyższej wielokrotności 10. Policzyliśmy to skryptem w Pythonie (sprawdzonym na przykładzie GS1: 629104150021 → suma 57 → 3). Dla 952012345678 suma wynosi 102, cyfra kontrolna 110 − 102 = 8.
  2. GTIN-14: 09520123456788 (skrypt potwierdził poprawność cyfry kontrolnej dla 14 cyfr).
  3. Ścieżka: /10/, potem /21/.
  4. Percent-encoding partii: AB%2F12%2B3.
  5. Zapytanie: ?17=271231.

Wynik (74 znaki): https://id.example.com/01/09520123456788/10/AB%2F12%2B3/21/12345?17=271231

Te same dane w składni element string (np. dla GS1 DataMatrix): (01)09520123456788(17)271231(10)AB/12+3(21)12345. URI sprawdzisz narzędziem GS1 Barcode Syntax Resource, które według GS1 waliduje obie składnie i zamienia jedną na drugą.

Postać kanoniczna (sekcja 4.12) to wariant do porównywania adresów: HTTPS, domena id.gs1.org, bez ukośnika na końcu, w zapytaniu tylko klucze będące identyfikatorami zastosowania GS1, zalecane posortowanie leksykalne (np. 15=…&17=…&3103=…). Na Twojej domenie kolejność atrybutów w zapytaniu może być dowolna, kolejność kwalifikatorów w ścieżce – nie.

Resolver: id.gs1.org czy własna domena?

Resolver kieruje skan do właściwej treści. Standard GS1-Conformant Resolver (Release 1.2.1, sierpień 2026) wymaga dokładnie jednego linku domyślnego dla każdego obiektu, a na żądanie (linkType=linkset lub nagłówek Accept: application/linkset+json) zwrócenia listy wszystkich linków zamiast przekierowania. Resolver zgodny z GS1 publikuje plik opisu pod /.well-known/gs1resolver – tak jak globalny resolver GS1 id.gs1.org. Według standardu proste przekierowanie 1:1 nie wymaga specjalnego oprogramowania.

id.gs1.org nie jest obowiązkowy. Centrum pomocy GS1 pisze, że resolver może prowadzić każdy, identyfikatory niesie struktura adresu, a nie domena, i że marki oraz sieci będą używać własnych domen – najlepiej krótkich. Własną domenę rekomendują też wytyczne GS1 dla handlu, a GS1 UK dodaje argumenty: kontrola nad analityką skanów i adres, który przechodzi z marką przy jej sprzedaży. Najprostszy wariant to subdomena id.twojadomena.pl z przekierowaniem na stronę produktu (GS1 Best Practice 3); cel zmienisz w dowolnej chwili bez zmiany opakowania. Utrzymanie domeny staje się wtedy częścią procesu produktowego.

Tabela 4-1 wytycznych GS1 dla handlu: QR odczyta domyślna aplikacja aparatu w telefonie, ale jest większy; Data Matrix z GS1 Digital Link jest mały, lecz do treści cyfrowych potrzebuje specjalnej aplikacji. Oba wymagają aktualizacji oprogramowania skanerów kasowych i nie dotyczą regulowanych wyrobów ochrony zdrowia (tam – GS1 DataMatrix). Jeśli kod ma prowadzić konsumenta do treści, wybierz QR. Pełne porównanie: kod QR czy DataMatrix – co wybrać.

Rozmiar kodu, wymiar X i strefa ciszy

Dla kodów 2D skanowanych przy kasie GS1 podaje wymiar modułu X: 0,396 mm (minimum), 0,495 mm (wartość docelowa), 0,990 mm (maksimum); dla produktów skanowanych także w dystrybucji ogólnej – 0,743–0,990 mm. Strefa ciszy QR to według wytycznych GS1 4X z każdej strony (przy X = 0,495 mm – 1,980 mm), Data Matrix – 1X. Poziomy korekcji QR według GS1: L (7%), M (15%), Q (25%), H (30%); wyższy zwiększa kod. Sprawdziliśmy to w otwartej bibliotece segno 1.6.6 (Python):

Zawartość Korekcja Wersja / moduły Bok przy X = 0,495 mm (bez / ze strefą ciszy)
sam GTIN (40 znaków) M 3 / 29 × 29 14,4 / 18,3 mm
URI z przykładu (74 znaki) L 4 / 33 × 33 16,3 / 20,3 mm
jw. M 5 / 37 × 37 18,3 / 22,3 mm
jw. Q 6 / 41 × 41 20,3 / 24,3 mm
jw. H 8 / 49 × 49 24,3 / 28,2 mm

Wynik zależy od generatora – wytyczne GS1 ostrzegają, że enkodery stosujące jeden tryb dla całej treści dają większe kody, i radzą przetestować kilka. GS1 zaleca krótki URI (Best Practice 4) i kodowanie tylko danych potrzebnych automatycznie przy kasie. Według GS1 wielkie litery koduje się wydajniej, a schemat i domena nie rozróżniają wielkości liter; w naszym teście (segno, poziom M) domena zapisana wielkimi literami nie zmniejszyła kodu.

Druk na drukarce etykiet

Specyfikacja Zebra ZD621 wymienia w ZPL kody QR Code i Data Matrix oraz rozdzielczość 203 dpi (8 punktów/mm) lub 300 dpi (12 punktów/mm). Moduł z 4 punktów przy 8 punktach/mm albo z 6 punktów przy 12 punktach/mm ma 0,5 mm – blisko wartości docelowej GS1 (więcej: rozdzielczość drukarki etykiet a wymiar X). W ZPL kod QR tworzy komenda ^BQ (orientacja, model – zalecany 2, powiększenie, korekcja H/Q/M/L, maska), a pole danych zaczyna się od poziomu korekcji i trybu, np. ^FDMA,https://id.example.com/01/09520123456788^FS. Wydruk sprawdź weryfikatorem i skanerem docelowym, nie tylko telefonem.

Przykłady z kategorii drukarki etykiet biurkowe: Zebra ZD621t 203 dpi, termotransferowa, peeler (termotransfer, 104 mm) i Zebra ZD621d 300 dpi, obcinak, RS232, BT, Ethernet (druk termiczny bezpośredni, 300 dpi).

Czytnik 2D z obsługą QR Code odczyta taki kod, ale kasa czy WMS potrzebuje zwykle GTIN-u i danych GS1, a nie całego adresu. Według materiału GS1 Solution provider 2D readiness skanery kasowe mają umieć zamienić GS1 Digital Link URI na składnię element string, a w trybie Mode 2 przesyłać w niej GTIN i dodatkowe dane.

Skanery Zebra

W przewodniku serii DS82 (m.in. DS8208) fabrycznie: GS1 Digital Link – wyłączone, tryb – Mode 1 (tylko GTIN), czas oczekiwania na kod 2D – 200 ms. Funkcję trzeba więc świadomie włączyć; tryby i testy opisuje checklista gotowości czytników i kas na kody 2D. Przykłady z kategorii skanery do kas i czytniki ręczne:

Karty produktów nie podają obsługi GS1 Digital Link w firmware – potwierdź ją dla modelu i wersji oprogramowania przed wdrożeniem.

Terminale z Androidem – DataWedge

W terminalach Zebra dane skanu przekazuje DataWedge (DataWedge – jak przekazać skan do dowolnej aplikacji Android). Według dokumentacji Zebra:

  • DataWedge 15.0.55 dodał parsowanie kodów GS1 i GS1 Digital Link w wyjściu Intent, a 15.0.60 – dekoder GS1 Digital Link z trzema trybami,
  • dekoder nie jest domyślnie włączony; ma parametry GS1 Digital Link Mode (Mode 1 domyślny) i Prioritization Timeout (100–3000 ms, domyślnie 200 ms),
  • Mode 1 wysyła tylko GTIN z pierwszego zdekodowanego kodu, Mode 2 – GTIN i pozostałe dane, jeśli w czasie oczekiwania odczyta kod 2D, Mode 3 – czeka na kod 2D po odczycie 1D i łączy pasujące kody 8-cyfrowym prefiksem,
  • parsowanie zwraca tokeny, m.in. digital_link_domain, di (GTIN), lot_number, serial_number, expiration_date_original.

Najczęstsze błędy

  • ☐ GTIN bez zer wiodących (wymagane 14 cyfr).
  • ☐ /21/ przed /10/ w ścieżce.
  • ☐ Data w formacie innym niż RRMMDD.
  • ☐ Niezakodowane „/”, „+”, „#”, „?” w partii lub numerze seryjnym.
  • ☐ Generator lub system zmieniający wielkość liter w ścieżce.
  • ☐ Zwykły QR z adresem strony zamiast URI z GTIN.
  • ☐ Strefa ciszy QR poniżej 4 modułów, moduł poza 0,396–0,990 mm.
  • ☐ Wygasła domena lub brak przekierowania.

Przygotowujesz etykiety z kodami QR GS1 albo wymieniasz skanery pod kody 2D? Skontaktuj się z nami – pomożemy dobrać drukarki i czytniki, a przy większej liczbie stanowisk przygotujemy indywidualną ofertę.

Źródła

Produkty z artykułu

Najczęściej zadawane pytania

Czy muszę używać domeny id.gs1.org?

Nie. Według GS1 resolver może prowadzić każdy, a markom zaleca się własną, krótką domenę. id.gs1.org występuje w kanonicznej postaci URI, służącej do porównywania adresów.

Gdzie wpisać partię, a gdzie datę ważności?

Partia (AI 10) i numer seryjny (AI 21) idą do ścieżki, w kolejności 10, potem 21. Data ważności (AI 17) trafia do zapytania po „?”, w formacie RRMMDD.

Jaki poziom korekcji błędów wybrać?

Wytyczne GS1 dla handlu nie wskazują jednego poziomu. Serwis qrcode.com podaje, że najczęściej wybiera się M, a Q lub H tam, gdzie kod może się zabrudzić. Pamiętaj, że wyższy poziom zwiększa kod.

Czy zmiana strony produktu wymaga nowego kodu?

Nie. Zmieniasz cel przekierowania na swojej domenie lub w resolverze, a kod na opakowaniu zostaje bez zmian.

Ładowanie...
Powrót do góry