PS PrestaShop Débutant

Indicatif Téléphone International (dfphoneintl)

Installation, configuration et règles de normalisation E.164 du module d'indicatif téléphonique international avec drapeau pour PrestaShop 8 et 9.

Mis à jour Version du module 1.0.0

Présentation

DataFirefly International Phone Input (dfphoneintl) ajoute un sélecteur d’indicatif téléphonique avec drapeau sur les champs Téléphone et Téléphone mobile de PrestaShop, et uniformise les numéros au format international E.164 en base de données. Le module agit sur deux niveaux : côté navigateur pour l’expérience utilisateur, et côté serveur pour garantir que toute insertion ou mise à jour d’adresse — y compris via API, back-office ou import — produit un numéro normalisé.

Format de stockage : pour un client français saisissant 0633547864, la valeur enregistrée en base est +33633547864 — indicatif du pays, suppression du 0 initial (trunk prefix), aucun espace ni séparateur.

Prérequis

  • PrestaShop 8.0.0 à 9.99.99
  • PHP 7.4 minimum (8.1+ recommandé)
  • Aucune dépendance externe — le module n’embarque aucune librairie tierce

Installation

  1. Téléchargez l’archive dfphoneintl-1.0.0.zip depuis votre compte client DataFirefly.
  2. Dans le back-office PrestaShop, allez dans Modules → Gestionnaire de modules → Installer un module.
  3. Glissez-déposez le fichier ZIP puis cliquez sur Installer.
  4. Le module s’enregistre automatiquement sur les hooks nécessaires. Aucune table SQL n’est créée — le module lit les indicatifs depuis la table native ps_country.

Configuration

Rendez-vous dans Modules → Gestionnaire de modules → DataFirefly International Phone Input → Configurer. Trois réglages sont disponibles :

  • Activer sur le champ « Téléphone » — active ou désactive le sélecteur et la normalisation sur le champ phone.
  • Activer sur le champ « Téléphone mobile » — idem pour le champ phone_mobile.
  • Pays préférés — liste de codes ISO2 séparés par des virgules (ex. fr,be,lu,ch,gb,us,de). Ces pays sont épinglés en haut de la liste déroulante. Valeur par défaut : fr,be,lu,ch,gb,us,de,es,it,nl.

La liste des pays affichés dans le sélecteur provient des pays activés dans votre boutique (Livraison → Zones géographiques → Pays). Un pays désactivé ou sans indicatif renseigné dans la colonne call_prefix n’apparaît pas.

Fonctionnement côté client

Pages concernées

Le sélecteur s’affiche sur toutes les pages front où figurent des champs téléphone : création de compte, inscription, gestion des adresses, tunnel de commande (5 étapes et one-page checkout), page identité, page contact et suivi de commande invité.

Synchronisation avec le pays

Lorsque le client change le pays dans le formulaire d’adresse, l’indicatif du sélecteur se met à jour automatiquement. Sélectionner Belgique passe l’indicatif à +32, Allemagne à +49, etc. Cette synchronisation fonctionne aussi lors des rechargements AJAX du checkout natif : le module écoute les évènements PrestaShop updatedAddressForm, updatedAddress, updateCustomerAddressForm et changedCheckoutStep, avec un MutationObserver debouncé en filet de sécurité pour les thèmes fortement personnalisés.

Détection sur adresses existantes

Si le champ contient déjà un numéro au format international (édition d’une adresse existante), le module détecte le pays correspondant par correspondance du plus long indicatif (longest dial-code match) : +1242... est reconnu comme Bahamas et non comme États-Unis.

Fonctionnement côté serveur

La normalisation serveur est branchée sur les hooks actionObjectAddressAddBefore et actionObjectAddressUpdateBefore. Avant chaque INSERT ou UPDATE sur la table ps_address, les champs phone et phone_mobile passent par la classe DfPhoneFormatter. Cela couvre tous les canaux d’écriture : formulaires front, back-office, webservice, imports CSV, et modules tiers manipulant la classe Address.

Règles de normalisation

Pour une adresse rattachée à un pays d’indicatif +33 :

  • Numéro commençant par + → conservé tel quel, seuls les séparateurs sont retirés : +33 6 33 54 78 64 devient +33633547864.
  • Numéro commençant par 00 → le 00 est remplacé par + : 0033633547864 devient +33633547864.
  • Numéro commençant par 0 (trunk prefix) → le 0 est retiré et l’indicatif est préfixé : 0633547864 devient +33633547864.
  • Numéro commençant déjà par l’indicatif sans + → le + est simplement ajouté : 33633547864 devient +33633547864.
  • Autre numéro composé uniquement de chiffres → l’indicatif est préfixé.

Les adresses existantes ne sont pas modifiées rétroactivement à l’installation. La normalisation s’applique à la prochaine sauvegarde de chaque adresse. Pour une normalisation massive de l’existant, contactez le support — un script SQL suivant la même logique est disponible sur demande.

Compatibilité thèmes et checkout

  • Thème Classic PS 8 (Bootstrap 4) et thème PS 9 (Bootstrap 5) supportés nativement.
  • Checkout 5 étapes et one-page checkout (OPC) supportés.
  • Les drapeaux sont des emojis Unicode (Regional Indicator Symbols) : aucun sprite ni CDN, rendu natif par tous les navigateurs et OS modernes.
  • Multiboutique : paramètres globaux, liste de pays filtrée par boutique.
  • Multilangue : noms de pays affichés dans la langue du visiteur.

Dépannage

Le sélecteur ne s’affiche pas

  • Vérifiez que le champ est activé dans la configuration du module.
  • Vérifiez que votre thème utilise bien les noms de champs standards phone / phone_mobile (ou address[phone] / address[phone_mobile]). Pour un champ renommé par un thème custom, contactez le support.
  • Videz le cache PrestaShop (Paramètres avancés → Performances) après l’installation.

Les drapeaux s’affichent comme des lettres (FR, BE…)

Comportement attendu sur certains anciens systèmes Windows qui ne rendent pas les emojis drapeaux. L’indicatif +33 reste affiché et le module reste pleinement fonctionnel.

L’indicatif ne suit pas le changement de pays

Sur un thème très personnalisé dont le select pays n’utilise pas le nom id_country, la synchronisation automatique ne peut pas s’accrocher. Le MutationObserver ré-initialise néanmoins le widget, et le client peut choisir manuellement son indicatif. Contactez le support avec l’URL de votre boutique pour une adaptation.

Désinstallation

La désinstallation supprime les trois clés de configuration du module. Les numéros déjà normalisés en base restent au format international — aucune donnée client n’est modifiée ni supprimée.

Support

Support par email inclus, mises à jour incluses pendant 12 mois. Garantie satisfait ou remboursé 14 jours sur tous les modules DataFirefly.

Cette page vous a-t-elle été utile ?

Toujours bloqué ? Contactez le support