
Ab dem 19. Juni 2026 ist der elektronische Widerrufsbutton für B2C-Online-Shops in Deutschland gesetzlich verpflichtend (§ 356a BGB). Kunden müssen Verträge direkt im Shop mit einem klar beschrifteten Button widerrufen können – und der Shop muss den Eingang automatisch per E-Mail bestätigen.
Shopware hat die Lösung nativ ab Version 6.7.9.0 eingebaut (Backport für 6.6 ab 6.6.10.14). Wer eine dieser Versionen oder neuer nutzt, aktiviert den Button einfach unter Einstellungen > Stammdaten. Wer noch eine ältere Version betreibt, muss selbst ran – dieser Artikel zeigt, wie.

Voraussetzungen
Shopware 6 ab Version 6.5.0.0, älter als 6.6.10.14
Zugriff auf das Shopware-Admin-Backend
FTP- oder SSH-Zugang zum Server (für den letzten Schritt)
Schritt 1: Formular-Plugin installieren
Als erstes wird das kostenlose Formular-Plugin der Telekom benötigt. Es ermöglicht, Kontaktformulare direkt in Erlebniswelten einzubinden.
Plugin im Shopware Store herunterladen:
store.shopware.com → Formular für Anfragen für die Erlebniswelten
Nach der Installation das Plugin unter Einstellungen > Erweiterungen > Meine Erweiterungen aktivieren.

Schritt 2: Erlebniswelt anlegen
Im Admin-Backend unter Inhalte > Erlebniswelten eine neue Erlebniswelt anlegen:
Typ: Shopseite
Name: z. B. „Widerrufsformular“
Im Layout-Editor links in der Blockkategorie Formular den Block Formular Component per Drag-and-Drop auf die Seite ziehen.

Schritt 3: Formular konfigurieren
Auf das Zahnrad-Symbol des Formular-Blocks klicken, um die Einstellungen zu öffnen. Drei Tabs werden konfiguriert:
Tab „Formularaufbau“
Vorname: Pflichtfeld
Nachname: Pflichtfeld
E-Mail-Adresse: Pflichtfeld
Kommentarfeld: kein Pflichtfeld
Datenschutzbestimmungen: Pflichtfeld
Pflichtfeldinformationen: Aktiviert
Herkunft manuell festlegen: Aktiviert
Herkunft: Vertrag widerrufen
Herkunftswert: Widerrufsformular
Alle anderen Optionen deaktivieren
Tab „Freie Eingaben für das Formular"
Freie Eingabe 1: Pflichtfeld
Beschriftung: Bestellnummer
Typ: Eingabefeld
Tab „Versand der Daten per E-Mail"
Versand an einen oder mehrere Empfänger aktivieren – Name und E-Mail-Adresse des Shopbetreibers eintragen
Versand an den Anfragenden aktivieren

Schritt 4: Kategorie und Seite anlegen
Unter Kataloge > Kategorien eine neue Kategorie anlegen:
Name: Vertrag widerrufen
Aktiv: Ja
In der Navigation ausblenden: Ja (falls kein Menüeintrag gewünscht)
Unter Layout das erstellte Erlebniswelten-Layout verknüpfen
SEO-Daten hinterlegen (URL-Slug, Meta-Titel, Meta-Beschreibung)

Anschließend die Kategorie-ID aus der URL des Browsers kopieren:
https://www.mein-shop.de/admin#/sw/category/index/019ebaf1b9e67c229e2d0eb9b26d8783/seo
Die ID in diesem Beispiel lautet: 019ebaf1b9e67c229e2d0eb9b26d8783 – diese wird im letzten Schritt benötigt.
Schritt 5: E-Mail-Template anpassen
Im Admin unter Einstellungen > E-Mail-Templates nach „Anfrageformular“ suchen und das Template öffnen. Im HTML-Tab den bestehenden Inhalt durch folgenden Code ersetzen. Im HTML-Tab den bestehenden Inhalt durch folgenden Code ersetzen:
<div style="font-size:12px;">
Guten Tag {{ periodRequestFormData.firstname }} {{ periodRequestFormData.lastname }},
<br/><br/>
wir haben Ihren Widerrufsantrag für den Vertrag mit der Nummer {{ periodRequestFormData.freeInput }} erhalten und bestätigen den Eingang hiermit.
<br/><br/>
Ihre übermittelten Angaben:<br/>
Vorname: {{ periodRequestFormData.firstname }}<br/>
Nachname: {{ periodRequestFormData.lastname }}<br/>
E-Mail-Adresse: {{ periodRequestFormData.email }}<br/>
Vertragsnummer: {{ periodRequestFormData.freeInput }}<br/>
{% if periodRequestFormData.comment != "" %}Kommentar: {{ periodRequestFormData.comment }}<br/>{% endif %}
<br/>
Das Formular wurde am {{ "now"|date('d.m.Y') }} um {{ "now"|date('H:i') }} Uhr eingereicht.
<br/><br/>
Mit freundlichen Grüßen<br/>
{{ salesChannel.name }}
</div>

