Markus Michalski FAQ

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

English Version

Zurück zur Übersicht

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:

  1. Betreff, als Auswahlliste oder als Freitextfeld (siehe Konfiguration)
  2. Deine Zusatzfelder in der Reihenfolge ihrer Position
  3. Die Einwilligung zur Datenschutzerklärung, mit oder ohne Link
  4. 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.

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:

Mail 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_form direkt 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.