store: la ruta pasa a ser /store-<reino> y /store da 404

Como el original (/store-bennu). El slug sale de acore_auth.realmlist, así que
no puede ser una carpeta fija: lo resuelve la ruta dinámica `[realm]`, que ya
servía /<slug>-realm y /<slug>-players con este mismo patrón. Solo hubo que
añadirle el tipo `store`; el contenido de la página se mueve a
components/StorePage.tsx.

/store da 404 sin código extra: al no existir ya la carpeta estática `store`,
entra por `[realm]`, no resuelve y cae en el notFound() que ya estaba.

Enlaces actualizados: el de /my-account (AccountTools, que es cliente y recibe
el href ya calculado) y el cancelUrl de la pasarela, que devolvía a /store.

Verificado: /es/store-trinity y /en/store-trinity dan 200 y la tienda carga el
catálogo; /es/store y /en/store dan 404; un slug ajeno (/es/store-bennu) también
404; /es/trinity-realm y /es/trinity-players siguen bien; y el enlace de
/my-account apunta a /es/store-trinity.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-07-15 11:48:33 +00:00
parent d3461976cf
commit e10f73b12a
5 changed files with 30 additions and 24 deletions
+2 -1
View File
@@ -1,6 +1,7 @@
import { randomUUID } from 'crypto'
import { getSession } from '@/lib/session'
import { getGameCharacters } from '@/lib/characters'
import { getRealmName, realmSlug } from '@/lib/realm'
import { priceStoreCart, purchaseStoreCart, storeEuroTotal, createStoreOrder, storeConcept, type StoreCartLine } from '@/lib/store'
import { CARD_MIN_EUR } from '@/lib/store-pricing'
import { createCheckoutSession } from '@/lib/stripe'
@@ -95,7 +96,7 @@ export async function POST(request: Request) {
characterName: character,
productName,
successUrl: `${site}/service-success?service=store`,
cancelUrl: `${site}/${safeLocale(body.locale)}/store`,
cancelUrl: `${site}/${safeLocale(body.locale)}/store-${realmSlug(await getRealmName())}`,
metadata,
})
if (!r.success || !r.url) return Response.json({ success: false, error: 'stripeError' })