# Konfigurationsanleitung
Diese Anleitung richtet sich an Shop-Betreiber und Administratoren, die **Axoli Widerrufsbutton & Bestellwiderrufsanfragen** einrichten und betreiben.
---
## 1. Was das Plugin leistet
Das Plugin ergänzt Ihren Shop um:
- ein **Widerrufsformular** im Storefront (Modal),
- **Einstiegspunkte** im Kontomenü, Footer und in der Bestellübersicht,
- eine **zentrale Verwaltung** aller Widerrufsanfragen in der Administration,
- **E-Mail-Benachrichtigungen** an Kunden und Ihr Team,
- eine **Tracking-Seite**, auf der Kunden den Bearbeitungsstand einsehen können.
Die wichtigsten Einstellungen werden **pro Verkaufskanal** vorgenommen. So können Sie die Funktion z. B. im B2C-Shop aktivieren und in einem B2B-Kanal deaktivieren.
---
## 2. Installation und Aktivierung
### Über den Shopware Store (empfohlen)
1. Melden Sie sich in der **Administration** an.
2. Öffnen Sie **Erweiterungen → Store**.
3. Suchen Sie nach *Axoli Widerrufsbutton & Bestellwiderrufsanfragen* und installieren Sie die Erweiterung.
4. Aktivieren Sie das Plugin unter **Erweiterungen → Meine Erweiterungen**.
5. Leeren Sie anschließend den Cache unter **Einstellungen → System → Caches & Indizes → Alle Caches leeren**.
> **Hinweis:** Je nach Hosting werden Storefront-Assets nach der Aktivierung automatisch neu gebaut. Sollten Buttons oder das Admin-Modul nicht erscheinen, wenden Sie sich an Ihren Hoster oder führen Sie auf dem Server `./bin/build-storefront.sh` und `./bin/build-administration.sh` aus.
### Manuelle Installation (ZIP)
Falls Sie das Plugin als ZIP erhalten haben, entpacken Sie es nach `custom/plugins/AxoliOrderWithdrawal` und führen Sie in der Shopware-Installation aus:
```bash
bin/console plugin:refresh
bin/console plugin:install --activate AxoliOrderWithdrawal
bin/console cache:clear
```
---
## 3. Plugin-Konfiguration öffnen
1. **Einstellungen → System → Plugins → Meine Erweiterungen**
2. *Axoli Widerrufsbutton & Bestellwiderrufsanfragen* auswählen
3. Auf **Konfigurieren** klicken
4. Oben den gewünschten **Verkaufskanal** wählen
Alle folgenden Einstellungen gelten für den aktuell ausgewählten Verkaufskanal. Wiederholen Sie die Konfiguration für jeden weiteren Kanal, den Sie nutzen möchten.
---
## 4. Einstellungen im Detail
### Widerrufsfunktion aktivieren
Schaltet die gesamte Storefront-Funktion für den gewählten Verkaufskanal ein oder aus.
| Einstellung | Standard |
|---|---|
| Aktiviert | Ja |
**Bei Deaktivierung** werden Formular, Buttons und neue Anfragen im Storefront ausgeblendet bzw. blockiert. **Weiterhin verfügbar** bleiben das Administration-Modul, bestehende Tracking-Links und die Bearbeitung laufender Vorgänge.
---
### Widerrufsfrist (Tage)
Legt fest, wie lange der Widerrufsbutton in der **Konto-Bestellübersicht** angezeigt wird.
| Einstellung | Standard |
|---|---|
| 14 Tage | Ja |
- **Positive Zahl** (z. B. 14): Der Button erscheint nur innerhalb dieser Frist nach dem Bestelldatum.
- **Leer lassen oder 0:** Keine zeitliche Begrenzung – der Button wird dauerhaft angezeigt (solange noch keine Anfrage existiert).
**Berechnung:** Die Frist beginnt am Bestelldatum und endet am **Ende des letzten Tages**. Beispiel bei 14 Tagen und Bestellung am 1. Juni: Widerruf bis einschließlich 15. Juni, 23:59 Uhr möglich.
Die Frist gilt sowohl für die Anzeige des Buttons als auch für das Absenden des Formulars. Liegt eine passende Bestellung im System vor, wird deren **echtes Bestelldatum** herangezogen.
> **Rechtlicher Hinweis:** Passen Sie die Frist an Ihre Widerrufsbelehrung an. Das Plugin ersetzt keine Rechtsberatung.
---
### Absendername für ausgehende E-Mails
Anzeigename des Absenders bei Kunden-Mails und internen Benachrichtigungen.
| Einstellung | Standard |
|---|---|
| Widerrufsservice | Ja |
---
### Benachrichtigungsempfänger für neue Anfragen
E-Mail-Adressen, die bei jeder **neuen** Widerrufsanfrage informiert werden.
- Mehrere Adressen **kommagetrennt** eintragen, z. B. `widerruf@mein-shop.de, service@mein-shop.de`
- **Wenn leer:** Es wird die Shop-E-Mail des Verkaufskanals verwendet (*Einstellungen → Grundeinstellungen → Shop-E-Mail*)
Die Benachrichtigung enthält Bestellnummer, Kundendaten, Nachricht und einen Link zur Anfrage.
---
### Widerrufsbutton im Kontomenü anzeigen
Zeigt im **Account-Dropdown** im Header einen Button, der das Widerrufsformular öffnet. Für eingeloggte Kunden werden Name, E-Mail und Telefon vorbefüllt.
| Einstellung | Standard |
|---|---|
| Aktiviert | Ja |
---
### Widerrufsbutton im Footer anzeigen
Zeigt im **Service-Bereich des Footers** einen Link zum Widerrufsformular. Sichtbar für alle Besucher, auch Gäste.
| Einstellung | Standard |
|---|---|
| Aktiviert | Ja |
---
### Bestellung bei akzeptiertem Widerruf automatisch stornieren
Wird eine Widerrufsanfrage auf **Akzeptiert** gesetzt, kann die verknüpfte Bestellung automatisch storniert werden.
| Einstellung | Standard |
|---|---|
| Deaktiviert | Ja |
**Voraussetzungen:**
- Die Anfrage muss mit einer Bestellung verknüpft sein.
- Der Statusübergang zu „Storniert“ muss in Shopware für die Bestellung erlaubt sein.
Der Vorgang wird im Verlauf der Anfrage protokolliert.
---
### Button-Farben
Für **Kontomenü**, **Footer** und **Bestellübersicht** können jeweils Hintergrund- und Textfarbe festgelegt werden.
**Leer lassen**, um die Farben Ihres Themes zu verwenden.
---
### URL zur Widerrufsbelehrung
Link zur Seite mit Ihrer **Widerrufsbelehrung**. Er wird in der Pflicht-Checkbox des Formulars verwendet („Ich habe die Widerrufsbelehrung gelesen …“).
**Beispiel:** `https://www.mein-shop.de/widerrufsbelehrung`
> **Wichtig:** Tragen Sie diese URL vor dem Go-Live unbedingt ein.
---
## 5. Storefront – Was Ihre Kunden sehen
| Einstiegspunkt | Konfiguration | Für wen |
|---|---|---|
| Account-Dropdown (Header) | Button im Kontomenü | Eingeloggte Kunden |
| Footer | Button im Footer | Alle Besucher |
| Bestellübersicht im Konto | Automatisch (wenn aktiv & in Frist) | Eingeloggte Kunden |
| Sidebar „Widerrufsanfragen“ | Immer (wenn aktiv) | Eingeloggte Kunden |
### Bestellübersicht
- **Widerrufsbutton:** Erscheint neben der Bestellnummer, wenn noch keine Anfrage existiert und die Frist nicht abgelaufen ist. Das Formular wird mit Bestelldaten vorbefüllt.
- **Status-Badge:** Liegt bereits eine Anfrage vor, erscheint ein Badge mit dem Bearbeitungsstatus (z. B. „Widerruf: In Prüfung“).
### Widerrufsformular – Pflichtangaben
- Vorname, Nachname, E-Mail
- Bestellnummer, Bestelldatum
- Bestätigung der Widerrufsbelehrung (Checkbox)
**Optional:** Telefon, Nachricht, Dateianhänge (PDF, PNG, JPG, JPEG, WEBP, GIF – max. 10 Dateien à 10 MB).
### Captcha
Das Formular nutzt die in Shopware aktivierten Captchas. Konfigurieren Sie diese unter **Einstellungen → System → Captcha**.
### Gäste und Bestandskunden
- **Eingeloggt:** Daten werden aus dem Kundenkonto übernommen.
- **Gast:** Manuelle Eingabe; Zuordnung über Bestellnummer und E-Mail zum Verkaufskanal.
Pro Bestellung ist nur **eine** Widerrufsanfrage möglich.
---
## 6. E-Mails einrichten
### Kunden-E-Mails
Unter **Einstellungen → E-Mail-Vorlagen** finden Sie zwei anpassbare Vorlagen:
| Vorlage | Wann versendet |
|---|---|
| Bestellwiderruf: Eingangsbestätigung | Nach neuer Anfrage |
| Bestellwiderruf: Status-Update | Bei Hinweis/Statusänderung aus der Administration |
**Verfügbare Platzhalter:** Vorname, Nachname, Bestellnummer, Bestelldatum, Status, Tracking-Link, Hinweistext (bei Updates).
### Interne Benachrichtigung
Bei jeder neuen Anfrage erhalten die konfigurierten **Benachrichtigungsempfänger** (oder die Shop-E-Mail) eine E-Mail mit den Anfragedetails.
### Absender
Der **Absendername** kommt aus der Plugin-Konfiguration. Die Absender-**Adresse** wird aus den Mail-Einstellungen Ihres Verkaufskanals übernommen. Stellen Sie sicher, dass der E-Mail-Versand (SMTP) in Shopware funktioniert.
---
## 7. Vorgangsnummern
Jede Widerrufsanfrage erhält eine fortlaufende Nummer, z. B. **WID-10001**.
Anpassung unter **Einstellungen → Shop → Nummernkreise** → Typ *Widerrufsanfragen*.
---
## 8. Anfragen in der Administration bearbeiten
### Modul öffnen
**Bestellungen → Widerrufsanfragen**
### Status
| Status | Typische Bedeutung |
|---|---|
| Eingegangen | Neue, unbearbeitete Anfrage |
| In Prüfung | Wird geprüft |
| Warten auf Rücksendung | Ware wird erwartet |
| Akzeptiert | Widerruf anerkannt |
| Abgelehnt | Widerruf abgelehnt |
### Empfohlener Ablauf
1. Neue Anfrage prüfen (Anhänge herunterladen, Bestellung verknüpfen falls nötig)
2. Status anpassen
3. Bei Bedarf **Hinweis an den Kunden** hinterlegen und optional per E-Mail senden
4. Abschluss: **Akzeptiert** oder **Abgelehnt**
### Weitere Funktionen
- **Manuelle Anlage** von Anfragen (z. B. nach Telefonat)
- **Bestellung verknüpfen** oder Verknüpfung entfernen
- **Interner Kommentar** (nur für Ihr Team sichtbar)
- **Verlauf** mit Zeitstempel und Bearbeiter
- **Badge „Widerruf“** in der Bestellliste und Block in der Bestelldetail-Ansicht
---
## 9. Berechtigungen für Ihr Team
Unter **Einstellungen → System → Benutzer & Rechte → Rollen** steht die Berechtigung **Widerrufsanfragen** zur Verfügung:
| Stufe | Rechte |
|---|---|
| Viewer | Anfragen lesen |
| Editor | Anfragen bearbeiten, Anhänge hochladen |
| Creator | Neue Anfragen anlegen |
| Deleter | Anfragen löschen |
**Empfehlung:** Service-Mitarbeiter erhalten Viewer + Editor; Teamleitung zusätzlich Creator.
---
## 10. Tracking-Seite für Kunden
Nach dem Absenden erhalten Kunden eine E-Mail mit einem **persönlichen Tracking-Link**. Dort sehen sie den aktuellen Status und Hinweise Ihres Teams.
**Gäste** müssen sich zusätzlich mit E-Mail und Bestellnummer verifizieren.
**Eingeloggte Kunden** finden ihre Anfragen auch unter **Mein Konto → Widerrufsanfragen**.
Tracking-Links funktionieren auch, wenn die Widerrufsfunktion später für einen Kanal deaktiviert wird.
---
## 11. Formular in CMS-Seiten einbinden
Sie können das Widerrufsformular von eigenen Seiten aus öffnen:
**Einfacher Button:**
```html
Widerruf einreichen
```
**Mit vorbefüllter Bestellnummer:**
```html
data-axoli-withdrawal-url="/axoli-withdrawal/modal?orderNumber=10001&orderDate=2026-06-01">
Widerruf zu Bestellung 10001
```
**Alternativ:** Jeder Link mit Ziel `#axoli-withdrawal-modal` öffnet das Formular.
---
## 12. Mehrere Verkaufskanäle
| Szenario | Lösung |
|---|---|
| B2C aktiv, B2B inaktiv | Im B2B-Kanal „Widerrufsfunktion aktivieren“ deaktivieren |
| Unterschiedliche Fristen | Pro Kanal eigene Widerrufsfrist |
| Eigene Service-Mail | Pro Kanal eigene Benachrichtigungsempfänger |
| Eigenes Design | Pro Kanal eigene Button-Farben |
---
## 13. Checkliste vor dem Go-Live
- [ ] Plugin installiert und aktiviert
- [ ] Pro Verkaufskanal: Widerrufsfunktion aktiviert
- [ ] URL zur Widerrufsbelehrung eingetragen und erreichbar
- [ ] Widerrufsfrist an Ihren Prozess angepasst
- [ ] Benachrichtigungsempfänger oder Shop-E-Mail geprüft
- [ ] E-Mail-Vorlagen in allen Shop-Sprachen geprüft
- [ ] Test-Widerruf als Gast und als Kunde durchgeführt
- [ ] Tracking-Link und Konto-Übersicht getestet
- [ ] Mitarbeiter-Rollen mit Berechtigungen versehen
- [ ] Optional: Auto-Stornierung bewusst aktiviert oder deaktiviert
---
## 14. Häufige Fragen
### Der Widerrufsbutton erscheint nicht in der Bestellübersicht
- Ist die Widerrufsfunktion für den Verkaufskanal aktiviert?
- Ist die Widerrufsfrist abgelaufen?
- Existiert bereits eine Anfrage für diese Bestellung?
- Cache leeren und Seite neu laden.
### Kunde erhält keine E-Mail
- E-Mail-Vorlagen vorhanden?
- SMTP-Versand in Shopware funktioniert?
- Spam-Ordner prüfen.
### Bestellung wird bei „Akzeptiert“ nicht storniert
- Ist „Bestellung bei akzeptiertem Widerruf automatisch stornieren“ aktiviert?
- Ist die Anfrage mit einer Bestellung verknüpft?
- Erlaubt der aktuelle Bestellstatus den Übergang zu „Storniert“?
### Plugin-Update schlägt im Admin fehl
Führen Sie das Update per Konsole aus:
```bash
bin/console plugin:update AxoliOrderWithdrawal
bin/console cache:clear
```
---
*Axoli Widerrufsbutton & Bestellwiderrufsanfragen*