Per validare un GTIN, conservatelo come testo, rimuovete solo i separatori esplicitamente autorizzati, controllatene la lunghezza, poi ricalcolate l'ultima cifra con l'algoritmo GS1. Questo risultato positivo dimostra però solo la coerenza matematica del codice. Non dimostra né che il numero sia stato attribuito da GS1, né che appartenga al brand dichiarato, né che corrisponda alla taglia o al lotto corretti. Un controllo affidabile prevede quindi tre verdetti separati: sintassi e chiave, esistenza o attribuzione verificabile, poi corrispondenza con il prodotto osservato. Confondere questi livelli crea esattamente i falsi positivi che inquinano un matching fornitore.
Le tre domande a cui un solo booleano non può rispondere
Un campo gtin_valide=true è troppo vago. Bisogna sapere cosa è stato testato. Un numero può superare la chiave di controllo pur essendo stato generato a caso: per molte sequenze di cifre, esiste meccanicamente un'ultima cifra che rende l'insieme coerente. Al contrario, un codice autentico può essere danneggiato da un foglio di calcolo che elimina uno zero iniziale o lo mostra in notazione scientifica.
Separate quindi i seguenti stati:
| Livello | Domanda | Prova accettabile | Ciò che il risultato non dimostra |
|---|---|---|---|
| Formato | Il valore ha una lunghezza GTIN ammessa e solo cifre? | Stringa grezza e regola di lunghezza | Attribuzione ufficiale |
| Chiave | L'ultima cifra corrisponde al calcolo GS1? | Ricalcolo riproducibile | Esistenza del prodotto |
| Identità | Il codice è collegato all'articolo commerciale corretto? | Fonte del brand, confezione o registro autorizzato | Prezzo e stock attuali |
GS1 definisce il GTIN come un identificativo di articolo commerciale. Il suo strumento ufficiale di calcolo spiega che l'ultima cifra è una chiave che serve a verificare che il numero sia composto correttamente. Questa formulazione è importante: una chiave corretta valida la composizione, non l'intera storia commerciale del numero.
Ricalcolare la chiave passo dopo passo
Prendete il valore completo come una stringa. L'ultima cifra è la chiave dichiarata; le precedenti formano il corpo da controllare. Partendo da destra del corpo, moltiplicate alternativamente le cifre per 3 e per 1. Sommate i prodotti. La chiave calcolata è la cifra che completa questa somma fino al multiplo di dieci successivo; se la somma è già un multiplo di dieci, la chiave vale zero.
Ecco un esempio puramente didattico le cui cifre sono ipotetiche, non un prodotto reale. Per il corpo 123456789012, i prodotti letti da destra sono ponderati 3, 1, 3, 1, ecc. La somma ottenuta è 92. Il complemento al multiplo di dieci successivo è 8: il codice completo ipotetico sarebbe quindi 1234567890128. Il calcolo si riproduce anche con la formula (10 - (somma modulo 10)) modulo 10.
Procedura di controllo:
1. Leggere la cella senza conversione numerica. 2. Rimuovere gli spazi periferici, ma registrare ogni altra correzione. 3. Rifiutare lettere, punteggiatura residua e decimali aggiunti da un foglio di calcolo. 4. Verificare che la lunghezza corrisponda a una forma di GTIN attesa in quel feed. 5. Separare la chiave dichiarata dal corpo. 6. Calcolare la somma ponderata da destra. 7. Confrontare la chiave calcolata e la chiave dichiarata. 8. Conservare il motivo esatto in caso di rifiuto.
Una normalizzazione su quattordici cifre può essere utile per confrontare scambi GS1, ma deve avvenire in una colonna derivata. Il valore sorgente resta intatto. GS1 indica in particolare che i suoi messaggi XML usano una rappresentazione su quattordici cifre con zeri a sinistra, mentre altri scambi possono usare una lunghezza variabile fino a quattordici cifre.
Prevenire i falsi positivi di identità
Dopo la chiave, resta la parte di business. Secondo GS1, un GTIN può essere attribuito a un solo prodotto, e le variazioni che distinguono gli articoli commerciali — ad esempio il modello, il colore, la taglia o la presentazione — ricevono riferimenti distinti. Se due righe usano lo stesso codice per due taglie diverse, non bisogna quindi scegliere arbitrariamente quella più simile. Mettete le righe in una coda di revisione e cercate una prova ufficiale.
La prova può provenire da una scheda del brand, da una confezione leggibile, da un feed fornitore autorizzato o da un servizio GS1 pertinente secondo i diritti di accesso. Una semplice ripetizione su più negozi non basta: i negozi possono ricopiare lo stesso errore. Il metodo di rilevamento dei duplicati GTIN tra varianti aiuta a isolare questi conflitti prima che diventino corrispondenze.
Non confondete nemmeno GTIN e SKU. Lo SKU è generalmente un riferimento proprio a un venditore o a un fornitore. Può completare la prova e stabilizzare gli aggiornamenti, ma non è intercambiabile con un identificativo GS1. Conservate entrambe le colonne, con la loro provenienza.
Le correzioni consentite devono restare visibili
Una stringa con spazi attorno al codice può essere ripulita senza cambiarne il significato, a condizione di conservare il valore grezzo. Al contrario, completare alla cieca un codice corto, rimuovere una cifra, sostituire una lettera "O" con uno zero o estrarre le prime cifre da un testo sono trasformazioni rischiose. Possono produrre un codice che supera l'algoritmo pur non essendo mai esistito.
Adottate stati espliciti: valide_cle, invalide_cle, format_inattendu, absent e ambigu_apres_correction. Aggiungete poi uno stato indipendente per la corrispondenza: produit_confirme, conflit_variante o non_verifie. Questa modellazione evita che un successo tecnico diventi, per scorciatoia, un'approvazione commerciale.
Per confrontare poi le offerte, usate solo le righe la cui identità è sufficientemente stabilita. La procedura per confrontare due fornitori sullo stesso EAN inizia proprio da questa prova e non dal prezzo più basso.
Checklist prima di accettare un GTIN
- Il valore grezzo è stato conservato come testo.
- Nessuno zero iniziale è scomparso.
- Le eventuali correzioni sono tracciate separatamente.
- La lunghezza attesa è documentata per il feed.
- La chiave è stata ricalcolata, non solo copiata.
- Il risultato matematico è distinto dall'attribuzione.
- Il brand, la variante e la presentazione corrispondono.
- I duplicati contraddittori sono messi in revisione.
- Lo SKU sorgente resta disponibile per l'audit.
- Un rifiuto contiene un motivo attuabile.
Cosa può automatizzare ArbitragePro+ / cosa deve verificare il venditore
La specifica proposta validateur-gtin potrebbe preservare la stringa grezza, applicare il calcolo GS1, attribuire un motivo di rifiuto e rilevare i conflitti tra varianti. Dovrebbe mostrare separatamente la validità della chiave e il livello di prova dell'identità.
Il venditore deve verificare l'attribuzione e la corrispondenza su una fonte autorizzata, arbitrare i conflitti di brand o confezionamento e non pubblicare una corrispondenza sulla sola base dell'algoritmo.
Verificare un identificativo nel contesto del prodotto
Aprire la ricerca di ArbitragePro+ per esaminare le corrispondenze disponibili e le loro informazioni associate.
Fonti ufficiali
- GS1, «Check Digit Calculator», https://www.gs1.org/services/check-digit-calculator — consultato il 2026-08-17.
- GS1, «Global Trade Item Number (GTIN)», https://www.gs1.org/standards/id-keys/gtin — consultato il 2026-08-17.
- GS1 Support, «How do GS1 GTINs and barcodes work?», https://support.gs1.org/support/solutions/articles/43000734095-how-do-gs1-gtins-and-barcodes-work- — consultato il 2026-08-17.
- GS1 Support, «Required format of GTIN in GS1 EDI standards», https://support.gs1.org/support/solutions/articles/43000734355-what-is-the-required-format-of-gtin-in-gs1-edi-standards- — consultato il 2026-08-17.
