Ean-13

EAN-13 (sigla de European Article Number) é um código de barras no padrão EAN definido pela GS1, adaptado em mais de cem organizações membros GS1, para a identificação dos código de barras UPC.

No EAN-13 o símbolo codifica treze números que estão divididos em quatro partes; dos treze dígitos, doze são dos dados referentes ao produto e um é o dígito verificador .

Ean-13
Exemplo de um EAN-13

Significado do código numérico do EAN-13

As quatro partes que compõem o código são:

  • Origem do Código de Barras
  • Empresa fabricante
  • Produto por ela produzido
  • Dígito verificador

Origem do Código de Barras

Ean-13 
Exemplo de uma situação especial, neste caso um EAN-13 que codifica um ISBN sendo o prefixo o 978 - prefixo este destinado à codificação de ISBNs de livros

Diferente do mito popular, os primeiros números do código EAN não indicam a origem de produto ou empresa detentora da marca, e sim, a filial da GS1 onde o código foi originado. Portanto, um produto fabricado na China, porém com empresa detentora de marca Alemã, importado para o Brasil pode ter início 789 (primeiros dígitos comuns em território nacional), se tais códigos forem adquiridos diretamente com a GS1 Brasil ou mesmo prefixo destinado a outros países. Isto não interfere na utilização do código, pois o padrão EAN é universal.

Para o país de origem do código estão destinados os 3 primeiros dígitos caso se trate de unidades de consumo embora em situações especiais estes 3 primeiros dígitos sirvam para representar não o país onde o código foi gerado mas sim outro tipo de informação tal como os prefixos usados em: produtos de peso variável , produtos de quantidade variável , para uso in-store , para livros e publicações periódicas , para coupons e meios de pagamento , entre outras aplicações.

Empresa fabricante e produto por ela produzido

Seguindo o país de origem do código vêm os dígitos da empresa fabricante e do produto por ela produzido, no total a soma destes dois códigos resultará em 9 dígitos, sendo o número de dígitos de cada um deles dependente da necessidade de codificação de produtos de cada empresa . Por exemplo, uma empresa que produz uma quantidade de produtos diferentes elevada terá necessariamente de ter um código de identificação de empresa fabricante com menos dígitos para poder reservar um número de dígitos maior para identificar o produto por ela produzido. Assim como uma empresa de menor porte ou especializada em certo tipo de produtos, logo com uma quantidade de produtos diferentes menor terá um código de identificação de empresa fabricante com mais dígitos reservando assim menos dígitos para a identificação do produto por ela produzido. O código de empresa fabricante pode assim ter 4, 5 ou 6 dígitos; enquanto que o código de produto por ela produzido pode ter 3, 4 ou 5 dígitos . Existem também empresas que vendem os códigos de barras EAN de forma individual. Neste caso, o sistema acima deve ser desconsiderado. A compra avulsa de um código EAN oficial, padrão GS1, não altera a funcionalidade do mesmo.

Dígito verificador

Ean-13 Ver artigo principal: dígito verificador

É o último dígito no EAN-13 e é calculado com o auxílio de um algoritmo, é um mecanismo de autenticação para certificar a validade de um certo código numérico. Neste caso para verificar a validade dos primeiros 12 números do EAN-13.

Cálculo do dígito verificador EAN 13

