Markus Michalski FAQ

Support Form: Fehlerbehebung und FAQ

Support Form für Sylius - typische Probleme mit Symptom, Prüfung und Lösung, bekannte Einschränkungen (kein Spam-Schutz, nur MySQL/MariaDB) und häufige Fragen

English Version

Zurück zur Übersicht

Support Form: Fehlerbehebung und FAQ

Live Demo: Teste dieses und weitere Plugins live — ohne Installation, ohne Risiko: demo.markus-michalski.net

Fehlerbehebung

Symptom: In der Admin-Sidebar fehlt unter „MMKreativ Plugins“ der Eintrag „Support-Formular“.
Prüfen: Ist das Bundle in config/bundles.php registriert? Ist die Admin-Route mmd_sylius_support_form_plugin_admin_support_form_channel_configuration_index importiert (siehe Installation)?
Lösung: Fehlenden Eintrag ergänzen und bin/console cache:clear ausführen. Der Menüeintrag erscheint erst, wenn die Admin-Routen importiert sind. Fehlt der Import, blendet das Plugin den Eintrag aus, statt das Admin-Menü zu stören.

Symptom: /support liefert einen 404-Fehler.
Prüfen: Ist die Datei shop.yaml des Plugins in deinen Routen importiert?
Lösung: Den Import mmd_sylius_support_form_shop aus der Installation ergänzen. bin/console mmd:support-form:setup meldet fehlende Routen-Imports und gibt den passenden Snippet aus.

Symptom: mmd:support-form:setup bricht ab und meldet, die Migrationen seien Doctrine nicht bekannt.
Prüfen: Ist das Bundle registriert, und wurde der Cache seitdem geleert? Steht sylius_core.prepend_doctrine_migrations nicht auf false?
Lösung: Bundle-Eintrag und Einstellung prüfen, Cache leeren und den Befehl erneut ausführen.

Symptom: mmd:support-form:setup bricht ab und verweist auf offene Migrationen von Sylius.
Prüfen: Sind Migrationen von Sylius selbst noch nicht ausgeführt, zum Beispiel nach einem Sylius-Update?
Lösung: Zuerst bin/console doctrine:migrations:migrate ausführen, danach den Setup-Befehl erneut.

Symptom: Das Formular zeigt für den Betreff ein Freitextfeld statt der erwarteten Auswahlliste.
Prüfen: Gibt es für den Channel eine Channel-Konfiguration? Steht die Betreff-Quelle auf „Produkte“ oder „Kategorien“, und ist die Liste dieser Quelle gefüllt?
Lösung: Konfiguration anlegen und Produkte bzw. Kategorien auswählen. Ohne Konfiguration oder bei leerer aktiver Liste zeigt das Formular absichtlich ein Freitextfeld.

Symptom: Anfragen erscheinen im Admin, aber es kommt keine Benachrichtigung an.
Prüfen: Hat die Channel-Konfiguration eine Empfänger-E-Mail, oder hat der Channel eine Kontakt-E-Mail? Steht im Log Failed to send the support request notification email (bzw. ... confirmation email bei der Kundenbestätigung)?
Lösung: Eine der beiden Adressen eintragen. Hat der Channel keine Empfängeradresse, verschickt das Plugin keine Benachrichtigung. Steht der Log-Eintrag da, liegt der Fehler beim Mailversand. Geloggt werden nur Exception-Klasse und Code, nie die Meldung. Die Anfrage selbst ist in jedem Fall gespeichert.

Symptom: Der Kunde bekommt keine Bestätigungsmail.
Prüfen: Gibt es ein Zusatzfeld vom Typ E-Mail, und hat der Kunde es beantwortet?
Lösung: Ein Feld vom Typ E-Mail anlegen (siehe Konfiguration). Die Bestätigung geht nur an die Adresse aus einem beantworteten E-Mail-Feld.

Symptom: In der Einwilligung fehlt der Link zur Datenschutzerklärung.
Prüfen: Ist bei der Channel-Konfiguration eine Seite eingetragen? Existiert die Route, wenn du einen Routennamen angegeben hast?
Lösung: Eintrag ergänzen oder korrigieren. Ein unbekannter Routenname führt dazu, dass die Einwilligung ohne Link erscheint.

Symptom: Die Shop API antwortet auf POST /shop/support-requests mit 422 und The subject must be one of the channel's available choices.
Prüfen: Hat der Channel eine Betreff-Auswahl? Was liefert GET /shop/support-form-subject-choices?
Lösung: Als subject einen der value-Werte aus dieser Liste senden.

Symptom: Nach der Installation auf PostgreSQL fehlen Tabellen, oder die Migration schlägt fehl.
Prüfen: Welche Datenbank läuft?
Lösung: Es gibt keine. Die Migrationen sind MySQL-DDL, PostgreSQL wird nicht unterstützt.

Bekannte Einschränkungen

FAQ

Allgemein

Blockiert ein Fehler beim Mailversand die Anfrage? Nein. Die Anfrage wird gespeichert, bevor die Mails rausgehen. Scheitert eine Mail, wird nur der Fehlertyp protokolliert, und die andere Mail geht trotzdem raus. Der Kunde sieht keinen Fehler.

Was passiert mit Anfragen, wenn ich einen Channel lösche? Sie bleiben erhalten. Nur die Channel-Angabe wird leer.

Kann ich eine Anfrage nachträglich bearbeiten? Nein. Eingegangene Anfragen lassen sich ansehen und löschen.

Konfiguration

Muss das Formular einen Namen abfragen? Nein. Außer Betreff und Einwilligung ist nichts fest vorgegeben. Wenn du einen Namen willst, legst du ein Textfeld dafür an.

Kann ich einen Channel vom Formular ausnehmen? Eine Einstellung dafür gibt es nicht. Das Formular unter /support ist für jeden Channel erreichbar. Ohne Konfiguration zeigt es einen freien Betreff.

Was ändert sich an alten Anfragen, wenn ich ein Feld umbenenne? Nichts. Jede Anfrage speichert die Bezeichnung des Feldes zum Zeitpunkt des Absendens.

Kompatibilität

Funktioniert das Plugin mit Sylius 2.2 und 2.3? Ja, beide Versionen werden getestet.

Funktioniert das Plugin mit API Platform 4 und 5? Ja. Der einzige für Clients sichtbare Unterschied ist der Statuscode bei einem falschen Datentyp von consent, siehe Shop API.

Ersetzt das Plugin das Sylius-Kontaktformular? Nein. Es liegt unabhängig daneben unter /support.