Support Form
Konfigurierbares Support-Formular für Sylius - Betreff-Auswahl aus Produkten oder Kategorien pro Channel, Zusatzfelder im Admin, gespeicherte Anfragen, Bestätigungsmail, Shop API
Support Form
Diese Dokumentation bezieht sich immer auf die aktuellste veröffentlichte Version.
Live Demo: Teste dieses und weitere Plugins live — ohne Installation, ohne Risiko: demo.markus-michalski.net
Überblick
Das Kontaktformular von Sylius verschickt nur eine E-Mail mit einem frei getippten Betreff. Ein Support-Formular braucht mehr: Kunden sollen aus einer kuratierten Liste wählen, wozu sie Hilfe brauchen, zum Beispiel bei einem gekauften Produkt oder in einer Produktkategorie. Und du als Shop-Betreiber willst Zusatzfelder wie Bestellnummer oder Dringlichkeit ergänzen, ohne dafür Code zu ändern.
Dieses Plugin bringt dafür ein eigenes Formular unter /support mit. Welche Produkte oder Kategorien als Betreff zur Auswahl stehen, legst du pro Channel fest. Alle weiteren Felder definierst du im Admin. Fest vorgegeben sind nur der Betreff und die Einwilligung zur Datenschutzerklärung. Jede Anfrage wird gespeichert, du bekommst eine E-Mail, und der Kunde kann eine Bestätigung erhalten.
Das Formular funktioniert im Shop und über die Shop API gleich. Beide Wege nutzen dieselbe Prüfung und dieselbe Verarbeitung, sodass ein Headless-Frontend dieselben Regeln einhält wie die Storefront.
graph LR
A["Storefront /support"] --> C["Verarbeitung der Anfrage"]
B["Shop API POST /shop/support-requests"] --> C
C --> D["Event PRE_PERSIST"]
D --> E["Anfrage speichern"]
E --> F["E-Mail an dich"]
E --> G["Bestätigung an den Kunden"]
E --> H["Admin-Liste und Admin-API"]
Dokumentation
| Seite | Inhalt |
|---|---|
| Installation und Betrieb | Installation, Setup-Befehl, Update, alte Anfragen regelmäßig löschen, Deinstallation |
| Konfiguration | Channel-Konfiguration, Zusatzfelder, Anfragen im Admin, Praxis-Beispiele |
| Storefront | Formular im Shop, Footer-Link, E-Mails, Datenschutz-Link, Theme-Anpassungen |
| Shop API | Endpunkte für Headless-Clients, Request-Body, Fehlerformat |
| Erweiterbarkeit | Event vor dem Speichern, Formular-Erweiterungen, austauschbare Services |
| Fehlerbehebung und FAQ | Typische Probleme, bekannte Einschränkungen, häufige Fragen |
| Technische Details | Ablauf als Diagramm, Plugin-Struktur, Tabellen und Migrationen |
Features
| Feature | Beschreibung |
|---|---|
| Eigenes Formular | Route /support, unabhängig vom Sylius-Kontaktformular |
| Betreff-Auswahl pro Channel | Eine kuratierte Liste aus Produkten oder aus Kategorien. Ohne Konfiguration tippt der Kunde den Betreff frei ein. |
| Zusatzfelder im Admin | Neun Feldtypen: Text, mehrzeiliger Text, E-Mail, Zahl, Checkbox, Datum, Uhrzeit, Datum und Uhrzeit, Auswahl. Mit Übersetzungen, Pflichtangabe, Reihenfolge und Grenzwerten. |
| Gespeicherte Anfragen | Admin-Liste mit Detailansicht, Antworten als Momentaufnahme gespeichert |
| Empfänger pro Channel | Die Benachrichtigung geht an eine eigene Adresse, zum Beispiel das Eingangspostfach deines Ticketsystems |
| Bestätigung an den Kunden | Eine kurze Empfangsbestätigung samt Kopie der Angaben, sobald der Kunde eine E-Mail-Adresse angegeben hat |
| Datenschutz-Link pro Channel | „Datenschutzerklärung“ in der Einwilligung wird zum Link |
| Shop API | Absenden, Felddefinitionen und Betreff-Auswahl für Headless-Clients |
| Befehl zum Löschen | mmd:support-requests:purge entfernt alte Anfragen, damit personenbezogene Daten nicht dauerhaft liegen bleiben |
| Setup-Befehl | mmd:support-form:setup führt nur die Migrationen dieses Plugins aus |
| Event vor dem Speichern | Eine Erweiterung kann Anfragen auf beiden Wegen ablehnen, zum Beispiel für Spam-Schutz |
Anforderungen
| Anforderung | Version | Hinweise |
|---|---|---|
| Sylius | ^2.2 | Getestet gegen Sylius 2.2 und 2.3 |
| PHP | ^8.3 | |
| API Platform | ^4.2.1 oder ^5.0 | Wird mit Sylius installiert, beide Hauptversionen werden getestet |
| Datenbank | MySQL/MariaDB | PostgreSQL wird nicht unterstützt. Die Migrationen sind in MySQL-DDL geschrieben. |
Das Formular hat keinen eigenen Spam-Schutz. Die Bestätigungsmail geht an jede Adresse, die ins Formular getippt wird. Lies vor dem Livegang die bekannten Einschränkungen.
Lizenz
Kommerzielle Lizenz: Eine Lizenz gilt für eine Sylius-Installation (alle Channels sowie deren Entwicklungs- und Staging-Umgebungen). Eine Weitergabe ist nicht erlaubt, Updates sind 12 Monate ab Kauf enthalten.
Support
Bei Fragen zur Lizenz, technischen Fragen oder Fehlern erreichst du mich unter support@markus-michalski.net.