Tomando como base o EAN 13 de número: 789100031550-?

   Multiplicam-se os dígitos do código por 1 e por 3, em sequência repetitiva de 1 e 3;    7 * 1 = 7    8 * 3 = 24    9 * 1 = 9    1 * 3 = 3    0 * 1 = 0    0 * 3 = 0    0 * 1 = 0    3 * 3 = 9    1 * 1 = 1    5 * 3 = 15    5 * 1 = 5    0 * 3 = 0    Somando o resultado das multiplicações encontra-se o total de 73.    O valor total da soma das multiplicações deve ser dividido por 10: (73/10 = 7.3)    Transforme o resultado em inteiro, "arredondando" o número para baixo. (7)    Some 1 ao resultado da divisão:  (7+1 = 8)    Multiplique o resultado dessa soma por 10: (8*10 = 80)    Subtraia desse resultado o valor da soma inicial das multiplicações "73": (80 - 73 = 7)    Portanto, o digito verificador é 7. Dessa forma, o código completo é: 7891000315507.    Se o resultado for um múltiplo de 10, o dígito verificador será 0. 
    • Resolução usando algoritmo matemático
  L = Split("789100031550","")   'Converte string em Array de Caracteres   For i = 0 to L.Ubound       RE = RE + L(i).Val * ((i MOD 2) * 2 + 1)  ' soma todos multiplicando apenas os pares por 3   Next 
  RE = ((1 - ((re / 10)-(re \ 10))) * 10) MOD 10   'Acha o múltiplo referido a cima   'neste caso RE será 7 
    • Função PHP para calcular o Dígito Verificador no parâmetro EAN13
   function IncluiDigito($ean) {        $digitos = str_split($ean);        $soma = 0;        foreach ($digitos as $i => $digito) {            if (($i % 2) === 0) {                $soma += $digito * 1;            } else {                $soma += $digito * 3;            }        }        $resultado = floor($soma / 10) + 1;        $resultado *= 10;        $resultado -= $soma;        if (($resultado % 10) === 0) {            $ean = $ean . '0';        } else {            $ean = $ean . $resultado;        }        return $ean;    }    echo IncluiDigito(789100031550); 


    • Função PHP para Verificar o EAN13
  function validateEAN13Barcode($barcode)   {      try {         if ((!preg_match("/^[0-9]{13}$/", $barcode)) || (strlen($barcode) < 13)) {            throw new Exception('O código EAN13 mencionado não possui 13 caracteres numéricos');         }         $digits = str_split($barcode);         $result = 0;         for($i = 0; $i < 12; $i++) {            $result += (($i == 0) || (($i % 2) == 0)) ? $digits[$i] : ($digits[$i] * 3);         }         if ($checkDigit == $digits[12]) {            return ['status' => true, 'message' => 'O código informado é um EAN13 válido'];         } else {            throw new Exception('O digito verificador não confere com o mencionado');         }      } catch(Exception $e) {         return ['status' => false, 'message' => $e->getMessage()];      }   } 
  • Função em PLpgSQL(PosgreSQL) que de acordo o valor informado gera o dígito verificador e retorna o código válido com os 13 dígitos:
  • create or replace function fn_get_codbarras_ean13(p_codbarras varchar(12)) returns varchar(13) as $$ declare     v_soma integer;     v_digitos smallint[12];     v_DV smallint; begin     --Verifica a quantidade de dígitos informados no parâmetro da função     if length(p_codbarras) > 12 then         raise exception 'O valor informado no parâmetro possui mais do que 12 dígitos';     end if;      --Formata o valor do parâmetro com zeros à esquerda e o converte em um array     v_digitos := string_to_array(lpad(p_codbarras,12,'0'), null);      --É somado cada elemento do array, caso ele esteja num índice par o valor será     --multiplicado por 3 antes de ser somado.     for i in 1..12 loop         if mod(i,2) = 0 then             v_soma := coalesce(v_soma, 0) + (v_digitos[i] * 3);         else             v_soma := coalesce(v_soma, 0) + v_digitos[i];         end if;     end loop;      --O resultado da subtração de 10 pela sobra da divisão da soma dos dígitos     --por 10 é o dígito verificador     v_DV = 10 - mod(v_soma, 10);     if v_DV = 10 then         v_DV := 0;     end if;      --É retornado o código de barras concatenado ao dígito verificador     return array_to_string(v_digitos, '') || v_DV; end $$ language plpgsql volatile strict; 
    • Função em ORACLE(PL/SQL) para gerar o EAN13
  CREATE OR REPLACE FUNCTION FUN_EAN13(P_CODIGO_BARRA IN VARCHAR2) RETURN VARCHAR2 IS      V_SOMA     NUMBER;      V_MULTIPLO NUMBER;   BEGIN      IF LENGTH(P_CODIGO_BARRA) != 13 THEN  --passar também o digito, no total 13 caracteres        RETURN 'N';      END IF; 
     FOR I IN 1..12 LOOP  --soma o que é par e impar        IF MOD(I,2) = 0 THEN          V_MULTIPLO := 3;        ELSE          V_MULTIPLO := 1;        END IF;        V_SOMA := NVL(V_SOMA,0) + SUBSTR(P_CODIGO_BARRA, I, 1) * V_MULTIPLO;      END LOOP; 
     IF NVL(NULLIF((10 - MOD(V_SOMA, 10)),10),0) = SUBSTR(P_CODIGO_BARRA, 13) THEN  --verifica o digito        RETURN 'S';      ELSE        RETURN 'N';      END IF;    END; 


  ALTER FUNCTION [dbo].[UFN_GeraCodigoEAN](@ID VARCHAR(20))   RETURNS VARCHAR(20) AS   BEGIN      DECLARE @Retorno VARCHAR(20), @Digito CHAR(1)      DECLARE @chk_digit int, @chk int      DECLARE @num TABLE (num int)      SELECT @ID = RTRIM(LTRIM(@ID))      SELECT @ID = '999'+ISNULL(REPLICATE('0', 9 - len(ISNULL(@ID ,0))), ) + @ID      INSERT INTO @num      SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9 UNION ALL SELECT 10 UNION ALL SELECT 11 UNION ALL SELECT 12      SELECT @chk_digit = SUM(CONVERT(int, SUBSTRING(@ID, LEN(@ID) - num + 1, 1)) * CASE WHEN num % 2 = 1 THEN 3 ELSE 1 END) FROM @num WHERE num <= LEN(@ID)      SELECT @chk_digit = (10 - (@chk_digit % 10)) % 10      SELECT @Digito=CHAR(ASCII('0') + @chk_digit)      SELECT @Retorno=@ID + @Digito      RETURN @Retorno   END 

