Widerrufsbutton im Online-Shop: warum er kommt und wie Sie ihn umsetzen

Pendant zum Kündigungsbutton: Verbraucher sollen ihren Widerruf zukünftig per Klick auslösen können. Was die Anforderungen sind und wie sich das in Shopware sauber umsetzen lässt.

Hinweis: Dieser Artikel beschreibt den Stand der Diskussion und gängige Umsetzungsansätze aus technischer Sicht. Er ist keine Rechtsberatung und ersetzt nicht die Prüfung Ihres konkreten Falls durch eine Fachanwältin oder einen Fachanwalt für IT- bzw. Vertragsrecht.

Worum geht es?

Seit Juli 2022 müssen Online-Anbieter für laufende Verbraucherverträge einen Kündigungsbutton bereitstellen (§ 312k BGB): sichtbar, beschriftet mit „Verträge hier kündigen" und ohne Login-Hürde erreichbar. Auf europäischer Ebene wird seit längerem ein Widerrufsbutton diskutiert, also ein vergleichbar einfach erreichbarer Klick-Mechanismus, mit dem Verbraucher ihr 14-tägiges Widerrufsrecht bei Fernabsatzverträgen ausüben können, ohne Brief, Fax oder Online-Formular eines Drittanbieters.

Hintergrund ist die Modernisierungsrichtlinie (EU 2019/2161) und nachfolgende Diskussionen um eine einheitliche, niedrigschwellige Möglichkeit, Vertragsrechte digital wahrzunehmen. Unabhängig davon, wann eine konkrete Pflicht für Ihren Shop greift: ein gut auffindbarer, einfach bedienbarer Widerrufsmechanismus ist gute UX und reduziert Ihre Supportlast.

Anforderungen an den Button (analog zum Kündigungsbutton)

Sollte die endgültige Regelung dem Schema des Kündigungsbuttons folgen, und alle bisher veröffentlichten Entwürfe deuten darauf hin, dürften die folgenden Punkte zentral sein:

  • Eindeutige Beschriftung: etwa „Vertrag/Kauf widerrufen". Keine versteckte oder werbliche Sprache.
  • Unmittelbare Erreichbarkeit: der Button muss ohne Login und ohne Umweg zugänglich sein, typischerweise im Footer und in der Bestellbestätigungsmail.
  • Bestätigungsseite mit Eingabefeldern: Name, E-Mail, Bestellnummer, Datum des Kaufs, Begründung optional.
  • Bestätigungsbutton: klar als Auslöseaktion erkennbar, etwa „Widerruf jetzt absenden".
  • Sofortige Empfangsbestätigung: der Verbraucher muss elektronisch eine Eingangsbestätigung erhalten (Datum/Zeit), die als Beweis dienen kann.
  • Speicherbarkeit: Bestätigung als PDF herunterladbar oder per Mail zugesandt.

Umsetzung in Shopware

Shopware bringt das Widerrufsformular nach § 355 BGB bereits mit (PDF-Anlage zur Widerrufsbelehrung), die Umsetzung als aktiver Klick-Workflow fehlt im Standard aber. Die saubere Lösung ist ein eigenes Plugin oder eine eigene Storefront-Route mit folgenden Bausteinen:

  1. Footer-Link „Widerruf", direkt neben Impressum, AGB und Datenschutz, ohne Login. Im Theme über das Footer-Twig oder per Plugin-Erweiterung in storefront.layouts.
  2. Eigene Storefront-Route (etwa /widerruf), die ein Symfony-Form ausliefert: Bestellnummer, Name, E-Mail, Bestelldatum und Liste der zu widerrufenden Artikel (per AJAX nachgeladen, sobald Bestellnummer und Mail validiert sind).
  3. Server-seitige Validierung: Plausibilitätscheck gegen die Order-Tabelle, Token-basiert vor Spam schützen, Rate-Limit pro IP/E-Mail.
  4. Eingangs-Bestätigung, parallel an Verbraucher (Mail und PDF mit Zeitstempel) und an den Kundenservice (Ticket im Shop oder Mail mit allen relevanten Bestelldaten).
  5. Statusübergang im Bestell-Workflow: eigener State-Machine-Übergang „order.state.cancelled" oder „refunded" via Shopware Flow Builder, inklusive automatischer Aktionen (Lager zurückbuchen, Rechnung stornieren, Refund triggern).

Worauf Sie technisch achten sollten

1. Beweissicherheit: Der Eingangszeitpunkt des Widerrufs muss revisionssicher gespeichert werden. Ideal ist eine eigene Tabelle revocation_log mit hash-verketteten, signierten Einträgen: IP, User-Agent, ISO-Timestamp und Hash des vorherigen Eintrags.

2. Datenschutz: Sie verarbeiten personenbezogene Daten zu einem klaren Zweck (Vertragsabwicklung, Art. 6 Abs. 1 lit. b DSGVO). Eingaben minimieren, keine Tracking-Cookies auf der Widerrufsseite, Aufbewahrungsfristen dokumentieren.

3. Spam-Schutz: der Button muss ohne Login zugänglich sein, also direkt im offenen Web. Ohne Captcha oder gleichwertigen Schutz landen binnen Tagen Müll-Widerrufe in der Inbox. Cloudflare Turnstile, Honeypot mit Zeit-Trap oder ein einfaches Token-Mail-Verfahren (Verifikationsmail bestätigen) sind die saubersten Optionen.

4. Multi-Channel: Wenn dieselbe Bestellung über Marktplätze wie Amazon oder eBay zustande kam, gilt dort meist deren eigenes Widerrufssystem. Im Shopware-Backend sollten Sie klar erkennen können, woher die Bestellung kam, bevor Sie ein Widerruf-Mail-Workflow auslösen.

5. Refund automatisieren, aber mit Augenmaß: Eine Auto-Refund-Pipeline ist komfortabel. Prüfen Sie trotzdem pro Zahlungsart, ob ein automatischer Refund rechtssicher ist (Rückzahlungsfrist 14 Tage ab Eingang des Widerrufs, gleicher Zahlweg wie bei der Zahlung).

Wann lohnt sich der Aufwand schon jetzt?

Auch ohne explizite gesetzliche Pflicht ist ein Widerrufsbutton bei mittleren bis großen Shops ein klares UX- und Compliance-Plus:

  • weniger Supportaufwand, weil Standardfälle automatisiert ablaufen,
  • klarere Datenlage für die Buchhaltung (jeder Widerruf ist sauber datiert und protokolliert),
  • Wettbewerbsvorteil: Verbraucher empfinden das als modern und transparent,
  • Vorbereitung auf die kommende Pflicht: Wer früh implementiert, muss später nichts kurzfristig nachrüsten.

Was Sie konkret tun können

  1. Mit Ihrer Anwältin / Ihrem Anwalt prüfen, ob für Ihre Branche bereits eine Pflicht besteht.
  2. Den Footer-Link parallel zum Kündigungsbutton einplanen (wenn nicht bereits vorhanden).
  3. Workflow definieren: Wer im Team bearbeitet eingehende Widerrufe? Wie schnell? Wer macht Refund?
  4. Plugin oder Custom-Route in einem Sprint umsetzen lassen, der Aufwand ist überschaubar.

Widerrufsbutton in Ihrem Shopware-Shop einbauen?

Ich setze die Storefront-Route, das Backend-Workflow-Setup und das Mailing für Sie um, inklusive Anbindung an Flow Builder und Refund-Pipelines.

Anfrage senden