fix: Zahlungsmethoden-Text vereinheitlichen, Retry-Button in Zahlungsfehler-Mail

- Apple Pay/Google Pay geprueft (Stripe-Doku via `stripe docs`): bei der hier
  verwendeten vollstaendig gehosteten Checkout-Seite (kein payment_method_types,
  kein ui_mode: "embedded") bereits automatisch enthalten, sobald Kartenzahlung
  aktiv ist - keine Codeaenderung noetig, keine Domain-Registrierung noetig
  (die betrifft laut Stripe nur Elements/eingebettete Checkout-Seite). Klaerenden
  Kommentar in api/checkout/route.ts und README-Abschnitt "Stripe" ergaenzt.
- versand-zahlung-Seite nannte nur 4 von 6 tatsaechlich akzeptierten
  Zahlungsmethoden (SEPA-Lastschrift und Klarna fehlten, obwohl sie laut README
  aktiv unterstuetzt werden und auf der Checkout-Seite selbst bereits korrekt
  gelistet sind) - Text in beiden Sprachen an die vollstaendige Liste angeglichen.
- Transaktions-E-Mails durchgesehen: Layout/Branding/Track-Order-Button bei
  Bestellbestaetigung und Versand-Mail bereits solide, keine Aenderung noetig.
  Die Zahlungsfehler-Mail forderte im Fliesstext zur erneuten Bestellung auf,
  hatte dafuer aber keinen anklickbaren Link - jetzt ein echter Button zum Shop.

Verifiziert: tsc --noEmit sauber, pnpm test 151/151 gruen, pnpm build erfolgreich.
This commit is contained in:
Nick Szaunig committed 2026-09-06 03:16:34 +02:00
1 parent a579ebabeb
commit 6143e5704d
6 files changed
+21 -3

No files matched your search

+8
View File
@@ -298,6 +298,14 @@ export async function POST(request: Request) {
discounts = [{ coupon: coupon.id }];
}
// Kein payment_method_types (s. README "Zahlungsmethoden"): Stripe zeigt
// dadurch dynamisch alle im Dashboard aktivierten, berechtigten
// Zahlungsmethoden. Apple Pay/Google Pay sind bei dieser vollstaendig
// gehosteten Checkout-Seite (kein ui_mode: "embedded") laut Stripe-Doku
// automatisch enthalten, sobald Kartenzahlung aktiv ist — keine
// Codeaenderung und (anders als bei Elements/eingebetteter Checkout-Seite)
// keine Domain-Registrierung noetig, da checkout.stripe.com bereits
// Stripes eigene, verifizierte Domain ist.
const session = await stripe.checkout.sessions.create({
mode: "payment",
customer_email: input.email,