# DataFirefly Loyalty — Shopware 6 Treueprogramm

> Installation, Konfiguration und Nutzung von DataFirefly Loyalty: Punkte, Stufen, Gutschein-Einlösung und Fehlerbehebung.

- Seite: <https://www.datafirefly.com/de/documentation/dfloyalty-shopware/>
- Sprache: de
- Aktualisiert am: 2026-10-08
- Weitere Sprachen: [fr](https://www.datafirefly.com/documentation/dfloyalty-shopware/index.md), [en](https://www.datafirefly.com/en/documentation/dfloyalty-shopware/index.md), [es](https://www.datafirefly.com/es/documentation/dfloyalty-shopware/index.md), [it](https://www.datafirefly.com/it/documentation/dfloyalty-shopware/index.md), [pl](https://www.datafirefly.com/pl/documentation/dfloyalty-shopware/index.md), [nl](https://www.datafirefly.com/nl/documentation/dfloyalty-shopware/index.md), [pt](https://www.datafirefly.com/pt/documentation/dfloyalty-shopware/index.md)
- Index: <https://www.datafirefly.com/de/documentation/llms.txt>

## Überblick

DataFirefly Loyalty fügt Shopware 6 ein vollständiges Treueprogramm hinzu: Ihre Kunden sammeln Punkte bei jeder Bestellung, steigen in Stufen mit Punkte-Multiplikatoren auf und wandeln ihre Punkte in Gutscheine um, die auf den nativen Promotions von Shopware basieren. Die Erweiterung läuft auf Shopware 6.5, 6.6 und 6.7 mit einem einzigen ZIP, ganz ohne Kompilierung.

## Installation

### Über die Administration

1. Öffnen Sie **Erweiterungen > Meine Erweiterungen**.
2. Klicken Sie auf **Erweiterung hochladen** und wählen Sie die Datei `DfLoyalty-1.0.0.zip`.
3. Klicken Sie auf **Installieren** und aktivieren Sie die Erweiterung.

### Über die Kommandozeile

```
bin/console plugin:refresh
bin/console plugin:install --activate DfLoyalty
bin/console cache:clear
```

Die Installation legt zwei eigene Tabellen an: `df_loyalty_account` (eine Zeile pro Kunde) und `df_loyalty_transaction` (das Journal aller Punktevorgänge).

Es ist kein JavaScript-Build erforderlich: Die Erweiterung enthält kein kompiliertes Administrationsmodul, was die Kompatibilität mit den Versionen 6.5, 6.6 und 6.7 garantiert.

## Konfiguration

Öffnen Sie **Erweiterungen > Meine Erweiterungen > DataFirefly Loyalty > Konfigurieren**. Alle Einstellungen sind pro Verkaufskanal verfügbar: Sie können das Programm nur in einem Shop aktivieren oder je Kanal unterschiedliche Sätze anwenden.

### Punktegutschrift

- **Programm aktivieren**: Hauptschalter. Deaktiviert liefert die Kundenkonto-Seite einen 404-Fehler und es werden keine Punkte gutgeschrieben.
- **Gutschrift-Auslöser**: _Zahlung eingegangen_ (Transaktionsstatus `paid`, empfohlen) oder _Bestellung abgeschlossen_ (Bestellstatus `completed`).
- **Punkte pro Währungseinheit**: gesammelte Punkte pro ausgegebener Einheit. Standard: 1.
- **Berechnungsbasis**: Bestellwert brutto oder netto.
- **Versandkosten einbeziehen**: standardmäßig sind Versandkosten von der Berechnung ausgeschlossen.

### Stufen

Drei Stufen sind konfigurierbar, jeweils mit Name, Schwelle und Multiplikator. Die Schwellen gelten für die **insgesamt gesammelten Punkte** (die durch eine Einlösung nie sinken), der Multiplikator gilt für alle künftigen Gutschriften.

- **Stufe 1** — Standard: Bronze, ab 0 Punkten, Multiplikator ×1.0
- **Stufe 2** — Standard: Silber, ab 500 Punkten, Multiplikator ×1.25
- **Stufe 3** — Standard: Gold, ab 2 000 Punkten, Multiplikator ×1.5

Beispiel: Ein Silber-Kunde (×1.25), der eine Bestellung über 100 € brutto mit einem Satz von 1 Punkt pro Euro aufgibt, erhält 125 Punkte.

### Gutschein-Einlösung

- **Umrechnungskurs**: benötigte Punkte pro 1 € Gutscheinwert. Standard: 100 (100 Punkte = 1,00 €).
- **Einlöse-Minimum**: Mindestpunktzahl für eine Einlösung. Standard: 200.
- **Schrittweite**: Punkte werden in Vielfachen dieses Werts umgewandelt. Standard: 100.
- **Gutschein-Gültigkeit**: Lebensdauer des Gutscheins in Tagen. Standard: 90.

## Ablauf für Kunden

Im Kundenkonto-Menü erscheint ein Eintrag **Treueprogramm**. Die Seite `/account/loyalty` zeigt:

- den verfügbaren Punktestand und die insgesamt gesammelten Punkte;
- die aktuelle Stufe mit einem Fortschrittsbalken zur nächsten Stufe;
- das Einlöseformular;
- den Verlauf der letzten 50 Vorgänge (Gutschriften, Einlösungen, Stornierungen).

Löst ein Kunde Punkte ein, erstellt die Erweiterung eine **native Shopware-Promotion**: ein eindeutiger Code der Form `LOYAL-XXXXXXXX`, an sein Konto gebunden, einmalig nutzbar, mit festem Warenkorbrabatt. Der Code wird im Warenkorb wie jeder Gutscheincode eingelöst. Alle erzeugten Promotions finden Sie unter **Marketing > Aktionen**.

## Stornierungen und Erstattungen

Wechselt eine Bestellung in den Status _Storniert_ oder ihre Zahlung in den Status _Erstattet_, werden die auf diese Bestellung gutgeschriebenen Punkte automatisch zurückgenommen. Der Vorgang wird im Verlauf des Kunden unter dem Label „Storniert" nachgewiesen. Die Rücknahme ist idempotent: Sie kann höchstens einmal pro Bestellung erfolgen.

In Version 1.0 werden Teilerstattungen nicht anteilig verrechnet: Erst der Wechsel der vollständigen Zahlung in den Status _Erstattet_ löst die Rücknahme aller Punkte der Bestellung aus.

## Sicherheit und Datenintegrität

- Der Punkteabzug ist auf Datenbankebene atomar: Zwei gleichzeitige Einlösungen können dasselbe Guthaben nicht doppelt ausgeben.
- Jeder Vorgang wird in ein Append-only-Journal geschrieben, mit Bestellreferenz, Typ, vorzeichenbehafteten Punkten und ggf. Gutscheincode.
- Gutscheinerstellung und Journalbuchung laufen in derselben SQL-Transaktion: nie ein Gutschein ohne Abzug, nie ein Abzug ohne Gutschein.

## Fehlerbehebung

### Der Treueprogramm-Link erscheint nicht im Konto

Die Erweiterung fügt ihren Link über den Twig-Block `page_account_sidebar_link_orders` ein. Falls Ihr angepasstes Theme diesen Block entfernt oder umbenannt hat, fügen Sie den Link manuell in das Sidebar-Template des Kontos ein und verweisen Sie auf die Route `frontend.account.dfloyalty.page`.

### Es werden keine Punkte gutgeschrieben

1. Prüfen Sie, ob das Programm für den betreffenden Verkaufskanal aktiviert ist.
2. Prüfen Sie den konfigurierten Auslöser: Bei _Zahlung eingegangen_ muss die Transaktion den Status `paid` erreichen, bei _Bestellung abgeschlossen_ die Bestellung den Status `completed`.
3. Leeren Sie den Cache nach jeder Konfigurationsänderung: `bin/console cache:clear`.

### Deinstallation

Bei der Deinstallation bietet Shopware an, die Daten zu behalten. Wenn Sie diese Option abwählen, werden die Tabellen `df_loyalty_account` und `df_loyalty_transaction` endgültig entfernt — bereits erzeugte Gutscheine bleiben bestehen, da es sich um Standard-Promotions von Shopware handelt.
