Abosystem mit dauerhaften Rabatten und Teddy-Prämien
Drei Mitgliedschaftsstufen (Klein 4,99€/5%, Mittel 9,99€/10%, Groß 19,99€/20%) mit automatischem Bestellrabatt und Teddy-Prämien nach Meilensteinen (12-Monats- Rhythmus bzw. 6+12 bei Groß). Preise/Rabatte und alle Admin-Regeln (Kombinier- barkeit mit anderen Rabatten, Fortsetzung bei Wiederanmeldung, Monate über Stufen zusammenzählen, kostenloser Versand bei Prämie) sind über Decap CMS einstellbar (src/content/abo-einstellungen.json). Neuer "Mein Abo"-Bereich im Kundenkonto (6. Nav-Kachel) mit Plan-Vergleich, Live-Status (Laufzeit, nächste Zahlung, Rabatt, Fortschritt bis zur nächsten Prämie), Einlösen-Buttons für freigeschaltete Teddys, Kündigen/Wechseln sowie einer übersetzten Benachrichtigungsliste. Dazu ein extra hervorgehobener "Mein Abo verwalten"-Button neben Abmelden in der Kopfkarte. Warenkorb/Checkout rechnen den Abo-Rabatt korrekt in die Summe ein und stellen eingelöste Teddys als 0€-Gratisposition dar. Alles in 4 Sprachen (DE/EN/CH/FR). Unterwegs zwei echte Bugs gefunden und behoben: addMonateISO() vermischte lokale Zeit mit toISOString() (UTC) und verlor dadurch bei jeder Monats- verlängerung reproduzierbar einen Tag; die Checkout-Positionsliste zeigte für Gratis-Prämien fälschlich den vollen Preis statt 0€. Wie beim Treuebonus gilt: Speicherung aktuell im localStorage des Geräts (Phase 1) statt einer echten geräteübergreifenden Datenbank — folgt mit der Zahlungsanbindung in Phase 2. Co-Authored-By: Claude Sonnet 5 <[email protected]>
This commit is contained in:
co-authored by
Claude Sonnet 5
parent
0cb7d3ca65
commit
208d995941
@@ -348,3 +348,57 @@ collections:
|
||||
- { label: IBAN, name: iban, widget: string, required: false, hint: "z.B. DE12 3456 7890 1234 5678 90" }
|
||||
- { label: BIC, name: bic, widget: string, required: false }
|
||||
- { label: Bank (Name), name: bank, widget: string, required: false }
|
||||
|
||||
- name: abo-einstellungen
|
||||
label: "🎁 Abo-System"
|
||||
icon: card_membership
|
||||
files:
|
||||
- name: einstellungen
|
||||
label: "Abo-Stufen, Rabatte & Regeln"
|
||||
file: src/content/abo-einstellungen.json
|
||||
description: >
|
||||
Preise, Rabatthöhen und Verhaltensregeln für das monatliche Abo-System (siehe
|
||||
scripts/account.ts + data/abo.ts). Änderungen gelten ab dem nächsten Deploy für alle
|
||||
Kund:innen. Die eigentlichen Kundendaten (wer welches Abo hat, Zahlungsstand,
|
||||
freigeschaltete Prämien) liegen NICHT hier, sondern pro Kundenkonto (Phase 1: im
|
||||
Browser der jeweiligen Person, Phase 2: in einer echten Datenbank) — hier werden nur
|
||||
die grundsätzlichen Konditionen festgelegt, zu denen JEDES Abo läuft.
|
||||
fields:
|
||||
- label: "Kleines Abo"
|
||||
name: klein
|
||||
widget: object
|
||||
fields:
|
||||
- { label: "Preis pro Monat (€)", name: preis, widget: number, value_type: float, step: 0.01 }
|
||||
- { label: "Rabatt auf jede Bestellung (%)", name: rabattProzent, widget: number, value_type: int, min: 0, max: 100 }
|
||||
- label: "Mittleres Abo"
|
||||
name: mittel
|
||||
widget: object
|
||||
fields:
|
||||
- { label: "Preis pro Monat (€)", name: preis, widget: number, value_type: float, step: 0.01 }
|
||||
- { label: "Rabatt auf jede Bestellung (%)", name: rabattProzent, widget: number, value_type: int, min: 0, max: 100 }
|
||||
- label: "Großes Abo"
|
||||
name: gross
|
||||
widget: object
|
||||
fields:
|
||||
- { label: "Preis pro Monat (€)", name: preis, widget: number, value_type: float, step: 0.01 }
|
||||
- { label: "Rabatt auf jede Bestellung (%)", name: rabattProzent, widget: number, value_type: int, min: 0, max: 100 }
|
||||
- label: "Abo-Rabatt mit anderen Rabatten kombinierbar (Gutschein/Partnercode/Treuebonus)?"
|
||||
name: kombinierbarMitAnderenRabatten
|
||||
widget: boolean
|
||||
default: false
|
||||
hint: "Aus: Bei aktivem Abo gilt NUR der Abo-Rabatt, andere Rabatte werden für diese Bestellung ignoriert. An: alle Rabatte werden zusammengezählt."
|
||||
- label: "Versand bei Teddy-Prämie ebenfalls kostenlos?"
|
||||
name: versandKostenlosBeiPraemie
|
||||
widget: boolean
|
||||
default: false
|
||||
hint: "Aus: Für den kostenlosen Teddy gelten die normalen Versandregeln des Shops."
|
||||
- label: "Bei Wiederanmeldung nach vollständigem Auslaufen: bisherige Laufzeit fortsetzen?"
|
||||
name: fortsetzungBeiWiederanmeldung
|
||||
widget: boolean
|
||||
default: false
|
||||
hint: "Aus: Der Monatszähler für die nächste Prämie beginnt bei einer Wiederanmeldung wieder bei 0. An: er läuft dort weiter, wo er beim Auslaufen stand. Bereits eingelöste/freigeschaltete Teddys gehen NIE verloren, unabhängig von dieser Einstellung."
|
||||
- label: "Monate aus verschiedenen Abo-Stufen beim Wechsel zusammenzählen?"
|
||||
name: monateUeberStufenZusammenzaehlen
|
||||
widget: boolean
|
||||
default: false
|
||||
hint: "Aus (empfohlen): Beim Wechsel in eine andere Stufe beginnt der Monatszähler für die nächste Prämie bei 0. An: die bisher gesammelten Monate werden in die neue Stufe übernommen."
|
||||
|
||||
Reference in New Issue
Block a user