SmartMaps Adress-Autocomplete: Storefront
Verhalten des SmartMaps-Autocomplete in der Storefront: betroffene Seiten, automatisch ausgefüllte Felder, Länder- und Bundesland-Zuordnung sowie Hinweise für eigene Themes.
Storefront
Diese Dokumentation bezieht sich immer auf die aktuellste veröffentlichte Version.
Auf welchen Seiten das Plugin arbeitet
Das Plugin stellt seine Daten nur auf den folgenden Storefront-Seiten bereit. Auf allen anderen Seiten wird nichts geladen und kein Formular verändert.
| Seite | Route |
|---|---|
| Checkout, Bestellübersicht | frontend.checkout.confirm.page |
| Warenkorb | frontend.checkout.cart.page |
| Mein Konto, Adressübersicht | frontend.account.address.page |
| Mein Konto, Adresse anlegen | frontend.account.address.create.page |
| Mein Konto, Adresse bearbeiten | frontend.account.address.edit.page |
| Anmeldung | frontend.account.login.page |
| Registrierung | frontend.account.register.page |
Die Registrierungsseite des Checkouts (
frontend.checkout.register.page) steht nicht in dieser Liste. Dort bleibt das Adressformular unverändert.
Ablauf für Kunden
- Der Kunde tippt in das Feld Straße.
- SmartMaps liefert Adressvorschläge, die unter dem Feld erscheinen.
- Mit der Auswahl eines Vorschlags füllt das Plugin die Felder aus und schließt die Vorschlagsliste.
Die Vorschlagsliste schließt sich auch, wenn das Straßenfeld den Fokus verliert.
Zuordnung der Felder
| SmartMaps-Eigenschaft | Shopware-Feld | Verhalten |
|---|---|---|
street und houseNo |
address[street] |
Straße und Hausnummer werden mit Leerzeichen verbunden. Ohne Hausnummer wird nur die Straße eingetragen. |
zip |
address[zipcode] |
wird nur gesetzt, wenn SmartMaps eine PLZ liefert |
city |
address[city] |
wird nur gesetzt, wenn SmartMaps eine Stadt liefert |
country |
address[countryId] |
Zuordnung über den ISO-Code (siehe unten) |
state |
address[countryStateId] |
Zuordnung über den Namen des Bundeslandes (siehe unten) |
Nach dem Eintragen löst das Plugin im jeweiligen Feld Browser-Events aus (input, bei Textfeldern und Land zusätzlich change), damit Shopware-JavaScript und Formularvalidierung die neuen Werte mitbekommen.
Land
Das Plugin sucht in der Länderauswahl zuerst die Option, deren Attribut data-iso dem ISO-Code entspricht. Findet es keine, vergleicht es den Text der Option mit dem ISO-Code. Findet es auch dort nichts, bleibt die Länderauswahl unverändert.
Bundesland
Das Bundesland-Feld wird erst gefüllt, wenn die Auswahl nach dem Länderwechsel geladen ist. Dafür prüft das Plugin im Abstand von 200 Millisekunden, höchstens 10 Mal. Danach wählt es die Option, deren Text dem Namen des Bundeslandes entspricht (ohne Beachtung der Groß- und Kleinschreibung). Gibt es keinen Treffer, bleibt die Auswahl unverändert.
Eigene Themes
- Das Plugin erweitert die Twig-Blöcke
component_address_form(Adressformular) sowiebase_head_stylesheetundbase_body_scriptder Basisvorlage persw_extends. - Das Adressformular wird in einen
divmit dem Attributdata-smartmaps-autocompletegehüllt. - Die Felder werden über die Attribute
namegefunden:input[name$="[street]"],input[name$="[zipcode]"],input[name$="[city]"],select[name$="[countryId]"]undselect[name$="[countryStateId]"]. Ein Theme, das diese Namen ändert oder das Adressformular-Template ersetzt, muss angepasst werden. - Wird das Formular nachträglich in die Seite eingefügt (zum Beispiel beim Einblenden der abweichenden Lieferadresse), erkennt das Plugin das und bindet die Vorschläge nachträglich an.