Zum Inhalt

Konfiguration – Widerrufs-Button

Alle Einstellungen liegen pro Sales-Channel unter Admin → Einstellungen → System → Plugins → Widerrufsbutton. Wechsle oben links zwischen den Sales-Channels, um pro Channel unterschiedliche Werte zu setzen – z.B. längere Frist im Premium-Channel.

Bereich „Allgemein"

Option Default Beschreibung
Widerrufsbutton aktiviert ein Globaler Hauptschalter pro Sales-Channel.
Widerrufsfrist (Tage) 14 Wird im Storefront-Hinweistext und in der „verbleibende Tage"-Anzeige verwendet.
Fristbeginn Bestelldatum Wahl zwischen Bestelldatum, Versanddatum oder „Bestellung abgeschlossen" (seit 1.4.0). Beeinflusst die Vorfilterung der Bestellliste. Bei „Bestellung abgeschlossen" wird der Zeitpunkt des Order-State-Wechsels auf completed verwendet — sinnvoll für Dienstleistungs-, Software- und Abo-Verträge. Fallback auf Bestelldatum, solange die Bestellung noch nicht abgeschlossen ist.
Keine zeitliche Vorfilterung (alle Bestellungen anzeigen) aus Empfohlen mit Blick auf 19.06.2026. Wenn aktiv, werden ALLE Bestellungen angezeigt – die gesetzliche Frist beginnt nach § 356 Abs. 2 BGB erst mit Erhalt der Ware und darf nicht durch Vorfilterung verkürzt werden.
Bestell-Identifikation Shopware-Bestellnummer Wahl: Shopware-Bestellnummer oder Bestell-Custom-Field (z.B. ERP-Nummer). Siehe ERP-Bestellnummer.
Custom Field für ERP-/externe Bestellnummer Dropdown mit allen Custom Fields, die einem Custom-Field-Set mit Bezug zur Bestell-Entität zugeordnet sind. Nur wirksam, wenn oben „Bestell-Custom-Field" gewählt.
Fallback auf Shopware-Bestellnummer zulassen ein Empfohlen. Wenn die eingegebene Nummer im Custom Field nicht gefunden wird, sucht das Plugin zusätzlich anhand der Shopware-Bestellnummer. Schützt Altbestellungen ohne gepflegte ERP-Nummer.
Optionale Begründung anzeigen aus Mit Blick auf Art. 11a / § 356a BGB n.F. standardmäßig deaktiviert. Die Abfrage einer Widerrufsbegründung – auch optional – wird zunehmend als unzulässige Erschwernis ausgelegt. Aktivieren nur, wenn Du die Begründung wirklich brauchst.
Spam-Schutz Einfacher Spamschutz (Rechenaufgabe) Auswahl: Honeypot, Rechenaufgabe, Google reCAPTCHA.
19.06.2026 – darauf achten

Mit Anwendung von Artikel 11a der RL 2011/83/EU muss die Widerrufsfunktion „während der gesamten Widerrufsfrist verfügbar" sein. Empfohlene Compliance-Konfig:

  • „Keine zeitliche Vorfilterung" → ein
  • „Optionale Begründung anzeigen" → aus
  • PLZ-Feld im Formular: optional (bereits seit 1.1.9 default)

Bereich „Platzierung"

Steuert, an welchen Stellen im Storefront der Button automatisch erscheint.

Option Wirkung
In der oberen Navigationsleiste Erscheint in der Top-Bar neben Login/Konto.
Im Footer Erscheint im Service-Bereich des Footers. Theme-robust: auch bei aggressiven Theme-Overrides (ThemeWare, TWT) wird der Button via JS-Fallback eingefügt.
Im Kundenkonto-Menü Sidebar-Eintrag in /account.
In der Bestellübersicht Schwebender Button pro Bestellung in /account/order.
In der Bestelldetailseite Button in der Bestellansicht.
In der Bestellbestätigungs-Mail Hängt einen rechtssicheren Hinweis-Block mit Widerrufs-Link direkt an HTML- und Plain-Body der Bestellbestätigung an (seit 1.4.0). Funktioniert ohne Mail-Template-Anpassung. Toggle unter Bereich Benachrichtigungen (s. u.).
Eigener CSS-Selektor für den Footer-Anker (Theme-Edge-Cases)

Bei stark angepassten Themes (ThemeWare TWT, Custom-Themes von MAN-/Opel-/BPW-Shop, TÜV-Shop etc.), die den Standard-Shopware-Footer komplett überschreiben und in denen weder die Standard-Klassen .footer-column-hotline noch eine Heading-Text-Suche greift, lässt sich unter Darstellung → Eigener CSS-Selektor für Footer-Anker (optional) der CSS-Selektor eines stabilen Footer-Containers angeben (z. B. .footer-contact-form oder .my-theme-footer-services) — der Button wird dann gezielt dort eingefügt. Leer = automatische Erkennung.

Eigene Platzierung via CMS

Es gibt ein eigenes CMS-Element „Widerrufsbutton" mit konfigurierbarem Text und Style – im Shopping Experiences nutzbar.

Bereich „Darstellung"

