Teddy-Praemien: zeigt jetzt WELCHE Teddys schon erhalten wurden, nicht nur wie viele

Statt "Bereits erhalten: 1x kleiner Teddy, 1x grosser Teddy" steht im Abo-Bereich jetzt eine
Liste mit dem tatsaechlichen Teddy-Namen, dem Einloesedatum und einem Link zum Produkt —
damit Kundinnen sehen, welchen Teddy sie schon besitzen, und keinen doppelt waehlen.

Dafuer haelt das Konto beim Einloesen fest, WELCHER Teddy vergeben wurde (neues Feld
abo.erhalteneTeddys mit Slug, Name und Datum). Bewusst als Verlauf gespeichert statt aus der
aktuellen Abo-Einstellung abgeleitet: VanVan kann die hinterlegten Teddy-Produkte jederzeit im
Adminbereich austauschen — eine nachtraeglich berechnete Liste wuerde dann einen Teddy
anzeigen, den die Kundin nie bekommen hat. Die Anzeige nimmt den aktuellen, uebersetzten
Produktnamen und faellt auf den gespeicherten Namen zurueck, falls das Produkt spaeter
umbenannt oder entfernt wird.

Nebenbei behoben: Beim Einloesen wanderte der Teddy in den Warenkorb, BEVOR geprueft wurde, ob
ueberhaupt eine Praemie offen ist. Bei einem zweiten Klick landete er dadurch erneut gratis im
Warenkorb, ohne im Konto gezaehlt zu werden. Jetzt wird zuerst geprueft.
Ausserdem sichert getAccount() nun auch die Listenfelder gegen kaputte Speicherwerte ab.

Getestet (Browser): Leerzustand, Einloesen beider Arten, Speicherung im Konto, zweiter Klick
ohne offene Praemie, Altkonto ohne Namensliste (ehrlicher Ersatztext) und entferntes Produkt
(gespeicherter Name greift). Beschriftungen in allen 4 Sprachen geprueft.

Co-Authored-By: Claude Opus 5 <[email protected]>
This commit is contained in:
qcigano
2026-08-04 10:27:14 +02:00
co-authored by Claude Opus 5
parent 578da49fd1
commit 915b71e43d
8 changed files with 359 additions and 55 deletions
+28 -4
View File
@@ -269,7 +269,13 @@ export const ui = {
aboMonateSuffix: "Monate",
aboFortschrittKleinTemplate: "🧸 Noch {n} Monat(e) bis zum nächsten kleinen Teddy",
aboFortschrittGrossTemplate: "🧸 Noch {n} Monat(e) bis zum nächsten großen Teddy",
aboPraemienErhaltenTemplate: "Bereits erhalten: {klein}× kleiner Teddy, {gross}× großer Teddy",
aboPraemienErhaltenTitel: "Diese Teddys hast du schon bekommen:",
aboPraemienKeine: "Du hast noch keinen Teddy eingelöst.",
aboPraemienAmTemplate: "erhalten am {datum}",
aboPraemienAnsehen: "ansehen",
aboPraemienUnbekannt: "Teddy aus einer früheren Einlösung",
aboTeddyArtKlein: "Kleiner Teddy",
aboTeddyArtGross: "Großer Teddy",
aboPraemienVerfuegbarTitle: "🎉 Verfügbare Prämien",
aboKeinePraemienVerfuegbar: "Aktuell keine Prämie zum Einlösen verfügbar.",
aboEinloesenBtn: "Jetzt einlösen",
@@ -580,7 +586,13 @@ export const ui = {
aboMonateSuffix: "months",
aboFortschrittKleinTemplate: "🧸 {n} more month(s) until your next small teddy",
aboFortschrittGrossTemplate: "🧸 {n} more month(s) until your next large teddy",
aboPraemienErhaltenTemplate: "Already received: {klein}× small teddy, {gross}× large teddy",
aboPraemienErhaltenTitel: "Teddies you've already received:",
aboPraemienKeine: "You haven't redeemed a teddy yet.",
aboPraemienAmTemplate: "received on {datum}",
aboPraemienAnsehen: "view",
aboPraemienUnbekannt: "Teddy from an earlier redemption",
aboTeddyArtKlein: "Small teddy",
aboTeddyArtGross: "Large teddy",
aboPraemienVerfuegbarTitle: "🎉 Available rewards",
aboKeinePraemienVerfuegbar: "No reward available to redeem right now.",
aboEinloesenBtn: "Redeem now",
@@ -891,7 +903,13 @@ export const ui = {
aboMonateSuffix: "Monet",
aboFortschrittKleinTemplate: "🧸 No {n} Monet bis zum nächschte chliine Teddy",
aboFortschrittGrossTemplate: "🧸 No {n} Monet bis zum nächschte grosse Teddy",
aboPraemienErhaltenTemplate: "Scho erhalte: {klein}× chliine Teddy, {gross}× grosse Teddy",
aboPraemienErhaltenTitel: "Die Teddys hesch scho ueberchoo:",
aboPraemienKeine: "Du hesch no kein Teddy iiglöst.",
aboPraemienAmTemplate: "erhalte am {datum}",
aboPraemienAnsehen: "aaluege",
aboPraemienUnbekannt: "Teddy us ere frueehere Iiloesig",
aboTeddyArtKlein: "Chliine Teddy",
aboTeddyArtGross: "Grosse Teddy",
aboPraemienVerfuegbarTitle: "🎉 Verfüegbari Prämie",
aboKeinePraemienVerfuegbar: "Momentan kei Prämie zum Ilöse verfüegbar.",
aboEinloesenBtn: "Jetzt ilöse",
@@ -1202,7 +1220,13 @@ export const ui = {
aboMonateSuffix: "mois",
aboFortschrittKleinTemplate: "🧸 Encore {n} mois avant votre prochain petit ours",
aboFortschrittGrossTemplate: "🧸 Encore {n} mois avant votre prochain grand ours",
aboPraemienErhaltenTemplate: "Déjà reçus : {klein}× petit ours, {gross}× grand ours",
aboPraemienErhaltenTitel: "Les ours que vous avez déjà reçus :",
aboPraemienKeine: "Vous n'avez pas encore utilisé de récompense ours.",
aboPraemienAmTemplate: "reçu le {datum}",
aboPraemienAnsehen: "voir",
aboPraemienUnbekannt: "Ours d'une récompense antérieure",
aboTeddyArtKlein: "Petit ours",
aboTeddyArtGross: "Grand ours",
aboPraemienVerfuegbarTitle: "🎉 Récompenses disponibles",
aboKeinePraemienVerfuegbar: "Aucune récompense à échanger pour le moment.",
aboEinloesenBtn: "Échanger maintenant",