Support Form: Storefront
Support Form für Sylius - das Formular unter /support, Footer-Link, Benachrichtigung und Bestätigungsmail, Datenschutz-Link, Template überschreiben und Hook für Spam-Schutz
Support Form: Storefront
Live Demo: Teste dieses und weitere Plugins live — ohne Installation, ohne Risiko: demo.markus-michalski.net
Das Formular im Shop
Das Formular erreichst du unter /support. Die Route heißt mmd_sylius_support_form_plugin_shop_support_request_submit und nimmt GET (Formular anzeigen) und POST (absenden) entgegen. Sie liegt in der Datei shop.yaml, die du bei der Installation importiert hast.
Das Formular baut sich in dieser Reihenfolge auf:
- Betreff, als Auswahlliste oder als Freitextfeld (siehe Konfiguration)
- Deine Zusatzfelder in der Reihenfolge ihrer Position
- Die Einwilligung zur Datenschutzerklärung, mit oder ohne Link
- Der Absenden-Button
Die Einwilligung ist eine Pflicht. Ohne Häkchen meldet das Formular „Du musst die Datenschutzerklärung akzeptieren, um dieses Formular abzusenden.“ Nach dem Absenden leitet der Shop zurück und zeigt die Meldung „Danke - die Support-Anfrage wurde übermittelt. Ich melde mich so schnell wie möglich bei dir.“ Lehnt eine Erweiterung die Anfrage ab (siehe Erweiterbarkeit), erscheint stattdessen „Deine Anfrage konnte nicht verarbeitet werden. Bitte versuche es erneut.“ Beide Texte kommen aus den Plugin-Übersetzungen und lassen sich dort überschreiben.
Eingeloggte Kunden
Gäste und eingeloggte Kunden können das Formular gleichermaßen absenden. Ist ein Kunde eingeloggt und hast du ein Feld vom Typ E-Mail angelegt, füllt das Plugin das erste dieser Felder mit der Adresse des Kunden vor. Der Kunde kann sie ändern. Einen Namen füllt das Plugin nicht vor, weil es kein festes Namensfeld gibt.
Link im Footer
Das Plugin hängt einen Link „Support“ in die Hilfe-Spalte des Footers (Twig Hook sylius_shop.base.footer.content.menu.help_links, Priorität 50, Template shop/help_links/support.html.twig). Er steht bewusst nicht in der Spalte mit den Unternehmensinformationen („Über uns“, „Kontakt“).
Ersetzt dein Theme den Footer oder die Hilfe-Spalte, erscheint der Link dort möglicherweise nicht. Verlinke dann selbst auf die Route
mmd_sylius_support_form_plugin_shop_support_request_submit.
E-Mails
Nach einer gültigen Anfrage verschickt das Plugin bis zu zwei Mails über den Sylius-Mailer:
| Empfänger | Inhalt | |
|---|---|---|
support_request |
Die Empfänger-E-Mail der Channel-Konfiguration, sonst die Kontakt-E-Mail des Channels | Betreff und Antworten. Ist eine Antwort-Adresse bekannt, steht sie als Reply-To im Header. |
support_request_confirmation |
Die Adresse, die der Kunde angegeben hat | Kurze Empfangsbestätigung, die Betreff und Antworten („Deine Nachricht im Wortlaut“) wiederholt, damit der Kunde eine Kopie behält |
Die Bestätigung geht nur raus, wenn die Anfrage eine Adresse hat. Hat der Channel weder eine Empfänger-E-Mail noch eine Kontakt-E-Mail, entfällt die Benachrichtigung an dich, die Anfrage ist aber gespeichert. Alle Werte aus dem Formular werden als Text ausgegeben, nicht als HTML.
Den Mailtext passt du über Kopien dieser Templates unter templates/bundles/MmdSyliusSupportFormPlugin/emails/ an: support_request.html.twig, support_request_confirmation.html.twig sowie die gemeinsamen Teile _support_request_details.html.twig und _support_request_field.html.twig.
Die Bestätigung geht an jede Adresse, die ins Formular getippt wird, und wiederholt die Angaben unverändert. Ohne Schutz vor Bots kann jemand deinen Shop dazu bringen, Mails mit beliebigem Text an Dritte zu schicken. Siehe Fehlerbehebung und FAQ.
Eigene Anpassungen
Template überschreiben
Das Formular-Template liegt unter @MmdSyliusSupportFormPlugin/shop/support_request/index.html.twig und erweitert das Sylius-Shop-Layout. Zum Überschreiben legst du eine Kopie an unter:
templates/bundles/MmdSyliusSupportFormPlugin/shop/support_request/index.html.twig
Bringt dein Theme eigene Templates mit, gilt die Sylius-Theme-Reihenfolge wie bei jedem anderen Bundle-Template.
Im Formular steht der Hook
mmd_altcha.widget.support_formdirekt vor dem Absenden-Button. Er ist ein vorbereiteter Platz für ein Spam-Schutz-Widget. Ohne einen dafür registrierten Eintrag rendert er nichts. Ersetzt du das Template, übernimm diesen Hook, wenn du ihn nutzen willst.
Die Hook-Namen im Überblick
| Hook | Wo | Zweck |
|---|---|---|
sylius_shop.base.footer.content.menu.help_links |
Footer | Das Plugin ergänzt den Support-Link |
mmd_altcha.widget.support_form |
Im Formular, vor dem Absenden-Button | Platz für ein Spam-Schutz-Widget |
Wie du ein ALTCHA-Widget über einen Hook in ein eigenes Formular einbaust, beschreibt die ALTCHA-Dokumentation. Die Hooks der Admin-Oberfläche stehen unter Erweiterbarkeit.