Fórmula no Excel

A fórmula abaixo pode ser aplicada sem a necessidade de uso de macro, em qualquer versão do Excel. A fórmula foi validada no site da GS1 com resultado satisfatório. Insira um código com 12 dígitos em uma célula do Excel, formatando-a como texto e aplique a fórmula abaixo para calcular o dígito:

=SE(((ARREDONDAR.PARA.BAIXO((EXT.TEXTO(A2;1;1)+(EXT.TEXTO(A2;2;1)*3)+EXT.TEXTO(A2;3;1)+(EXT.TEXTO(A2;4;1)*3)+EXT.TEXTO(A2;5;1)+(EXT.TEXTO(A2;6;1)*3)+EXT.TEXTO(A2;7;1)+(EXT.TEXTO(A2;8;1)*3)+EXT.TEXTO(A2;9;1)+(EXT.TEXTO(A2;10;1)*3)+EXT.TEXTO(A2;11;1)+(EXT.TEXTO(A2;12;1)*3))/10;0)+1)*10)-(EXT.TEXTO(A2;1;1)+(EXT.TEXTO(A2;2;1)*3)+EXT.TEXTO(A2;3;1)+(EXT.TEXTO(A2;4;1)*3)+EXT.TEXTO(A2;5;1)+(EXT.TEXTO(A2;6;1)*3)+EXT.TEXTO(A2;7;1)+(EXT.TEXTO(A2;8;1)*3)+EXT.TEXTO(A2;9;1)+(EXT.TEXTO(A2;10;1)*3)+EXT.TEXTO(A2;11;1)+(EXT.TEXTO(A2;12;1)*3))=10;0;((ARREDONDAR.PARA.BAIXO((EXT.TEXTO(A2;1;1)+(EXT.TEXTO(A2;2;1)*3)+EXT.TEXTO(A2;3;1)+(EXT.TEXTO(A2;4;1)*3)+EXT.TEXTO(A2;5;1)+(EXT.TEXTO(A2;6;1)*3)+EXT.TEXTO(A2;7;1)+(EXT.TEXTO(A2;8;1)*3)+EXT.TEXTO(A2;9;1)+(EXT.TEXTO(A2;10;1)*3)+EXT.TEXTO(A2;11;1)+(EXT.TEXTO(A2;12;1)*3))/10;0)+1)*10)-(EXT.TEXTO(A2;1;1)+(EXT.TEXTO(A2;2;1)*3)+EXT.TEXTO(A2;3;1)+(EXT.TEXTO(A2;4;1)*3)+EXT.TEXTO(A2;5;1)+(EXT.TEXTO(A2;6;1)*3)+EXT.TEXTO(A2;7;1)+(EXT.TEXTO(A2;8;1)*3)+EXT.TEXTO(A2;9;1)+(EXT.TEXTO(A2;10;1)*3)+EXT.TEXTO(A2;11;1)+(EXT.TEXTO(A2;12;1)*3)))


