Commencer gratuitement

zplCloud Blog

GS1 Sunrise 2027 : codes-barres 2D en caisse – ce dont les étiquettes ZPL ont besoin maintenant

D'ici fin 2027, les caisses du commerce de détail du monde entier sont censées lire le GS1 DataMatrix et le QR Code avec GS1 Digital Link. L'EAN-13 reste. Chaque règle avec sa source, des exemples ZPL testés pour ^BQ et ^BX, et une méthode pour migrer automatiquement les modèles existants.

28 min de lecture zplCloud Team

D'ici fin 2027, la caisse apprend la 2D

Bannière “Sunrise 2027. 2D at the checkout.” avec deux vraies étiquettes produit rendues par zplCore : au premier plan la même étiquette avec un EAN-13 et un QR Code avec GS1 Digital Link, derrière elle la version actuelle avec l'EAN-13 seul, un soleil levant en dessous

D'ici fin 2027, les scanners de caisse du commerce de détail du monde entier sont censés lire, en plus des codes EAN/UPC, trois codes-barres 2D : GS1 DataMatrix, QR Code avec GS1 Digital Link et Data Matrix avec GS1 Digital Link. GS1 US parle de « Sunrise 2027 », GS1 au niveau mondial d'« Ambition 2027 ». L'EAN-13 reste, et personne n'est obligé d'imprimer un code 2D. Si vous en ajoutez un, il se place à côté du code-barres linéaire, avec le même GTIN, et respecte les règles de dimension X, de zone de silence et de placement des GS1 General Specifications. Cet article présente chaque règle avec sa source et donne des exemples ZPL testés pour ^BQ et ^BX, une étiquette avant/après et une méthode pour vérifier et migrer automatiquement les modèles existants.

En bref : 2027 est un objectif pour les scanners du commerce de détail, pas une date d'arrêt de l'EAN. Pendant la transition, un code 2D s'ajoute sur l'emballage, il ne remplace jamais le code-barres linéaire. En ZPL à 203 dpi, cela signifie : une taille de module de 4 à 7 points, une zone de silence de 4 modules autour du QR Code et pas plus de 50 mm du centre de l'EAN.

Ce qu'est Sunrise 2027 et ce qu'il n'est pas

La formulation la plus claire figure sur la page de GS1 consacrée à la compatibilité des scanners : l'industrie s'est fixé pour objectif que, d'ici fin 2027, tous les systèmes de point de vente (POS) du commerce de détail soient capables de lire et de traiter un ensemble défini de codes-barres 2D conformes aux standards GS1, en plus des codes-barres linéaires existants. Le guide de mise en œuvre mondial (Release 1.1.0, décembre 2025) précise le minimum : le POS doit identifier et décoder le GTIN à partir de tout code-barres linéaire ou 2D conforme GS1, émettre un seul bip et transmettre ce seul GTIN. C'est le mode de lecture 1, l'exigence minimale pour 2027.

Exactement trois codes-barres 2D sont admis en caisse :

Code-barres 2DContenu (syntaxe)Identifiant de symbologie
GS1 DataMatrixSyntaxe de chaîne d'éléments GS1 avec FNC1, p. ex. (01)…(17)…(10)…]d2
QR Code avec GS1 Digital LinkAdresse web conforme à la syntaxe d'URI GS1 Digital Link]Q1
Data Matrix avec GS1 Digital LinkAdresse web conforme à la syntaxe d'URI GS1 Digital Link]d1

