Treuebonus nur noch mit aktivem Abo nutzbar

Der Treuebonus (10 Bestellungen → 20% Rabatt) sammelt jetzt nur noch, solange
ein aktives, bezahltes Abo besteht — ohne Abo bleibt der Fortschritt einfach
stehen, statt weiterzuzählen (account.ts: registriereAbgeschlosseneBestellung()).
Ebenso greift ein bereits freigeschalteter Rabatt im Warenkorb/Checkout nur,
solange das Abo aktiv ist (cart.ts: treuebonusDiscount()).

Im Kundenkonto wird die Treuebonus-Karte ohne aktives Abo nicht einfach
ausgeblendet, sondern zeigt bewusst einen einladenden gesperrten Zustand
("🔒 Nur mit aktivem Abo verfügbar" + Button "Zum Abo →") statt der üblichen
Fortschrittsanzeige — soll als klarer Anreiz fürs Abo wirken, nicht als totes
Feature. Dieselbe Sperre greift auch im Warenkorb: das Auswahl-Radio/Badge für
den Treuebonus-Artikel erscheint nur noch bei tatsächlich aktivem Abo, damit
nie ein Rabatt suggeriert wird, der beim Checkout dann doch nicht greift.

Alles in 4 Sprachen (DE/EN/CH/FR).

Co-Authored-By: Claude Sonnet 5 <[email protected]>
This commit is contained in:
qcigano
2026-08-03 17:23:41 +02:00
co-authored by Claude Sonnet 5
parent 64110484de
commit 902516753d
12 changed files with 154 additions and 34 deletions
+4 -1
View File
@@ -117,7 +117,10 @@ import { getAccount, treueFortschritt, setTreuebonusArtikel } from "../../script
// Treuebonus: nur relevant, wenn im Konto gerade eine Belohnung auf Einlösung wartet — dann
// darf hier EIN Artikel frei ausgewählt werden, auf den die -20% angewendet werden.
const konto = getAccount();
const treueAktiv = treueFortschritt(konto).aktiv;
// Treuebonus ist an ein aktives Abo gekoppelt (siehe account.ts) — ohne aktives Abo bleibt
// die Auswahl/Anzeige hier ausgeblendet, auch wenn intern noch eine Belohnung "wartet".
const treueFortschrittKonto = treueFortschritt(konto);
const treueAktiv = treueFortschrittKonto.aktiv && !treueFortschrittKonto.gesperrt;
const gewaehlterSlug = konto.treuebonusArtikelSlug;
const loyaltyBanner = document.getElementById("loyalty-banner");
if (loyaltyBanner) loyaltyBanner.style.display = treueAktiv ? "flex" : "none";