Para validar un GTIN, consérvalo como texto, elimina solo los separadores explícitamente permitidos, controla su longitud y recalcula después el último dígito con el algoritmo de GS1. Sin embargo, este éxito solo demuestra la coherencia matemática del código. No demuestra ni que el número haya sido atribuido por GS1, ni que pertenezca a la marca indicada, ni que corresponda a la talla o al lote correctos. Un control fiable comprende, por tanto, tres veredictos separados: sintaxis y clave, existencia o atribución verificable, y concordancia con el producto observado. Confundir estos niveles crea precisamente los falsos positivos que contaminan un emparejamiento con proveedores.
Las tres preguntas que un solo booleano no puede resolver
Un campo gtin_valide=true es demasiado vago. Hay que saber qué se ha comprobado. Un número puede superar la clave de control aunque se haya fabricado al azar: para muchas secuencias de dígitos, existe mecánicamente un último dígito que hace coherente el conjunto. A la inversa, un código auténtico puede degradarse por culpa de una hoja de cálculo que elimina un cero inicial o lo muestra en notación científica.
Separa, por tanto, los siguientes estados:
| Nivel | Pregunta | Prueba aceptable | Lo que el resultado no demuestra |
|---|---|---|---|
| Formato | ¿Tiene el valor una longitud de GTIN admitida y solo dígitos? | Cadena bruta y regla de longitud | Atribución oficial |
| Clave | ¿Coincide el último dígito con el cálculo de GS1? | Recálculo reproducible | Existencia del producto |
| Identidad | ¿Está el código vinculado al artículo comercial correcto? | Fuente de marca, embalaje o registro autorizado | Precio y stock actuales |
GS1 define el GTIN como un identificador de artículo comercial. Su herramienta oficial de cálculo explica que el último dígito es una clave que sirve para verificar que el número está correctamente compuesto. Esta formulación es importante: una clave correcta valida la composición, no toda la historia comercial del número.
Recalcular la clave paso a paso
Toma el valor completo como una cadena de texto. El último dígito es la clave indicada; los anteriores forman el cuerpo a controlar. Empezando por la derecha del cuerpo, multiplica alternativamente los dígitos por 3 y por 1. Suma los productos. La clave calculada es el dígito que completa esta suma hasta el siguiente múltiplo de diez; si la suma ya es un múltiplo de diez, la clave vale cero.
He aquí un ejemplo puramente pedagógico cuyos dígitos son hipotéticos, no un producto real. Para el cuerpo 123456789012, los productos leídos desde la derecha se ponderan por 3, 1, 3, 1, etc. La suma obtenida es 92. El complemento hasta el siguiente múltiplo de diez es 8: el código completo hipotético sería, por tanto, 1234567890128. El cálculo también se reproduce con la fórmula (10 - (suma módulo 10)) módulo 10.
Procedimiento de control:
1. Leer la celda sin conversión numérica. 2. Eliminar los espacios periféricos, pero registrar cualquier otra corrección. 3. Rechazar letras, puntuación restante y decimales añadidos por una hoja de cálculo. 4. Verificar que la longitud corresponde a una forma de GTIN esperada en ese feed. 5. Separar la clave indicada del cuerpo. 6. Calcular la suma ponderada desde la derecha. 7. Comparar la clave calculada con la clave indicada. 8. Conservar el motivo exacto en caso de rechazo.
Una normalización a catorce dígitos puede ser útil para comparar intercambios GS1, pero debe hacerse en una columna derivada. El valor de origen permanece intacto. GS1 indica en particular que sus mensajes XML usan una representación de catorce dígitos con ceros a la izquierda, mientras que otros intercambios pueden usar una longitud variable de hasta catorce dígitos.
Prevenir los falsos positivos de identidad
Después de la clave, queda la parte de negocio. Según GS1, un GTIN solo puede atribuirse a un único producto, y las variaciones que distinguen los artículos comerciales —por ejemplo, el modelo, el color, la talla o la presentación— reciben referencias distintas. Si dos líneas utilizan el mismo código para dos tallas diferentes, no hay que elegir arbitrariamente la más parecida. Coloca las líneas en una cola de revisión y busca una prueba oficial.
La prueba puede proceder de una ficha de la marca, un embalaje legible, un feed de proveedor autorizado o un servicio de GS1 pertinente según los derechos de acceso. Una simple repetición en varias tiendas no es suficiente: las tiendas pueden copiar el mismo error. El método de detección de duplicados de GTIN entre variantes ayuda a aislar estos conflictos antes de que se conviertan en correspondencias.
Tampoco confundas GTIN y SKU. El SKU suele ser una referencia propia de un vendedor o un proveedor. Puede complementar la prueba y estabilizar las actualizaciones, pero no es intercambiable con un identificador de GS1. Conserva ambas columnas, con su procedencia.
Las correcciones permitidas deben seguir siendo visibles
Una cadena que contiene espacios alrededor del código puede limpiarse sin cambiar su significado, siempre que se conserve el valor bruto. En cambio, completar a ciegas un código corto, eliminar un dígito, sustituir una letra «O» por un cero o extraer las primeras cifras de un texto son transformaciones arriesgadas. Pueden producir un código que supera el algoritmo sin haber existido nunca.
Adopta estados explícitos: valide_cle, invalide_cle, format_inattendu, absent y ambigu_apres_correction. Añade después un estado independiente para la concordancia: produit_confirme, conflit_variante o non_verifie. Este modelado evita que un éxito técnico se convierta, por atajo, en una aprobación comercial.
Para comparar después las ofertas, utiliza únicamente las líneas cuya identidad esté suficientemente establecida. El procedimiento para comparar dos proveedores en el mismo EAN empieza precisamente por esta prueba y no por el precio más bajo.
Checklist antes de aceptar un GTIN
- El valor bruto se ha conservado como texto.
- No ha desaparecido ningún cero inicial.
- Las correcciones eventuales están registradas por separado.
- La longitud esperada está documentada para el feed.
- La clave se ha recalculado, no solo copiado.
- El resultado matemático se distingue de la atribución.
- La marca, la variante y la presentación concuerdan.
- Los duplicados contradictorios se colocan en revisión.
- El SKU de origen sigue disponible para la auditoría.
- Un rechazo contiene un motivo accionable.
Lo que ArbitragePro+ puede automatizar / lo que el vendedor debe verificar
La especificación propuesta validateur-gtin podría preservar la cadena bruta, aplicar el cálculo de GS1, atribuir un motivo de rechazo y detectar conflictos entre variantes. Debería mostrar por separado la validez de la clave y el nivel de prueba de identidad.
El vendedor debe verificar la atribución y la concordancia en una fuente autorizada, arbitrar los conflictos de marca o envase, y no publicar una correspondencia basándose únicamente en el algoritmo.
Verificar un identificador en el contexto del producto
Abrir el buscador de ArbitragePro+ para examinar las correspondencias disponibles y su información asociada.
Fuentes oficiales
- GS1, «Check Digit Calculator», https://www.gs1.org/services/check-digit-calculator — consultado el 2026-08-17.
- GS1, «Global Trade Item Number (GTIN)», https://www.gs1.org/standards/id-keys/gtin — consultado el 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- — consultado el 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- — consultado el 2026-08-17.
