GS1: GTINs und die Anzahl der Ziffern verstehen

Auf der Suche nach einem PHP-Paket, das mir sagt, ob eine Ziffernfolge eine GTIN sein könnte, bin ich auf deutlich mehr Kontext gestoßen, als ich erwartet hatte.

Wem bei dem Wort GTIN viele Fragezeichen aufploppen, dem sei gesagt: kein Problem -> wir reden über Barcodes, einfache Zahlenfolgen, die von GS1 spezifiziert und verteilt werden.

Sieht dann in etwa so aus: „4029764001821“

Und das kann von Menschen unter anderem über GS1 verstanden werden.

Beispiel:

https://www.gs1.org/services/verified-by-gs1/results?gtin=4029764001821

Das Interessante an den Dingern ist: Eine GTIN kann unterschiedlich lang sein. Manchmal haben sie eine 0 vorne und manchmal nicht. Und manchmal wollen Menschen explizit keine voranstehende 0 haben.

Also wenn wir Entwickler mit GTINs arbeiten, erwächst der Wunsch zu wissen, ob der String nun irgendwie GTIN-ähnlich ist.

Aus diesem Bedürfnis heraus ging ich auf die Suche.

Kudos an real-digit aka Kaufland e-commerce!

Besonders hervorzuheben ist hier das Gtin-Interface, das einfach mal Antworten auf Fragen liefert, die man so als GTIN-Neuling vermutlich hat.

Hier mal ein paar Dinge dazu:

  • Eine GTIN ist ein String aus Ziffern.
  • Eine GTIN ist (weltweit) einzigartig und identifiziert ein Produkt.
    • Das bedeutet, zwei Produkte können niemals dieselbe GTIN besitzen.
    • Implizit bedeutet es auch, dass ein Produkt mehrere GTINs besitzen kann. Zum Beispiel könnten Hersteller, Lieferant und Händler unterschiedliche GTINs für dasselbe Produkt registrieren.
  • Um sicherzustellen, dass Dinge auch gefunden werden, definiert GS1 die „GTIN Allocation Rules“
    • Unter anderem spezifiziert im „GS1 General Specifications“ unter 4.2 GTIN Rules, das wiederum auf den GTIN Management Standard verweist.
    • Man könnte an der Stelle erahnen, warum ich dieses Gtin-Interface so ultra finde. Das selber mal so eben nachlesen bedeutet in der Regel, Standard finden, öffnen, lesen und verstehen. Referenzen finden, öffnen, lesen und verstehen. Und hier einfach mal so eben in einem Nebensatz den Kontext geregelt. Ultra!
  • Eine GTIN kann aus 12, 13, 14 oder 8 Ziffern bestehen.
  • GTIN-12: Historisch war eine GTIN 12 Zeichen lang und nannte sich Universal Product Code (UPC). Das war 1973, also vor dem Internetzeitalter.
  • GTIN-13: Ursprünglich gedacht, um Handel auch außerhalb der USA und Kanada. Inzwischen wird es überall genutzt, wobei GTIN-12 in USA und Kanada üblicher ist.
  • GTIN-12 und GTIN-13: Kommen dort zum Einsatz, wo Verbraucher einkaufen.
  • GTIN-14: Wird meist zur Kennzeichnung von Kisten, Paletten und anderen logistischen Einheiten verwendet. Also Dinge, die für Verbraucher eher irrelevant sind. Aber eine GTIN-12 oder GTIN-13 könnte auch eine logistische Einheit sein. Also ganz so strikt ist das hier nicht.
  • GTIN-8: Sind kleiner und somit praktischer, um Verbrauchern Dinge in kleineren Verpackungen anzubieten.

Das Interface dazu: Real\Validator\Gtin::class

Schaut man sich im Paket weiter um, so lernt man GTINs noch besser kennen. Zum Beispiel so Dinge wie die Prüfsumme berechnen.

Code, der lesbar ist, mir Kontext liefert und Wissen vermittelt.

Goil!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert