Add-On: Mehrere Gutscheine auf einen Warenkorb einlösen (MultipleVoucherRedemption) Ab Version 8.27.0

Beschreibung

Mit dem Modul können nun mehrere Gutscheine gleichzeitig auf einen Warenkorb angewendet werden. Die Funktion wird pro Shop über eine neue Einstellung in der Administration gesteuert.

Konfiguration (Administration)

Unter Bestelloptionen eines Shops findet sich die neue Einstellung Gutschein mehrfach einlösbar:

Option

Verhalten

Einmal einlösbar (Standard)

Bisheriges Verhalten. Es kann nur ein Gutschein pro Warenkorb eingelöst werden.

Mehrfach einlösbar

Der Benutzer kann mehrere Gutscheine aus verschiedenen Gutscheinsets gleichzeitig einlösen.

Der Standardwert ist "Einmal einlösbar" — bestehende Shops sind nicht betroffen.

Ablauf im Frontend

Gutschein einlösen

  1. Der Benutzer gibt einen Gutscheincode ein und klickt auf "Einlösen"

  2. Der Code wird validiert (existiert, gehört zum Shop, ist noch gültig)

  3. Bei aktivierter Mehrfach-Einlösung bleibt das Eingabefeld sichtbar, sodass weitere Codes eingegeben werden können

  4. Jeder eingelöste Gutschein erscheint als eigene Position im Warenkorb

Gutschein entfernen

Jeder eingelöste Gutschein wird mit einem eigenen "Löschen"-Button angezeigt. Einzelne Gutscheine können unabhängig voneinander entfernt werden.

Preisberechnung

Mehrere Gutscheine werden sequenziell auf den Warenkorb angewendet:

  • Betragsgutscheine (MONEY): Reduzieren den verbleibenden Gesamtbetrag. Jeder nachfolgende Gutschein sieht den bereits reduzierten Betrag.

  • Prozentgutscheine (PERCENT): Werden auf den verbleibenden Betrag nach vorherigen Gutscheinen berechnet. Beispiel: 10 % + 20 % ergibt 10 % auf den Vollpreis, dann 20 % auf den reduzierten Preis.

  • Guthabengutscheine (CREDIT): Das Restguthaben wird pro Gutschein separat verwaltet und nach Bestellabschluss aktualisiert.

Der Gesamtrabatt kann den Warenkorbwert nicht überschreiten — jeder Gutschein wird auf den verbleibenden Restbetrag begrenzt.

Duplikatschutz

Derselbe Gutscheincode kann nicht doppelt eingelöst werden. Bei erneutem Eingeben wird der Code stillschweigend ignoriert.

Bestellansicht (Administration)

In der Bestelldetailansicht (order.show.php) werden bei mehreren Gutscheinen alle einzeln mit Code und Betrag aufgeführt. Für ältere Bestellungen ohne Einträge in order_vouchers greift ein Fallback auf die bisherige Anzeige (VoucherOrderInfo).