leider konnten wir bis jetzt nicht herausfinden, wie in Shopware 6 die Eingabefelder (Vorname, Name, Firmenname etc.) auf eine maximale Zeichenlänge begrenzt werden kann. Diese Begrenzung ist für uns sehr wichtig, das es sonst zu Fehlern kommt.
Wir freuen uns auf eure zeitnahen Ideen bzw. Lösungsansätze.
Im Frontend per HTML oder JavaScript das Formular abändern oder im Backend per Validation Definitions. Letzteres ist die sichere Variante, aber komplexer zu realisieren.
Eine Beschränkung in der Datenbank wird vermutlich zu 500er Fehlern führen. Daher würde ich davon abraten.
Hallo,
am besten erweiterst du das Template in deinem eigenen Child-Theme und passt die Felder für z.B. die Registrierung in der views\storefront\component\address\address-personal.html.twig mit dem maxlength Attribut an:
So würde die o.g. Datei aussehen, um den Vornamen auf 10 Zeichen zu begrenzen:
{% sw_extends '@Storefront/storefront/component/address/address-personal.html.twig' %}
{% block component_address_personal_fields_first_name_input %}
<input type="text"
class="form-control{% if violationPath is not empty %} is-invalid{% endif %}"
autocomplete="section-personal given-name"
id="{{ idPrefix ~ prefix }}personalFirstName"
placeholder="{{ "account.personalFirstNamePlaceholder"|trans|striptags }}"
name="{% if prefix %}{{ prefix }}[firstName]{% else %}firstName{% endif %}"
value="{{ data.get('firstName') }}"
data-form-validation-required
{% if requiredMessage is defined %}data-form-validation-required-message="{{ requiredMessage }}"{% endif %}
required="required"
maxlength="10">
{% endblock %}
Ganz theoretisch könnte der Nutzer im Frontend, aber über den Quellcode die maximale Zeicheneingabe entfernen oder erhöhen, ist aber sehr sehr unwahrscheinlich.