Ce que Sunrise 2027 ne signifie pas :

  • L'EAN-13 ne disparaît pas. Le guide mondial indique que les codes-barres linéaires comme EAN/UPC et GS1 DataBar « ne disparaîtront pas et coexisteront avec les codes-barres 2D tant qu'ils auront une utilité ». GS1 Germany, GS1 Austria et GS1 Switzerland disent la même chose.
  • Personne n'est obligé d'imprimer un code 2D en 2027. GS1 Germany indique que les entreprises qui souhaitent rester au code-barres linéaire n'ont pas besoin d'ajouter de code 2D. GS1 US souligne qu'« il n'est pas nécessaire de mettre en œuvre toutes les possibilités de la 2D d'ici cette date ».
  • La 2D ne remplace pas encore le code-barres linéaire. GS1 General Specifications 26.0, section 4.15.4 : un GS1 DataMatrix, un QR Code ou un Data Matrix avec Digital Link doit (SHALL) être utilisé en plus de l'EAN/UPC ou du GS1 DataBar. Le guide fixe le seuil : ce n'est que lorsque 90 % des solutions de lecture au POS pourront traiter les codes-barres 2D conformes GS1 que le code-barres linéaire pourra être supprimé. Aucune date n'est fixée pour cela.
  • Ce n'est pas une loi. GS1 élabore des standards d'adoption volontaire. Les obligations ne découlent que des exigences des distributeurs ou d'une réglementation propre, par exemple dans la santé.

Une ancienne FAQ en PDF de GS1 Germany (datée de novembre 2022) indiquait encore qu'à partir de 2028 les propriétaires de marque choisiraient entre l'EAN et un code 2D. Les textes actuels lient la suppression du code-barres linéaire au seuil de 90 %, et non à une année. Les General Specifications 26.0 et le guide 1.1 font référence.

Calendrier et étapes clés

QuandQuoiSource
2021Décision de l'Assemblée générale mondiale de GS1 sur la migration 2D au POSGS1 Switzerland, FAQ
Févr. 2022Guide en allemand « Migration auf 2D Codes am POS », édition 1.1 (GS1 AT et GS1 DE)GS1 Austria
Nov. 2025Traduction allemande du guide de mise en œuvre, édition 1.1GS1 Germany
Déc. 20252D Barcodes at Retail Point-of-Sale Implementation Guideline, Release 1.1.0GS1
Janv. 2026GS1 General Specifications Release 26.0 avec le tableau 5-46 pour la 2D au POSGS1
Juil. 2026Document de position 2.0.0 : code-barres 2D unique pour les marques de distributeur et les produits étiquetés en magasinGS1
Août 2026GS1 Digital Link URI Syntax 1.7.0GS1
Fin 2027Objectif : le POS lit le GTIN dans les trois codes-barres 2D (au moins le mode 1)GS1
Ensuite2D seule sur les produits de marque, pas avant que 90 % des solutions de lecture au POS soient compatibles 2DGuide GS1 1.1, section 4.1

GS1 tient une liste mise à jour en continu dans laquelle les fabricants de scanners, de vérificateurs, d'imprimantes et de logiciels de codes-barres déclarent leur statut au regard des critères « 2D capable » ; au moment de la rédaction, elle était datée du 8 octobre 2026. Parmi les fabricants d'imprimantes qui y figurent, on trouve Zebra et TSC.

Situation régionale : États-Unis, DACH et reste du monde

États-Unis. GS1 US traite le sujet sous le nom « Sunrise 2027 » et recommande une approche progressive en trois temps (crawl, walk, run). Pour les marques : ajouter des codes-barres 2D aux emballages existants et convertir les QR codes existants en GS1 Digital Link avec le GTIN ; puis ajouter des données comme les variantes et les dates de production ou de péremption ; enfin utiliser la 2D pour l'engagement des consommateurs. Pour les distributeurs : installer des scanners compatibles Sunrise qui lisent la 2D et extraient le GTIN au POS ; puis ajouter la 2D aux marques de distributeur ; enfin optimiser la sécurité, la traçabilité et les stocks. Dans une enquête consommateurs menée par GS1 US en 2025, 79 % des personnes interrogées ont déclaré être plus enclines à acheter des produits portant un QR code scannable qui fournit des informations produit supplémentaires.

Allemagne. GS1 Germany qualifie le double marquage pendant la transition de « in der Regel sinnvoll beziehungsweise erforderlich » (en général judicieux, voire nécessaire), car tous les systèmes de caisse ne traitent pas encore la 2D. Elle cite dm et Beiersdorf comme premier cas au POS. Une check-list en 5 points de GS1 Germany conseille de commencer par un cas d'usage et une famille de produits, et de tester régulièrement l'impression, la lisibilité au scanner et l'intégration système.

