Magento Verfügbar

Widerrufsformular

Das Muster-Widerrufsformular als Widget für die Storefront — abgeschickt per E-Mail, ohne einen einzigen Datensatz im Shop.

Ein Widerruf, der als formloser Text im Kontaktformular landet, ist im Alltag schwer zuzuordnen und im Streitfall schwer zu belegen. Das Modul stellt dafür ein eigenes Formular bereit: Name, E-Mail, Bestellnummer und eine optionale Nachricht, abgeschickt an eine im Backend hinterlegte Zieladresse.

Die Belehrung selbst kommt aus einem CMS-Block, den du über oder neben das Formular stellst — Text und Frist gehören zu deinem Anwalt, nicht in ein Modul. Das Formular selbst platzierst du als Widget auf einer CMS-Seite; alternativ über eine Direktive im Seiteninhalt oder ein Layout-Update. Der Footer-Link zeigt einfach auf diese Seite.

Gespeichert wird nichts. Kein Datenbankschema, keine zusätzliche Tabelle — jeder Widerruf verlässt den Shop ausschließlich als E-Mail. Der Kunde bekommt auf Wunsch eine Eingangsbestätigung als Kopie; das ist sein Nachweis über Zeitpunkt und Inhalt seiner Erklärung.

Optisch übernimmt das Formular die Klassen deiner Kontaktseite und sieht dort, wo das Theme sie kennt, ohne weiteres Zutun genauso aus. Das mitgelieferte Stylesheet hat bewusst Spezifität 0 und tritt hinter jede Theme-Regel zurück.

Funktionen

  • Formular als Widget, per Direktive oder per Layout-Update auf jede CMS-Seite setzbar
  • Belehrung, Frist und Rücksendehinweise über einen frei wählbaren CMS-Block — über oder rechts neben dem Formular
  • Benachrichtigung an den Shop mit Reply-To auf den Kunden, plus optionale Eingangsbestätigung an den Kunden
  • Zwei überschreibbare E-Mail-Vorlagen; ohne hinterlegte Zieladresse geht die Mail an den allgemeinen Shop-Kontakt
  • Keine Datenspeicherung, kein DB-Schema — der Widerruf existiert nur als E-Mail
  • Datenschutz-Checkbox mit anpassbarem Text und Link zur Datenschutzerklärung
  • Spamschutz: Honigtopf-Feld, Form-Key und Begrenzung je IP-Adresse und je angegebener E-Mail-Adresse
  • Serverseitige Prüfung und harte Längenbegrenzung, unabhängig von der Browser-Validierung
  • Nachricht wahlweise Pflichtfeld — im Standard nicht, weil ein Widerruf keine Begründung braucht
  • Alle Einstellungen bis auf Store-View-Ebene, mit eigener ACL-Ressource fürs Backend

Voraussetzungen

  • Magento 2.4.4 bis 2.4.8 (Open Source oder Adobe Commerce)
  • PHP 8.1 bis 8.4
  • Eine CMS-Seite für das Formular und ein CMS-Block für die Belehrung
  • Keine Core-Änderungen, keine zusätzlichen Datenbanktabellen

Häufige Fragen

Liefert das Modul die Widerrufsbelehrung mit?
Nein, und das ist Absicht. Das Modul liefert das Formular, den Text liefert dein Anwalt. Er steht in einem CMS-Block, den du in der Konfiguration auswählst — so bleibt er dort änderbar, wo er hingehört, ohne dass jemand ein Modul anfassen muss.
Werden die Widerrufe im Shop gespeichert?
Nein. Es gibt kein Datenbankschema und keine Übersicht im Backend; jeder Widerruf geht ausschließlich als E-Mail raus. Ins Log kommen nur zwei Fälle — Honigtopf ausgelöst und Begrenzung erreicht — und dort steht die E-Mail-Adresse maskiert.
Wird die Bestellnummer geprüft?
Nein. Sie wird als Text übernommen und nicht gegen die Bestellungen abgeglichen. Ein Widerruf ist auch mit falsch abgetippter Nummer wirksam — eine Prüfung würde deshalb nur den Kunden aussperren, statt irgendetwas zu verbessern.
Kann jemand das Formular missbrauchen, um über meine Domain Post zu verschicken?
Dagegen sitzt die Begrenzung. Die Eingangsbestätigung geht an die Adresse, die im Formular steht — ohne Deckel ließe sich der Shop als Absender für fremde Post benutzen, mit gültigem SPF und DKIM. Gezählt wird je IP-Adresse und je E-Mail-Adresse, im Standard drei Absendungen pro Stunde. Weil der Zähler im Cache liegt, ist das ein Riegel gegen Missbrauch, kein Schutz gegen jemanden, der es gezielt darauf anlegt; für den Fall ist Magentos eigenes ReCaptcha der nächste Schritt.
Was passiert, wenn der Mailversand scheitert?
Bei der Mail an den Shop sieht der Kunde eine Fehlermeldung, und der Vorgang gilt als nicht erfolgt — ein sichtbarer Fehler ist besser als ein stillschweigend verlorener Widerruf. Scheitert nur die Kopie an den Kunden, wird das lediglich protokolliert: Der Widerruf liegt zu dem Zeitpunkt bereits im Shop-Postfach, und ein Abbruch würde den Kunden zu einer zweiten Erklärung verleiten.
Passt das Formular zu meinem Theme?
In der Regel ja. Jedes Element trägt zwei Klassen — eine eigene und die des Magento-Kontaktformulars. Kennt dein Theme diese Klassen, sieht das Widerrufsformular aus wie deine Kontaktseite; kennt es sie nicht, greift das mitgelieferte Stylesheet. Weil dessen Regeln Spezifität 0 haben, gewinnt jede Theme-Regel automatisch.