Europese artikelnummering
De Europese artikelnummering, ook GTIN-13 of EAN-13 genoemd, is een systeem voor het nummeren van artikelen (een nummer per variant, niet per exemplaar) en voor de bijbehorende streepjescode (ook wel 'barcode' en 'zebracode'), dat wereldwijd wordt toegepast in winkels ten behoeve van kassa-afhandeling en voorraadadministratie. GTIN staat voor Global Trade Item Number, 13 is het aantal cijfers (12 met daarachter een controlecijfer). EAN staat voor European Article Numbering.
Het controlecijfer is zodanig dat de som van de cijfers op oneven posities plus drie maal de som van de overige cijfers een 10-voud is. Voor nummers die beginnen met 87 (zoals bij nummers uitgegeven in Nederland) geldt dus dat toepassing van de sommatieformule op de resterende cijfers een 10-voud plus 1 oplevert.
Voor nummers die met een 0 beginnen is zowel het controlecijfer als de streepjescode identiek aan die van de UPC-code voor het nummer zonder die 0. De streepjescode heeft dus niet meer streepjes. EAN-leesapparatuur kan dus ook de UPC-codes lezen, het zet alleen een 0 voor het UPC-nummer. Ook nummers die met een ander cijfer beginnen hebben hetzelfde aantal streepjes.
Een Internationaal Standaard Boeknummer is een gewoon GTIN-13 nummer, beginnend met 978 of 979 (de codes voor "boekland"), ook voor Nederlandse boeken dus niet met 87.[1]
Opbouw GTIN-13-cijferreeks
[bewerken | brontekst bewerken]Nemen we als voorbeeld een streepjescode met het nummer 87 10400 31114 0
- 87 betekent dat GS1 Nederland (voorheen EAN Nederland) dit nummer heeft uitgegeven (de 'systeemcode'). EAN-organisaties in andere landen hebben een ander tweecijferig getal (België heeft nummer 54). Startgetal 87 zegt overigens niet dat dit artikel in Nederland is gemaakt.
- Het vervolg van het nummer, 10400, is het nummer dat de aanvrager krijgt (het 'aansluitnummer'). De systeemcode en het aansluitnummer samen worden het 'bedrijfsnummer' genoemd. In dit geval verwijst bedrijfsnummer 87 10400 naar Albert Heijn. Een bedrijf kan meerdere aansluitnummers krijgen.
- Daarna is 31114 de code voor een bepaald artikel; codes die veel op elkaar lijken kunnen toch heel verschillende producten aanduiden.
- Het laatste, hier het cijfer 0, is het controlegetal; dat kan ook een ander getal zijn. Het dient als hulpcijfer voor de kassa in geval een van de streepjes is beschadigd.
De opbouw zoals die hierboven is beschreven is niet voor alle systeemcodes/GS1-organisaties hetzelfde. Sommige GS1-organisaties geven langere of kortere bedrijfsnummers uit. Het artikelvolgnummerdeel varieert dienovereenkomstig. Daarom is het niet aan te raden om het GS1-artikelnummer of Global Trade Item Number GTIN op te splitsen, maar altijd de volledige 13-cijferige reeks te nemen ter unieke identificatie van een artikel.
De opbouw van de eerste 12 cijfers van het ISBN wijkt ook enigszins af.
De streepjescode
[bewerken | brontekst bewerken]GTIN-13 is een uitbreiding van de UPC-code. Hij bestaat sinds 1974 en lijkt de nieuwe wereldstandaard te worden. Vrijwel alle verpakte producten die in Nederland en België in de schappen liggen hebben een GTIN-13-code, dus een reeks van dertien cijfers. De internationale standaardiseringsorganisatie GS1 heeft een coördinerende functie en geeft codes uit aan fabrikanten die een nieuw product op de markt brengen.
Bij de uitbreiding van de UPC naar de GTIN-13 code werd er één extra cijfer toegevoegd, vóór de 12 cijfers van de UPC-code. Om GTIN-13 compatibel te maken met UPC heeft de GTIN-13-streepjescode dezelfde opbouw als de UPC-streepjescode, met hetzelfde aantal streepjes. De hardware en software voor het lezen van de streepjes op zich hoefde daardoor niet aangepast te worden, wel de software voor het vertalen van de linkerserie streepjes in een cijferserie (eerst 6, nu 7 cijfers), en voor het controleren van het controlecijfer, voor het berekenen waarvan het extra cijfer wordt meegenomen. Dit gebeurt op de volgende manier:
1e cijfer | 2e - 7e cijfer | 8e - 13e cijfer |
---|---|---|
0 | LLLLLL | RRRRRR |
1 | LLGLGG | RRRRRR |
2 | LLGGLG | RRRRRR |
3 | LLGGGL | RRRRRR |
4 | LGLLGG | RRRRRR |
5 | LGGLLG | RRRRRR |
6 | LGGGLL | RRRRRR |
7 | LGLGLG | RRRRRR |
8 | LGLGGL | RRRRRR |
9 | LGGLGL | RRRRRR |
Hierbij staat een L voor codering met gewone linker codes, zoals in UPC, en G voor codering met het 1-complement van de gewone linker codes in omgekeerde volgorde, de R-code is het 1-complement van de L-code, dus de G-code in omgekeerde volgorde:
cijfer | L-code | G-code | R-code |
---|---|---|---|
0 | 0001101 | 0100111 | 1110010 |
1 | 0011001 | 0110011 | 1100110 |
2 | 0010011 | 0011011 | 1101100 |
3 | 0111101 | 0100001 | 1000010 |
4 | 0100011 | 0011101 | 1011100 |
5 | 0110001 | 0111001 | 1001110 |
6 | 0101111 | 0000101 | 1010000 |
7 | 0111011 | 0010001 | 1000100 |
8 | 0110111 | 0001001 | 1001000 |
9 | 0001011 | 0010111 | 1110100 |
In de codering staat de 0 voor wit en de 1 voor zwart. Ieder van deze getallen van 7 bits representeert een reeks van 7 eenheidsstreepjes. Het zijn 30 verschillende getallen, behorend tot de 40 getallen waarbij de streepjes twee zwarte balken (niet meer of minder) op een witte ondergrond vormen. De L- en G-cijfers kunnen met elkaar gecombineerd worden, doordat ze allemaal met wit beginnen en met zwart eindigen.
De afbeeldingen tonen de L-, G- en R-cijfers tegen een gekleurde achtergrond. De R-cijfers zijn het negatief van de L-cijfers en de G-cijfers zijn gespiegelde R-cijfers.
De complete code begint met een witte zone, gevolgd door, in zwart, 2 dunne lange streepjes, 12 korte van variabele dikte, 2 dunne lange, weer 12 korte van variabele dikte, en 2 dunne lange, in totaal 30. De ruimten tussen de zwarte strepen zijn witte strepen van variabele dikte, in totaal 29: 1 dunne lange, 1 tussen een lange en een korte zwarte streep, 11 korte, 1 dunne tussen een korte en een lange zwarte streep, 1 dunne lange, 1 dunne tussen een lange en een korte zwarte streep, 11 korte, 1 tussen een korte en een lange zwarte streep, en 1 dunne lange.
Meestal staat het eerste cijfer onder de witte zone links, de rest van de cijfers elk precies onder de serie van bijbehorende zeven witte en zwarte eenheidsstreepjes (de zwarte strepen kunnen natuurlijk wel een beetje links of rechts boven het cijfer staan, afhankelijk van de dikte van de twee witte strepen), en het teken > in de witte zone rechts. Soms staat het nummer er zonder deze precieze positionering onder, en dan ook zonder het teken >.
Ook als de onderkant met cijfers en verlengingen van streepjes niet aanwezig is of niet gescand wordt, doet al of niet op zijn kop scannen geen afbreuk aan de eenduidigheid van het resultaat, nog los van de controlemogelijkheid met het controlecijfer. Op zijn kop worden de 6 R-codes in de rechterhelft namelijk 6 G-codes in de linkerhelft, wat niet voorkomt.
Streepjescode zelf maken
[bewerken | brontekst bewerken]VBA
[bewerken | brontekst bewerken]Gebruik:
- Te gebruiken lettertype bij deze code: Code EAN-13 van Eaglefonts
- Met of zonder controlecijfer, dit wordt ALTIJD gegenereerd.
- VBA:
- EANtekst = EAN(MijnString)
- EANtekst = EAN("12345")
- EANtekst = EAN("1234567890123")
- Excel (in cellen):
- =EAN(MijnCel)
Function EAN(Invoer As String) As String Dim C(1 To 13), CS, i As Integer Const L = 65, G = 75, R = 97 ' Opruimen Invoer = Right(String(12, "0") & Left(Invoer, 12), 12) ' Klaarzetten For i = 1 To 12 C(i) = Val(Mid(Invoer, i, 1)) Next 'CheckSum maken CS = C(1) + C(3) + C(5) + C(7) + C(9) + C(11) + ((C(2) + C(4) + C(6) + C(8) + C(10) + C(12)) * 3) 'Controlegetal genereren C(13) = (10 - (CS Mod 10)) Mod 10 '1e cijfer EAN = Left(Invoer, 1) '2e t/m 7e cijfer EAN = EAN & Chr(C(2) + Choose(C(1) + 1, L, L, L, L, L, L, L, L, L, L)) EAN = EAN & Chr(C(3) + Choose(C(1) + 1, L, L, L, L, G, G, G, G, G, G)) EAN = EAN & Chr(C(4) + Choose(C(1) + 1, L, G, G, G, L, G, G, L, L, G)) EAN = EAN & Chr(C(5) + Choose(C(1) + 1, L, L, G, G, L, L, G, G, G, L)) EAN = EAN & Chr(C(6) + Choose(C(1) + 1, L, G, L, G, G, L, L, L, G, G)) EAN = EAN & Chr(C(7) + Choose(C(1) + 1, L, G, G, L, G, G, L, G, L, L)) 'Middelste scheiding EAN = EAN & "*" 'Rechtse cijfers EAN = EAN & Chr(C(8) + R) & Chr(C(9) + R) & Chr(C(10) + R) & Chr(C(11) + R) & Chr(C(12) + R) & Chr(C(13) + R) 'Afsluiten EAN = EAN & "+" End Function
Kortere nummers
[bewerken | brontekst bewerken]GTIN-8 (ook EAN-8 genoemd) is een variant met nummers van 8 cijfers (7 met daarachter een controlecijfer), en een kleinere streepjescode. Deze wordt gebruikt voor kleine en sterk gekromde artikelen. Het eerste cijfer is niet 0 of 2 (deze zijn voor niet-wereldwijd gebruik, zoals een artikel dat maar in één winkelketen wordt verkocht, met het nadeel dat via deze code online informatie over het artikel vinden mogelijk niet lukt). Er zijn dus wereldwijd 8 miljoen nummers beschikbaar. De eerste twee cijfers zijn voor Nederland weer 87 (100.000 nummers). Het werkt hetzelfde als de Universal Product Code, maar dan met twee compartimenten van vier in plaats van zes cijfers. Het controlecijfer is zodanig dat de som van de cijfers op, van rechts geteld, oneven posities plus drie maal de som van de overige cijfers een 10-voud is. Voor nummers die beginnen met 87 geldt dus dat toepassing van de sommatieformule op de resterende cijfers een 10-voud plus 9 oplevert.[2]
Ook als de onderkant met cijfers en verlengingen van streepjes niet aanwezig is of niet gescand wordt, doet al of niet op zijn kop scannen geen afbreuk aan de eenduidigheid van het resultaat, nog los van de controlemogelijkheid met het controlecijfer. Op zijn kop wordt een R-code namelijk een G-code, die niet voorkomt.
Scanners voor GTIN-13 kunnen meestal ook GTIN-8 scannen.
Een en ander geldt analoog bij een ander even aantal cijfers.
Energiesector
[bewerken | brontekst bewerken]Elke Nederlandse aansluiting voor gas en elektriciteit heeft een eigen 18 cijferige EAN-code. De netbeheerders en leveranciers van energie gebruiken deze EAN-codes voor onderlinge communicatie. De netbeheerder geeft iedere aansluiting een EAN-code. De EAN-code van een aansluiting is terug te vinden in het EAN-codeboek.[3] Dit kan iedereen inzien via een gratis toegankelijke website.
Zie ook
[bewerken | brontekst bewerken]- Datamatrix - tweedimensionale code
Externe links
[bewerken | brontekst bewerken]- GS1 Nederland (voorheen EAN Nederland)
- GS1 Belgium & Luxembourg (voorheen EAN Belgium & Luxembourg)
- opzoeken eigenaar van een EAN-code
- ↑ Vóór 2007 waren het net iets andere getallen.
- ↑ Voorbeeld: [1]. Gearchiveerd op 5 augustus 2021.
- ↑ Het EAN-codeboek