Autriche. GS1 Austria écrit que les codes 2D viendront compléter le code-barres linéaire classique sans le remplacer, et que pendant la phase de transition actuelle un code-barres 1D est requis à côté d'un code 2D. Les codes 2D ne peuvent être lus que par des scanners à imagerie ; les scanners laser classiques en sont incapables.

Suisse. GS1 Switzerland indique que les codes-barres EAN/UPC resteront dans le commerce bien après 2027. Concernant la technique en caisse, elle précise que la plupart des systèmes de point de vente en Suisse savent déjà scanner les codes 2D et qu'une mise à jour logicielle suffit souvent.

Autres régions. GS1 note que la transition se déroule progressivement, selon des calendriers différents à travers le monde. Ses études de cas incluent Woolworths en Australie, l'épicerie fine Parla Deli au Brésil et 7-Eleven en Thaïlande.

Qui est concerné

QuiQue faire
Propriétaires de marqueDécider si un code-barres 2D est ajouté, lequel et sur quels produits, définir le domaine Digital Link, adapter emballages et étiquettes.
DistributeursConfigurer le logiciel des scanners pour l'un des modes 1 à 3, préparer le logiciel de caisse aux données supplémentaires, un seul bip par article lorsque deux codes-barres sont présents.
Impression d'étiquettes et ITModèles ZPL, étiquettes de balance et de produits frais, résolution des imprimantes, sources de données pour le lot et les dates.
Éditeurs de logiciels et fabricants d'imprimantesCritères GS1 « 2D capable » : ]d2, ]d1, ]Q1, dimension X, zone de silence et qualité d'impression selon les tableaux de spécification des symboles.
Santé et pharmacieReste au GS1 DataMatrix, voir ci-dessous.

Les produits étiquetés en magasin sont le levier le plus rapide. Le document de position de GS1 de juillet 2026 cite les produits du rayon traiteur et de la boulangerie ainsi que les marques de distributeur comme domaines où un distributeur peut déjà travailler avec un seul code-barres 2D, car il maîtrise lui-même l'étiquette, le scanner et la caisse. La condition est au moins le mode de lecture 2. Ces étiquettes sortent souvent de balances et d'imprimantes d'étiquettes, fréquemment en ZPL.

Santé. Dans ce secteur, la profession a choisi dès le début des années 2000 le GS1 DataMatrix comme code-barres 2D unique ; selon le guide, c'est aussi le code-barres 2D privilégié pour les produits de santé scannés en caisse dans le commerce de détail. Dans la santé, GS1 Digital Link n'est pas encodé dans un code-barres 2D. Aux États-Unis, la FDA exige pour les dispositifs médicaux un UDI composé d'un identifiant de dispositif et d'un identifiant de production (lot, numéro de série, date de péremption ou de fabrication), en clair et sous forme lisible par machine. Pour les médicaments sur ordonnance, le DSCSA impose un identifiant produit (un numéro basé sur le NDC avec numéro de série, lot et date de péremption), porté sur l'emballage dans un code-barres 2D Data Matrix. Sunrise 2027 ne change aucune de ces obligations.

Ce que la 2D apporte en caisse

L'EAN-13 ne porte que le GTIN. Un code-barres 2D peut aussi porter le numéro de lot, la date de péremption ou la date de durabilité minimale (DDM) et le numéro de série. Parmi les cas d'usage que cite le guide GS1 :

  • Bloquer la vente de produits périmés en caisse, car la date de péremption figure dans le code-barres.
  • Rappels ciblés au niveau du lot plutôt que sur des produits entiers.
  • Moins de gaspillage alimentaire et démarques automatiques selon la date. Selon GS1 Germany, Woolworths fait état d'une réduction du gaspillage alimentaire allant jusqu'à 40 %.
  • Information des consommateurs : un QR Code avec GS1 Digital Link ouvre une page web avec l'appareil photo standard du téléphone et se scanne en même temps en caisse.
  • Passeport numérique de produit : selon la Commission européenne, un support de données comme un QR code relie le produit physique à son DPP ; pour certaines batteries, le DPP devient obligatoire le 18 février 2027, et les actes délégués pour les textiles, l'aluminium et les pneumatiques sont prévus pour 2027, suivis d'une période de transition d'au moins 18 mois. Plus de détails dans notre article GS1 QR Code et passeport numérique de produit : un seul code pour la caisse et pour le client.

Comment est construite une URI GS1 Digital Link

https://example.com/01/09506000134352/10/L2610A?15=271231
└──────┬──────────┘└──────┬─────────┘└───┬────┘└───┬────┘
 domaine (+ chemin)  clé primaire     qualificatif attribut
                      (01) GTIN-14      (10) lot   (15) DDM

Les règles de la GS1 Digital Link URI Syntax 1.7.0 (août 2026) :

  • N'importe quel domaine. Entre le domaine et /01/, vous pouvez insérer autant de segments de chemin propres que vous le souhaitez, par exemple https://example.com/gs1/01/…. GS1 recommande aux propriétaires de marque d'utiliser leur propre domaine ; https://id.gs1.org est le domaine de référence de GS1.
  • Le GTIN compte toujours 14 chiffres. Depuis la version 1.4.0, un GTIN-13 est complété par un zéro initial : l'EAN 9506000134352 devient /01/09506000134352.
  • Les qualificatifs de clé vont dans le chemin, dans un ordre fixe : pour le GTIN, /22/ (variante de produit consommateur), /10/ (lot), /21/ (numéro de série). /21/…/10/… n'est pas valide.
  • Les attributs vont dans la chaîne de requête : les dates comme 15 (DDM) ou 17 (date de péremption) apparaissent sous la forme ?15=271231.
  • Pas de formes abrégées. Les « convenience alphas » comme /gtin/ au lieu de /01/ ont été supprimés dans la version 1.3.0.
  • Non compressée. En caisse, l'URI doit utiliser la forme non compressée, conformément au tableau 5-46 des General Specifications.
URIValide ?
https://example.com/01/09506000134352Oui, GTIN seul
https://example.com/gs1/01/09506000134352/10/L2610A?15=271231Oui, chemin propre, lot, DDM
https://example.com/01/9506000134352Non, le GTIN n'a que 13 chiffres
https://example.com/01/09506000134352/21/0001/10/L2610ANon, le lot doit précéder le numéro de série
https://example.com/gtin/09506000134352Non, forme abrégée supprimée

Un conseil du guide GS1 : les chiffres et les lettres majuscules prennent moins de place dans un QR Code que les minuscules et les caractères spéciaux. Si vous attribuez vous-même les numéros de lot, utilisez des chiffres ou des majuscules.

GS1 DataMatrix, Data Matrix ou QR Code ?

Trois codes-barres 2D rendus par zplCore avec le même contenu et la même taille de module : GS1 DataMatrix de 18 × 18 modules, Data Matrix avec GS1 Digital Link de 26 × 26 modules et QR Code avec GS1 Digital Link de 33 × 33 modules

Les trois codes-barres ci-dessus portent le GTIN, le lot et la DDM, imprimés avec 4 points par module à 203 dpi (0,50 mm). Le GS1 DataMatrix mesure 18 × 18 modules, soit 9,0 mm. Le Data Matrix avec Digital Link nécessite 26 × 26 modules (13,0 mm), le QR Code 33 × 33 modules (16,5 mm). Nous avons rendu chaque code-barres de cet article avec zplCore et avec Labelary et l'avons décodé avec ZXing ; les deux moteurs de rendu renvoient les mêmes données et les mêmes positions.

CritèreGS1 DataMatrixQR Code + Digital LinkData Matrix + Digital Link
L'appareil photo du téléphone ouvre une page webNon, application nécessaireOuiNon, application nécessaire
Taille pour un même contenula plus petitela plus grandepetite
Santéadmis au niveau mondialnon applicablenon applicable
Scanners de caissesouvent une simple activationmise à jour logicielle nécessairemise à jour logicielle nécessaire

En résumé : QR Code avec Digital Link quand les consommateurs doivent scanner. GS1 DataMatrix quand la place manque, qu'aucun lien web n'est nécessaire ou qu'il s'agit d'un produit de santé. Le Data Matrix avec Digital Link est la solution intermédiaire pour les petits emballages qui ont besoin d'un lien web.

Qualité d'impression : dimension X, zone de silence, placement, HRI

Les dimensions figurent dans les GS1 General Specifications, Release 26.0 (janvier 2026), section 5.12.3.1, tableau 5-46 « Symbol specification table 1 addendum 2 for 2D barcodes ». Il s'applique aux unités commerciales scannées au point de vente du commerce de détail :

Code-barres 2DDimension X min.CibleMax.Zone de silenceQualité minimale
GS1 DataMatrix (ECC 200)0,396 mm0,495 mm0,990 mm1X sur les quatre côtés1.5/12/660
Data Matrix (GS1 Digital Link URI)0,396 mm0,495 mm0,990 mm1X sur les quatre côtés1.5/12/660
QR Code (GS1 Digital Link URI)0,396 mm0,495 mm0,990 mm4X sur les quatre côtés1.5/12/660

Les modules 2D font donc 1,5 fois la dimension X des codes-barres linéaires. Pour les articles également scannés en distribution générale, c'est le tableau 5-49 (tableau de spécification des symboles 3, addendum 1) qui s'applique, avec 0,743 à 0,990 mm.

En ZPL, la dimension X est un nombre entier de points. On obtient ainsi les tailles de module autorisées suivantes (paramètre 3 de ^BQ, paramètre 2 de ^BX) :

Résolution de l'imprimante1 pointTaille de module autoriséeProche de la cible de 0,495 mm
203 dpi (8 points/mm)0,125 mm4 à 7 points4 points = 0,500 mm
300 dpi (12 points/mm)0,085 mm5 à 11 points6 points = 0,508 mm
600 dpi (24 points/mm)0,042 mm10 à 23 points12 points = 0,508 mm

Une erreur fréquente se cache dans le code-barres linéaire voisin : le tableau 5-44 fixe le minimum de l'EAN-13 à 0,264 mm. ^BY2 à 203 dpi ne donne que 0,250 mm, en dessous de ce minimum ; ^BY3 (0,375 mm) est le premier réglage qui convient. À 300 dpi, ^BY3 (0,254 mm) est trop étroit et ^BY4 (0,339 mm) convient. La hauteur minimale des barres évolue en proportion : 22,85 mm pour 0,330 mm, soit environ 26 mm ou 208 points avec ^BY3 à 203 dpi.

Autres règles :

  • Zone de silence : 1 module autour d'un Data Matrix, 4 modules autour d'un QR Code. ZPL ne dessine pas la zone de silence, elle doit donc rester libre de tout texte et de tout cadre.
  • Placement : les tests de GS1 ont montré que le code-barres 2D doit se trouver à moins de 50 mm du centre du code-barres linéaire pour que la caisse atteigne 40 à 70 articles par minute.
  • Même GTIN : tous les codes-barres d'un article doivent encoder le même GTIN (section 4.15.1).
  • HRI : un code-barres 2D placé à côté d'un EAN-13 avec HRI n'a pas besoin de son propre texte en clair (section 4.14.2). S'il est le seul code-barres, il affiche (01) et le GTIN à 14 chiffres.
  • Vérification : la qualité se mesure selon l'ISO/IEC 15415. 1.5/12/660 signifie une note globale d'au moins 1,5, une ouverture de référence n° 12 (0,30 mm) et une longueur d'onde de 660 nm.

Exemples ZPL, testés avec zplCore et Labelary

QR Code avec 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 signifie : orientation normale, QR modèle 2, 4 points par module (0,50 mm à 203 dpi). Les deux premiers caractères de ^FD sont le niveau de correction d'erreur (M = 15 %) et le mode de saisie (A = automatique). Une correction d'erreur plus élevée agrandit le symbole ; GS1 laisse le choix en fonction du cas d'usage. Le symbole se décode avec l'identifiant de symbologie ]Q1 et exactement cette URI. Une remarque sur la position : dans zplCore et Labelary, le QR Code commence sous la coordonnée ^FO, décalé de la hauteur de barre ^BY en cours (10 points sans ^BY) ; tenez-en compte lors du placement.

GS1 DataMatrix avec FNC1 (^BX)

