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.