zplCloud Blog
GS1 Sunrise 2027: codici a barre 2D alla cassa – cosa serve ora alle etichette ZPL
Entro la fine del 2027 le casse del retail in tutto il mondo dovrebbero leggere GS1 DataMatrix e QR Code con GS1 Digital Link. L’EAN-13 resta. Ogni regola con la sua fonte, esempi ZPL testati per ^BQ e ^BX e un modo per migrare automaticamente i modelli esistenti.
Entro la fine del 2027 la cassa impara il 2D
Entro la fine del 2027 gli scanner delle casse del retail in tutto il mondo dovrebbero leggere, oltre a EAN/UPC, tre codici a barre 2D: GS1 DataMatrix, QR Code con GS1 Digital Link e Data Matrix con GS1 Digital Link. GS1 US la chiama “Sunrise 2027”, GS1 a livello globale “Ambition 2027”. L’EAN-13 resta e nessuno è obbligato a stampare un codice 2D. Chi ne aggiunge uno lo mette accanto al codice a barre lineare, con lo stesso GTIN, e rispetta le regole su dimensione X, zona di silenzio e posizionamento delle GS1 General Specifications. Questo articolo elenca ogni regola con la sua fonte e propone esempi ZPL testati per ^BQ e ^BX, un’etichetta prima/dopo e un modo per verificare e migrare automaticamente i modelli esistenti.
In breve: il 2027 è un obiettivo per gli scanner del retail, non una data di spegnimento dell’EAN. Durante la transizione il codice 2D si aggiunge sulla confezione, non sostituisce mai il codice a barre lineare. Per ZPL a 203 dpi significa: dimensione del modulo da 4 a 7 dot, zona di silenzio di 4 moduli attorno al QR Code e non più di 50 mm dal centro dell’EAN.
Cos’è Sunrise 2027 e cosa non è
La formulazione più chiara si trova sulla pagina di GS1 dedicata alla preparazione degli scanner: il settore si è dato l’obiettivo che, entro la fine del 2027, tutti i sistemi di punto vendita (POS) del retail siano in grado di leggere ed elaborare un insieme definito di codici a barre 2D con standard GS1, in aggiunta ai codici a barre lineari esistenti. La linea guida globale di implementazione (Release 1.1.0, dicembre 2025) precisa il minimo: il POS deve identificare e decodificare il GTIN da qualsiasi codice a barre lineare o 2D conforme a GS1, emettere un solo bip e trasmettere quell’unico GTIN. È la modalità di scansione 1, il requisito minimo per il 2027.
Per la cassa sono approvati esattamente tre codici a barre 2D:
| Codice a barre 2D | Contenuto (sintassi) | Identificatore di simbologia |
|---|---|---|
| GS1 DataMatrix | Sintassi a stringa di elementi GS1 con FNC1, ad es. (01)…(17)…(10)… | ]d2 |
| QR Code con GS1 Digital Link | Indirizzo web secondo la sintassi URI di GS1 Digital Link | ]Q1 |
| Data Matrix con GS1 Digital Link | Indirizzo web secondo la sintassi URI di GS1 Digital Link | ]d1 |
Cosa Sunrise 2027 non significa:
- L’EAN-13 non scompare. La linea guida globale afferma che i codici a barre lineari come EAN/UPC e GS1 DataBar “non scompariranno e coesisteranno con i codici a barre 2D finché ci saranno usi per loro”. GS1 Germany, GS1 Austria e GS1 Switzerland dicono lo stesso.
- Nessuno deve stampare un codice 2D nel 2027. GS1 Germany dichiara che le aziende che vogliono restare al codice a barre lineare non devono aggiungere un codice 2D. GS1 US sottolinea che “non è necessario implementare tutte le funzionalità del 2D entro quella data”.
- Il 2D non sostituisce ancora il codice a barre lineare. GS1 General Specifications 26.0, sezione 4.15.4: un GS1 DataMatrix, un QR Code o un Data Matrix con Digital Link SHALL essere usato in aggiunta a EAN/UPC o GS1 DataBar. La linea guida indica la soglia: solo quando il 90 % delle soluzioni di scansione POS sarà in grado di elaborare codici a barre 2D conformi a GS1 si potrà eliminare il codice lineare. Per questo non esiste una data.
- Non è una legge. GS1 sviluppa standard ad adozione volontaria. Gli obblighi nascono solo dai requisiti dei retailer o da normative proprie, per esempio in ambito sanitario.
Una vecchia FAQ in PDF di GS1 Germany (datata novembre 2022) diceva ancora che dal 2028 il titolare del marchio avrebbe scelto tra EAN e codice 2D. I testi attuali legano l’eliminazione del codice lineare alla soglia del 90 %, non a un anno. Il riferimento sono le General Specifications 26.0 e la linea guida 1.1.
Calendario e tappe
| Quando | Cosa | Fonte |
|---|---|---|
| 2021 | Decisione dell’Assemblea generale di GS1 Global sulla migrazione al 2D al POS | GS1 Switzerland, FAQ |
| feb. 2022 | Guida in lingua tedesca “Migration auf 2D Codes am POS”, edizione 1.1 (GS1 AT e GS1 DE) | GS1 Austria |
| nov. 2025 | Traduzione tedesca della linea guida di implementazione, edizione 1.1 | GS1 Germany |
| dic. 2025 | 2D Barcodes at Retail Point-of-Sale Implementation Guideline, Release 1.1.0 | GS1 |
| gen. 2026 | GS1 General Specifications Release 26.0 con la Tabella 5-46 per il 2D al POS | GS1 |
| lug. 2026 | Position paper 2.0.0: codice a barre 2D unico per marche del distributore e prodotti etichettati in negozio | GS1 |
| ago. 2026 | GS1 Digital Link URI Syntax 1.7.0 | GS1 |
| Fine 2027 | Obiettivo: il POS legge il GTIN da tutti e tre i codici a barre 2D (almeno modalità 1) | GS1 |
| In seguito | Solo 2D sui prodotti di marca non prima che il 90 % delle soluzioni di scansione POS sia compatibile con il 2D | Linea guida GS1 1.1, sezione 4.1 |
GS1 mantiene un elenco aggiornato di continuo, in cui i produttori di scanner, verificatori, stampanti e software per codici a barre comunicano il proprio stato rispetto ai criteri “2D capable”; al momento della stesura era datato 8 ottobre 2026. Tra i produttori di stampanti elencati figurano Zebra e TSC.
Situazione regionale: USA, DACH e resto del mondo
Stati Uniti. GS1 US gestisce il tema come “Sunrise 2027” e raccomanda un approccio per gradi (crawl, walk, run). Per i marchi: aggiungere codici a barre 2D alle confezioni esistenti e aggiornare i QR code esistenti a GS1 Digital Link con il GTIN; poi aggiungere dati come varianti e date di produzione o di scadenza; infine usare il 2D per il coinvolgimento dei consumatori. Per i retailer: installare scanner compatibili con Sunrise che leggano il 2D ed estraggano il GTIN al POS; poi aggiungere il 2D alle marche del distributore; infine ottimizzare sicurezza, tracciabilità e inventario. In un sondaggio di GS1 US del 2025 tra i consumatori, il 79 % ha dichiarato di essere più propenso ad acquistare prodotti con un QR code scansionabile che fornisce informazioni aggiuntive sul prodotto.
Germania. GS1 Germany definisce la doppia marcatura durante la transizione “in der Regel sinnvoll beziehungsweise erforderlich” (in genere opportuna o necessaria), perché non tutti i sistemi di cassa elaborano già il 2D. Cita dm e Beiersdorf come primo caso al POS. Una checklist in 5 punti di GS1 Germany consiglia di partire da un caso d’uso e da un gruppo di prodotti e di testare regolarmente stampa, leggibilità e integrazione di sistema.
Austria. GS1 Austria scrive che i codici 2D integreranno il classico codice a barre lineare, senza sostituirlo, e che nell’attuale fase di transizione accanto a un codice 2D serve un codice a barre 1D. I codici 2D possono essere letti solo da scanner basati su immagine; i classici scanner laser non ci riescono.
Svizzera. GS1 Switzerland afferma che i codici a barre EAN/UPC resteranno nel retail ancora a lungo dopo il 2027. Sulla tecnologia di cassa dice che la maggior parte dei sistemi POS in Svizzera è già in grado di scansionare codici 2D e che spesso basta un aggiornamento software.
Altre regioni. GS1 osserva che la transizione procede gradualmente, con tempi diversi nelle varie parti del mondo. Tra i suoi casi di studio ci sono Woolworths in Australia, la gastronomia Parla Deli in Brasile e 7-Eleven in Thailandia.
Chi è coinvolto
| Chi | Cosa fare |
|---|---|
| Titolari di marchio | Decidere se e quale codice a barre 2D mettere su quali prodotti, definire il dominio Digital Link, adattare confezioni ed etichette. |
| Retailer | Configurare il software degli scanner per una delle modalità da 1 a 3, preparare il software POS per i dati aggiuntivi, un solo bip per articolo quando sono presenti due codici a barre. |
| Stampa etichette e IT | Modelli ZPL, etichette per bilance e per prodotti freschi, risoluzione della stampante, fonti dati per lotto e date. |
| Fornitori di software e stampanti | Criteri GS1 “2D capable”: ]d2, ]d1, ]Q1, dimensione X, zona di silenzio e qualità di stampa secondo le tabelle di specifica dei simboli. |
| Sanità e farmaceutica | Resta con GS1 DataMatrix, vedi sotto. |
I prodotti etichettati in negozio sono la leva più rapida. Il position paper di GS1 di luglio 2026 indica gastronomia, panetteria e marche del distributore come ambiti in cui un retailer può già lavorare con un solo codice a barre 2D, perché controlla direttamente etichetta, scanner e POS. Il prerequisito è almeno la modalità di scansione 2. Queste etichette escono spesso da bilance e stampanti di etichette, frequentemente in ZPL.
Sanità. Qui il settore ha scelto GS1 DataMatrix come unico codice a barre 2D già all’inizio degli anni 2000; secondo la linea guida è anche il codice a barre 2D di riferimento per i prodotti sanitari scansionati alla cassa del retail. In ambito sanitario GS1 Digital Link non viene codificato in un codice a barre 2D. Negli Stati Uniti la FDA richiede per i dispositivi medici un UDI composto da un identificativo del dispositivo e da un identificativo di produzione (lotto, numero di serie, data di scadenza o di fabbricazione), in chiaro e in forma leggibile dalla macchina. Per i farmaci soggetti a prescrizione, il DSCSA prescrive un identificativo del prodotto (un numero basato sull’NDC con numero di serie, lotto e data di scadenza), riportato sulla confezione in un codice a barre 2D Data Matrix. Sunrise 2027 non modifica nessuno di questi obblighi.
Cosa porta il 2D alla cassa
L’EAN-13 contiene solo il GTIN. Un codice a barre 2D può contenere anche lotto, data di scadenza o termine minimo di conservazione (TMC) e numero di serie. Tra i casi d’uso elencati dalla linea guida GS1:
- Bloccare la vendita di prodotti scaduti alla cassa, perché la data di scadenza è nel codice.
- Richiami mirati a livello di lotto anziché di interi prodotti.
- Meno spreco alimentare e ribassi automatici in base alla data. Secondo GS1 Germany, Woolworths riporta fino al 40 % di spreco alimentare in meno.
- Informazioni per i consumatori: un QR Code con GS1 Digital Link apre una pagina web con la normale fotocamera dello smartphone e allo stesso tempo viene letto alla cassa.
- Passaporto digitale del prodotto: secondo la Commissione europea, un vettore di dati come un QR code collega il prodotto fisico al suo DPP; per alcune batterie il DPP diventa obbligatorio il 18 febbraio 2027, mentre gli atti delegati per tessili, alluminio e pneumatici sono previsti per il 2027, seguiti da un periodo transitorio di almeno 18 mesi. Approfondimenti nel nostro articolo GS1 QR Code e passaporto digitale del prodotto: un solo codice per la cassa e per il cliente.
Come è costruito un URI GS1 Digital Link
https://example.com/01/09506000134352/10/L2610A?15=271231
└──────┬──────────┘└──────┬─────────┘└───┬────┘└───┬────┘
dominio (+percorso) chiave primaria qualificatore attributo
(01) GTIN-14 (10) lotto (15) TMC
Le regole della GS1 Digital Link URI Syntax 1.7.0 (agosto 2026):
- Qualsiasi dominio. Tra il dominio e
/01/può esserci un numero qualsiasi di segmenti di percorso propri, ad esempiohttps://example.com/gs1/01/…. GS1 raccomanda ai titolari di marchio di usare il proprio dominio;https://id.gs1.orgè il dominio di riferimento di GS1. - Il GTIN ha sempre 14 cifre. Dalla versione 1.4.0 un GTIN-13 viene completato con uno zero iniziale: l’EAN
9506000134352diventa/01/09506000134352. - I qualificatori di chiave vanno nel percorso, in un ordine fisso: per il GTIN
/22/(variante del prodotto di consumo),/10/(lotto),/21/(numero di serie)./21/…/10/…non è valido. - Gli attributi vanno nella query string: date come
15(TMC) o17(data di scadenza) compaiono come?15=271231. - Niente forme abbreviate. I “convenience alphas” come
/gtin/al posto di/01/sono stati rimossi con la versione 1.3.0. - Non compresso. Alla cassa l’URI deve essere in forma non compressa, secondo la Tabella 5-46 delle General Specifications.
| URI | Valido? |
|---|---|
https://example.com/01/09506000134352 | Sì, solo GTIN |
https://example.com/gs1/01/09506000134352/10/L2610A?15=271231 | Sì, percorso proprio, lotto, TMC |
https://example.com/01/9506000134352 | No, il GTIN ha solo 13 cifre |
https://example.com/01/09506000134352/21/0001/10/L2610A | No, il lotto deve precedere il numero di serie |
https://example.com/gtin/09506000134352 | No, forma abbreviata rimossa |
Un consiglio dalla linea guida GS1: cifre e lettere maiuscole occupano meno spazio in un QR Code rispetto a lettere minuscole e caratteri speciali. Se assegni tu i numeri di lotto, tienili numerici o in maiuscolo.
GS1 DataMatrix, Data Matrix o QR Code?
Tutti e tre i codici a barre qui sopra contengono GTIN, lotto e TMC, stampati con 4 dot per modulo a 203 dpi (0,50 mm). Il GS1 DataMatrix misura 18 × 18 moduli, cioè 9,0 mm. Il Data Matrix con Digital Link richiede 26 × 26 moduli (13,0 mm), il QR Code 33 × 33 moduli (16,5 mm). Abbiamo renderizzato ogni codice a barre di questo articolo con zplCore e con Labelary e lo abbiamo decodificato con ZXing; entrambi i renderer restituiscono gli stessi dati e le stesse posizioni.
| Criterio | GS1 DataMatrix | QR Code + Digital Link | Data Matrix + Digital Link |
|---|---|---|---|
| La fotocamera dello smartphone apre una pagina web | No, serve un’app | Sì | No, serve un’app |
| Dimensione a parità di contenuto | la più piccola | la più grande | piccola |
| Sanità | approvato a livello globale | non applicabile | non applicabile |
| Scanner POS | spesso basta abilitarlo | serve un aggiornamento software | serve un aggiornamento software |
In sintesi: QR Code con Digital Link quando devono scansionare i consumatori. GS1 DataMatrix quando lo spazio è poco, non serve un link web o il prodotto è un articolo sanitario. Il Data Matrix con Digital Link è la via di mezzo per confezioni piccole che hanno bisogno di un link web.
Qualità di stampa: dimensione X, zona di silenzio, posizionamento, HRI
Le dimensioni si trovano nelle GS1 General Specifications, Release 26.0 (gennaio 2026), sezione 5.12.3.1, Tabella 5-46 “Symbol specification table 1 addendum 2 for 2D barcodes”. Si applica alle unità commerciali scansionate al POS del retail:
| Codice a barre 2D | Dimensione X min. | Obiettivo | Max. | Zona di silenzio | Qualità minima |
|---|---|---|---|---|---|
| GS1 DataMatrix (ECC 200) | 0,396 mm | 0,495 mm | 0,990 mm | 1X su tutti e quattro i lati | 1.5/12/660 |
| Data Matrix (URI GS1 Digital Link) | 0,396 mm | 0,495 mm | 0,990 mm | 1X su tutti e quattro i lati | 1.5/12/660 |
| QR Code (URI GS1 Digital Link) | 0,396 mm | 0,495 mm | 0,990 mm | 4X su tutti e quattro i lati | 1.5/12/660 |
I moduli 2D sono quindi 1,5 volte la dimensione X dei codici a barre lineari. Per gli articoli scansionati anche nella distribuzione generale vale la Tabella 5-49 (symbol specification table 3 addendum 1), con valori da 0,743 a 0,990 mm.
In ZPL la dimensione X è un numero intero di dot. Ne risultano queste dimensioni del modulo ammesse (parametro 3 di ^BQ, parametro 2 di ^BX):
| Risoluzione della stampante | 1 dot | Dimensione del modulo ammessa | Vicina all’obiettivo di 0,495 mm |
|---|---|---|---|
| 203 dpi (8 dot/mm) | 0,125 mm | da 4 a 7 dot | 4 dot = 0,500 mm |
| 300 dpi (12 dot/mm) | 0,085 mm | da 5 a 11 dot | 6 dot = 0,508 mm |
| 600 dpi (24 dot/mm) | 0,042 mm | da 10 a 23 dot | 12 dot = 0,508 mm |
Un errore frequente si nasconde nel codice a barre lineare accanto: la Tabella 5-44 fissa il minimo per l’EAN-13 a 0,264 mm. ^BY2 a 203 dpi dà solo 0,250 mm, sotto quel minimo; ^BY3 (0,375 mm) è il primo valore che va bene. A 300 dpi ^BY3 (0,254 mm) è troppo stretto e ^BY4 (0,339 mm) va bene. L’altezza minima delle barre scala di conseguenza: 22,85 mm a 0,330 mm, quindi circa 26 mm o 208 dot con ^BY3 a 203 dpi.
Altre regole:
- Zona di silenzio: 1 modulo attorno a un Data Matrix, 4 moduli attorno a un QR Code. ZPL non disegna la zona di silenzio, quindi deve restare libera da testi e riquadri.
- Posizionamento: i test di GS1 hanno mostrato che il codice a barre 2D deve trovarsi entro 50 mm dal centro del codice a barre lineare perché la cassa raggiunga da 40 a 70 articoli al minuto.
- Stesso GTIN: tutti i codici a barre su un articolo devono codificare lo stesso GTIN (sezione 4.15.1).
- HRI: un codice a barre 2D accanto a un EAN-13 con HRI (interpretazione in chiaro) non ne ha bisogno di una propria (sezione 4.14.2). Se è l’unico codice a barre, riporta
(01)e il GTIN a 14 cifre. - Verifica: la qualità si misura secondo ISO/IEC 15415.
1.5/12/660significa un grado complessivo di almeno 1,5, numero di riferimento dell’apertura 12 (0,30 mm) e una lunghezza d’onda di 660 nm.
Esempi ZPL, testati con zplCore e Labelary
QR Code con GS1 Digital Link (^BQ)
^XA
^PW406
^LL406
^FO40,40^BQN,2,4^FDMA,https://example.com/01/09506000134352/10/L2610A?15=271231^FS
^XZ
^BQN,2,4 significa orientamento normale, QR modello 2, 4 dot per modulo (0,50 mm a 203 dpi). I primi due caratteri in ^FD sono il livello di correzione degli errori (M = 15 %) e la modalità di input (A = automatica). Una correzione degli errori più alta rende il simbolo più grande; GS1 lascia la scelta al caso d’uso. Il simbolo viene decodificato con l’identificatore di simbologia ]Q1 ed esattamente questo URI. Una nota sulla posizione: in zplCore e Labelary il QR Code inizia sotto la coordinata ^FO di una distanza pari all’altezza delle barre ^BY corrente (10 dot senza ^BY), quindi tienine conto quando lo posizioni.
GS1 DataMatrix con FNC1 (^BX)
^XA
^PW406
^LL406
^FO40,40^BXN,4,200,,,,_^FD_101095060001343521527123110L2610A^FS
^XZ
^BXN,4,200,,,,_ significa 4 dot per modulo, qualità 200 (ECC 200, obbligatoria per GS1) e _ come carattere di escape. _1 all’inizio genera l’FNC1 che trasforma un Data Matrix in un GS1 DataMatrix. Decodificato: ]d2 con (01)09506000134352(15)271231(10)L2610A.
L’ordine è voluto. GTIN (01) e data (15) hanno una lunghezza predefinita e non richiedono separatore. Il lotto (10) ha lunghezza variabile e viene per ultimo, quindi anche lui non richiede separatore. Se un campo a lunghezza variabile si trova in mezzo, è seguito da un _1 come separatore:
^FO40,40^BXN,4,200,,,,_^FD_1010950600013435210L2610A_115271231^FS
I dati sono gli stessi, ma il simbolo ha 20 × 20 moduli invece di 18 × 18. Un errore che abbiamo fatto noi stessi durante i test: scrivere _10L2610A subito dopo il GTIN produce FNC1 più “0L2610A” invece del lotto. I campi a lunghezza predefinita non sono mai seguiti da un FNC1.
Senza il parametro di qualità 200, ^BX produce il vecchio tipo ECC 000, sbagliato per GS1. Un Data Matrix con Digital Link (]d1) non richiede alcun FNC1: ^BXN,4,200^FDhttps://example.com/01/…^FS.
Prima e dopo: la stessa etichetta con il 2D
L’etichetta originale, 4 × 2 pollici a 203 dpi, con il solo EAN-13:
^XA
^CI28
^PW812
^LL406
^FO40,28^A0N,26,26^FDACME FOODS^FS
^FO40,60^A0N,48,48^FDOat Drink Barista 1 L^FS
^FO40,118^A0N,28,28^FDLOT L2610A BEST BEFORE 31.12.2027^FS
^FO60,150^BY3,3,1^BEN,208,Y,N^FD950600013435^FS
^XZ
Dopo la migrazione con zplCore (comando più sotto), a destra dell’EAN-13 compare un QR Code con GS1 Digital Link, con lo stesso GTIN più lotto e TMC:
^FO60,150^BY3,3,1^BEN,208,Y,N^FD950600013435^FS
^FX zplCore GS1 2D migration
^BY3,3,10^FO394,243^BQN,2,4^FDMA,https://example.com/01/09506000134352/10/L2610A?15=271231^FS^BY3,3,1
Il QR Code è un quadrato di 16,5 mm di lato, con 4 dot (0,500 mm) per modulo e una zona di silenzio di 16 dot. Il suo centro dista circa 33 mm dal centro dell’EAN-13, ben entro i 50 mm. In zplCore e Labelary entrambi i codici a barre restituiscono lo stesso GTIN 09506000134352. Il GTIN 9506000134352 è un GTIN di esempio di GS1 e example.com è un segnaposto riservato.
Verificare e migrare i modelli con zplCore
zplCore è il motore ZPL alla base di zplCloud. Offre due strumenti per Sunrise 2027: una verifica preliminare rispetto alle regole GS1 e un assistente di migrazione che aggiunge il codice a barre 2D alle etichette ZPL esistenti. Entrambi renderizzano l’etichetta e misurano la geometria stampata, invece di limitarsi a leggere il testo. La documentazione si trova in Verifica preliminare di conformità e GS1 Digital Link e migrazione a Sunrise 2027.
Verifica preliminare da riga di comando
Un’etichetta volutamente sbagliata: EAN-13 con ^BY2, QR Code con 3 dot per modulo, un GTIN a 13 cifre e il numero di serie prima del lotto:
^FO60,150^BY2,3,1^BEN,150,Y,N^FD950600013435^FS
^FO330,170^BQN,2,3^FDMA,https://example.com/01/9506000134352/21/0001/10/L2610A^FS
La verifica preliminare rileva:
$ zplcore comply bad.zpl --pack sunrise --dpi 203
bad.zpl:8:1: error ZPL3210: label 1 ^BE: ^BE encodes GTIN 09506000134352, ^BQ encodes 9506000134352. [GS1 General Specifications 26.0 §4.15.1 rules 2 and 8]
bad.zpl:9:1: error ZPL3202: label 1 ^BQ: Digital Link URI "https://example.com/01/9506000134352/21/0001/10/L2610A": key qualifiers of (01) must be in the order /22, /10, /21 or /235 (each optional, alternatives not mixed). [GS1 Digital Link URI Syntax 1.7.0 (gs1path grammar, qualifier order, 14-digit GTIN, percent-encoding); GS1 General Specifications 26.0 §3, §7.9]
bad.zpl:9:1: error ZPL3202: label 1 ^BQ: Digital Link URI "https://example.com/01/9506000134352/21/0001/10/L2610A": the GTIN has 13 digits; a GS1 Digital Link URI needs 14 (pad GTIN-8/12/13 with leading zeros). [GS1 Digital Link URI Syntax 1.7.0 (gs1path grammar, qualifier order, 14-digit GTIN, percent-encoding); GS1 General Specifications 26.0 §3, §7.9]
bad.zpl:9:1: error ZPL3207: label 1 ^BQ: QR Code (Digital Link) X-dimension 0.375 mm (3 dots at 203 dpi) is outside 0.396–0.99 mm. [GS1 General Specifications 26.0 §5.12.3.1 Table 5-46]
fix: Use a module size of 4–7 dots at 203 dpi.
1 label(s) at 203 dpi, packs sunrise GenSpecs 26.0 / DL 1.7.0: 4 error(s), 0 warning(s), 0 info(s). Pre-check only, not a certification.
Il pacchetto sunrise non segnala l’EAN-13 troppo stretto perché verifica il lato 2D; per il codice a barre lineare vale la Tabella 5-44 (vedi sopra). Con --annotate zplCore disegna i rilievi direttamente sull’etichetta:
Il pacchetto sunrise copre 13 regole, tra cui: presenza di un vettore 2D con il GTIN, sintassi Digital Link, ECC 200, dimensione X secondo la Tabella 5-46, zona di silenzio, codice a barre lineare ancora presente, stesso GTIN in tutti i codici a barre, simboli tagliati o sovrastampati. Per inciso, l’etichetta “prima” qui sopra segnala un errore (ZPL3201, nessun vettore 2D), perché il pacchetto verifica la preparazione al 2D. Un’etichetta con il solo EAN-13 resta comunque valida secondo le regole GS1. Con --format sarif i rilievi finiscono in GitHub code scanning e l’exit code 1 blocca la pipeline di CI.
Migrazione da riga di comando
$ zplcore gs1 migrate before.zpl --domain https://example.com --add 10=L2610A --add 15=271231 -o after.zpl
label 1: migrated – added a QR Code with GS1 Digital Link URI with GTIN 09506000134352 right of the EAN-13 (^BE, line 8), bottom-aligned
source: EAN-13 ^BE (line 8), GTIN 09506000134352
added: QR Code with GS1 Digital Link URI at x=394 y=253 dots (49.3 / 31.7 mm), 132 × 132 dots (16.5 × 16.5 mm), module 4 dots = 0.500 mm, quiet zone 16 dots
placement: right of the EAN-13 (^BE, line 8), bottom-aligned
uri: https://example.com/01/09506000134352/10/L2610A?15=271231
data: (01)09506000134352(15)271231(10)L2610A
zpl: ^BY3,3,10^FO394,243^BQN,2,4^FDMA,https://example.com/01/09506000134352/10/L2610A?15=271231^FS^BY3,3,1
sunrise pre-check of the migrated ZPL: 0 error(s), 0 warning(s), 0 info(s)
result: ok – 1 of 1 label(s) migrated, 0 counting sunrise error(s)
GS1 2D migration assistant (pre-check, not a certification): verify the printed label with a barcode verifier and your GS1 Member Organisation or retailer.
L’assistente legge il GTIN dall’EAN-13. Su questa etichetta lotto e TMC sono stampati solo come testo, quindi si aggiungono con --add; da un GS1-128 o da un GS1 DataBar Expanded li riprende da solo. Se non trova un’area libera con la zona di silenzio, non modifica nulla e segnala lo spazio necessario; --extend-label invece allunga l’etichetta. --carrier datamatrix aggiunge un GS1 DataMatrix al posto del QR Code.
Lo stesso con l’SDK C#
using ZplCore.Barcodes;
using ZplCore.Compliance;
using ZplCore.Tools;
var report = ZplCompliance.Check(zpl, CompliancePacks.Sunrise2027, new ComplianceOptions { Dpi = 203 });
foreach (var f in report.Findings)
Console.WriteLine(f); // label 1: ZPL3201 error: No GS1 DataMatrix or QR Code / Data Matrix with GS1 Digital Link URI carrying the GTIN.
var options = new Gs1MigrationOptions
{
Carrier = Gs1MigrationCarrier.QrCodeDigitalLink, // oppure DataMatrixElementString
DigitalLinkStem = "https://example.com", // il tuo dominio, altrimenti https://id.gs1.org
Dpi = 203,
};
options.AdditionalElements.Add(new Gs1Element("10", "L2610A"));
options.AdditionalElements.Add(new Gs1Element("15", "271231"));
var migration = ZplGs1Migration.Migrate(zpl, options);
File.WriteAllText("after.zpl", migration.MigratedZpl);
Console.WriteLine(migration.ToText()); // posizionamento e verifica preliminare sunrise del risultato
Abbiamo eseguito questo snippet sull’etichetta “prima”; l’output corrisponde a quello della riga di comando qui sopra.
Importante: zplCore fornisce una verifica preliminare e un assistente di migrazione, non una certificazione. Un report vuoto significa solo che nessuna regola è scattata. Un verificatore di codici a barre misura la qualità di stampa dell’etichetta finita; l’approvazione spetta al retailer o alla tua organizzazione membro GS1.
In zplCloud senza codice
Senza installare nulla, lo strumento gratuito Migrazione Sunrise 2027 fa lo stesso nel browser: incolla un’etichetta ZPL con EAN/UPC, GS1-128, ITF-14 o GS1 DataBar e il GTIN, insieme a lotto, data di scadenza e numero di serie, finisce in un QR Code con GS1 Digital Link o in un GS1 DataMatrix. Lo strumento colloca il codice in un’area libera con la sua zona di silenzio, ricontrolla il risultato con le regole Sunrise 2027 e mostra il prima e il dopo affiancati.
Nel designer di zplCloud ogni elemento codice a barre ha una sezione GS1: scegli gli identificatori di applicazione, collega i valori, seleziona Digital Link per il QR Code; i separatori li inserisce l’editor da solo. Per i singoli codici a barre ci sono gli strumenti gratuiti Da GS1 AI QR Code a ZPL e Da GS1 AI DataMatrix a ZPL, mentre Verifica codice a barre controlla quelli già stampati. Tutti gli identificatori di applicazione, con formato e significato, sono nel database GS1 AI.
Checklist per i team
- Fare l’inventario: quali modelli contengono un EAN/UPC (
^BE,^BU,^B8,^B9) o un GS1 DataBar (^BR)? Su quali stampanti e a quale risoluzione vengono stampati? - Scegliere un caso d’uso: informazioni per il consumatore (QR Code con Digital Link), scadenza e lotto alla cassa (GS1 DataMatrix o QR), poco spazio (GS1 DataMatrix). Iniziare con un gruppo di prodotti.
- Definire il Digital Link: dominio e percorso propri, con reindirizzamento a una pagina prodotto esistente. GTIN a 14 cifre, ordine 22/10/21, date nella query string, non compresso.
- Chiarire i dati: lotto e date arrivano al momento della stampa dall’ERP, dalla bilancia o dalla linea? Dati variabili significano stampa in linea o sulla stampante di etichette, non sulla confezione prestampata.
- Dimensioni secondo la Tabella 5-46: modulo 2D da 0,396 a 0,990 mm (203 dpi: da 4 a 7 dot). EAN-13 almeno 0,264 mm (203 dpi:
^BY3o più largo). - Controllare il layout: zona di silenzio 1X o 4X, entro 50 mm dal centro dell’EAN, stesso GTIN, HRI secondo la sezione 4.14.2.
- Verifica preliminare automatica:
zplcore comply --pack sunrisenella CI,zplcore gs1 migrateper i modelli esistenti. - Misurare la stampa: verificatore di codici a barre secondo ISO/IEC 15415, obiettivo 1.5/12/660 o migliore; la suite di test GS1 e gli scanner reali delle casse del tuo partner commerciale.
- Retailer: impostare la modalità dello scanner (almeno modalità 1), un solo bip per due codici a barre, software POS per i dati aggiuntivi; marche del distributore e gastronomia come progetto pilota.
- Coordinarsi: con i partner commerciali e con la tua organizzazione membro GS1.
Domande frequenti
Devo stampare un codice a barre 2D sui miei prodotti entro la fine del 2027?
No. Sunrise 2027 è un obiettivo per ciò che le casse sono in grado di leggere. GS1 Germany dice esplicitamente che le aziende che vogliono restare al codice a barre lineare non devono aggiungere un codice 2D. Singoli retailer possono fissare requisiti propri.
L’EAN-13 verrà abolito?
No. GS1 Germany, GS1 Austria e GS1 Switzerland lo chiariscono, e lo stesso fa la linea guida globale. I codici a barre lineari restano finché ci sono usi per loro.
Posso sostituire l’EAN-13 con un QR Code?
Per ora non sui prodotti di marca. Le General Specifications 26.0 richiedono il codice a barre 2D in aggiunta a EAN/UPC o GS1 DataBar finché il 90 % delle soluzioni di scansione POS non sarà in grado di elaborare il 2D. L’eccezione è il circuito chiuso di un retailer: secondo il position paper di GS1, le marche del distributore e i prodotti etichettati in negozio possono riportare un solo codice a barre 2D se le casse del retailer supportano almeno la modalità 2.
Mi serve un dominio proprio per GS1 Digital Link?
La sintassi ammette qualsiasi dominio con qualsiasi percorso davanti, e GS1 raccomanda il proprio. Basta un sottopercorso del dominio aziendale con un reindirizzamento. Il nostro articolo sul passaporto digitale del prodotto mostra come farlo senza un nuovo server.
Quale livello di correzione degli errori deve usare il QR Code?
GS1 non ne prescrive uno: una correzione degli errori più alta è più robusta ma rende il simbolo più grande. Un esempio nella linea guida GS1 usa il livello M (15 %), come i nostri esempi. Ciò che conta è che la dimensione del modulo resti entro la Tabella 5-46.
Una stampante a 203 dpi può stampare codici a barre conformi a Sunrise?
Sì. A 203 dpi sono ammessi da 4 a 7 dot per modulo, e 4 dot danno 0,500 mm, quasi esattamente l’obiettivo di 0,495 mm. Il collo di bottiglia è più probabilmente l’EAN-13 accanto, che a 203 dpi richiede almeno ^BY3.
Il QR Code ha bisogno di un proprio testo in chiaro?
No, se si trova accanto a un EAN-13 con HRI. Se il codice a barre 2D è l’unico codice a barre, riporta (01) seguito dal GTIN a 14 cifre (General Specifications, sezione 4.14.2).
E i farmaci e i dispositivi medici?
Restano con GS1 DataMatrix e stringhe di elementi e con gli obblighi esistenti come UDI o DSCSA. In ambito sanitario GS1 Digital Link non viene codificato nel codice a barre 2D.
La verifica di zplCore è una certificazione GS1?
No. È una verifica preliminare rispetto a regole pubblicate e un assistente per la migrazione. L’accettazione dipende dal verificatore, dal retailer e dalla tua organizzazione membro GS1.
Fonti
Tutte le fonti sono state consultate il 19 ottobre 2026.
- GS1 US: What is GS1 Sunrise 2027?
- GS1: Compliance for 2D barcodes at Point of Sale (POS), aggiornato l’8 ottobre 2026
- GS1: GS1 2D barcodes in Retail
- GS1: 2D Barcodes at Retail Point-of-Sale Implementation Guideline, Release 1.1.0, dicembre 2025
- GS1: GS1 General Specifications Standard, Release 26.0, gennaio 2026 (sezioni 4.14.2, 4.15, 5.12.3.1 con le Tabelle 5-44 e 5-46, 5.12.3.3 con la Tabella 5-49)
- GS1: GS1 Digital Link e GS1 Digital Link Standard: URI Syntax, Release 1.7.0, agosto 2026
- GS1: Migration to a single GS1 conformant 2D barcode for retailer private label and in-store labelled products, Release 2.0.0, luglio 2026
- GS1 Germany: Zukunft 2D-Code
- GS1 Germany: Implementierungsleitfaden für 2D Codes am Point-of-Sale des Einzelhandels, edizione 1.1, novembre 2025
- GS1 Germany: 5-Punkte-Checkliste für die Implementierung von 2D-Codes am POS
- GS1 Germany: Globales Programm 2D Migration, Grundlegende Fragen (FAQ), novembre 2022
- GS1 Austria: 2D Codes
- GS1 Austria e GS1 Germany: Leitfaden für eine Migration auf 2D Codes am Point-of-Sale des Einzelhandels, edizione 1.1, febbraio 2022
- GS1 Switzerland: 2D-Codes e 2D-Codes am Point of Sale
- U.S. FDA: UDI Basics
- 21 U.S.C. § 360eee e § 360eee-1 (DSCSA, identificativo del prodotto)
- Commissione europea: Digital Product Passport
GS1, GS1 DataMatrix e GS1 Digital Link sono marchi di GS1 AISBL e sono utilizzati qui a solo scopo descrittivo. zplCloud e zplCore non sono prodotti GS1.