^XA
^PW406
^LL406
^FO40,40^BXN,4,200,,,,_^FD_101095060001343521527123110L2610A^FS
^XZ

^BXN,4,200,,,,_ signifie : 4 points par module, qualité 200 (ECC 200, obligatoire pour GS1) et _ comme caractère d'échappement. _1 au début produit le FNC1 qui transforme un Data Matrix en GS1 DataMatrix. Décodé : ]d2 avec (01)09506000134352(15)271231(10)L2610A.

L'ordre est voulu. Le GTIN (01) et la date (15) ont une longueur prédéfinie et n'ont pas besoin de séparateur. Le lot (10) a une longueur variable et vient en dernier, il n'a donc pas besoin de séparateur non plus. Si un champ de longueur variable se trouve au milieu, il est suivi d'un _1 comme séparateur :

^FO40,40^BXN,4,200,,,,_^FD_1010950600013435210L2610A_115271231^FS

On obtient les mêmes données, mais un symbole de 20 × 20 modules au lieu de 18 × 18. Une erreur que nous avons faite nous-mêmes pendant les tests : écrire _10L2610A juste après le GTIN donne un FNC1 suivi de « 0L2610A » au lieu du lot. Un champ de longueur prédéfinie n'est jamais suivi d'un FNC1.

Sans le paramètre de qualité 200, ^BX produit l'ancien type ECC 000, incorrect pour GS1. Un Data Matrix avec Digital Link (]d1) n'a besoin d'aucun FNC1 : ^BXN,4,200^FDhttps://example.com/01/…^FS.

Avant et après : la même étiquette avec la 2D

L'étiquette d'origine, 4 × 2 pouces à 203 dpi, avec un EAN-13 seul :

Étiquette produit rendue par zplCore, 4 × 2 pouces : ACME FOODS, Oat Drink Barista 1 L, lot L2610A, à consommer de préférence avant le 31.12.2027, en dessous uniquement un EAN-13 avec le GTIN 9506000134352
^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

Après la migration avec zplCore (commande ci-dessous), un QR Code avec GS1 Digital Link se trouve à droite de l'EAN-13, avec le même GTIN ainsi que le lot et la DDM :

La même étiquette produit rendue par zplCore après la migration : l'EAN-13 à gauche, inchangé, et à sa droite un QR Code avec l'URI GS1 Digital Link https://example.com/01/09506000134352/10/L2610A?15=271231
^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

Le QR Code mesure 16,5 mm de côté, avec 4 points (0,500 mm) par module et une zone de silence de 16 points. Son centre se trouve à environ 33 mm du centre de l'EAN-13, bien en deçà des 50 mm. Dans zplCore et Labelary, les deux codes-barres renvoient le même GTIN 09506000134352. Le GTIN 9506000134352 est un GTIN d'exemple de GS1 et example.com est un domaine réservé aux exemples.

Vérifier et migrer les modèles avec zplCore

zplCore est le moteur ZPL de zplCloud. Il fournit deux outils pour Sunrise 2027 : une pré-vérification par rapport aux règles GS1 et un assistant de migration qui ajoute le code-barres 2D aux étiquettes ZPL existantes. Tous deux effectuent le rendu de l'étiquette et mesurent la géométrie imprimée au lieu de se contenter de lire le texte. La documentation se trouve sous Pré-vérification de conformité et GS1 Digital Link et migration Sunrise 2027.

Pré-vérification en ligne de commande

Une étiquette volontairement erronée : EAN-13 avec ^BY2, QR Code avec 3 points par module, un GTIN à 13 chiffres et le numéro de série avant le lot :

^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 pré-vérification relève :

$ 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.

Le pack sunrise ne signale pas l'EAN-13 trop étroit, car il vérifie le côté 2D ; c'est le tableau 5-44 qui couvre le code-barres linéaire (voir plus haut). Avec --annotate, zplCore dessine les résultats directement sur l'étiquette :

Étiquette annotée par zplCore : l'EAN-13 est marqué avec la règle ZPL3210, le QR Code sous-dimensionné avec les règles ZPL3202 et ZPL3207

