Kennisbank
Koppelen op SKU of op EAN?
Koppel op SKU als jij en de andere kant hetzelfde artikelnummer voeren, en op EAN zodra het nummer van buiten komt: een leverancier, een tweede leverancier, een marktplaats. In de praktijk gebruikt een koppeling beide, in een vaste volgorde, met een vertaaltabel voor de artikelen die geen gedeeld nummer hebben.
Bijgewerkt op
Het korte antwoord
Een koppeling vindt een artikel in het andere systeem via één nummer: de sleutel. De SKU werkt als sleutel wanneer beide kanten hetzelfde artikelnummer voeren, zoals je webshop en je eigen ERP. De EAN werkt wanneer het nummer van buiten komt. Een EAN hoort bij het product en is bij elke partij gelijk. Een SKU is van degene die hem heeft bedacht, en een leverancier heeft voor hetzelfde product zijn eigen nummer.
In de praktijk heeft een koppeling beide nodig, in een vaste volgorde. Een voorbeeld met een leveranciersbestand van 2.400 regels:
| Stap | Sleutel | Gevonden | Blijft over |
|---|---|---|---|
| 1 | EAN | 2.268 | 132 |
| 2 | Artikelnummer van de leverancier, via de vertaaltabel | 96 | 36 |
| 3 | Controlelijst | 0 | 36 |
2.268 plus 96 is 2.364 regels die de webshop bijwerken: 98,5% van het bestand. De 132 regels die stap 1 niet haalt zijn huismerkartikelen van de leverancier zonder EAN, regels met een leeg EAN-veld en regels waarin het nummer beschadigd is. De 36 regels die na stap 2 overblijven, werken niets bij. Ze staan op een lijst tot iemand ze aan een artikel toewijst of uitsluit.
De volgorde is een keuze per bron. Tussen webshop en eigen ERP staat de SKU vooraan, omdat die aan beide kanten door dezelfde mensen wordt beheerd. Bij de voorraad van een leverancier staat de EAN vooraan.
Vier nummers voor één artikel
Eén artikel heeft in een gekoppeld landschap vier nummers. Ze worden door vier partijen uitgegeven en ze zijn niet uitwisselbaar.
| Nummer | Wie geeft het uit | Voorbeeld | Geldig bij |
|---|---|---|---|
| SKU of artikelnummer | Jij | KB-2210 |
Je eigen systemen |
| EAN (GTIN-13) | De merkhouder, via GS1 | 8712345000127 |
Elke partij in de keten |
| Artikelnummer van de leverancier | De leverancier | 004471 |
Die ene leverancier |
| Intern ID | Het systeem zelf | 5804812345601 |
Dat ene systeem |
Het interne ID is het nummer waarmee een API een record aanwijst. Het verandert als een artikel opnieuw wordt aangemaakt en het bestaat niet in het andere systeem. Een koppeling bewaart het wel, naast de sleutel, zodat een tweede ronde het artikel zonder zoekactie terugvindt.
De EAN is één lid van de GTIN-familie van GS1. Een GTIN heeft 8, 12, 13 of 14 cijfers. De variant van 12 cijfers is de UPC uit Noord-Amerika, die van 14 cijfers staat op omdozen. Het laatste cijfer is altijd een controlecijfer. Voor 871234500012 gaat de berekening zo: vermenigvuldig de cijfers om en om met 1 en 3 en tel op.
8×1 + 7×3 + 1×1 + 2×3 + 3×1 + 4×3 + 5×1 + 0×3 + 0×1 + 0×3 + 1×1 + 2×3
= 8 + 21 + 1 + 6 + 3 + 12 + 5 + 0 + 0 + 0 + 1 + 6 = 63
eerstvolgende tiental: 70
controlecijfer: 70 - 63 = 7
EAN: 8712345000127
Een koppeling rekent dit bij elke regel na. Een EAN met een tikfout valt daardoor af voordat hij met iets wordt vergeleken. Een SKU heeft geen controlecijfer: KB-2210 en KB-2201 zijn allebei geldig.
Elk systeem heeft eigen veldnamen voor deze nummers. Deze zijn op 3 oktober 2026 nagelezen in de documentatie van de leverancier.
| Systeem | Eigen artikelnummer | EAN | Artikelnummer leverancier |
|---|---|---|---|
| Shopify | sku op de variant, niet verplicht |
barcode op de variant |
Geen eigen veld in de variant |
| WooCommerce | sku |
global_unique_id |
Geen eigen veld in het product |
| Exact Online | Code, verplicht |
Barcode |
SupplierItemCode in SupplierItem |
| Picqer | productcode, verplicht en uniek |
barcode |
productcode_supplier |
Waar het stil misgaat
Een sleutel die één teken afwijkt, levert geen foutmelding op. De regel wordt niet gevonden en het artikel houdt de voorraad van gisteren. Dit zijn twee regels uit hetzelfde leveranciersbestand: de eerste zoals de leverancier hem exporteert, de tweede nadat iemand het bestand in Excel heeft geopend en opgeslagen.
artikelnr;ean;omschrijving;voorraad
004471;8712345000127;Kogelkraan 1/2 inch;40
4471;8,71235E+12;Kogelkraan 1/2 inch;40
Excel leest beide kolommen als getal. Voorloopnullen vervallen, dus 004471 wordt 4471. Een getal van 12 cijfers of meer toont Excel in wetenschappelijke notatie, en bij opslaan als CSV komt die weergave in het bestand: van de 13 cijfers van de EAN zijn er 6 over. De oorspronkelijke waarde is uit dit bestand niet terug te halen. Microsoft beschrijft beide gedragingen in de uitleg over voorloopnullen en grote getallen.
De afwijkingen die in bijna elk bestand voorkomen:
| In het bestand | Bedoeld | Oorzaak | Wat de koppeling doet |
|---|---|---|---|
4471 |
004471 |
Voorloopnullen weg in Excel | Aanvullen tot de vaste lengte van 6 die deze leverancier gebruikt |
KB-2210 |
KB-2210 |
Spatie of harde spatie aan het eind | Witruimte verwijderen |
kb2210 |
KB-2210 |
Kleine letters, streepje weg | Vergelijken in hoofdletters en zonder streepjes |
KB-221O, met de letter O |
KB-2210 |
Letter O in plaats van cijfer 0 | Naar de controlelijst |
614141000005 |
0614141000005 |
UPC van 12 cijfers naast EAN van 13 | Beide aanvullen tot 14 cijfers |
8,71235E+12 |
8712345000127 |
Wetenschappelijke notatie | Afkeuren, melden bij de bron |
De koppeling normaliseert voor de vergelijking en laat de opgeslagen waarden ongemoeid. kb2210 en KB-2210 worden als gelijk gezien; in de webshop blijft KB-2210 staan. Die regel geldt alleen als hij geen twee bestaande artikelen laat samenvallen. Staan KB-2210 en KB2210 allebei in het assortiment, dan blijft het streepje meetellen.
De verwisseling van de letter O en het cijfer 0 wordt niet automatisch hersteld. Op een scherm en op een pakbon zijn de twee vaak niet te onderscheiden. KB-221O met een letter kan een tikfout zijn of een ander artikel, en die keuze maakt een mens.
Een UPC en een EAN van hetzelfde product verschillen één voorloopnul: 614141000005 en 0614141000005 zijn dezelfde GTIN en als tekst ongelijk. GS1 schrijft voor om een GTIN in systemen als veld van 14 cijfers op te slaan, rechts uitgelijnd en met nullen aangevuld: 00614141000005. Een koppeling vult beide kanten aan tot 14 cijfers en vergelijkt daarna. Meer over wat er in leveranciersbestanden misgaat staat in CSV- en Excel-bestanden van leveranciers.
Varianten en verpakkingen
Elke variant heeft een eigen SKU en een eigen EAN. Een shirt in 4 maten en 3 kleuren is 12 varianten, 12 SKU's en 12 EAN-codes. Het hoofdproduct heeft geen voorraad en geen barcode. In Shopify staan sku en barcode daarom op de variant; in WooCommerce heeft elke variatie een eigen sku.
De systemen modelleren dit verschillend. Een ERP dat elke kleur als los artikel voert, staat tegenover een webshop met één product en 12 varianten. De koppeling koppelt dan op variantniveau en legt apart vast welke artikelen samen één product vormen. Hoe dat per platform werkt staat bij varianten koppelen.
Ook elk verpakkingsniveau heeft een eigen GTIN. Een doos van 12 stuks van het artikel hierboven krijgt een nummer van 14 cijfers: een indicatorcijfer van 1 tot 8 ervoor (hier 1), dezelfde 12 cijfers en een nieuw controlecijfer. Dat wordt 18712345000124. Een leverancier die voorraad in dozen meldt, stuurt dat nummer mee of alleen het getal.
De rekensom die hier misgaat: de leverancier meldt 40 dozen, de webshop verkoopt per stuk. De juiste voorraad is 40 × 12 = 480 stuks. Zonder omrekening staat er 40 in de webshop en is het artikel na 40 verkochte stuks uitverkocht, met 440 stuks op de plank bij de leverancier. De omrekenfactor hoort daarom bij de sleutel. Meer hierover in eenheden en verpakkingen.
Shopify verplicht geen SKU. Varianten zonder SKU en varianten met dezelfde SKU zijn voor een koppeling niet aan te wijzen. Een controle op lege en dubbele sleutels in beide systemen is de eerste stap van elke koppeling op artikelniveau.
Als er geen gedeeld nummer is
Huismerken, maatwerk en artikelen van kleine fabrikanten hebben vaak geen EAN. Dan blijft het artikelnummer van de leverancier over, en dat staat niet in je webshop. De oplossing is een vertaaltabel: per leverancier het nummer van de leverancier naast je eigen SKU.
leverancier;artikelnr_leverancier;sku_webshop;eenheid;factor
LEV-A;004471;KB-2210;stuk;1
LEV-A;004472;KB-2215;doos;12
LEV-B;VD-88120;KB-2210;stuk;1
Drie dingen in deze tabel zijn bewust zo gekozen:
- De sleutel is leverancier plus artikelnummer. Twee leveranciers kunnen
004471gebruiken voor verschillende artikelen. - De factor staat erbij. Regel 2 rekent dozen om naar stuks, met 12.
- Twee regels wijzen naar
KB-2210. Leverancier A en leverancier B leveren hetzelfde artikel. Welke van de twee de voorraad bepaalt, wordt per artikel vastgelegd. Zonder die regel wint het bestand dat als laatste is ingelezen. Zie ook twee bronnen op één artikel.
Een vertaaltabel is geen eenmalige import. Elk nieuw artikel van de leverancier is een nieuwe regel, en iemand moet die regel maken. In het voorbeeld telt de tabel 96 regels en staan er 36 nummers op de controlelijst. Komen daar elke week 5 nieuwe nummers bij zonder dat iemand ze toewijst, dan staan er na een jaar 296 artikelen buiten de koppeling.
De tabel kan op drie plekken staan. In Exact Online is het de SupplierItemCode per artikel en leverancier, in Picqer het veld productcode_supplier, en anders beheert de koppeling de tabel zelf. De regel is dat hij op één plek staat en dat één persoon hem bijhoudt. Dit is een vorm van veldmapping die doorloopt zolang de koppeling draait.
Wat betekent dit voor je koppeling?
Wij leggen bij de bouw per bron vast op welk nummer wordt gekoppeld, in welke volgorde en met welke normalisatie. Een dry run vóór de livegang laat zien hoeveel regels matchen en welke niet, zonder dat er iets naar je webshop gaat. Daarna toont het dashboard per ronde de regels zonder match, zodat een nieuw artikelnummer van je leverancier dezelfde dag zichtbaar is.
Voor leveranciersbestanden staat de aanpak op leveranciersvoorraad koppelen. Voor artikelen, varianten en kenmerken tussen ERP, PIM en webshop op productdata koppelen. Vertel welke systemen en leveranciers je hebt, dan hoor je welke sleutel per bron past.
Veelgestelde vragen
Wat is het verschil tussen een SKU en een EAN?
Een SKU is het artikelnummer dat je zelf kiest, zoals KB-2210. Het is alleen geldig binnen je eigen systemen. Een EAN is een nummer van 13 cijfers dat de merkhouder via GS1 aan het product toekent en dat als barcode op de verpakking staat. Het is bij elke leverancier en elk verkoopkanaal hetzelfde.
Is een EAN hetzelfde als een GTIN of een barcode?
GTIN is de naam van de hele nummerfamilie van GS1: 8, 12, 13 of 14 cijfers. De EAN is de GTIN van 13 cijfers, de UPC die van 12. De barcode is het streepjespatroon waarin het nummer gedrukt staat. In Shopify heet het veld barcode, in WooCommerce global_unique_id, in Exact Online Barcode.
Mijn leverancier gebruikt andere artikelnummers dan ik. Kan dat gekoppeld worden?
Ja. Staat de EAN in het bestand van de leverancier en in je webshop, dan koppelt de koppeling daarop. Voor artikelen zonder EAN komt er een vertaaltabel: per leverancier het artikelnummer van de leverancier naast je eigen SKU. Nieuwe nummers die in geen van beide te vinden zijn, komen op een controlelijst.
Hoe voorkom ik dat Excel de voorloopnullen uit artikelnummers haalt?
Open een CSV-bestand niet met een dubbelklik. Gebruik in Excel Gegevens, Uit tekst/CSV en zet de kolommen met artikelnummers en EAN-codes op het type Tekst. Een koppeling leest het bestand rechtstreeks van de bron en behandelt deze kolommen altijd als tekst, zodat 004471 zes tekens blijft.
Moet elke variant een eigen EAN hebben?
Ja. Volgens de regels van GS1 krijgt elk artikel dat apart besteld of afgerekend wordt een eigen GTIN: elke maat, elke kleur en elk verpakkingsniveau. Een shirt in 4 maten en 3 kleuren heeft 12 EAN-codes, en de doos van 12 stuks heeft een eigen nummer van 14 cijfers.
Wat als twee leveranciers hetzelfde artikel leveren?
Dan komen twee bestanden op dezelfde SKU uit. De EAN is bij beide gelijk, het artikelnummer verschilt per leverancier. Per artikel wordt vastgelegd wat er gebeurt: de voorkeursleverancier bepaalt de voorraad, de voorraden worden opgeteld, of de tweede leverancier vult alleen aan als de eerste op nul staat.
Vertel wat je nodig hebt
Vertel welke systemen je gebruikt en wat je wilt verbeteren. Je krijgt binnen één werkdag een persoonlijk antwoord. We helpen je de werkzaamheden helder te krijgen en spreken de prijs en planning af voordat je iets toezegt.
- Je weet de prijs en de doorlooptijd voordat je iets toezegt
- Wij zoeken uit welke koppeling het werk uit handen neemt
- Wij verzorgen de bouw, hosting, bewaking en het onderhoud
- Je team krijgt minder overtypwerk en minder uitzoekwerk