From 7a09202c2712feba072c6daea8e54629f98ac4d3 Mon Sep 17 00:00:00 2001 From: Cristian Felipe Cruz Buitron Date: Wed, 12 Aug 2026 22:56:03 -0500 Subject: [PATCH] fix: forzar ISR en /product/[slug] para que no quede atascado en datos mock del build MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit generateStaticParams usa el catálogo mock en build time porque HEADLESS_PROVIDER y MEDUSA_* no existen como build args del Dockerfile. Sin un revalidate explícito, esa ruta queda estática para siempre con price:null. El listado no sufre esto porque su ruta es dinámica por searchParams. --- workloads/ecommerce/app/product/[slug]/page.tsx | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/workloads/ecommerce/app/product/[slug]/page.tsx b/workloads/ecommerce/app/product/[slug]/page.tsx index 00699da..facb724 100644 --- a/workloads/ecommerce/app/product/[slug]/page.tsx +++ b/workloads/ecommerce/app/product/[slug]/page.tsx @@ -9,6 +9,13 @@ import { getProductBySlug, getProducts } from "@/lib/headless/client"; interface ProductPageProps { params: Promise<{ slug: string }> } +// Sin esto, la página queda estática para siempre con los datos del build +// (que usa el catálogo mock porque HEADLESS_PROVIDER/MEDUSA_* no existen en +// el contexto del Docker build). El listado sí se refresca porque su ruta +// es dinámica por searchParams; esta ruta necesita el revalidate explícito +// para que el runtime (que sí tiene las env vars de Medusa) la regenere. +export const revalidate = 60; + export async function generateStaticParams() { const products = await getProducts(); return products.map((product) => ({ slug: product.slug })); -- 2.54.0