Le pack sunrise couvre 13 règles, dont : présence d'un support 2D portant le GTIN, syntaxe Digital Link, ECC 200, dimension X selon le tableau 5-46, zone de silence, présence maintenue du code-barres linéaire, même GTIN dans tous les codes-barres, symboles tronqués ou surimprimés. L'étiquette d'origine ci-dessus signale d'ailleurs une erreur (ZPL3201, aucun support 2D), car le pack vérifie la préparation à la 2D. Une étiquette avec un EAN-13 seul reste valide selon les règles GS1. Avec --format sarif, les résultats sont envoyés vers le code scanning de GitHub, et le code de sortie 1 arrête le pipeline CI.

Migration en ligne de commande

$ 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'assistant lit le GTIN dans l'EAN-13. Sur cette étiquette, le lot et la DDM ne sont imprimés qu'en texte, ils sont donc ajoutés avec --add ; à partir d'un GS1-128 ou d'un GS1 DataBar Expanded, il les reprend de lui-même. S'il ne trouve aucune zone libre avec sa zone de silence, il ne modifie rien et indique la place nécessaire ; --extend-label allonge l'étiquette à la place. --carrier datamatrix ajoute un GS1 DataMatrix au lieu du QR Code.

La même chose avec le 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, // ou DataMatrixElementString
    DigitalLinkStem = "https://example.com",         // votre domaine, sinon 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()); // placement et pré-vérification sunrise du résultat

Nous avons exécuté cet extrait sur l'étiquette d'origine ; sa sortie correspond à celle de la ligne de commande ci-dessus.

Important : zplCore fournit une pré-vérification et un assistant de migration, pas une certification. Un rapport vide signifie seulement qu'aucune règle ne s'est déclenchée. Un vérificateur de codes-barres mesure la qualité d'impression de l'étiquette finie ; l'approbation vient du distributeur ou de votre organisation membre GS1.

Dans zplCloud, sans code

Sans rien installer, l’outil gratuit Migration Sunrise 2027 fait la même chose dans le navigateur : collez une étiquette ZPL avec EAN/UPC, GS1-128, ITF-14 ou GS1 DataBar, et le GTIN, avec le lot, la date de péremption et le numéro de série, passe dans un QR Code avec GS1 Digital Link ou un GS1 DataMatrix. L’outil place le code dans une zone libre avec sa zone de silence, revérifie le résultat selon les règles Sunrise 2027 et affiche l’avant et l’après côte à côte.

Dans le designer de zplCloud, chaque élément code-barres dispose d'une section GS1 : choisir les identifiants d'application, lier les valeurs, choisir Digital Link pour le QR Code ; l'éditeur place lui-même les séparateurs. Pour des codes-barres isolés, il existe les outils gratuits GS1 AI QR Code vers ZPL et GS1 AI DataMatrix vers ZPL, et Vérifier un code-barres contrôle les codes imprimés. Chaque identifiant d'application, avec son format et sa signification, figure dans la base de données des AI GS1.

Check-list pour les équipes

  • Faire l'inventaire : quels modèles comportent un EAN/UPC (^BE, ^BU, ^B8, ^B9) ou un GS1 DataBar (^BR) ? Sur quelles imprimantes et à quelle résolution sont-ils imprimés ?
  • Choisir un cas d'usage : information des consommateurs (QR Code avec Digital Link), péremption et lot en caisse (GS1 DataMatrix ou QR), peu de place (GS1 DataMatrix). Commencer par une famille de produits.
  • Définir le Digital Link : votre propre domaine et chemin, avec redirection vers une page produit existante. GTIN à 14 chiffres, ordre 22/10/21, dates dans la chaîne de requête, non compressé.
  • Clarifier les données : le lot et les dates viennent-ils de l'ERP, de la balance ou de la ligne au moment de l'impression ? Des données variables impliquent une impression sur la ligne ou sur l'imprimante d'étiquettes, pas sur un emballage pré-imprimé.
  • Dimensions selon le tableau 5-46 : module 2D de 0,396 à 0,990 mm (203 dpi : 4 à 7 points). EAN-13 d'au moins 0,264 mm (203 dpi : ^BY3 ou plus large).
  • Vérifier la mise en page : zone de silence 1X ou 4X, à moins de 50 mm du centre de l'EAN, même GTIN, HRI selon la section 4.14.2.
  • Pré-vérifier automatiquement : zplcore comply --pack sunrise dans la CI, zplcore gs1 migrate pour les modèles existants.
  • Mesurer l'impression : un vérificateur de codes-barres selon l'ISO/IEC 15415, objectif 1.5/12/660 ou mieux ; la suite de tests GS1 et les vrais scanners de caisse de votre partenaire commercial.
  • Distributeurs : régler le mode du scanner (au moins le mode 1), un seul bip pour deux codes-barres, un logiciel de caisse prêt pour les données supplémentaires ; marques de distributeur et rayon traiteur comme pilote.
  • Se coordonner : avec les partenaires commerciaux et votre organisation membre GS1.

