Frage zu Shopware 6.5:
Da ich noch keine Demo Instanz für Shopware 6.5 gesehen habe meine Frage.
Gibts bei der Adressvalidierung die Möglichkeit die Straße zu validieren: Vorhandensein einer Zahl.
Ja ich weiß, dass es Plugins gibt, die die Straße und Hausnummern in 2 Felder aufteilen und somit die Hausnummer als Pflichtfeld setzbar machen. Das ist dann aber wieder ein Plugin was hier eingreift und das bei so einem kritischen Prozess der Registrierung.
Wäre gut, wenn man dies im Standard lösen könnte.
@Shopware-Team: Schonmal positiv, dass es nun endlich eine PLZ Validierung gibt. Das hat mir gefehlt in Shopware 5.x. Bitte wenn möglich eine Demo-Instanz bereitstellen für Shopware 6.5.
Ich habe dort auch gleich mit vorgeschlagen: Prüfen der Stadt in der Registrierung auf Vorhandensein von keinen Zahlen. Hier wird ab und an eine PLZ mit eingetragen bei uns.
@AlexGalax
Pro Land macht das schon Sinn. In Deutschland gibts bei der Straße immer eine Nummer und wenn es keine Nummer gibt (den Fall haben wir auch) trägt der User halt „0“ ein. Das kann bei Geschäftskunden ab und an vorkommen, ist aber nur ein sehr kleiner Bruchteil der Adressen.
Ja, pro Land mach schon Sinn, wenn man es selber macht.
Für Shopware jetzt 200 Adressvalidierungen in allen möglichen Kombinationen einzubauen ist ja quatsch. Adressvalidierung ist nicht trivial und birgt immer die Gefahr, dass der Kunde nicht weiterkommt.
Entweder es gibt immer eine Nummer oder nicht. Aber eine 0 eintragen zu müssen, wenn es keine Nummer gibt, ist einfach ein UI-Designfehler. Wir z.B. weisen den Kunden nur dezent darauf hin, das eine Hausnummer fehlt, indem wir die Meldung einblenden „Haben Sie Ihre Hausnummer vergessen?“ (Hilft natürlich nicht immer).
Aber wenn es unbedingt eine Validierung geben muss, ist es vermutlich am besten, einen Drittanbieter zu verwenden, der die Adresse validiert. Gibt da verschiedene Ansätze und ein paar Plugins im Store. Ist natürlich mit Extrakosten verbunden.
Entwerder direkt bei der Eingabe eine genaue Überprüfung, z.B. über
oder eine ungefähre Überprüfung über die Google-Maps API:
oder hinterher, wenn die Bestellung schon im System ist (warum auch immer):
genau, wer nur in Länder verschickt, wo eine Adresse immer eine Zahl enthalten muss, kann im Template
views/storefront/component/address/address-form.html.twig dem input einfach ein pattern hinzufügen. Die Validierung erfolgt zwar dann nur auf Browserebene sollte aber den Grossteil der Probleme damit abfangen
Weiß zufällig jemand, an welcher Stelle die Fehlermeldungsnachricht im Frontend „Die Eingabe muss dem angeforderten Format entsprechen“ von Shopware definiert/vorgegeben/erstellt wird? In den Textbausteinen bin ich nicht fündig geworden.
Schau ich mir mal an, mal sehen. Die Fehlermeldung „error.VIOLATION::IS_BLANK_ERROR“ ist ja als Textfeld mit dem Inhalt „Die Eingabe darf nicht leer sein.“ definiert, allerdings kommt (wenn die Hausnummer fehlt) nur der Text „Die Eingabe muss dem angeforderten Format entsprechen“ und das Feld wird rot.
Ich vermute mal das ist eine Funktion des Browsers (ausgelöst vermutlich durch das „pattern“), denn den Textbaustein finde ich nicht im gesamten Code. Hatte sowas ähnliches schon mal beim Abnicken der Datenschutzerklärung oder AGB, bin mir nicht sicher. Da kommt so ein gelbes Feld mit Ausrufezeichen davor, kann das sein?
Das ist eine Standard HTML Validation - ganz simpel von Shopware angegeben z.B. „min 5 Zeichen, max 10 Zeichen“. Wenn die Eingabe nicht gültig ist, dann zeigt der Browser die obige Fehlermeldung aus. Da hat Shopware keinen Einfluss drauf. Übersetzungen werden aber automatisch anhand der Sprache des Browsers ausgeliefert.
Genauso sieht das bei mir auch aus - nur der Text weicht etwas ab. Wenn das eine Fehlermeldung Browserseitig ist, dann ist vermutlich keine eigene Fehlermeldung für diese Abfrage hinterlegt (und erklärt auch, warum ich keinen Textbaustein dazu fand ). Ist die Frage, ob man für diese HTML Validation auch eine eigene Fehlermeldung ausgeben könnte.
So wie ich es mal wo gesehen habe, könnte class=„form-control{% if violationPath %} is-invalid{% endif %}“ dafür sorgen, dass der Rahmen Rot wird, wenn „etwas“ nicht passt (also z.B. die Hausnummer oder eine generelle eingabe fehlt). Ist die Frage, ob man das mit einer Textausgabe (Sprechblase etc.) erweitern könnte.
Ja okay, das hatte ich auch gelesen. Aber ich hatte an so etwas wie data attribute gedacht, in denen die Fehlermeldung steht o.ä. Wenn ich schon mit JS anfange, dann kann ich auch direkt die ganze Validierung bauen