Shopware Compliance Plugin
Widerruf-Button für Shopware 6
§ 356a BGB-konform · Zwei-Stufen-Prozess · DSGVO-sicher · DE/EN/FR
Ab dem 19. Juni 2026 genügt kein loser Verweis auf ein Kontaktformular mehr. Gefordert ist eine echte zweistufige Widerrufsfunktion: Formular, Bestätigungsseite mit separatem Button und Eingangsbestätigung. Dieses Plugin geht darüber hinaus und zeigt in der Vorschau sogar die echten Vertragsdaten – vollständig in Shopware integriert, ohne externe Services.
Sie nutzen WooCommerce statt Shopware? Es gibt eine eigene, schlanke Variante dieses Plugins.
Widerrufsbutton für WooCommerce
Rechtlicher Kontext
Warum dieses Plugin?
Seit dem 19. Juni 2026 verpflichtet § 356a BGB (Umsetzung der EU-Richtlinie 2023/2673) Online-Shops in Deutschland zu einer elektronischen Widerrufsfunktion. Diese muss zweistufig ablaufen, drei Pflichtangaben erheben und vor dem finalen Klick eine Vorschauseite mit den wesentlichen Vertragsbestandteilen zeigen.
Der Widerruf-Button setzt diese Pflicht vollständig um – direkt in Shopware 6.5, 6.6 und 6.7, ohne externen Service und ohne monatliche Zusatzgebühren. Alles Wichtige zur Pflicht bündelt die Wissensseite zum Widerrufsbutton (§ 356a BGB).
§ 356a BGB — Vollständig umgesetzt
- Drei gesetzliche Pflichtfelder (Name, Vertragsidentifikation, Kommunikationsmittel)
- Verbot, Widerrufsgrund verpflichtend zu erheben
- Verbot von Login-/Registrierungspflicht vor Widerruf
- Zwei-Stufen-Prozess: Formular und separate Bestätigungsseite
- Bestätigungs-Button mit gesetzlichem Wortlaut „Widerruf bestätigen"
- Eingangsbestätigung auf dauerhaftem Datenträger, unverzüglich, mit allen Pflichtinhalten
- Ständige Verfügbarkeit des Buttons während der gesamten Widerrufsfrist
Ablauf
So läuft der Widerruf ab.
Drei Stufen, vollständig BGB-konform — live aus einer Test-Installation.
Stufe 1 — Eingabe
Der Kunde öffnet das Formular über den Footer-Button. Drei Pflichtfelder (Name, Bestellnummer, E-Mail), Anschrift und Widerrufsgrund optional. Wahl zwischen vollständigem und teilweisem Widerruf.

Stufe 2 — Vorschau mit echten Vertragsdaten
Nach „Weiter“ erscheint die Bestätigungsseite. Sie zeigt die tatsächlichen Bestelldaten aus der Datenbank (Bestelldatum, Artikel, Gesamtbetrag) plus die vom Kunden eingegebenen Widerrufsdaten — so identifiziert der Kunde seinen Vertrag eindeutig, bevor er den Widerruf bestätigt.

Bestätigung & Eingangsbestätigung
Per Klick auf „Widerruf bestätigen" wird der Widerruf rechtsverbindlich übermittelt. Der Kunde erhält unverzüglich eine Eingangsbestätigung per E-Mail (dauerhafter Datenträger) mit Datum, Uhrzeit, Vorgangsnummer und allen Pflichtinhalten.

Backend
Im Admin-Backend.
Eigener Menüpunkt unter Bestellungen — Liste, Detailansicht, Audit-Log und Plugin-Konfiguration.

Übersichtsliste aller Widerrufe
Eigener Menüpunkt „Widerrufe" unter Bestellungen. Liste mit Eingangsdatum, Referenznummer, Status, Bestellnummer, Kunden-E-Mail und Sales Channel. Filter- und sortierbar.

Detailansicht mit Status-Workflow
Alle Stammdaten auf einen Blick: Referenznummer, Eingangs-Zeitstempel mit Zeitzone, Umfang, Bestellung, E-Mail, Name, Anschrift, Eingangsbestätigung und übermittelte Begründung. Status setzen direkt in der Karte darunter.

Manipulationssicheres Audit-Log
Jede Statusänderung, jede Notiz, jeder E-Mail-Versand wird append-only protokolliert. Ideal für DSGVO-Auskunftsersuchen oder Rechtsstreitigkeiten.