Questions fréquentes

Dois-je imprimer un code-barres 2D sur mes produits d'ici fin 2027 ?

Non. Sunrise 2027 est un objectif qui porte sur ce que les caisses savent lire. GS1 Germany indique explicitement que les entreprises qui souhaitent rester au code-barres linéaire n'ont pas besoin d'ajouter de code 2D. Certains distributeurs peuvent fixer leurs propres exigences.

L'EAN-13 va-t-il être supprimé ?

Non. GS1 Germany, GS1 Austria et GS1 Switzerland le disent clairement, tout comme le guide mondial. Les codes-barres linéaires restent tant qu'ils ont une utilité.

Puis-je remplacer l'EAN-13 par un QR Code ?

Pas sur les produits de marque pour l'instant. Les General Specifications 26.0 exigent le code-barres 2D en plus de l'EAN/UPC ou du GS1 DataBar jusqu'à ce que 90 % des solutions de lecture au POS puissent traiter la 2D. L'exception est le circuit fermé d'un distributeur : selon le document de position de GS1, les marques de distributeur et les produits étiquetés en magasin peuvent porter un seul code-barres 2D si les caisses du distributeur prennent en charge au moins le mode 2.

Ai-je besoin de mon propre domaine pour GS1 Digital Link ?

La syntaxe autorise n'importe quel domaine, avec n'importe quel chemin en amont, et GS1 recommande d'utiliser le vôtre. Un sous-chemin sur le domaine de l'entreprise avec une redirection suffit. Notre article sur le passeport numérique de produit montre comment faire sans nouveau serveur.

Quel niveau de correction d'erreur choisir pour le QR Code ?

GS1 n'en impose aucun : une correction d'erreur plus élevée est plus robuste, mais agrandit le symbole. Un exemple du guide GS1 utilise le niveau M (15 %), tout comme nos exemples. L'essentiel est que la taille de module reste dans les limites du tableau 5-46.

Une imprimante 203 dpi peut-elle imprimer des codes-barres conformes à Sunrise ?

Oui. À 203 dpi, 4 à 7 points par module sont autorisés, et 4 points donnent 0,500 mm, presque exactement la cible de 0,495 mm. Le point faible est plutôt l'EAN-13 voisin, qui nécessite au moins ^BY3 à 203 dpi.

Le QR Code a-t-il besoin de son propre texte en clair ?

Pas s'il se trouve à côté d'un EAN-13 avec HRI. Si le code-barres 2D est le seul code-barres, il affiche (01) suivi du GTIN à 14 chiffres (General Specifications, section 4.14.2).

Qu'en est-il des médicaments et des dispositifs médicaux ?

Ils restent au GS1 DataMatrix avec chaînes d'éléments et aux obligations existantes comme l'UDI ou le DSCSA. Dans la santé, GS1 Digital Link n'est pas encodé dans le code-barres 2D.

La vérification zplCore est-elle une certification GS1 ?

Non. C'est une pré-vérification par rapport à des règles publiées et un assistant pour la migration. L'acceptation dépend du vérificateur, du distributeur et de votre organisation membre GS1.

Sources

Toutes les sources ont été consultées le 19 octobre 2026.

GS1, GS1 DataMatrix et GS1 Digital Link sont des marques de GS1 AISBL et ne sont utilisées ici qu'à titre descriptif. zplCloud et zplCore ne sont pas des produits GS1.

Autres articles