PHPackages                             hyperlink/withdrawal-form - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. hyperlink/withdrawal-form

ActiveShopware-platform-plugin[Utility &amp; Helpers](/categories/utility)

hyperlink/withdrawal-form
=========================

EU right-of-withdrawal form (§ 356a BGB) as a CMS form type for Shopware 6.

1.0.0(1mo ago)10MITPHPPHP ^8.1

Since Jun 23Pushed 1mo agoCompare

[ Source](https://github.com/hyperlinkgroup/shopware-withdrawal-form)[ Packagist](https://packagist.org/packages/hyperlink/withdrawal-form)[ RSS](/packages/hyperlink-withdrawal-form/feed)WikiDiscussions main Synced 2w ago

READMEChangelog (1)Dependencies (2)Versions (2)Used By (0)

SsqWithdrawalForm – EU-Widerrufsformular für Shopware 6
=======================================================

[](#ssqwithdrawalform--eu-widerrufsformular-für-shopware-6)

[![Latest Version on Packagist](https://camo.githubusercontent.com/5dbda6664fda4f830b8b0c4e06cb5eec75a5bbad4ba992b4433bd52bbcae643d/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f68797065726c696e6b2f7769746864726177616c2d666f726d2e737667)](https://packagist.org/packages/hyperlink/withdrawal-form)[![Shopware 6.5](https://camo.githubusercontent.com/7021e484bf9f44e76bb517ef5c2dd7a691228e1f2b789e0a7eb3570646bd5909/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f53686f70776172652d362e352e782d3138394546462e737667)](https://www.shopware.com)[![License: MIT](https://camo.githubusercontent.com/fdf2982b9f5d7489dcf44570e714e3a15fce6253e0cc6b5aa61a075aac2ff71b/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c6963656e73652d4d49542d79656c6c6f772e737667)](LICENSE)

Ergänzt das Shopware-CMS-Formular-Element um den Typ **„Widerrufsformular"** – die gesetzlich geforderte elektronische Widerrufsfunktion gemäß § 356a BGB / EU-Richtlinie 2023/2673 (Pflicht ab 19.06.2026).

---

Funktionsumfang
---------------

[](#funktionsumfang)

- **CMS-Formulartyp „Widerrufsformular"** neben den bestehenden Typen „Kontakt" und „Newsletter"
- Felder: Vorname, Nachname, Bestellnummer, E-Mail-Adresse (Pflicht) sowie optionaler Grund
- **Eingangsmail** ans Service-Postfach mit erkennbarem „Widerruf"-Betreff und Eingangszeitpunkt
- **Automatische Eingangsbestätigung** per E-Mail an den Kunden
- **Hybrider Mailversand**: deterministisch (Plugin sendet direkt) oder über den Flow Builder
- Admin-Vorschau des Formulars im CMS-Editor
- Lokalisierte Feldtexte und Mails (Deutsch &amp; Englisch)

---

Voraussetzungen
---------------

[](#voraussetzungen)

- Shopware 6.5.x
- PHP 8.1+

---

Installation
------------

[](#installation)

### Variante 1: ZIP-Upload im Admin-Panel (empfohlen)

[](#variante-1-zip-upload-im-admin-panel-empfohlen)

1. Den neuesten Release als ZIP von der [Releases-Seite](https://github.com/hyperlinkgroup/shopware-withdrawal-form/releases) herunterladen.
2. **Im Admin-Panel hochladen:**

    - Navigiere zu **Erweiterungen → Meine Erweiterungen**
    - Klicke oben rechts auf **„Erweiterung hochladen"**
    - Wähle die `SsqWithdrawalForm.zip` aus
    - Klicke auf **„Installieren"** und anschließend auf **„Aktivieren"**

    Die Migrationen (E-Mail-Templates) laufen automatisch bei der Installation.

### Variante 2: Manuell in den Plugin-Ordner kopieren

[](#variante-2-manuell-in-den-plugin-ordner-kopieren)

1. **Repository klonen:**

    ```
    git clone git@github.com:hyperlinkgroup/shopware-withdrawal-form.git custom/plugins/SsqWithdrawalForm
    ```
2. **Plugin erkennen, installieren und aktivieren:**

    ```
    bin/console plugin:refresh
    bin/console plugin:install --activate SsqWithdrawalForm
    bin/console cache:clear
    ```
3. **Administration-Assets veröffentlichen** (optional – das Plugin enthält bereits eine vorgebaute JS-Datei):

    ```
    bin/console assets:install
    ```

---

Einrichten im Shop
------------------

[](#einrichten-im-shop)

1. **Erlebnisseite anlegen** – neue CMS-Seite (z. B. „Widerruf") erstellen, einen Formular-Block einfügen und als Element-Typ **„Widerrufsformular"** auswählen.
2. **Seite erreichbar machen** – die Seite einer Kategorie zuweisen, damit sie ohne Login aufrufbar ist.
3. **Footer verlinken** – im Theme-Footer einen Link mit dem Text **„Vertrag widerrufen"** auf die Widerrufsseite setzen.
4. **Service-Postfach konfigurieren** – unter **Erweiterungen → Meine Erweiterungen → SsqWithdrawalForm → Konfiguration** die Empfänger-E-Mail-Adresse eintragen (leer = Standard-Shop-E-Mail).

---

Konfiguration im Admin-Panel
----------------------------

[](#konfiguration-im-admin-panel)

Navigiere zu **Erweiterungen → Meine Erweiterungen → SsqWithdrawalForm → Konfiguration**.

FeldBeschreibung**Mails direkt versenden**Wenn aktiviert (Standard), sendet das Plugin beide Mails selbst. Wenn deaktiviert, werden nur Events gefeuert – Mails dann über den Flow Builder konfigurieren.**Empfänger-E-Mail**Adresse, an die Widerrufsanfragen zugestellt werden. Leer lassen, um die Standard-Shop-E-Mail zu verwenden.---

Mailversand
-----------

[](#mailversand)

Das Plugin unterstützt zwei Modi:

**Direktversand (Standard, empfohlen):**Das Plugin verschickt nach einer Formular-Abgabe eigenständig zwei Mails:

- Eine Eingangsmail an das Service-Postfach (Betreff enthält „Widerruf" + Bestellnummer)
- Eine Eingangsbestätigung an die E-Mail-Adresse des Kunden

**Flow-Modus:**Das Plugin feuert die Events `ssq.withdrawal_form.received` und `ssq.withdrawal_form.confirmation`. Mails werden über den **Flow Builder** unter *Einstellungen → Flow Builder* konfiguriert.

> ⚠️ Nicht beides gleichzeitig aktiv lassen – sonst werden Mails doppelt verschickt.

---

E-Mail-Templates
----------------

[](#e-mail-templates)

Die Mailtexte sind unter **Einstellungen → E-Mail-Templates** pflegbar:

Technischer NameVerwendung`ssq_withdrawal_form_received`Eingangsmail ans Service-Postfach`ssq_withdrawal_form_confirmation`Eingangsbestätigung an den KundenVerfügbare Template-Variablen:

VariableInhalt`{{ withdrawalFormData.firstName }}`Vorname`{{ withdrawalFormData.lastName }}`Nachname`{{ withdrawalFormData.orderNumber }}`Bestellnummer`{{ withdrawalFormData.email }}`E-Mail-Adresse`{{ withdrawalFormData.reason }}`Grund (kann leer sein)`{{ withdrawalFormData.requestedAt }}`Eingangszeitpunkt (`DateTimeImmutable`)`{{ salesChannel.name }}`Name des Sales Channels---

Deinstallation
--------------

[](#deinstallation)

```
bin/console plugin:deactivate SsqWithdrawalForm
bin/console plugin:uninstall SsqWithdrawalForm
bin/console cache:clear
```

Bei der Deinstallation bleiben die E-Mail-Templates in der Datenbank erhalten, sofern nicht „Benutzerdaten löschen" gewählt wird.

---

Technische Details
------------------

[](#technische-details)

- Storefront-Route: `POST /form/withdrawal` (`frontend.form.withdrawal.send`), XmlHttpRequest + Captcha
- Validierung über `DataValidationFactoryInterface`; URL-Injection in Freitextfeldern wird per Regex blockiert
- Der Eingangszeitpunkt wird in der konfigurierten Shop-Zeitzone (`core.basicInformation.timeZone`) ermittelt
- Admin-Dropdown über `Shopware.Component.override('sw-cms-el-config-form', …)` und `Shopware.Component.override('sw-cms-el-form', …)`
- Das Plugin enthält ein vorgebautes Admin-Bundle (`src/Resources/public/administration/js/ssq-withdrawal-form.js`), sodass kein Server-seitiger Build nötig ist

---

Lizenz
------

[](#lizenz)

Dieses Projekt ist lizenziert unter der [MIT-Lizenz](LICENSE).

###  Health Score

37

—

LowBetter than 81% of packages

Maintenance90

Actively maintained with recent releases

Popularity2

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity42

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

46d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/133309?v=4)[Xiaoxin Lu](/maintainers/hyperlink)[@hyperlink](https://github.com/hyperlink)

---

Top Contributors

[![kaiserkiwi](https://avatars.githubusercontent.com/u/8428551?v=4)](https://github.com/kaiserkiwi "kaiserkiwi (12 commits)")

### Embed Badge

![Health badge](/badges/hyperlink-withdrawal-form/health.svg)

```
[![Health](https://phpackages.com/badges/hyperlink-withdrawal-form/health.svg)](https://phpackages.com/packages/hyperlink-withdrawal-form)
```

###  Alternatives

[shopware/production

176216.5k](/packages/shopware-production)[adyen/adyen-shopware6

Official Shopware 6 Plugin to connect to Payment Service Provider Adyen

25119.6k](/packages/adyen-adyen-shopware6)[frosh/tools

Provides some basic things for managing the Shopware Installation

88858.1k3](/packages/frosh-tools)[kiener/mollie-payments-plugin

Mollie Payments

6767.7k](/packages/kiener-mollie-payments-plugin)[unzerdev/shopware6

Unzer payment integration for Shopware 6

1235.9k](/packages/unzerdev-shopware6)[werkstattl/openblogware

OpenBlogware: A Blog Module for Shopware 6.

448.1k](/packages/werkstattl-openblogware)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