Plugin-Konfiguration
Verkaufskanal-spezifisch oder global: Button-Beschriftung, Button-Stil, Anzeige-Optionen für Footer und Account, Empfänger-E-Mails, Aufbewahrungsfrist (3/6/10 Jahre). Texte sprachabhängig via Snippet-Editor.
Funktionsumfang
Alles, was eine rechtssichere Lösung braucht.
Rechtliche Konformität (§ 356a BGB)
- Zwei-Stufen-Prozess: Formular + separate Bestätigungsseite
- Vorschauseite zeigt echte Vertragsdaten aus der Datenbank (Bestelldatum, Artikel, Gesamtbetrag)
- Drei gesetzliche Pflichtfelder: Name, Bestellnummer, E-Mail
- Widerrufsgrund bleibt optional (gesetzliches Verbot der Pflichtangabe)
- Bestätigungs-Button mit gesetzlichem Wortlaut „Widerruf bestätigen“
- Eingangsbestätigung per E-Mail mit allen Pflichtinhalten
- Verfügbar auf allen Seiten inkl. schlankem Checkout-Footer
- Gast-Bestellungen ohne Login werden unterstützt
Admin-Modul „Widerrufe“
- Übersichtsliste aller eingegangenen Widerrufe mit Status & Filter
- Detailansicht mit allen Vertragsbezügen
- Status-Workflow: Eingegangen → In Prüfung → Anerkannt / Abgelehnt / Erstattet / Storniert
- Status-Mails an Kunden in Storefront-Sprache (4 vorgefertigte Templates)
- Interne Notizen pro Vorgang
- Flow-Builder-Trigger „Widerruf eingegangen“ für eigene Automatisierungen
- DSGVO-Export (CSV) pro Vorgang für Auskunftsersuchen nach Art. 15
DSGVO & Datensicherheit
- Append-only Audit-Log (wer, wann, was – manipulationssicher)
- Automatische Anonymisierung nach Aufbewahrungsfrist (3/6/10 Jahre)
- Per Cronjob oder Knopfdruck im Admin auslösbar
- Honeypot gegen Bot-Spam (kein sichtbares Captcha)
- Rate-Limit: max. 3 Versuche pro Stunde pro IP
- Späte-Eingang-Warnung bei Widerrufen nach >14 Tagen
- DSGVO-Textbaustein für die Datenschutzerklärung im README
Mehrsprachigkeit
- Komplett in Deutsch, Englisch und Französisch
- Storefront, Admin-Backend und Plugin-Konfiguration übersetzt
- Alle E-Mail-Templates dreisprachig (Eingang, Status-Updates, intern)
- Button-Beschriftung folgt automatisch der Storefront-Sprache
- Pro Sprache anpassbar via Shopware-Snippet-Editor
- Mehrsprachige Sprach-Präfix-URLs (/de/, /en/, /fr/) werden korrekt erzeugt
Technisch
- Kompatibel mit Shopware 6.5, 6.6 & 6.7
- PHP 8.1+
- Kein externer Service, keine API-Verbindung – alles lokal im Shop
- E-Mail-Templates im Standard-Shopware-UI editierbar
- 0 Errors, 0 Warnings im offiziellen Shopware-Validator
- Wiederverwendbare Twig-Komponente für freien Einbau
- JavaScript-Fallback für Themes, die den Footer komplett ersetzen
Wo der Button erscheint
- Footer auf jeder Storefront-Seite
- Schlanker Checkout-Footer (Warenkorb, Bestellbestätigung, Erfolgsseite)
- Bestellabschluss-Hinweis nach jeder Bestellung
- Im Kundenkonto in der Bestellliste pro Bestellung
- Als Link in transaktionalen E-Mails
- An beliebigen Theme-Stellen via Twig-Komponente einbindbar
Compliance-Hinweis
Rechtliche Einordnung
Das Plugin setzt vollständig § 356a BGB in der ab 19.06.2026 geltenden Fassung um. Was nicht das Plugin regelt, regelt Ihre Rechtstextquelle.
Hinweis: Die Widerrufsbelehrung in den AGB muss ab dem 19.06.2026 zusätzlich angepasst werden (Hinweis auf die elektronische Widerrufsfunktion und ihre URL). Diese Anpassung erfolgt durch Ihre Rechtstextquelle (IT-Recht-Kanzlei, Trusted Shops o. ä.), nicht durch das Plugin.
Beispiel-Formulierung für die Widerrufsbelehrung
# Widerrufsbelehrung (Auszug, Beispiel)
Sie können Ihre Vertragserklärung innerhalb von 14 Tagen
ohne Angabe von Gründen widerrufen.
Den Widerruf erklären Sie online über unseren
Widerruf-Button unter /widerruf. Nach Ausfüllen
des Formulars zeigen wir Ihnen eine Vorschau aller
Vertragsdaten zur finalen Bestätigung (§ 356a BGB).Eine vollständige Muster-Formulierung finden Sie in der mitgelieferten README.
Schnellstart
Installation in 5 Schritten.
- 1Plugin direkt bei Sönke anfragen (Veröffentlichung im Shopware Store läuft)
- 2In Shopware Admin → Erweiterungen → Hochladen → Installieren → Aktivieren
- 3Theme neu kompilieren (bin/console theme:compile)
- 4Unter Plugin-Konfiguration: Empfänger-E-Mail eintragen
- 5Fertig – Button erscheint sofort im Footer und im Kunden-Account
Versionshistorie
Changelog
- Name des Verbrauchers ist jetzt Pflichtfeld — damit sind alle drei in § 356a BGB vorgeschriebenen Angaben (Name, Vertragsidentifikation, Kommunikationsmittel) vollständig abgedeckt
- Browser- und Server-seitige Validierung beider Verarbeitungsstufen
- Vorschauseite zeigt den Namen jetzt immer
- Snippet-Texte in DE/EN/FR ohne „(optional)"-Suffix
- Button erscheint jetzt zuverlässig im verkürzten Minimal-Footer der Checkout-Strecke (Warenkorb, Bestellbestätigung, Erfolgsseite)
- Einhängepunkt von „nach dem Footer" auf „innerhalb des Footers" (Block layout_footer_bottom) verlegt
- JavaScript-Fallback für extreme Theme-Anpassungen bleibt erhalten
- Keine Doppel-Anzeige, keine Konflikte mit individualisierten Themes
- Vorschauseite zeigt jetzt die tatsächlichen Bestelldaten aus der Datenbank statt nur die Formulardaten
- Neue Karte „Bestelldaten" mit Bestelldatum, Artikel (Name, Menge, Einzelpreis) und Gesamtbetrag
- Bei nicht zuordenbaren Gast-Bestellungen erscheint ein Hinweis, die Bestätigungs-E-Mail zu prüfen
- Erleichtert die Vertragsidentifikation nach § 356a BGB durch Anzeige der echten Bestelldaten
- Widerrufs-Links in mehrsprachigen Shops mit Pfad-Präfix-Routing (/de/, /en/, /fr/) enthalten jetzt korrekt den Sprachpräfix
- Plugin-Konfiguration zeigt deutsche Feldbeschriftungen korrekt an, wenn das Admin-Backend auf Deutsch eingestellt ist
- Navigation und Footer auf den Widerrufs-Seiten werden jetzt vollständig angezeigt
- Button-Text automatisch in DE, EN, FR je nach Storefront-Sprache
- Neue Snippet-Schlüssel: widerruf.buttonLabel, widerruf.error.rateLimit, widerruf.error.requiredFields
- Fehlermeldungen (Rate-Limit, Pflichtfelder) ebenfalls in der Storefront-Sprache
- Auto-Migration: bestehende Installationen mit altem Standardwert werden automatisch auf Snippet-Fallback umgestellt
- Vollständiges Englisch und Französisch: Storefront, Admin-Backend, Plugin-Konfiguration und alle E-Mail-Templates
- Backfill-Migration ergänzt EN/FR-Übersetzungen in bestehenden E-Mail-Vorlagen (überschreibt keine eigenen Anpassungen)
- Bugfix: Doppelregistrierung des Storefront-Plugins im kompilierten Theme-Bundle behoben
- Härteres Release-Verfahren mit automatischen Pre-/Post-Build-Checks (0 Errors, 0 Warnings im Shopware-Validator)
- Zweistufiger Widerrufsprozess nach § 356a BGB
- Widerruf-Button in Footer, Kunden-Account und Transaktions-E-Mails
- Admin-Modul: Liste, Detail-Ansicht, Status-Workflow, Audit-Log
- DSGVO-Export, automatische Anonymisierung nach Aufbewahrungsfrist, Flow-Builder-Trigger
- Shopware 6.5 · 6.6 · 6.7, PHP 8.1+
FAQ
Häufig gestellte Fragen.
Was ändert sich am 19. Juni 2026?
Ab dem 19.06.2026 verpflichtet § 356a BGB (Umsetzung der EU-Richtlinie 2023/2673) B2C-Online-Shops in Deutschland, eine elektronische Widerrufsfunktion bereitzustellen. Ein klar beschrifteter Link genügt als Einstieg – er muss aber „Vertrag widerrufen“ heißen, während der Widerrufsfrist dauerhaft erreichbar sein und zu einer echten zweistufigen Funktion führen: Formular, Bestätigungsseite mit Button „Widerruf bestätigen“ und unverzügliche Eingangsbestätigung. Ein bloßer Verweis auf ein Kontaktformular reicht nicht. Dieses Plugin setzt das vollständig um und zeigt in der Vorschau zusätzlich die echten Vertragsdaten. Wer die Pflicht ignoriert, riskiert Abmahnungen.
Muss ich das Plugin installieren, wenn ich nur physische Waren verkaufe?
Ja, sobald mindestens ein widerrufsfähiges Produkt im Sortiment ist, gilt die Pflicht — und das betrifft praktisch jeden B2C-Onlineshop. Eine differenzierte Bereitstellung pro Produkt sieht das Gesetz nicht vor.
Wo wird der Widerruf-Button überall angezeigt?
Auf jeder Storefront-Seite im Footer (inkl. dem schlanken Checkout-Footer), im Kundenkonto im Drei-Punkt-Menü jeder Bestellung sowie als Link in transaktionalen E-Mails. Wird das Theme stark angepasst, springt ein JavaScript-Fallback ein. Eigene Einbau-Stellen lassen sich über eine wiederverwendbare Twig-Komponente realisieren.
Werden die echten Bestelldaten in der Vorschau angezeigt?
Ja. Seit Version 1.4.0 lädt das Plugin auf der Vorschauseite die tatsächlichen Vertragsbestandteile aus der Datenbank: Bestelldatum, alle Artikel mit Menge und Einzelpreis sowie der Gesamtbetrag. Bei nicht zuordenbaren Gast-Bestellungen erscheint ein klarer Hinweis, die Bestätigungs-E-Mail zu prüfen — beides unterstützt die rechtssichere Vertragsidentifikation nach § 356a BGB.
Funktioniert das Plugin auch in mehrsprachigen Shops?
Vollständig — Deutsch, Englisch und Französisch sind ab Werk dabei: Storefront, Admin, Plugin-Konfiguration und alle E-Mail-Templates. Auch Shops mit Sprach-Präfix-Routing (/de/, /en/, /fr/) werden korrekt unterstützt. Anpassungen pro Sprache erfolgen im Standard-Shopware-Snippet-Editor.
Schicke ich Daten an einen externen Service?
Nein. Das Plugin läuft vollständig lokal in Ihrem Shopware-Shop. Keine API-Calls an Drittanbieter, keine Cloud-Anbindung, keine Datenweitergabe. Alle Widerruf-Daten liegen ausschließlich in Ihrer Datenbank — Voraussetzung dafür, dass DSGVO-Export und Anonymisierung sauber funktionieren.
Werden bei Widerrufen automatisch Erstattungen veranlasst?
Nein. Das Plugin erfasst den Widerruf rechtssicher und dokumentiert ihn. Die kaufmännische Abwicklung (Erstattung, Rücksendung etc.) bleibt in Ihrer Hand und wird über den Status-Workflow im Admin gesteuert.
Müssen meine AGB / die Widerrufsbelehrung angepasst werden?
Ja, ab 19.06.2026. Die Widerrufsbelehrung muss einen Hinweis auf die elektronische Widerrufsfunktion und deren URL enthalten. Das ist Aufgabe Ihrer Rechtstextquelle (z. B. IT-Recht-Kanzlei, Trusted Shops, eigener Anwalt) — nicht des Plugins. Für die Datenschutzerklärung liefern wir einen vorformulierten Textbaustein im README mit.
Was passiert bei einer neuen Shopware-Version?
Lizenz-Kunden bekommen Updates automatisch über die Shopware-Update-Mechanik. Bei Major-Versionen (z. B. 6.7, 7.0) teste ich vor dem Release und passe an, falls nötig. Solange die Jahreslizenz läuft, sind Sie versorgt.
Was, wenn ich das Plugin nicht selbst installieren möchte?
Die Premium-Implementierung kostet einmalig 199 € (zusätzlich zur Lizenz). Ich übernehme Installation, Konfiguration, Anpassung der E-Mail-Texte an Ihren Stil und einen Test-Durchlauf im Live-Shop. Das spart Ihnen rund 1–2 Stunden Setup-Arbeit.
§ 356a BGB rechtskonform abbilden.
Schreiben Sie mir kurz, welche Shopware-Version Sie nutzen – ich melde mich mit Lizenz-Info, Pilot-Konditionen und Implementierungs-Optionen.