PrestaShop Checkout & Pagamento

Indicativo Telefónico Internacional no PrestaShop: Bandeiras e Normalização E.164

Um seletor de indicativo com bandeira nos campos de telefone, sincronizado em tempo real com o país da morada, e uma normalização E.164 garantida na base de dados. Nunca mais números mal formatados nas suas encomendas.

Números de telefone limpos, do formulário até à base de dados

PrestaShop 8 PrestaShop 9 Multilingue Multiloja E.164 Sem dependências
  • Reembolso em 30 dias
  • 12 meses de atualizações
  • Suporte em 24h
www.datafirefly.com/pt/
Campo de telefone internacional com indicativos de país no PrestaShop
v1.0.0 · atualizado 2026-05-15
O que faz

A versão curta.

01

Seletor de indicativo com bandeira

Todos os países ativos na loja estão disponíveis, com o respetivo indicativo e bandeira em emoji. Pesquisa instantânea na lista e países preferidos fixados no topo.

02

Sincronização automática com o país da morada

Quando o cliente escolhe Portugal no formulário, o indicativo passa automaticamente para +351. O seletor mantém-se sincronizado no checkout e na conta de cliente, mesmo com recarga AJAX.

03

Normalização E.164 garantida na base de dados

Seja qual for o formato escrito pelo cliente (912 345 678, 912345678, +351 912 345 678, 00351...), o valor guardado na base de dados fica sempre no formato internacional +351912345678, sem espaços nem separadores.

04

Dupla camada: front-office e servidor

A normalização acontece no navegador, para a experiência do cliente, mas também no servidor, nos hooks actionObjectAddressAddBefore e actionObjectAddressUpdateBefore. Não há forma de contornar, nem por API nem por importação de CSV.

A versão longa

Tudo o que quer saber antes de instalar.

Uma análise detalhada de como o Indicativo Telefónico Internacional no PrestaShop: Bandeiras e Normalização E.164 funciona, porque o construímos assim e o raciocínio por trás das funcionalidades acima.

§ 01

O problema: números de telefone ilegíveis, incomparáveis e incontactáveis

Numa loja que vende para vários países, os números de telefone chegam à base de dados em todos os formatos imagináveis: 912 345 678, 912345678, +351 912 345 678, 00351 912 345 678, 351-912-345-678. Consequência: torna-se impossível detetar clientes duplicados, as exportações para um CRM ou ERP têm de ser limpas à mão, os serviços de SMS transacional rejeitam um número em cada três e as equipas comerciais perdem tempo a reformatar antes de cada chamada internacional.

§ 02

A solução: um formato único, uma experiência clara e uma garantia no servidor

O módulo acrescenta um seletor de indicativo com bandeira diretamente nos campos de telefone e telemóvel, em todo o lado onde aparecem: formulário de registo, gestão de moradas e checkout em 5 etapas ou de página única. O cliente vê de imediato qual o indicativo aplicado, pode alterá-lo em dois cliques e a lista filtra-se com pesquisa instantânea. Do lado da base de dados, seja o que for que o cliente escreva, recebe sempre um formato limpo, normalizado e imediatamente utilizável.

§ 03

Sincronização automática com o país de entrega

Quando o cliente escolhe o país no formulário de morada, o indicativo do seletor de telefone muda automaticamente. Escolher Espanha passa para +34, escolher Alemanha passa para +49, sem intervenção manual. Esta sincronização funciona também nas recargas AJAX do checkout nativo do PrestaShop (evento updatedAddressForm). Para temas muito personalizados, um MutationObserver com debounce serve de rede de segurança.

§ 04

Normalização E.164 garantida do lado do servidor

A normalização no navegador melhora a experiência, mas não chega. Se uma encomenda for criada pela API REST do PrestaShop, pelo back-office, por uma importação CSV ou por outro módulo que manipule a classe Address, o JavaScript do formulário nunca chega a correr. Por isso o módulo liga também os hooks actionObjectAddressAddBefore e actionObjectAddressUpdateBefore: antes de cada INSERT ou UPDATE na tabela ps_address, os campos phone e phone_mobile passam pela normalização do lado do servidor. Não há forma de contornar.

§ 05

Regras de normalização aplicadas

Para uma morada associada a um país cujo indicativo é +351: um número que comece por mais é mantido tal e qual (só os espaços e separadores são retirados). Um número que comece por 00 vê o 00 substituído por mais. Um número que comece pelo prefixo nacional 0 vê esse 0 retirado e substituído por mais seguido do indicativo do país. Um número que já comece pelo indicativo sem o mais recebe simplesmente o mais. Estas regras seguem a norma internacional E.164 usada por todos os operadores de telecomunicações e pelos serviços profissionais de SMS.

§ 06

Países preferidos e experiência do seletor

Por predefinição, os países França, Bélgica, Luxemburgo, Suíça, Reino Unido, Estados Unidos, Alemanha, Espanha, Itália e Países Baixos ficam fixados no topo da lista. Essa lista é totalmente configurável no back-office (códigos ISO separados por vírgula), pelo que basta acrescentar PT para colocar Portugal em primeiro. Os restantes países aparecem por baixo, por ordem alfabética. Uma barra de pesquisa permite encontrar um país por nome, código ISO ou indicativo. Toda a lista é construída a partir dos países ativos na sua loja, lidos diretamente da coluna nativa ps_country.call_prefix.

§ 07

Sem dependências, com bandeiras Unicode nativas

O módulo não inclui nenhuma biblioteca externa. Sem intl-tel-input para manter, sem plugins jQuery e sem frameworks CSS pesadas. As bandeiras são emojis Unicode (Regional Indicator Symbols) suportados de origem por todos os navegadores e sistemas modernos. A folha de estilos tem menos de 4 kB e o script menos de 16 kB. Sem pedidos de rede adicionais, sem CDN externos e sem envio de dados a terceiros.