Sönke BergerWEB DEVELOPMENT
Demnächst im Shopware Store0 Errors · 0 Warnings

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
Shopware Widerruf-Button Plugin – gesetzeskonformer Zwei-Stufen-Widerruf nach § 356a BGB direkt im Shop

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.

1

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.

Widerrufsformular im Shopware Storefront — Stufe 1 mit Pflichtfeldern Bestellnummer, E-Mail und Name
2

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.

Vorschauseite des Widerrufs — Stufe 2 mit Bestelldaten und Bestätigungs-Button
3

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.

Footer-Button „Vertrag widerrufen" in der Shopware Storefront

Backend

Im Admin-Backend.

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

Admin-Übersicht aller Widerrufe im Shopware-Backend

Ü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 eines Widerrufs mit Stammdaten und Status-Workflow

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.

Audit-Log Tab des Widerrufs mit chronologischer Aktions-Historie

Manipulationssicheres Audit-Log

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

Konfigurationsseite des Widerrufsbutton-Plugins in Shopware-Erweiterungen

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.

  1. 1Plugin direkt bei Sönke anfragen (Veröffentlichung im Shopware Store läuft)
  2. 2In Shopware Admin → Erweiterungen → Hochladen → Installieren → Aktivieren
  3. 3Theme neu kompilieren (bin/console theme:compile)
  4. 4Unter Plugin-Konfiguration: Empfänger-E-Mail eintragen
  5. 5Fertig – Button erscheint sofort im Footer und im Kunden-Account

Versionshistorie

Changelog

v1.6.0AktuellCompliance: Name als Pflichtfeld27.05.2026
  • 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
v1.5.0Button im schlanken Checkout-Footer27.05.2026
  • 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
v1.4.0Vorschauseite mit echten Vertragsdaten27.05.2026
  • 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
v1.3.0Drei Bugfixes25.05.2026
  • 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
v1.2.0Sprachabhängige Button-Beschriftung25.05.2026
  • 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
v1.1.0Mehrsprachigkeit EN + FR25.05.2026
  • 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)
v1.0.0Erstveröffentlichung24.05.2026
  • 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.

Deadline: 19. Juni 2026

§ 356a BGB rechtskonform abbilden.

Schreiben Sie mir kurz, welche Shopware-Version Sie nutzen – ich melde mich mit Lizenz-Info, Pilot-Konditionen und Implementierungs-Optionen.

Widerruf-Button Plugin für Shopware 6 (§ 356a BGB) | Sönke Berger