Obs: A fórmula acima não deve ter quebras de linha e no exemplo, o código foi inserido na célula A2.

Outra maneira

Como sugestão a uma maneira diferente no Excel para resolver o mesmo problema, abaixo outra fórmula utilizando técnica diferente do Excel. Ambas devem retornar o mesmo resultado, mas a fórmula abaixo é mais compacta:

=MOD(9 * SOMARPRODUTO(--EXT.TEXTO(TEXTO(A2; REPT("0"; 12)); LIN(INDIRETO("1:12")); 1);--EXT.TEXTO("131313131313"; LIN(INDIRETO("1:12")); 1)); 10)

Obs: A fórmula acima não deve ter quebras de linha e no exemplo, o código foi inserido na célula A2.

Codificação [carece de fontes?]

Ean-13 
Codificação EAN-13
Ean-13 
Números no código L
Ean-13 
Números no código G
Ean-13 
Números no código R

Na codificação do EAN-13, os dígitos são divididos em 3 grupos; o primeiro dígito, o primeiro grupo de 6 dígitos e o último grupo de 6 dígitos. O primeiro grupo de 6 dígitos está codificado através de um sistema onde cada dígito tem duas codificações possíveis, uma par e outra impar. O primeiro dígito está codificado através da selecção de um padrão de escolhas entre estas duas codificações para os seis dígitos seguintes, de acordo com a tabela abaixo (ao contrário dos outros dígitos, o primeiro dígito não está representado directamente por um padrão de barras). Todos os dígitos no último grupo de seis dígitos estão codificados através de uma combinação única de padrões que são os mesmos utilizados no UPC.

Estrutura do EAN-13
1º dígito 1º grupo de 6 dígitos Último grupo de 6 dígitos
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
Codificação dos dígitos
Dígito 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

Nota:As entradas na coluna R são complementares às respectivas entradas na coluna L. As entradas na coluna G são o equivalente ao inverso das entradas na coluna R.

Especificações de aplicação

Localização

Deve estar localizado na base natural do produto para existir um padrão no que concerne a leitura do código de barras facilitando o operador que manuseia o leitor. Existem outro tipo de especificações de localização para produtos que não tenham uma base natural óbvia.

Posição

O símbolo pode estar posicionado na vertical ou horizontalmente na embalagem sendo a orientação do código numérico e do código de barras igual. Ou seja, ambos na vertical ou ambos na horizontal. Caso se trate de uma embalagem cilíndrica é preferível que estejam posicionados verticalmente para uma melhor leitura do código.

Zona de Silêncio

Não se deve imprimir nada e deixar umas margens claras tanto à esquerda como à direita do símbolo EAN-13, pois essas pertencem também ao símbolo e são o identificador do início e do término do código.

Tamanhos e Medidas

