Internationale Telefonvorwahl (dfphoneintl)
Installation, Konfiguration und E.164-Normalisierungsregeln des internationalen Telefonvorwahl-Moduls mit Flagge für PrestaShop 8 und 9.
Überblick
DataFirefly International Phone Input (dfphoneintl) fügt eine Vorwahl-Auswahl mit Länderflagge auf den PrestaShop-Feldern Telefon und Mobiltelefon hinzu und normalisiert die Nummern in der Datenbank in das internationale E.164-Format. Das Modul arbeitet auf zwei Ebenen: im Browser für die Benutzererfahrung und serverseitig, um zu garantieren, dass jede Adress-Einfügung oder -Aktualisierung — auch über API, Back-Office oder Import — eine normalisierte Nummer erzeugt.
Speicherformat: Für einen französischen Kunden, der 0633547864 eingibt, lautet der in der Datenbank gespeicherte Wert +33633547864 — Landesvorwahl, führende 0 (Trunk-Prefix) entfernt, keine Leerzeichen oder Trennzeichen.
Voraussetzungen
- PrestaShop 8.0.0 bis 9.99.99
- PHP 7.4 Minimum (8.1+ empfohlen)
- Keine externen Abhängigkeiten — das Modul enthält keine Drittanbieter-Bibliothek
Installation
- Laden Sie das Archiv
dfphoneintl-1.0.0.zipaus Ihrem DataFirefly-Kundenkonto herunter. - Gehen Sie im PrestaShop-Back-Office zu Module → Modul-Manager → Modul hochladen.
- Ziehen Sie die ZIP-Datei per Drag-and-drop und klicken Sie auf Installieren.
- Das Modul registriert sich automatisch auf den erforderlichen Hooks. Es wird keine SQL-Tabelle erstellt — die Vorwahlen werden aus der nativen Tabelle
ps_countrygelesen.
Konfiguration
Gehen Sie zu Module → Modul-Manager → DataFirefly International Phone Input → Konfigurieren. Drei Einstellungen sind verfügbar:
- Auf dem Feld „Telefon“ aktivieren — aktiviert oder deaktiviert die Auswahl und die Normalisierung auf dem Feld
phone. - Auf dem Feld „Mobiltelefon“ aktivieren — dasselbe für das Feld
phone_mobile. - Bevorzugte Länder — durch Kommas getrennte ISO2-Codes (z. B.
fr,be,lu,ch,gb,us,de). Diese Länder werden oben in der Dropdown-Liste angeheftet. Standardwert:fr,be,lu,ch,gb,us,de,es,it,nl.
Die in der Auswahl angezeigten Länder stammen aus den in Ihrem Shop aktivierten Ländern (Versand → Standorte → Länder). Ein deaktiviertes Land oder eines ohne Vorwahl in der Spalte call_prefix erscheint nicht.
Clientseitiges Verhalten
Abgedeckte Seiten
Die Auswahl erscheint auf allen Front-Office-Seiten mit Telefonfeldern: Kontoerstellung, Registrierung, Adressverwaltung, Checkout (5-Schritt und One-Page), Identitätsseite, Kontaktseite und Gast-Bestellverfolgung.
Ländersynchronisation
Wenn der Kunde das Land im Adressformular ändert, aktualisiert sich die Vorwahl der Auswahl automatisch. Die Wahl von Belgien wechselt zu +32, Deutschland zu +49 usw. Diese Synchronisation funktioniert auch bei AJAX-Reloads des nativen Checkouts: Das Modul hört auf die PrestaShop-Events updatedAddressForm, updatedAddress, updateCustomerAddressForm und changedCheckoutStep, mit einem debouncten MutationObserver als Sicherheitsnetz für stark angepasste Themes.
Erkennung bei bestehenden Adressen
Enthält das Feld bereits eine Nummer im internationalen Format (Bearbeitung einer bestehenden Adresse), erkennt das Modul das entsprechende Land über die längste Vorwahl-Übereinstimmung (longest dial-code match): +1242... wird als Bahamas erkannt, nicht als Vereinigte Staaten.
Serverseitiges Verhalten
Die serverseitige Normalisierung ist an die Hooks actionObjectAddressAddBefore und actionObjectAddressUpdateBefore angebunden. Vor jedem INSERT oder UPDATE in der Tabelle ps_address durchlaufen die Felder phone und phone_mobile die Klasse DfPhoneFormatter. Das deckt alle Schreibkanäle ab: Front-Office-Formulare, Back-Office, Webservice, CSV-Importe und Drittanbieter-Module, die die Klasse Address manipulieren.
Normalisierungsregeln
Für eine Adresse, die einem Land mit Vorwahl +33 zugeordnet ist:
- Nummer, die mit
+beginnt → wird wie sie ist beibehalten, nur Trennzeichen werden entfernt:+33 6 33 54 78 64wird zu+33633547864. - Nummer, die mit
00beginnt → das00wird durch+ersetzt:0033633547864wird zu+33633547864. - Nummer, die mit
0(Trunk-Prefix) beginnt → die0wird entfernt und die Vorwahl vorangestellt:0633547864wird zu+33633547864. - Nummer, die bereits mit der Vorwahl ohne
+beginnt → das+wird einfach hinzugefügt:33633547864wird zu+33633547864. - Jede andere Nummer nur aus Ziffern → die Vorwahl wird vorangestellt.
Bestehende Adressen werden bei der Installation nicht rückwirkend geändert. Die Normalisierung greift beim nächsten Speichern jeder Adresse. Für eine Massen-Normalisierung der Bestandsdaten kontaktieren Sie den Support — ein SQL-Skript mit derselben Logik ist auf Anfrage verfügbar.
Theme- und Checkout-Kompatibilität
- PS 8 Classic-Theme (Bootstrap 4) und PS 9-Theme (Bootstrap 5) nativ unterstützt.
- 5-Schritt-Checkout und One-Page-Checkout (OPC) unterstützt.
- Flaggen sind Unicode-Emojis (Regional Indicator Symbols): kein Sprite, kein CDN, native Darstellung in allen modernen Browsern und Betriebssystemen.
- Multistore: globale Einstellungen, Länderliste pro Shop gefiltert.
- Mehrsprachig: Ländernamen in der Sprache des Besuchers.
Fehlerbehebung
Die Auswahl erscheint nicht
- Prüfen Sie, ob das Feld in der Modulkonfiguration aktiviert ist.
- Prüfen Sie, ob Ihr Theme die Standard-Feldnamen
phone/phone_mobile(oderaddress[phone]/address[phone_mobile]) verwendet. Bei einem von einem Custom-Theme umbenannten Feld kontaktieren Sie den Support. - Leeren Sie den PrestaShop-Cache (Erweiterte Einstellungen → Leistung) nach der Installation.
Flaggen werden als Buchstaben angezeigt (FR, BE…)
Erwartetes Verhalten auf einigen älteren Windows-Systemen, die Flaggen-Emojis nicht darstellen. Die Vorwahl +33 bleibt sichtbar und das Modul bleibt voll funktionsfähig.
Die Vorwahl folgt dem Länderwechsel nicht
Bei einem stark angepassten Theme, dessen Länder-Select nicht den Namen id_country verwendet, kann sich die automatische Synchronisation nicht einklinken. Der MutationObserver reinitialisiert dennoch das Widget, und der Kunde kann seine Vorwahl manuell wählen. Kontaktieren Sie den Support mit der URL Ihres Shops für eine Anpassung.
Deinstallation
Die Deinstallation entfernt die drei Konfigurationsschlüssel des Moduls. Bereits normalisierte Nummern in der Datenbank bleiben im internationalen Format — keine Kundendaten werden geändert oder gelöscht.
Support
E-Mail-Support inklusive, Updates 12 Monate inklusive. 14 Tage Geld-zurück-Garantie auf alle DataFirefly-Module.