Skip to content

Geburtstags-Gutschein

Das Plugin kann Kunden automatisch am Geburtstag einen JTL-Gutschein zuschicken. Der Versand wird über den Shopware Flow Builder gesteuert — Sie entscheiden, welche Aktion ausgeführt wird und können beliebige weitere Flow-Schritte ergänzen.

Funktionsweise

Jeden Tag sucht ein geplanter Hintergrund-Task (Scheduled Task) alle Kunden, deren Geburtsdatum auf das heutige Datum fällt und die in diesem Kalenderjahr noch keinen Geburtstagsgutschein erhalten haben. Für jeden gefundenen Kunden wird das Flow-Event i7_jtl_vouchers.customer_birthday ausgelöst.

Im Flow Builder hängen Sie an dieses Event die Aktion „Geschenk-Gutschein versenden". Die Aktion erstellt einen neuen JTL-Gutschein mit dem konfigurierten Betrag und versendet ihn per E-Mail an den Kunden.

Eine Deduplizierungs-Tabelle (i7_birthday_voucher_log) stellt sicher, dass pro Kunde und Kalenderjahr nur ein Gutschein versendet wird — auch bei mehrfachem Task-Lauf am selben Tag.

Voraussetzungen

  • Geburtsdatum muss im Kundenkonto hinterlegt sein (Shopware-Standardfeld). Das Feld ist im Standard-Registrierungsformular meist deaktiviert — aktivieren Sie es unter Einstellungen > Shop > Storefront.
  • Message Queue Worker muss laufen, damit E-Mails asynchron versendet werden.
  • Flow Builder ist in Shopware 6.4+ standardmäßig verfügbar.
  • JTL API-Verbindung muss eingerichtet sein (siehe Verbindung herstellen).

Einrichtung

1. Betrag konfigurieren

Öffnen Sie Erweiterungen > Meine Erweiterungen > JTL Gutscheine > Konfiguration und scrollen Sie zur Karte „Geburtstags-Gutschein".

FeldStandardBeschreibung
Standard-Betrag (EUR)10Gutscheinwert in EUR, wenn kein abweichender Betrag im Flow konfiguriert wird

2. Flow anlegen

  1. Navigieren Sie zu Marketing > Flow Builder > Flow anlegen
  2. Geben Sie dem Flow einen Namen (Pflichtfeld)
  3. Wählen Sie als Trigger: JTL Gutscheine > Kundengeburtstag (i7_jtl_vouchers.customer_birthday)
  4. Fügen Sie die Aktion „Geschenk-Gutschein versenden" hinzu
  5. Optional: Konfigurieren Sie im Action-Dialog einen abweichenden Gutscheinbetrag (leer = System-Standard)
  6. Speichern und aktivieren Sie den Flow

3. Flow testen

Da der Task einmal täglich läuft, können Sie einen Testkunden mit dem heutigen Datum als Geburtstag anlegen und den Scheduled Task manuell auslösen:

bash
# Prüfen ob Testkunde gefunden wird
bin/console dbal:run-sql "SELECT email, birthday FROM customer WHERE MONTH(birthday) = MONTH(CURDATE()) AND DAY(birthday) = DAY(CURDATE()) AND active = 1"

# Task sofort auslösen
bin/console dbal:run-sql "UPDATE scheduled_task SET next_execution_time = '2000-01-01' WHERE name = 'i7_jtl_vouchers.birthday_voucher'"
bin/console messenger:consume scheduled_task --limit=1 -vv

# E-Mail-Versand verarbeiten
bin/console messenger:consume async --limit=5 -vv

TIP

Prüfen Sie im Anschluss die Plugin-Log-Datei unter var/log/I7JtlVouchers-YYYY-MM-DD.log auf Fehler.

Häufige Probleme

Kunden erhalten keinen Gutschein

  • Ist das Geburtsdatum im Kundenkonto gesetzt?
  • Läuft der Message Queue Worker? (bin/console messenger:consume async)
  • Ist der Flow aktiv und der Trigger korrekt ausgewählt?
  • Prüfen Sie das Plugin-Log auf API-Fehler.

Kunden erhalten Gutschein mehrfach

Das sollte durch die Deduplizierungstabelle verhindert werden. Falls es doch passiert, prüfen Sie, ob die Migration Migration1775220000AddBirthdayVoucherLog ausgeführt wurde:

bash
bin/console database:migrate --all I7JtlVouchers

JTL Gutscheine Plugin für Shopware 6