Tout ce que vous voudriez savoir avant d'installer.
Un regard détaillé sur le fonctionnement de Indicatif Téléphone International PrestaShop — Drapeaux & Normalisation E.164, pourquoi nous l'avons conçu ainsi, et la réflexion derrière les fonctionnalités ci-dessus.
Le problème : des numéros de téléphone illisibles, incomparables, incontactables
Sur une boutique multipays, les numéros de téléphone arrivent en base dans tous les formats imaginables : 06 33 54 78 64, 0633547864, plus 33 6 33 54 78 64, 0033 6 33 54 78 64, 33-633-547-864. Conséquence : impossible de détecter les doublons clients, les exports vers un CRM ou un ERP doivent être nettoyés manuellement, les services de SMS transactionnel rejettent un numéro sur trois, et les équipes commerciales perdent du temps à reformater avant chaque appel international.
La solution : un format unique, une UX claire, une garantie serveur
Le module ajoute un sélecteur d'indicatif avec drapeau directement sur les champs téléphone et téléphone mobile, partout où ils apparaissent : formulaire d'inscription, gestion d'adresses, checkout en 5 étapes ou en one-page. Le client voit immédiatement quel indicatif est appliqué, peut le changer en deux clics, et la liste se filtre par recherche instantanée. Côté base, peu importe ce que tape le client, vous récupérez toujours un format propre, normalisé, immédiatement exploitable.
Synchronisation automatique avec le pays de livraison
Quand le client sélectionne son pays dans le formulaire d'adresse, l'indicatif du sélecteur téléphone change automatiquement. Sélectionner Belgique passe à plus 32, sélectionner Allemagne passe à plus 49, sans intervention manuelle. Cette synchronisation fonctionne aussi sur les recharges AJAX du checkout PrestaShop natif (évènement updatedAddressForm). Pour les thèmes très customisés, un MutationObserver debouncé sert de filet de sécurité.
Normalisation E.164 garantie côté serveur
La normalisation côté navigateur sécurise l'UX, mais elle ne suffit pas. Si une commande est créée via l'API REST PrestaShop, via le back-office, via un import CSV, ou via un autre module qui manipule la classe Address, le formulaire JS n'est jamais exécuté. C'est pourquoi le module branche aussi les hooks actionObjectAddressAddBefore et actionObjectAddressUpdateBefore : avant chaque INSERT ou UPDATE sur la table ps_address, les champs phone et phone_mobile passent par la normalisation côté serveur. Aucune voie de contournement possible.
Règles de normalisation appliquées
Pour une adresse rattachée à un pays dont l'indicatif est plus 33 : un numéro commençant par plus est conservé tel quel (seuls les espaces et séparateurs sont retirés). Un numéro commençant par 00 voit le 00 remplacé par plus. Un numéro commençant par 0 (trunk prefix national) voit le 0 retiré et remplacé par plus suivi de l'indicatif du pays. Un numéro qui commence déjà par l'indicatif sans le plus voit simplement le plus ajouté. Ces règles sont conformes à la norme E.164 internationale utilisée par tous les opérateurs télécom et les services de SMS professionnels.
Pays préférés et UX du sélecteur
Par défaut, les pays France, Belgique, Luxembourg, Suisse, Royaume-Uni, États-Unis, Allemagne, Espagne, Italie et Pays-Bas sont épinglés en haut de la liste. Cette liste est entièrement configurable depuis le back-office (codes ISO séparés par virgule). Les autres pays apparaissent en dessous, classés par ordre alphabétique. Une barre de recherche permet de trouver instantanément un pays par nom, code ISO ou indicatif. Toute la liste est construite à partir des pays activés dans votre boutique, lue directement depuis la colonne ps_country.call_prefix native.
Zéro dépendance, drapeaux Unicode natifs
Le module n'embarque aucune librairie externe. Pas de intl-tel-input à maintenir, pas de jQuery plugin, pas de framework CSS lourd. Les drapeaux sont des emojis Unicode (Regional Indicator Symbols) supportés nativement par tous les navigateurs et OS modernes. La feuille de style fait moins de 4 Ko, le script moins de 16 Ko. Aucun appel réseau supplémentaire, aucun CDN externe, aucune fuite de données vers un tiers.
Il n’y a pas encore d’avis.