Contact Requests: Fehlerbehebung und FAQ
Sylius Contact Requests Plugin - typische Probleme bei Installation und Betrieb, bekannte Einschränkungen (kein Spam-Schutz, nur MySQL/MariaDB) und häufige Fragen
Contact Requests: 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 „Contact Requests“.
Prüfen: Ist das Bundle in config/bundles.php registriert? Ist die Admin-Route mmd_sylius_contact_requests_plugin_admin_contact_request_index importiert (siehe Installation)?
Lösung: Fehlenden Eintrag ergänzen und bin/console cache:clear ausführen. Der Menüeintrag verweist direkt auf diese Route und erscheint erst, wenn sie existiert.
Symptom: Die Mails aus dem Kontaktformular kommen an, aber unter Admin → Contact Requests erscheint nichts.
Prüfen: Durchsuche die Logs nach Failed to persist contact request (Level error). Existiert die Tabelle mmd_sylius_contact_requests_contact_request überhaupt, wurde also mmd:contact-requests:setup ausgeführt?
Lösung: Fehlt die Tabelle, führe den Setup-Befehl aus. Steht der Log-Eintrag trotz vorhandener Tabelle im Log, geben Exception-Klasse und Code die Richtung vor. Die eigentliche Fehlermeldung wird bewusst nicht protokolliert (siehe Technische Details).
Symptom: mmd:contact-requests:setup bricht ab und meldet, die Migrationen seien nicht bei Doctrine registriert.
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: Nach der Installation auf PostgreSQL fehlt die Tabelle, oder sylius:fixtures:load schlägt für diese Ressource fehl.
Prüfen: Welche Datenbank läuft? Die Migration überspringt sich auf allen Plattformen außer MySQL/MariaDB ohne Fehlermeldung.
Lösung: Es gibt keine. PostgreSQL wird von diesem Plugin nicht unterstützt (siehe „Bekannte Einschränkungen“).
Bekannte Einschränkungen
- Nur MySQL/MariaDB. Die Migration enthält MySQL-DDL und überspringt sich auf anderen Plattformen, ohne zu scheitern. Die Tabelle fehlt dort dann einfach, was generische Sylius-Werkzeuge wie den Fixture-Purger stört.
- Kein eigener Spam-Schutz. Das Plugin speichert jede Anfrage, auch Spam. Gegen Bots hilft das ALTCHA-Plugin für Sylius.
- Kein Ein/Aus-Schalter pro Channel. Gespeichert wird shopweit, sobald das Bundle registriert ist. Eine Admin-Einstellung, die einzelne Channels ausnimmt, gibt es nicht.
- Nachricht nicht durchsuchbar. Das Feld
messageist bewusst von der Suche ausgeschlossen, weil die Spalte (LONGTEXT) keinen Index hat. - Keine öffentliche Shop API. Gespeicherte Anfragen sind nur über die API mit Admin-Anmeldung erreichbar (siehe Admin-API).
- Keine automatische Löschung. Ohne eigenen Cronjob (siehe Installation) bleiben alte Anfragen unbegrenzt gespeichert.
FAQ
Allgemein
Blockiert ein Speicherfehler den E-Mail-Versand? Nein. Die Anfrage wird zuerst gespeichert, und ein Fehler dabei wird nur protokolliert. Die E-Mail geht trotzdem raus.
Konfiguration
Kann ich das Plugin für einen einzelnen Channel abschalten? Nicht über das Admin, dafür gibt es keine Einstellung. Du müsstest einen eigenen Decorator schreiben.
Kompatibilität
Funktioniert das Plugin mit einem eigenen Kontaktformular? Nur, wenn es weiterhin über das ContactEmailManagerInterface von Sylius sendet (Kontaktformular im Shop oder Shop API). Ein komplett eigener Versandweg wird nicht erfasst.