PS PrestaShop Beginner

Internationaal landnummer telefoon (dfphoneintl)

Installatie, configuratie en E.164-normalisatieregels van de module voor internationale landnummers met vlag voor PrestaShop 8 en 9.

Bijgewerkt Moduleversie 1.0.0

Presentatie

DataFirefly International Phone Input (dfphoneintl) voegt een landnummerkiezer met vlag toe aan de velden Telefoon en Mobiele telefoon van PrestaShop, en uniformiseert de nummers naar het internationale E.164-formaat in de database. De module werkt op twee niveaus: in de browser voor de gebruikservaring, en aan de serverzijde om te garanderen dat elke invoeging of wijziging van een adres, ook via de API, de backoffice of een import, een genormaliseerd nummer oplevert.

Opslagformaat: voert een Franse klant 0633547864 in, dan wordt in de database +33633547864 bewaard: het landnummer, zonder de beginnende 0 (de trunk prefix) en zonder spaties of scheidingstekens.

Vereisten

  • PrestaShop 8.0.0 tot 9.99.99
  • PHP 7.4 minimum (8.1+ aanbevolen)
  • Geen enkele externe afhankelijkheid: de module bevat geen bibliotheken van derden

Installatie

  1. Download het archief dfphoneintl-1.0.0.zip vanuit uw DataFirefly-klantenaccount.
  2. Ga in de PrestaShop-backoffice naar Modules → Modulebeheer → Een module installeren.
  3. Sleep het ZIP-bestand erin en klik op Installeren.
  4. De module registreert zichzelf automatisch op de nodige hooks. Er wordt geen enkele SQL-tabel aangemaakt: de module leest de landnummers uit de native tabel ps_country.

Configuratie

Ga naar Modules → Modulebeheer → DataFirefly International Phone Input → Configureren. Er zijn drie instellingen:

  • Activeren op het veld “Telefoon”: schakelt de kiezer en de normalisatie op het veld phone in of uit.
  • Activeren op het veld “Mobiele telefoon”: hetzelfde voor het veld phone_mobile.
  • Voorkeurslanden: een lijst met ISO2-codes gescheiden door komma’s (bijvoorbeeld nl,be,fr,lu,de,gb,us). Die landen staan bovenaan de keuzelijst vastgezet. Standaardwaarde: fr,be,lu,ch,gb,us,de,es,it,nl.

De landenlijst in de kiezer komt uit de landen die in uw winkel geactiveerd zijn (Verzending → Geografische zones → Landen). Een land dat uitgeschakeld is of waarvoor de kolom call_prefix niet is ingevuld, verschijnt niet.

Werking aan de clientzijde

Betrokken pagina’s

De kiezer verschijnt op alle frontendpagina’s met telefoonvelden: het aanmaken van een account, de registratie, het adresbeheer, het bestelproces (in 5 stappen en als one-page checkout), de identiteitspagina, de contactpagina en het opvolgen van een bestelling als gast.

Synchronisatie met het land

Wanneer de klant het land in het adresformulier wijzigt, werkt het landnummer in de kiezer zich automatisch bij. België kiezen zet het landnummer op +32, Duitsland op +49 enzovoort. Die synchronisatie werkt ook bij het herladen van de native checkout via AJAX: de module luistert naar de PrestaShop-events updatedAddressForm, updatedAddress, updateCustomerAddressForm en changedCheckoutStep, met een MutationObserver met debounce als vangnet voor sterk aangepaste thema’s.

Herkenning op bestaande adressen

Bevat het veld al een nummer in internationaal formaat (bij het bewerken van een bestaand adres), dan herkent de module het bijbehorende land via de langste overeenkomende landcode (longest dial-code match): +1242... wordt als de Bahama’s herkend en niet als de Verenigde Staten.

Werking aan de serverzijde

De normalisatie aan de serverzijde hangt aan de hooks actionObjectAddressAddBefore en actionObjectAddressUpdateBefore. Vóór elke INSERT of UPDATE op de tabel ps_address gaan de velden phone en phone_mobile door de klasse DfPhoneFormatter. Dat dekt alle schrijfkanalen: formulieren aan de frontend, de backoffice, de webservice, CSV-imports en modules van derden die de klasse Address manipuleren.

Normalisatieregels

Voor een adres dat aan een land met landnummer +33 hangt:

  • Een nummer dat met + begint blijft ongewijzigd, alleen de scheidingstekens verdwijnen: +33 6 33 54 78 64 wordt +33633547864.
  • Bij een nummer dat met 00 begint, wordt de 00 door + vervangen: 0033633547864 wordt +33633547864.
  • Bij een nummer dat met 0 begint (de trunk prefix) verdwijnt die 0 en komt het landnummer ervoor: 0633547864 wordt +33633547864.
  • Bij een nummer dat al met het landnummer begint maar zonder +, wordt de + gewoon toegevoegd: 33633547864 wordt +33633547864.
  • Bij elk ander nummer dat alleen uit cijfers bestaat, wordt het landnummer ervoor geplaatst.

Bestaande adressen worden bij de installatie niet met terugwerkende kracht gewijzigd. De normalisatie geldt vanaf de volgende keer dat elk adres wordt opgeslagen. Voor een normalisatie van de bestaande gegevens in bulk kunt u contact opnemen met de support: een SQL-script met dezelfde logica is op aanvraag beschikbaar.

Compatibiliteit met thema’s en checkout

  • Het Classic-thema van PS 8 (Bootstrap 4) en het thema van PS 9 (Bootstrap 5) worden native ondersteund.
  • De checkout in 5 stappen en de one-page checkout (OPC) worden ondersteund.
  • De vlaggen zijn Unicode-emoji’s (Regional Indicator Symbols): geen sprite en geen CDN, met native weergave door alle moderne browsers en besturingssystemen.
  • Multistore: globale instellingen, met een landenlijst die per winkel wordt gefilterd.
  • Meertalig: de landnamen verschijnen in de taal van de bezoeker.

Probleemoplossing

De kiezer verschijnt niet

  • Controleer of het veld in de configuratie van de module geactiveerd is.
  • Controleer of uw thema wel degelijk de standaard veldnamen phone en phone_mobile gebruikt (of address[phone] en address[phone_mobile]). Is een veld door een maatwerkthema hernoemd, neem dan contact op met de support.
  • Leeg na de installatie de PrestaShop-cache (Geavanceerde instellingen → Prestaties).

De vlaggen verschijnen als letters (FR, BE enzovoort)

Dat is verwacht gedrag op sommige oudere Windows-systemen die vlagemoji’s niet renderen. Het landnummer +33 blijft zichtbaar en de module blijft volledig bruikbaar.

Het landnummer volgt de landwijziging niet

Bij een sterk aangepast thema waarvan de landkeuzelijst de naam id_country niet gebruikt, kan de automatische synchronisatie zich niet vasthaken. De MutationObserver initialiseert de widget wel opnieuw, en de klant kan zijn landnummer handmatig kiezen. Neem contact op met de support met de URL van uw webshop voor een aanpassing.

Verwijdering

Bij het verwijderen worden de drie configuratiesleutels van de module gewist. De nummers die al in de database genormaliseerd zijn, blijven in internationaal formaat staan: er worden geen klantgegevens gewijzigd of verwijderd.

Support

Support per e-mail inbegrepen, updates 12 maanden inbegrepen. Op alle DataFirefly-modules geldt een niet-goed-geld-terug-garantie van 14 dagen.

Was deze pagina nuttig?

Loopt u nog vast? Neem contact op met support