Schritt 6: Textbaustein anlegen
Unter Einstellungen > Textbausteine das gewünschte Set auswählen und einen neuen Textbaustein anlegen:
Schlüssel: revocationRequestSnippetKey
Wert: Vertrag widerrufen

Schritt 7: Kostenloses Plugin
Wer den Button ohne eigenes Plugin einrichten möchte, kann das kostenlose eazyCode Widerrufsbutton-Plugin nutzen. Es fügt den Button automatisch in den Footer ein – die Kategorie lässt sich direkt in den Plugin-Einstellungen hinterlegen, ohne dass Code-Kenntnisse nötig sind: Kostenloses Plugin herunterladen.
Wer den Button lieber manuell per eigenem Plugin einbauen möchte, folgt den Schritten unten.
Alternative 7: Button in den Footer einbauen
Für den letzten Schritt wird ein minimales Shopware-Plugin benötigt, das den Footer-Template-Block erweitert. Per FTP oder SSH im Shopware-Verzeichnis folgende Struktur anlegen:
custom/plugins/SwWiderrufsButton/
├── composer.json
└── src/
├── SwWiderrufsButton.php
└── Resources/
└── views/
└── storefront/
└── layout/
└── footer/
└── footer.html.twig
composer.json
{
"name": "sw/widerrufs-button",
"description": "Widerrufsbutton Footer",
"version": "1.0.0",
"type": "shopware-platform-plugin",
"license": "MIT",
"autoload": {
"psr-4": {
"Sw\\WiderrufsButton\\": "src/"
}
},
"extra": {
"shopware-plugin-class": "Sw\\WiderrufsButton\\SwWiderrufsButton",
"label": {
"de-DE": "Widerrufsbutton",
"en-GB": "Revocation Button"
}
}
}
src/SwWiderrufsButton.php
<?php declare(strict_types=1);
namespace Sw\WiderrufsButton;
use Shopware\Core\Framework\Plugin;
class SwWiderrufsButton extends Plugin {}
src/Resources/views/storefront/layout/footer/footer.html.twig
Die Kategorie-ID aus Schritt 4 anstelle von DEINE-KATEGORIE-ID einsetzen:
{% sw_extends '@Storefront/storefront/layout/footer/footer.html.twig' %}
{% block layout_footer_navigation_hotline_content %}
{{ parent() }}
<a href="{{ seoUrl('frontend.navigation.page', { navigationId: 'DEINE-KATEGORIE-ID' }) }}"
class="btn btn-primary mt-2">
{{ 'revocationRequestSnippetKey'|trans }}
</a>
{% endblock %}
Anschließend das Plugin über die Konsole aktivieren und den Cache leeren:
bin/console plugin:refresh
bin/console plugin:install --activate SwWiderrufsButton
bin/console theme:compile
bin/console cache:clear

Fazit
Mit diesen sieben Schritten ist der gesetzlich vorgeschriebene Widerrufsbutton auch ohne Shopware-Update vollständig eingerichtet: Das Formular nimmt die Daten entgegen, der Kunde erhält eine rechtskonforme Bestätigungsmail, und der Button ist im Footer sichtbar verankert. Wer langfristig plant, sollte dennoch ein Update auf Shopware 6.6.10.14 oder 6.7.9.0 einplanen – dort entfällt dieser manuelle Aufwand komplett.
Haben Sie Fragen zur Umsetzung des Widerrufsbuttons in Ihrem Shopware-Shop? Wir helfen Ihnen gerne – unverbindlich und schnell. Kontaktieren Sie uns, wir melden uns innerhalb von 24 Stunden.

Haben Sie Fragen zur Umsetzung des Widerrufsbuttons in Ihrem Shopware-Shop? Wir helfen Ihnen gerne – unverbindlich und schnell. Kontaktieren Sie uns, wir melden uns innerhalb von 24 Stunden.