Option Default Beschreibung
Button-Stil Primär (ausgefüllt) Primär/Sekundär/Outline.
Button-Farbe #dc3545 Color-Picker. Footer-Button und Confirm-Button-Farbe gleichzeitig.
Button-Textfarbe #ffffff Color-Picker.
Header-Anzeige Textlink Im Header als Link oder als Button-Element.
Verbleibende Tage anzeigen ein Im Auswahl-Dropdown und im Hinweisbanner für eingeloggte Kunden. Bei aktivierter Compliance-Variante („Keine zeitliche Vorfilterung") automatisch unterdrückt.
Link zum Muster-Widerrufsformular (PDF) Optionaler Download-Link zum gesetzlichen Muster-Widerrufsformular. Wird unter dem Formular angezeigt, wenn ausgefüllt.

Bereich „Benachrichtigungen"

Option Default Beschreibung
Interne Benachrichtigungs-E-Mail E-Mail-Adresse(n) für interne Benachrichtigungen bei neuen Widerrufen (komma-separiert).
Widerrufslink in Bestellbestätigung anzeigen aus Hängt einen rechtssicheren Widerrufs-Hinweis-Block mit Button an HTML- und Plain-Body der Bestellbestätigungs-E-Mail an (out of the box, ohne Mail-Template-Edit). Sprache wird anhand des Mail-Body-Inhalts erkannt (DE/EN). Wirkungslos in Versionen vor 1.4.0 — Bugfix seit 1.4.0.
Hilfetext im Formular (HTML erlaubt) Wird unterhalb des Formulars angezeigt. Z.B. Telefon-Hotline / E-Mail-Kontakt für Rückfragen.
Erinnerungs-E-Mail aktivieren ein Erinnerung an den Shop-Inhaber, wenn ein Widerruf zu lange unbearbeitet bleibt.
Erinnerung nach X Tagen 3 Schwellenwert für die Erinnerung.
Empfänger der Erinnerungs-E-Mail E-Mail-Adresse. Leer = gleicher wie interne Benachrichtigungs-E-Mail.

Bereich „Bestellverarbeitung"

Option Default Beschreibung
Bestellstatus automatisch auf „Widerrufen" setzen ein State-Machine-Transition: Bestellstatus wird beim Widerruf automatisch auf withdrawn gesetzt. Vorteil: in der Bestellliste auf den ersten Blick sichtbar.
Rückerstattungs-Tracking anzeigen ein Felder im Admin-Modul für manuelles Pflegen des Rückerstattungs-Status (open, partial, done) und -Betrags. Reines Tracking, kein automatischer Zahlungseingriff.

Mail-Templates

Das Plugin liefert sechs Mail-Templates:

Template Technical Name Empfänger Trigger
Widerrufsbestätigung an Verbraucher kommora_withdrawal_submitted Kunde Bei Einreichung des Widerrufs
Widerrufseingang an Shop-Inhaber kommora_withdrawal_submitted_shop Adresse aus „Interne Benachrichtigungs-E-Mail" Bei Einreichung des Widerrufs
Widerruf in Bearbeitung kommora_withdrawal_in_progress Kunde Status-Wechsel auf „in Bearbeitung"
Widerruf abgeschlossen kommora_withdrawal_completed Kunde Status-Wechsel auf „abgeschlossen"
Rückerstattung veranlasst kommora_withdrawal_refunded Kunde Refund-Status auf „veranlasst" / „abgeschlossen" gesetzt
Widerruf abgelehnt (seit 1.4.0) kommora_withdrawal_rejected Kunde Backoffice-Ablehnung via Modal mit Begründung

Beide sind unter Einstellungen → Shop → E-Mail-Templates anpassbar. Verfügbare Twig-Variablen:

Variable Wert
{{ withdrawalId }} UUID des Widerrufs
{{ orderNumber }} Shopware-Bestellnummer
{{ externalOrderIdentifier }} Externe Bestellnummer (z.B. ERP), sofern ERP-Modus aktiv. Sonst null – nutze {{ externalOrderIdentifier\|default(orderNumber) }}
{{ customerName }} Voller Name laut Bestellung
{{ customerEmail }} E-Mail laut Bestellung
{{ reason }} Begründung, sofern eingegeben (null wenn nicht)
{{ submittedAt }} ISO-Zeitstempel der Einreichung
{{ withdrawal.lineItems }} Bei Teil-Widerruf: Array der widerrufenen Positionen [{lineItemId, label, quantity}, …]. null bei vollständigem Widerruf. (Seit 1.4.0)
{{ withdrawal.rejectionReasonCode }} Bei Ablehnung: Code der Rechtsgrundlage (custom_made, perishable, sealed_hygiene, sealed_digital, inseparably_mixed, other). (Seit 1.4.0)
{{ withdrawal.rejectionReasonText }} Bei Ablehnung: Freitext-Begründung des Backoffice. Wird in der Ablehnungs-Mail an den Kunden 1:1 übernommen. (Seit 1.4.0)
Empfohlener Twig-Header in der Bestätigungsmail
{% set orderRef = externalOrderIdentifier|default(orderNumber) %}
Sehr geehrte/r {{ customerName }},

wir bestätigen den Eingang Ihres Widerrufs zur Bestellung {{ orderRef }}
vom {{ submittedAt|date('d.m.Y H:i') }}.

Flow-Builder-Events

Für eigene Workflows stehen zwei Events bereit:

Event-Name Wann Verfügbare Variablen
kommora_withdrawal.submitted Direkt nach Einreichung withdrawalId, orderId, orderNumber, externalOrderIdentifier, customerEmail, customerName, reason, submittedAt
kommora_withdrawal.status_changed Bei jeder Status-Änderung im Admin withdrawalId, orderNumber, oldStatus, newStatus, notes, processedAt

Damit lassen sich z.B. automatisch Tickets im Helpdesk anlegen, Slack-Notifications schicken oder ERP-Rückerstattungs-Workflows triggern.

Speichern und prüfen

Nach allen Änderungen oben rechts Speichern. Die Änderungen greifen sofort – Cache-Leeren ist nicht erforderlich (System-Config-Werte werden zur Laufzeit gelesen).

→ Weiter mit ERP-Bestellnummer oder Anwendungsfällen.