Abo-System: VanVan kann jetzt wirklich alles im Admin einstellen

Bisher waren nur Preis, Rabatt-% und ein paar Verhaltensregeln im CMS
editierbar — Namen, Vorteilstexte und die Teddy-Vergabe-Intervalle steckten
fest im Code. Jetzt ist pro Abo-Stufe (Klein/Mittel/Groß) direkt im
Adminbereich einstellbar:

- Name & Vorteilstext der Stufe, in allen 4 Sprachen einzeln
- Ob die Stufe aktuell überhaupt neu buchbar ist (bestehende Abonnent:innen
  behalten ihre Vorteile trotzdem, im Kundenkonto wird die Stufe nur für neue
  Buchungen ausgegraut mit "Derzeit nicht buchbar")
- Nach wie vielen Monaten es den kleinen/großen Teddy gibt (ersetzt die vorher
  fest verankerten 6-/12-Monats-Abstände)
- Welches Produkt als "kleiner"/"großer" Teddy für die Prämien-Einlösung
  verwendet wird (Produktauswahl statt festem Slug im Code)

Alle Berechnungen (Meilensteine, Fortschrittsanzeige) laufen jetzt komplett
über diese Admin-Werte statt über Konstanten im Code. Konto-Plan-Karten in
allen 4 Sprachen zeigen die admin-gepflegten Texte live an.

Co-Authored-By: Claude Sonnet 5 <[email protected]>
This commit is contained in:
qcigano
2026-08-03 17:03:28 +02:00
co-authored by Claude Sonnet 5
parent 208d995941
commit a222d6c96e
10 changed files with 204 additions and 57 deletions
+4
View File
@@ -252,6 +252,7 @@ export const ui = {
aboAbschliessenBtn: "Abo abschließen",
aboAktivesLabel: "✓ Dein aktuelles Abo",
aboWechselnBtn: "Zu diesem Abo wechseln",
aboNichtBuchbar: "Derzeit nicht buchbar",
aboStatusTitle: "Dein Abo-Status",
aboFieldStufe: "Abo-Stufe", aboFieldPreis: "Monatlicher Preis", aboFieldRabatt: "Enthaltener Rabatt",
aboFieldStart: "Startdatum", aboFieldNaechsteZahlung: "Nächste Zahlung", aboFieldLaufzeit: "Bisherige Laufzeit",
@@ -548,6 +549,7 @@ export const ui = {
aboAbschliessenBtn: "Subscribe",
aboAktivesLabel: "✓ Your current plan",
aboWechselnBtn: "Switch to this plan",
aboNichtBuchbar: "Currently unavailable",
aboStatusTitle: "Your subscription status",
aboFieldStufe: "Plan", aboFieldPreis: "Monthly price", aboFieldRabatt: "Included discount",
aboFieldStart: "Start date", aboFieldNaechsteZahlung: "Next payment", aboFieldLaufzeit: "Duration so far",
@@ -844,6 +846,7 @@ export const ui = {
aboAbschliessenBtn: "Abo abschliesse",
aboAktivesLabel: "✓ Dis aktuells Abo",
aboWechselnBtn: "Zu dem Abo wechsle",
aboNichtBuchbar: "Momentan nöd buechbar",
aboStatusTitle: "Din Abo-Status",
aboFieldStufe: "Abo-Stufe", aboFieldPreis: "Monetliche Priis", aboFieldRabatt: "Enthaltene Rabatt",
aboFieldStart: "Startdatum", aboFieldNaechsteZahlung: "Nächschti Zahlig", aboFieldLaufzeit: "Bisherigi Laufziit",
@@ -1140,6 +1143,7 @@ export const ui = {
aboAbschliessenBtn: "S'abonner",
aboAktivesLabel: "✓ Votre abonnement actuel",
aboWechselnBtn: "Passer à cet abonnement",
aboNichtBuchbar: "Actuellement indisponible",
aboStatusTitle: "Statut de votre abonnement",
aboFieldStufe: "Formule", aboFieldPreis: "Prix mensuel", aboFieldRabatt: "Remise incluse",
aboFieldStart: "Date de début", aboFieldNaechsteZahlung: "Prochain paiement", aboFieldLaufzeit: "Durée jusqu'ici",