Order Withdrawal¶
Extension for Magento 2¶
Bedienungsanleitung¶
CopeX GmbH Web: https://copex.io Email: office@copex.io
Inhaltsverzeichnis¶
- Einleitung
- Voraussetzungen
- Konfiguration
- Kundenabläufe
- Admin-Übersicht
- E-Mail-Vorlagen
- Widerrufsberechtigung
- Statusverlauf
- Fehlerbehandlung
- Pflichtinformationen
1 Einleitung¶
Dieses Modul setzt das EU-Widerrufsrecht als Ein-Klick-Funktion um, in Übereinstimmung mit der EU-Richtlinie (EU) 2023/2673, die einen solchen Button in EU-Onlineshops ab dem 19. Juni 2026 vorschreibt.
Es werden zwei kundenseitige Abläufe unterstützt:
- Eingeloggter Kundenablauf — angemeldete Kunden widerrufen einen Kauf direkt aus ihrer Bestellhistorie mit einem Klick und einer Sicherheitsabfrage.
- Öffentlicher Formularablauf — Gäste (oder Kunden ohne aktive Sitzung) geben Bestellnummer und die zur Bestellung verwendete E-Mail-Adresse ein; der Widerruf wird per Bestätigungslink in einer E-Mail verifiziert, bevor der Shop benachrichtigt wird.
Für den Shopbetreiber laufen beide Abläufe in einem einzigen Admin-Grid unter Verkäufe → Widerrufe zusammen, mit E-Mail-Benachrichtigungen, einem Eintrag in der Bestellhistorie und einem Autocomplete-Workflow für Datensätze, deren Bestellnummer nicht automatisch zugeordnet werden konnte.
2 Voraussetzungen¶
| Komponente | Version |
|---|---|
| Magento 2 Open Source / Adobe Commerce | 2.4.7 oder neuer |
| PHP | 8.3 oder neuer |
Das Modul nutzt die Standard-Erweiterungen Magento_Sales, Magento_Customer und Magento_ReCaptchaUi; weitere Drittanbieter-Abhängigkeiten sind nicht erforderlich.
3 Konfiguration¶
Alle Einstellungen sind unter Stores → Configuration → Sales → Widerrufs-Einstellungen erreichbar. Der Konfigurationsbereich gilt pro Store-View — Felder mit der Checkbox Use Website / Use Default können daher pro Storefront unterschiedlich konfiguriert werden.
3.1 Allgemeine Einstellungen¶
- Modul aktivieren — schaltet die gesamte Funktion ein oder aus. Bei deaktiviertem Modul werden im Storefront keine Widerrufslinks angezeigt, und das öffentliche Formular liefert eine generische Meldung "Funktion derzeit nicht verfügbar".
- Benachrichtigungs-E-Mail — Empfänger der Admin-Benachrichtigungs-E-Mails. Wenn leer, wird die allgemeine Shop-E-Mail verwendet.
- Widerrufsfrist (Tage) — die gesetzliche Widerrufsfrist nach Erhalt der Ware. Standardwert 14 (EU-Mindestmaß).
- Erwartete Versandzeit (Tage) — geschätzte Höchstdauer vom Versand bis zur Lieferung. Da das Modul kein tatsächliches Lieferdatum kennt, wird die Frist berechnet als Versanddatum + erwartete Versandzeit + Widerrufsfrist.
- Kulanzfrist (Tage) — zusätzliche Tage, in denen Widerrufe nach Ablauf der regulären Frist noch akzeptiert werden. Eingaben in der Kulanzfrist erhalten den Status Prüfung erforderlich, damit der Betreiber das tatsächliche Lieferdatum manuell prüfen kann.
- Gültigkeitsdauer des Bestätigungslinks (Stunden) — wie lange der Link in der Bestätigungs-E-Mail gültig bleibt. Standardwert 24.
- Aufräumfrist für nicht bestätigte Anfragen (Stunden) — nach Ablauf der Token-Gültigkeit zusätzliche Frist, bevor der Datensatz vom Aufräum-Cron entfernt wird. Innerhalb dieser Frist erhält der Kunde beim Klick auf einen abgelaufenen Link die Meldung "abgelaufen, bitte erneut absenden"; nach dem Aufräumen erscheint stattdessen "ungültiger Link".
- Erlaubte Bestellstatus — Widerruf wird nur für Bestellungen mit einem Status aus dieser Liste angeboten. Die Standardliste wird beim ersten Installieren des Moduls gesetzt (üblicherweise Pending, Processing, Complete).
- Öffentliches Widerrufsformular aktivieren — schaltet das Formular unter
/withdrawal/request/im Storefront frei. Sowohl Gäste als auch eingeloggte Kunden können es nutzen; in beiden Fällen wird der Widerruf erst nach Klick auf den Bestätigungslink wirksam.
3.2 Widerrufsformular-Texte¶
Frei formulierbare Hinweise oberhalb des Widerrufsformulars. Alle drei Felder sind optional — ein leeres Feld blendet den jeweiligen Hinweis aus.
- Hinweis vor Versand — angezeigt, solange die Bestellung noch nicht versandt wurde. Üblich, um zu verdeutlichen, dass jederzeit bis zum Erhalt der Ware widerrufen werden kann.
- Hinweis nach Versand — angezeigt, sobald die Bestellung versandt wurde. Wird häufig genutzt, um den Kunden an die Frist zu erinnern.
- Widerrufsbelehrung — rechtlicher Hinweis direkt über dem Absende-Button. Üblicherweise verwendet für die formelle Widerrufsbelehrung.
3.3 Widerrufsgründe¶
- Nach Grund fragen — steuert, ob der Kunde ein Auswahlfeld Widerrufsgrund sieht. Nein blendet das Feld aus; Optional zeigt es an, lässt aber leere Eingaben zu; Erforderlich lehnt leere Eingaben mit einer lokalisierten Meldung ab.
- Gründe — die Liste der Gründe (Code und Bezeichnung). Erscheint, sobald Nach Grund fragen auf Optional oder Erforderlich steht.
Die Gründe-Tabelle ist ein Code/Bezeichnung-Editor mit zwei Spalten:
- Code — stabiler interner Bezeichner (z.B.
damaged,wrong_size). Kleinbuchstaben, keine Leerzeichen. Codes werden für Filter und Auswertungen im Admin-Grid verwendet und erscheinen niemals beim Kunden. - Bezeichnung — der Text, den der Kunde im Auswahlfeld sieht. Pro Store-View konfigurierbar, sodass derselbe Code je Sprache eine andere Übersetzung tragen kann.
Beim Absenden speichert das Modul sowohl den gewählten Code als auch die Bezeichnung genau so, wie sie der Kunde gesehen hat. Spätere Änderungen oder Löschungen in den Konfigurationsgründen ändern bereits gespeicherte Datensätze nicht — die Momentaufnahme sorgt dafür, dass die Anzeige in E-Mail und Admin-Grid auch nach dem Löschen eines Grundes korrekt bleibt.
3.4 E-Mail-Einstellungen¶
- E-Mail-Absender — die im Shop konfigurierte Identität, deren Adresse als Von: eingesetzt wird.
- Widerrufs-Bestätigungsanforderung-Vorlage — wird beim Absenden des öffentlichen Formulars verschickt; enthält den Bestätigungslink mit Token.
- Kunden-Bestätigungs-E-Mail-Vorlage — geht an den Kunden, sobald der Widerruf erfasst ist (sofort beim eingeloggten Ablauf, nach Klick auf den Bestätigungslink beim öffentlichen Formular).
- Admin-Benachrichtigungs-E-Mail-Vorlage — geht an die Benachrichtigungs-E-Mail-Adresse. Beim öffentlichen Formular erst nach erfolgreicher Kunden-Bestätigung — Bots oder Tippfehler erzeugen also keine Admin-Mails.
Alle drei Vorlagen können pro Store-View unter Marketing → E-Mail-Vorlagen überschrieben werden.
3.5 reCAPTCHA¶
Das öffentliche Formular wird per Google reCAPTCHA geschützt. Die Einstellung liegt unter Stores → Configuration → Security → Google reCAPTCHA Storefront → Storefront:
- Enable for Withdrawal Request Form — wählen Sie den Captcha-Typ (Invisible v3 empfohlen) oder None, um den Schutz zu deaktivieren. Die Validierung erfolgt serverseitig — eine Deaktivierung in der Konfiguration ist daher ausreichend, Template-Anpassungen sind nicht nötig.
Der eingeloggte Ablauf nutzt die Sitzungs-Authentifizierung und benötigt nie ein Captcha.
4 Kundenabläufe¶
4.1 Eingeloggter Kundenablauf¶
Unter Mein Konto → Meine Bestellungen zeigt eine zusätzliche Spalte je Bestellung eines von:
- einen Widerruf-Link, solange die Frist läuft,
- Widerruf eingereicht, sobald für diese Bestellung bereits ein Widerruf vorliegt,
- Frist abgelaufen nach Ablauf der Kulanzfrist.
Ein Klick auf den Link öffnet eine Widerrufsdetailseite mit Bestellzusammenfassung (Nummer, Datum, Status, Summe, Artikel mit Artikelnummer / Menge / Preis), der berechneten Frist, dem optionalen Auswahlfeld für den Widerrufsgrund und einem Kommentarfeld.
Beim Absenden öffnet sich eine JavaScript-Bestätigungs-Dialogbox — nach Klick auf Ja, Widerruf absenden wird der Widerruf erfasst und beide Benachrichtigungs-E-Mails werden sofort verschickt.
Anschließend wird der Kunde auf eine Erfolgsseite weitergeleitet.
Eine Benachrichtigungs-E-Mail geht sofort an den Kunden (ohne Bestätigungslink — der Widerruf ist bereits erfasst, weil der Kunde authentifiziert war):
4.2 Öffentlicher Formularablauf (Double-Opt-In)¶
Bei aktivem Öffentliches Widerrufsformular ist das Formular unter /withdrawal/request/ erreichbar. Übliche Verlinkungsstellen: Shop-Footer, Bestellbestätigungs-E-Mail oder die rechtliche Widerrufsbelehrungs-CMS-Seite.
Der Kunde gibt die Bestellnummer, die für die Bestellung verwendete E-Mail-Adresse, einen optionalen Kommentar und (je nach Konfiguration) einen Widerrufsgrund ein.
Nach erfolgreichem reCAPTCHA passiert Folgendes:
- Der Widerruf wird mit dem Status Bestätigung ausstehend gespeichert.
- Eine Bestätigungs-E-Mail mit Token-Link wird an die angegebene Adresse versandt.
- Es erscheint eine generische Erfolgsmeldung ("Bitte prüfen Sie Ihre E-Mails") — unabhängig davon, ob die Bestellung oder die E-Mail tatsächlich existieren (verhindert das Ausspähen der Kundendatenbank).
Die Bestätigungs-E-Mail sieht etwa so aus (Wortlaut über Marketing → E-Mail-Vorlagen anpassbar):
Klickt der Kunde auf den Link in der E-Mail, wechselt der Datensatz zu Ausstehend (oder Prüfung erforderlich, wenn die Bestellung nicht zugeordnet werden kann oder der Widerruf in die Kulanzfrist fällt) und die Admin-Benachrichtigung wird verschickt. Tokens sind einmal verwendbar — ein zweiter Klick auf den Link ergibt eine "ungültig"-Meldung.
Sendet der Kunde das Formular für dieselbe Bestellung erneut, solange noch eine Bestätigung aussteht, wird kein doppelter Datensatz angelegt — stattdessen wird das vorhandene Token ersetzt und die E-Mail erneut verschickt.
Wenn der Kunde sich bei der Bestellnummer vertippt, wird der Datensatz dennoch gespeichert und die Bestätigungs-E-Mail dennoch verschickt. Nach der Bestätigung landet er in der Warteschlange Prüfung erforderlich, wo der Betreiber ihn über die Autocomplete-Bearbeitung lösen kann (siehe Admin-Übersicht).
5 Admin-Übersicht¶
Das Grid ist über Verkäufe → Widerrufe erreichbar.
Spalten¶
- ID — interne Datensatz-Kennung.
- Bestell-Nr. — Bestellnummer der zugeordneten Bestellung. Bei nicht zugeordneten Datensätzen ersetzt ein Autocomplete-Suchfeld diese Spalte (siehe unten).
- Kundenname / Kunden-E-Mail — Kontaktdaten, wie sie beim Absenden erfasst wurden.
- Status — der Widerrufsstatus. Direkt im Grid bearbeitbar.
- Bestellstatus — Status der zugeordneten Bestellung zum Zeitpunkt des Widerrufs.
- Versendet am / Bestellung aufgegeben am / Widerruf angefordert am — Datumsfilter für Auswertungen.
- Kommentar — Freitext-Kommentar des Kunden (standardmäßig ausgeblendet, kann über die Spaltenauswahl eingeblendet werden).
- Grund — Bezeichnungs-Momentaufnahme des gewählten Widerrufsgrunds. Per Text filterbar. Leer für Eingaben, bei denen Nach Grund fragen auf Nein oder Optional (und vom Kunden nicht ausgewählt) stand.
- Aktionen — Bestellung ansehen-Link bei zugeordneten Datensätzen, sonst der Hinweis Bestellung nicht zugeordnet.
Status direkt im Grid bearbeiten¶
Klicken Sie in einer Zeile auf das Status-Feld, um es direkt im Grid zu ändern (keine separate Bearbeiten-Seite). Erlaubte Übergänge: Ausstehend → Bestätigt / Abgelehnt; Prüfung erforderlich → Ausstehend (nach Zuordnung einer Bestellung) → Bestätigt / Abgelehnt.
Nicht zugeordnete Datensätze auflösen¶
Konnte zum Bestätigungszeitpunkt keine Bestellung zur eingegebenen Nummer ermittelt werden, zeigt die Spalte Bestell-Nr. ein Autocomplete-Suchfeld. Die Suche wird auf die Bestellungen beschränkt, die zur customer_email des Datensatzes gehören (Bestellungen mit bereits vorhandenem Widerruf werden ausgeschlossen). Nach Auswahl einer Bestellung und Bestätigung im Popover wird sie zugeordnet, die Berechtigungsprüfung läuft, und der Datensatz wechselt zu Ausstehend.
Aufräumen verwaister Anfragen¶
Ein täglich um 02:00 Server-Zeit laufender Cron-Job löscht Bestätigung ausstehend-Datensätze, deren Token mehr als die in Aufräumfrist für nicht bestätigte Anfragen festgelegte Stundenzahl abgelaufen ist. So bleibt das Grid frei von Bots oder Tippfehler-Eingaben, die die E-Mail-Bestätigung nie durchlaufen haben.
6 E-Mail-Vorlagen¶
| Vorlage | Auslöser |
|---|---|
| Widerrufs-Bestätigungsanforderung | Öffentliches Formular: sofort beim Absenden. Dient als rechtliche Eingangsbestätigung der Widerrufserklärung UND enthält den Identitäts-Bestätigungslink. Inhalt sind ausschließlich vom Kunden eingegebene Daten (Bestellnummer, eingegebene E-Mail, Kommentar, Grund). |
| Kunden-Bestätigung | Eingeloggter Ablauf: sofort beim Absenden — diese E-Mail ist die rechtliche Eingangsbestätigung mit vollem Inhalt der Widerrufserklärung (Kundenname, Artikel, Kommentar, Grund). Öffentliches Formular: nach Klick auf den Bestätigungslink — Bearbeitungs-Mitteilung nach erfolgter Identitätsprüfung. |
| Admin-Benachrichtigung | Eingeloggter Ablauf: sofort beim Absenden. Öffentliches Formular: erst nach Kunden-Bestätigung per E-Mail-Link. |
Alle Vorlagen erhalten Bestellnummer, Kundenname, Kunden-E-Mail, Widerrufsdatum (lokalisiert in der Storezeitzone) sowie den Storefront-Namen. Die Kunden- und Admin-Vorlagen erhalten zusätzlich das Bestelldatum. Die Bestätigungsanforderungs-Vorlage erhält zusätzlich die Bestätigungs-URL und deren Ablaufzeit.
Bei aktivierter Widerrufsgrund-Funktion erhalten alle drei Vorlagen außerdem die Grund-Bezeichnung so, wie sie dem Kunden angezeigt wurde. Die mitgelieferten Vorlagen zeigen die Zeile Grund: … nur dann an, wenn ein Grund vorliegt — Eingaben ohne aktives Grund-Feld bzw. mit übersprungenem optionalen Feld bleiben dadurch sauber.
Wortlaut oder Layout passen Sie an, indem Sie die jeweilige Vorlage unter Marketing → E-Mail-Vorlagen überschreiben und unter E-Mail-Einstellungen zuordnen.
Öffentlicher Ablauf: warum zwei E-Mails?¶
Beim öffentlichen Formular erhält der Kunde zwei E-Mails, und das rechtliche Gewicht ist bewusst aufgeteilt:
- Erste E-Mail — sofort beim Absenden (Vorlage Widerrufs-Bestätigungsanforderung). Dies ist die rechtliche Eingangsbestätigung. Sie bestätigt den Eingang der Widerrufserklärung mit Datum und Uhrzeit, listet ausschließlich die vom Kunden eingegebenen Inhalte auf, weist darauf hin, dass die Wirksamkeit noch geprüft wird, und bittet den Kunden, seine Identität durch Klick auf den Token-Link zu bestätigen.
- Zweite E-Mail — erst nach Klick auf den Link (Vorlage Kunden-Bestätigung in der Post-Verifizierungs-Variante). Sie bestätigt, dass die Identität geprüft wurde, ergänzt die aus der Bestellung abgeleiteten Daten (Kundenname, Artikel) und informiert den Kunden, dass der Widerruf nun vom Shop geprüft wird.
Die erste E-Mail darf keine aus der Bestellung abgeleiteten Daten enthalten (z.B. den echten Kundennamen, die Artikelliste). Vor der Identitätsprüfung muss damit gerechnet werden, dass die eingegebene E-Mail-Adresse nicht zur Bestellung gehört — solche Felder würden persönliche Daten an einen falschen Empfänger weitergeben. Die Post-Verifizierungs-E-Mail ergänzt den Kontext, sobald der Empfänger bestätigt ist.
Beim Anpassen der Vorlagen für den öffentlichen Ablauf bitte keine aus der Bestellung abgeleiteten Daten von der zweiten in die erste E-Mail verschieben. Die Aufteilung ist eine bewusste datenschutzrechtliche Grenze.
7 Widerrufsberechtigung¶
Ob ein Widerruf angeboten und akzeptiert wird, hängt von zwei Faktoren ab: dem Bestellstatus und dem Datum.
Statusprüfung¶
Der aktuelle Bestellstatus muss in Erlaubte Bestellstatus enthalten sein. Bestellungen in anderen Status (z.B. Cancelled, On Hold, Closed) zeigen nie den Widerrufslink, und direkte Eingaben am Controller werden abgelehnt. Ist die konfigurierte Liste leer, ist keine Bestellung berechtigt — prüfen Sie die Liste nach einer frischen Installation, falls Kunden fehlende Links melden.
Datumsprüfung¶
Die Standardfrist berechnet sich als:
Letztes Versanddatum + Erwartete Versandzeit + Widerrufsfrist (Tage)
Bei Bestellungen ohne Versand hat die Frist noch nicht begonnen — der Kunde kann jederzeit widerrufen. Sobald die Bestellung versandt wurde, beginnt die Zählung.
Die Kulanzfrist verlängert dies um Kulanzfrist (Tage). Eingaben werden in drei Zonen akzeptiert:
| Zone | Bedingung | Ergebnis beim Absenden |
|---|---|---|
| Innerhalb der Standardfrist | jetzt ≤ Standardfrist | Status auf Ausstehend |
| In der Kulanzfrist | Standardfrist < jetzt ≤ Standardfrist + Kulanzfrist | Status auf Prüfung erforderlich — der Betreiber muss das tatsächliche Lieferdatum prüfen |
| Nach Ablauf der Kulanzfrist | jetzt > Standardfrist + Kulanzfrist | Eingabe wird abgelehnt; Storefront zeigt Frist abgelaufen |
Die Kulanzfrist existiert, weil das Modul kein tatsächliches Lieferdatum kennt. Ein Kunde, dem die Ware vom Versanddienstleister verspätet zugestellt wurde, könnte sich rechtlich noch innerhalb der Widerrufsfrist befinden, obwohl die Summe aus Versanddatum und erwarteter Versandzeit bereits abgelaufen ist. Prüfung erforderlich signalisiert: "diese Eingabe liegt außerhalb des automatisch berechenbaren Bereichs — vor einer Entscheidung das Sendungstracking konsultieren."
Beim öffentlichen Formular wird die Datumsprüfung nur durchgeführt, wenn die Bestellnummer eindeutig zugeordnet werden konnte. Andernfalls wird der Datensatz mit Bestätigung ausstehend angelegt, und ein Betreiber prüft die Berechtigung manuell, nachdem der Kunde bestätigt hat.
Empfohlene Konfiguration¶
Die gesetzliche Widerrufsfrist beginnt mit der Inbesitznahme der Ware durch den Verbraucher, nicht mit dem Versand durch den Händler. Magento erfasst keine tatsächlichen Lieferdaten — daher schätzt das Modul: Versand + Erwartete Versandzeit. Um rechtssicher zu bleiben — also keinen Widerruf abzulehnen, der noch innerhalb der gesetzlichen Frist liegt — sollten Sie diese beiden Felder großzügig konfigurieren:
- Erwartete Versandzeit (Tage) — auf die Worst-Case-Laufzeit Ihres langsamsten Versandprodukts (typisch 5–7 Tage national, 10+ international). Eine Unterschätzung führt dazu, dass die Standardfrist abläuft, bevor die gesetzliche Frist des Kunden tatsächlich endet.
- Kulanzfrist (Tage) — mindestens 7 Tage, idealerweise mit der maximalen Versandverzögerung Ihres Carriers. Eingaben in der Kulanzfrist werden akzeptiert und mit Prüfung erforderlich gekennzeichnet, damit der Betreiber das tatsächliche Lieferdatum vor der Entscheidung mit dem Carrier abklären kann.
Bei großzügig gewählten Werten landen wirklich nur Eingaben außerhalb der gesetzlichen Frist in Frist abgelaufen. Lieber zu einschließend bleiben: einige zusätzliche Prüfungen kosten weniger als eine versäumte gesetzliche Frist.
8 Statusverlauf¶
| Status | Bedeutung |
|---|---|
| Bestätigung ausstehend | Öffentliches Formular abgesendet; wartet auf den Klick des Kunden auf den Bestätigungslink. |
| Ausstehend | Vom Kunden bestätigt (oder direkt vom eingeloggten Kunden eingereicht); wartet auf Admin-Entscheidung. |
| Prüfung erforderlich | Entweder fällt der Widerruf in die Kulanzfrist nach Ablauf der Standardfrist, oder die Bestellnummer konnte nicht automatisch zugeordnet werden. Der Betreiber muss vor dem Weiterführen prüfen. |
| Bestätigt | Der Betreiber hat den Widerruf genehmigt. |
| Abgelehnt | Der Betreiber hat den Widerruf abgelehnt. |
Typische Übergänge:
- Öffentliches Formular abgesendet → Bestätigung ausstehend
- E-Mail-Link geklickt, Bestellung zuordenbar, innerhalb Standardfrist → Ausstehend
- E-Mail-Link geklickt, Bestellung zuordenbar, in Kulanzfrist → Prüfung erforderlich
- E-Mail-Link geklickt, Bestellung nicht zuordenbar → Prüfung erforderlich
- Eingeloggter Kunde sendet ab, innerhalb Standardfrist → Ausstehend (kein E-Mail-Bestätigungsschritt)
- Eingeloggter Kunde sendet ab, in Kulanzfrist → Prüfung erforderlich
- Betreiber ordnet Bestellung zu (auf Prüfung erforderlich) → Ausstehend
- Betreiber genehmigt / lehnt ab → Bestätigt / Abgelehnt
Sobald ein Widerruf Bestätigt oder Abgelehnt erreicht, wird automatisch ein Eintrag in der Bestellhistorie ergänzt.
9 Fehlerbehandlung¶
"Die Widerrufsfunktion ist derzeit nicht verfügbar."¶
Modul aktivieren steht auf Nein, oder die Liste Erlaubte Bestellstatus ist leer. Beides unter Widerrufs-Einstellungen → Allgemeine Einstellungen prüfen.
Kunden melden fehlende Widerrufslinks¶
Mögliche Ursachen, nach Häufigkeit absteigend:
- Der Bestellstatus ist nicht in Erlaubte Bestellstatus.
- Die Bestellung hat die Kulanzfrist überschritten (statt Link erscheint Frist abgelaufen).
- Für die Bestellung existiert bereits ein Widerruf (statt Link erscheint Widerruf eingereicht).
- Das Modul ist deaktiviert.
Öffentliches Formular liefert "Anfrage konnte nicht verarbeitet werden."¶
Das Formular liefert bewusst dieselbe generische Meldung für jede Fehlerursache (fehlende Felder, abweichende E-Mail, bereits vorhandener Widerruf, ungültige Bestellnummer), um Angreifern keine Hinweise auf die Kundendatenbank zu geben. Zur Diagnose den entsprechenden Datensatz im Admin-Grid prüfen (auch in einigen Ablehnungspfaden wird ein Datensatz angelegt) sowie das Systemlog konsultieren.
Bestätigungs-E-Mail kommt nie an¶
Den konfigurierten Shop-E-Mail-Versand prüfen, das Spam-/Quarantäne-Postfach des Kunden, und die E-Mail-Absender-Identität. Der Bestätigungslink wird in var/log nur auf Debug-Niveau protokolliert — bei Bedarf vor der Reproduktion das Log-Level erhöhen.
Bestätigungslink meldet "abgelaufen" oder "ungültig"¶
Abgelaufen — das Token hat Gültigkeitsdauer des Bestätigungslinks (Stunden) überschritten, befindet sich aber noch innerhalb der Aufräumfrist. Der Kunde sollte das Formular erneut absenden; der vorhandene Datensatz wird wiederverwendet und ein neues Token ausgestellt.
Ungültig — der Datensatz wurde vom Aufräum-Cron gelöscht oder das Token wurde bereits verwendet. Der Kunde sollte das Formular erneut absenden.
Admin-Grid zeigt einen Datensatz ohne Bestellnummer¶
Eine öffentliche Formulareingabe, deren Bestellnummer nicht automatisch zugeordnet werden konnte. Im Autocomplete-Feld der Spalte Bestell-Nr. kann nach den Bestellungen des Kunden (über die E-Mail-Adresse) gesucht werden; die korrekte auswählen und bestätigen. Die Berechtigungsprüfung läuft an dieser Stelle.
Ein Grund erscheint nicht mehr im Auswahlfeld, aber noch in alten Datensätzen¶
Das ist beabsichtigt. Die Bezeichnung wird beim Absenden als Momentaufnahme gespeichert — Entfernen oder Umbenennen eines Grundes in Widerrufsgründe ändert bestehende Datensätze nicht. Die Anzeige zeigt dem Betreiber stets das, was der Kunde gesehen hat.
10 Pflichtinformationen¶
Die EU-Richtlinie (EU) 2023/2673 (verpflichtend ab 19. Juni 2026) verlangt mehr als nur den technischen Button. Das Modul stellt den technischen Teil bereit; die folgenden betreiberseitigen Schritte vervollständigen die rechtliche Compliance und müssen durchgeführt werden:
10.1 Informationspflicht¶
Der Verbraucher muss informiert werden, dass die Widerrufsfunktion vorhanden ist, wo sie zu finden ist und was sie bewirkt. Das Modul fügt keine Storefront-Verlinkungen automatisch ein. Der Betreiber muss:
- Einen sichtbaren Link auf
/withdrawal/request/(das öffentliche Formular) an mindestens einer prominenten Stelle einbauen — typischerweise im Shop-Footer und/oder im Rechtsinformations-Menü. - Die URL in der Bestellbestätigungs-E-Mail referenzieren, idealerweise im Bereich Widerrufsrecht.
- Die Funktion auf der bestehenden CMS-Seite Widerrufsbelehrung erwähnen.
10.2 AGB §5 Widerrufsbelehrung anpassen¶
Die rechtliche Widerrufsbelehrung muss einen Verweis auf die elektronische Widerrufsfunktion enthalten. Empfohlene Formulierung (aus dem mitgelieferten Rechtstext — Firmenname und URL anpassen):
„§5 Widerrufsbelehrung
Sie haben das Recht, binnen vierzehn Tagen ohne Angabe von Gründen diesen Vertrag zu widerrufen. […] Sie können Ihr Widerrufsrecht auch online unter [URL von /withdrawal/request/] ausüben. Wenn Sie diese Online-Funktion nutzen, übermitteln wir Ihnen auf einem dauerhaften Datenträger (z. B. durch eine E-Mail) unverzüglich eine Eingangsbestätigung mit Informationen zum Inhalt der Widerrufserklärung sowie dem Datum und der Uhrzeit ihres Eingangs. […]"
Verwenden Sie ausschließlich die offizielle gesetzliche Mustertextierung, die der deutsche Gesetzgeber bereitstellt — keine eigenen Ergänzungen. Eine fehlerhafte oder fehlende Widerrufsbelehrung verlängert die Widerrufsfrist um zwölf Monate und vierzehn Tage.
10.3 Datenschutzerklärung anpassen¶
Die Datenschutzerklärung muss erwähnen, dass personenbezogene Daten (Name, E-Mail) zur Bearbeitung von Widerrufen über die elektronische Funktion verarbeitet werden. Ergänzungs-Vorschlag unter Erfüllung vertraglicher oder vorvertraglicher Pflichten (Art 6 Abs 1 lit b DSGVO):
„Ihre Daten werden für die Anbahnung und Abwicklung von Verträgen mit Ihnen und der Bearbeitung Ihrer Aufträge verarbeitet. Die Verarbeitung erstreckt sich dabei auch auf die Bearbeitung von Widerrufen über unsere elektronische Widerrufsfunktion."
10.4 Schulung der Support-Mitarbeiter¶
Support-Mitarbeiter müssen die rechtliche Unterscheidung kennen:
- Eingangsbestätigung — die nach Eingang versandte E-Mail. Bestätigt nur den Eingang, nicht die Wirksamkeit.
- Widerruf bestätigt / abgelehnt — die rechtliche Entscheidung des Händlers nach Prüfung von Wirksamkeit und Reichweite.
Eine Verwechslung der beiden — z.B. dem Kunden zu sagen „Ihr Widerruf ist bestätigt", obwohl nur der Eingang erfasst wurde — kann als bindende Erklärung gewertet werden und schränkt eine spätere Ablehnung aus Wirksamkeitsgründen ein.
10.5 Rechtsfolgen bei Verstößen¶
Eine fehlerhafte Bereitstellung des Widerrufsbuttons stellt nach deutschem Recht eine Ordnungswidrigkeit dar:
- Unternehmen mit einem Jahresumsatz über 1,25 Mio. €: Bußgelder bis zu 4 % des Jahresumsatzes.
- Kleinere Unternehmen: Bußgelder bis zu 50.000 €.
- Eine fehlerhafte Implementierung kann zudem einen Wettbewerbsverstoß darstellen und Abmahnungen durch Verbände auslösen.
10.6 Schnelle Checkliste¶
Vor Inbetriebnahme des Moduls:
- [ ] Modul aktivieren = Ja; Erlaubte Bestellstatus enthält die richtige Liste
- [ ] Erwartete Versandzeit und Kulanzfrist (Tage) großzügig konfiguriert (siehe §7)
- [ ] Öffentliches Widerrufsformular aktivieren = Ja
- [ ] reCAPTCHA für Withdrawal Request Form konfiguriert (oder explizit deaktiviert)
- [ ] Benachrichtigungs-E-Mail auf eine vom Support tatsächlich überwachte Adresse gesetzt
- [ ] Footer- / Menü-Link auf
/withdrawal/request/veröffentlicht - [ ] AGB §5 Widerrufsbelehrung mit Online-URL aktualisiert
- [ ] Datenschutzerklärung mit dem Verarbeitungszweck-Absatz ergänzt
- [ ] Support-Mitarbeiter zur Unterscheidung Eingangsbestätigung ≠ Widerruf bestätigt geschult










