Zum Inhalt

FAQ – Widerrufs-Button

Rechtliche Fragen

Was ändert sich am 19.06.2026?

Mit Inkrafttreten von Artikel 11a der Richtlinie 2011/83/EU (eingefügt durch RL (EU) 2023/2673) – in Deutschland umgesetzt als § 356a BGB n.F. – muss jeder Online-Shop, der Fernabsatzverträge über eine elektronische Bedienoberfläche schließt, eine „Widerrufsfunktion" bereitstellen. Diese muss als Bedienelement mit der Bezeichnung „Vertrag widerrufen" oder gleichwertig gekennzeichnet, gut lesbar und während der gesamten Widerrufsfrist verfügbar sein. Eine bloße E-Mail-Adresse oder ein PDF-Formular reicht ab diesem Stichtag nicht mehr aus.

Ist es zulässig, einen Widerrufsgrund optional abzufragen?

Bis zum 19.06.2026: Ja, optional war zulässig. § 355 Abs. 1 BGB schreibt nur vor, dass der Verbraucher zur Begründung nicht verpflichtet ist – ein Verbot der freiwilligen Frage gab es nicht.

Ab 19.06.2026: Wahrscheinlich nicht mehr. Die herrschende Auslegung von Art. 11a / § 356a BGB n.F. interpretiert auch die optionale Abfrage des Widerrufsgrunds als unzulässige Erschwernis des Widerrufs („Es dürfen weitere Angaben nicht abgefragt werden, darin wäre eine Erschwernis zu sehen"). Bis es Rechtsprechung gibt, gibt es eine Grauzone.

Empfehlung: Das Plugin hat seit 1.1.9 den Default-Wert auf „aus" gesetzt. Wenn Du die Begründung trotzdem brauchst (z.B. für interne Auswertung), aktiviere sie bewusst.

Darf ich die Postleitzahl als Pflichtangabe abfragen?

Nein. Nach § 356a BGB n.F. dürfen nur Name, Vertragsidentifikation und ein elektronisches Kommunikationsmittel (z.B. E-Mail) als Pflichtangaben verlangt werden.

Das Plugin hat seit 1.1.9 die PLZ als optionales Feld implementiert – wenn der Verbraucher sie angibt, dient sie als zusätzliche Identitätsprüfung; gibt er sie nicht an, reicht E-Mail + Bestellnummer.

Beginnt die Widerrufsfrist mit Bestelldatum oder Erhalt der Ware?

Bei Warenkauf: mit Erhalt der Ware (§ 356 Abs. 2 Nr. 1 BGB / Art. 9 Abs. 2 lit. b RL 2011/83/EU). Die Plugin-Option „Fristbeginn = Bestelldatum" wirkt nur auf die Vorfilterung der Auswahlliste – sie schränkt das gesetzliche Widerrufsrecht nicht ein, kann den Button aber zu früh ausblenden.

Empfehlung: Aktiviere „Keine zeitliche Vorfilterung". Dann werden alle Bestellungen angeboten, der Verbraucher kann auch dann widerrufen, wenn die Ware erst kurz vor Ende der gesetzlichen Frist eintraf.

Brauche ich noch das gesetzliche Muster-Widerrufsformular als PDF?

Das gesetzliche Muster-Widerrufsformular (Anlage 2 zu Art. 246a EGBGB) muss dem Verbraucher weiterhin als Information zur Verfügung stehen – meist im Widerrufsbelehrungs-Text der AGB. Das Plugin ersetzt das nicht. Wenn Du das PDF verlinken möchtest, trägst Du die URL unter Darstellung → Link zum Muster-Widerrufsformular ein; das Plugin zeigt den Link dann unterhalb des Formulars an.

Was wenn der Kunde formfrei (E-Mail, Brief) widerruft?

Der Widerruf ist nach § 355 Abs. 1 S. 2 BGB formfrei – per E-Mail, Brief, Telefon. Das Plugin bietet nur einen zusätzlichen, komfortablen Online-Kanal. Wenn der Kunde formfrei widerruft, ist das wirksam, egal ob der Button benutzt wurde. Im Backoffice musst Du dann ggf. den Widerruf manuell anlegen – das geht über das Admin-Modul mit der Aktion „Widerruf manuell erfassen".

Technische Fragen

Funktioniert das Plugin mit Shopware Cloud?

Ja. Die Installation läuft über den Store-Mechanismus, alle Funktionen sind verfügbar. Es gibt keine eigenen Composer-Abhängigkeiten, die im Cloud-Umfeld blockiert wären.

Beeinflusst das Plugin die Performance des Shops?

Im Storefront: minimal. Der Button-Render ist ein einzelner Twig-Block ohne DB-Query. Das Widerrufsformular wird nur beim direkten Aufruf gerendert.

Im Admin: das Modul lädt Widerrufe paginiert (default 50 Einträge), ein Custom-Field-Lookup (für ERP-Modus) führt eine zusätzliche DAL-Suche aus, die durch Filter und Limit beschränkt ist.

Kann ich den Button-Text ändern (z.B. ‚Vertrag widerrufen' statt ‚Widerrufsbutton')?

Ja, der Button-Text ist über Shopware-Snippets anpassbar. Suche unter Einstellungen → Shop → Textbausteine nach kommora.withdrawal.button.label.

Achtung: Ab 19.06.2026 muss die Bezeichnung „Vertrag widerrufen" oder gleichwertig lauten. Eigene Texte wie „Bestellung stornieren" sind unzulässig.

Wie kombiniert sich das Plugin mit dem Retouren-Portal (KommoraReturnsPortal)?

Aktuell sind beide unabhängig. Ein Widerruf ist juristisch etwas anderes als eine Rücksendung. Wir arbeiten an einer Verknüpfung: Bei eingegangenem Widerruf kann der Admin direkt aus dem Modul heraus einen Retouren-Vorgang anstoßen.

Was passiert mit dem Bestellstatus beim Widerruf?

Standardmäßig wird der Bestellstatus auf „Widerrufen" gesetzt (eigener State withdrawn, vom Plugin registriert). In der State-Machine ist withdrawn ein eigenständiger Endstatus, der aus jedem aktiven Status (offen, in Bearbeitung, abgeschlossen) erreichbar ist.

Diese Automatik kannst Du im Plugin-Config unter Bestellverarbeitung → Automatischer Bestellstatus abschalten – dann bleibt der Bestellstatus, wie er ist, und Du musst ihn manuell setzen.

Welche Daten werden in der Datenbank gespeichert?

Tabelle kommora_withdrawal mit folgenden Feldern:

  • id (UUID)
  • order_id, order_version_id, customer_id
  • order_number (Shopware-Nummer, immer)
  • external_order_identifier (ERP-Wert, nur wenn ERP-Modus aktiv)
  • customer_email, customer_name
  • reason (nullable, nur wenn aktiviert + eingegeben)
  • status (receivedprocessingcompleted)
  • refund_status, refund_amount (optionales Refund-Tracking)
  • reminder_sent, last_mail_resent_at (Mail-Timing)
  • submitted_at, processed_at
  • created_at, updated_at

Plus kommora_withdrawal_state_machine_history für die Status-Verfolgung.

Wird die IP-Adresse gespeichert?

Nein. Das Plugin speichert keine IP-Adressen oder Browser-Fingerprints – DSGVO-konform minimal.

Teil-Widerruf, Ablehnung & Kundenkonto (seit 1.4.0)

Wie funktioniert der Teil-Widerruf?

Auf der Bestätigungsseite des Widerrufsformulars erscheint ein Block „Welche Positionen widerrufen Sie?" mit Checkbox je Order-Position. Standardmäßig sind alle Häkchen aktiv (= vollständiger Widerruf). Der Kunde kann einzelne Häkchen entfernen — dann wird ein Snapshot der gewählten Positionen (Label + Menge zum Einreichungs-Zeitpunkt) am Widerruf gespeichert (Feld line_items, JSON). Im Backoffice und im Kundenkonto-Detail erscheint eine eigene Karte „Widerrufene Positionen". Spätere Order-Änderungen verändern den Snapshot nicht.

Wann darf ich einen Widerruf ablehnen?

Nur wenn eine der 13 Ausnahmen aus § 312g Abs. 2 BGB greift — typisch sind Sonderanfertigungen, schnell verderbliche Ware, entsiegelte Hygiene-Artikel oder entsiegelte Datenträger. Das Plugin bietet im Backoffice einen Reject-Modal mit Dropdown der 5 wichtigsten Codes plus „Sonstiges". Pflicht-Begründung wird wörtlich in die Ablehnungs-Mail an den Kunden übernommen. Pauschal-Ablehnungen ohne Rechtsgrundlage sind rechtlich angreifbar — im Zweifel den Kunden kontaktieren.

Wo sieht der Kunde seine eigenen Widerrufe?

Wenn die Platzierung „Im Kundenkonto-Menü" aktiv ist, erscheint in der Sidebar ein neuer Link „Meine Widerrufe" (zusätzlich zum „Vertrag widerrufen"). Die Seite /account/withdrawals listet alle Widerrufe des eingeloggten Kunden mit Status, Datum, Begründung und Ablehnungs-Hinweis. Nur für eingeloggte Kunden sichtbar (_loginRequired).

Wann sollte ich den Fristbeginn auf „Bestellung abgeschlossen" stellen?

Bei Verträgen ohne physischen Versand — Dienstleistungen, Software-Abos, digitale Konten —, bei denen der Wechsel des Order-States auf completed als Vertragsabschluss markiert ist. Bei klassischem Warenversand bitte weiterhin „Versanddatum" verwenden (gesetzlich der Erhalt der Ware). Fallback: solange die Order nicht completed ist, rechnet das Plugin ab Bestelldatum, damit der Widerruf nicht versehentlich ausgebremst wird.

Funktioniert der Widerrufslink in Bestellbestätigungs-Mail in jeder Version?

Nein. Der Toggle existiert seit längerem, aber vor 1.4.0 war er wirkungslos (Config-Feld ohne Code-Verdrahtung). Seit 1.4.0 hängt ein Mail-Subscriber den Block out of the box an HTML- und Plain-Body der Bestellbestätigung an, ohne dass am Mail-Template geschraubt werden muss. Wenn Du auf einer Version < 1.4.0 bist und den Link in der Bestellbestätigung haben willst: updaten.

Multi-Sales-Channel / Multi-Sprache

Kann ich pro Sales-Channel andere Mail-Templates verwenden?

Standard-Shopware: Mail-Templates sind global, aber Du kannst per Sales-Channel-Override eigene Inhalte hinterlegen. Unter Einstellungen → Shop → E-Mail-Templates das Plugin-Template öffnen, Sales-Channel-Tab wechseln, Inhalt anpassen.

Funktionieren auch andere Sprachen als DE/EN?

Das Plugin liefert DE/EN-Snippets out of the box. Für andere Sprachen die Snippets unter Einstellungen → Shop → Textbausteine ergänzen – Suche nach kommoraWithdrawal.*.

Kommt nicht weiter?

Siehe Troubleshooting oder direkt an support@kommora.de.