From 3b0be2bbdd1dfe534d6e6b80b992018dd951aa28 Mon Sep 17 00:00:00 2001 From: Cristian Felipe Cruz Buitron Date: Sun, 23 Aug 2026 00:22:00 -0500 Subject: [PATCH] fix(commerce-backend): exponer categories en /store/products /store/products descarta en silencio la relacion +categories aunque /admin/products si la expone (bug real, no teorico, confirmado en la auditoria de Fase 5 con las 21 categorias y 9 productos [DEMO] creados en Etapa 1 -- todos caian a "Variedades" pese a tener categoria real asignada). Middleware global sobre req.allowed, patron oficial de Medusa v2 para ampliar campos de una ruta core restringida. Etapa 2, sub-fase 1 (categorias/colecciones reales) de docs/decisiones/0005-rediseno-storefront.md. --- .../commerce-backend/src/api/middlewares.ts | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 workloads/commerce-backend/src/api/middlewares.ts diff --git a/workloads/commerce-backend/src/api/middlewares.ts b/workloads/commerce-backend/src/api/middlewares.ts new file mode 100644 index 0000000..099e489 --- /dev/null +++ b/workloads/commerce-backend/src/api/middlewares.ts @@ -0,0 +1,22 @@ +import { defineMiddlewares } from "@medusajs/medusa" + +// GET /store/products descarta en silencio la relacion `categories` +// aunque `/admin/products` si la expone -- confirmado en vivo en la +// auditoria de Fase 5 (ver docs/decisiones/0004-evaluacion-stack-multi-categoria.md). +// Este es el patron oficial de Medusa v2 para ampliar los campos +// permitidos de una ruta core restringida (middleware global sobre +// req.allowed), no un query-config custom: +// https://docs.medusajs.com/learn/fundamentals/api-routes/retrieve-custom-links +export default defineMiddlewares({ + routes: [ + { + matcher: "/store/products", + middlewares: [ + (req, res, next) => { + ;(req.allowed ??= []).push("categories") + next() + }, + ], + }, + ], +})