O importante é saber que a altura das barras não será tão importante quanto a largura, pois o laser do leitor que irá escanear as barras é bem fino. Mudando a largura drasticamente você pode distorcer ou até modificar os códigos, resultando em erro na hora da leitura. Por isso aconselhamos sempre testar a imagem final antes de imprimir seus códigos em grande escala. Segue abaixo os tamanhos aproximados:

PEQUENO (ALTURA X COMPRIMENTO) MÉDIO (ALTURA X COMPRIMENTO) GRANDE (ALTURA X COMPRIMENTO)
1,30 CM X 4,50 CM 2,50 CM X 3,80 CM 2,55 CM X 6,35 CM

Processo de Impressão

A melhor maneira de imprimir os Códigos de Barras EAN-13 seria direto na embalagem de seu produto. Caso as embalagens já estejam prontas, você poderá imprimir etiquetas adesivas, e colar as etiquetas nas embalagens de seus produtos. O recomendado seria impressão Térmica, para manter a qualidade da leitura de seu Código de Barras EAN-13.

Cores do símbolo

Os leitores têm a capacidade de ler o EAN-13 devido ao contraste entre as barras escuras e as barras claras (ou fundo). Logo existem cores mais legíveis tanto para uso nas barras claras quanto para o uso nas barras escuras. Para as barras escuras é aconselhado o preto, verde-escuro, azul, e marrom escuro. Enquanto que para as barras claras é aconselhado o branco, rosa, e bege, sempre mantendo uma cor mais neutra, e evitando cores tropicais, como por exemplo vermelho, laranja, e amarelo, devido ao laser ser vermelho, isso pode causar uma certa confusão na hora da leitura. Normalmente o mais usual é as barras escuras serem pretas e o fundo branco.

Ver também

Ligações externas

Tags:

Ean-13 Significado do código numérico do EAN-13Ean-13 Cálculo do dígito verificador EAN 13Ean-13 Fórmula no ExcelEan-13 Codificação [carece de fontes?]Ean-13 Especificações de aplicaçãoEan-13 Ver tambémEan-13 Ligações externasEan-13Código de barrasDígito verificadorGS1SiglaUPC

🔥 Trending searches on Wiki Português:

André Felipe Ribeiro de SouzaGiulianoBotafogo de Futebol e RegatasManimal (banda)IslândiaÓscar Romero (futebolista)The Lady in My Life (canção de Michael Jackson)Taça RioScarlett JohanssonSeleção Brasileira de FutebolVincent van GoghMiguel (arcanjo)Club Athletico ParanaenseXXIII Governo Constitucional de PortugalRio de Janeiro (cidade)BudismoSean CombsPinterestElias MalucoLista de municípios de Santa Catarina por populaçãoBaltimoreFísicaSport Club Corinthians PaulistaPonte 25 de AbrilChe GuevaraJude BellinghamLuiz AdrianoBDSMJosep GuardiolaBoston CelticsÁreas urbanasEsporte Clube NoroesteLeonardo da VinciCampeonato Brasileiro de Futebol de 2024 - Série DTóquioJustin BieberPablo EscobarFlorianópolisLucero (artista)Catarina, Princesa de GalesAkira ToriyamaMaruimPatrícia ReisTabela periódicaLiga dos Campeões de Futebol Feminino da UEFADomingos Brazão1984 (livro)Liga dos Campeões da UEFANarcisa TamborindeguyEspírito Santo (estado)André Filho (dublador)Oscar 2024Chester BenningtonAustráliaRaul SeixasGoogleVitamina DUnidades federativas do BrasilCopa AméricaReal Sociedad de FútbolMarielle FrancoCongregação Cristã no BrasilPaulo de TarsoFreddie MercuryTaiwanCiro GomesCoelhinho da PáscoaPeaky Blinders (série de televisão)Atlanta HawksPolóniaÁsiaAna Paula MartinsIrlandaRessurreição de JesusNeo Química ArenaLondrina Esporte ClubeLilithMarília Mendonça🡆 More