/store/products rechazaba currency_code como query param plano con 400 Unrecognized fields (validador StoreGetProductsParams de Medusa 2.18 es .strict() y solo acepta region_id/country_code/province/cart_id). Esto rompía toda la navegación en /catalog?category=... desde que el frontend empezó a consumir Medusa real.
country_code tampoco alcanza para calcular precio: probado en vivo contra el backend, devuelve Missing required pricing context to calculate prices - region_id.
No existía ninguna región configurada en el backend, ni COP habilitado como moneda de la Store (solo EUR). Se crearon ambos vía Admin API: región reg_01KZT86WPAH7A7ZZRDSX3350V2 ("Colombia", COP, país co) y COP como moneda default de la Store.
Se agrega MEDUSA_REGION_ID como env var en frontend.yaml y se reemplaza currency_code: "cop" por region_id: regionId() en ambos métodos de lib/headless/providers/medusa.ts (fetchProducts y getProductBySlug).
Nota sobre CI
Este cambio sí toca código fuente (lib/**), así que dispara un build nuevo en build.yaml — la propia CI bumpeará el tag de imagen en frontend.yaml automáticamente tras el merge, no se tocó a mano.
Test plan
Confirmar que el build de CI corre y publica una nueva imagen sin errores.
Tras el sync de Argo CD, verificar que https://shop.cruzcloud.net/catalog?category=Peluches (y otras categorías) ya no devuelve error 500.
Confirmar que los productos reales de Medusa muestran precio en COP en el storefront.
Verificar kubectl logs del pod frontend sin errores de Medusa respondió HTTP 400/...region_id.
## Resumen
- `/store/products` rechazaba `currency_code` como query param plano con `400 Unrecognized fields` (validador `StoreGetProductsParams` de Medusa 2.18 es `.strict()` y solo acepta `region_id`/`country_code`/`province`/`cart_id`). Esto rompía toda la navegación en `/catalog?category=...` desde que el frontend empezó a consumir Medusa real.
- `country_code` tampoco alcanza para calcular precio: probado en vivo contra el backend, devuelve `Missing required pricing context to calculate prices - region_id`.
- No existía ninguna región configurada en el backend, ni COP habilitado como moneda de la Store (solo EUR). Se crearon ambos vía Admin API: región `reg_01KZT86WPAH7A7ZZRDSX3350V2` ("Colombia", COP, país `co`) y COP como moneda default de la Store.
- Se agrega `MEDUSA_REGION_ID` como env var en `frontend.yaml` y se reemplaza `currency_code: "cop"` por `region_id: regionId()` en ambos métodos de `lib/headless/providers/medusa.ts` (`fetchProducts` y `getProductBySlug`).
## Nota sobre CI
Este cambio sí toca código fuente (`lib/**`), así que dispara un build nuevo en `build.yaml` — la propia CI bumpeará el tag de imagen en `frontend.yaml` automáticamente tras el merge, no se tocó a mano.
## Test plan
- [ ] Confirmar que el build de CI corre y publica una nueva imagen sin errores.
- [ ] Tras el sync de Argo CD, verificar que `https://shop.cruzcloud.net/catalog?category=Peluches` (y otras categorías) ya no devuelve error 500.
- [ ] Confirmar que los productos reales de Medusa muestran precio en COP en el storefront.
- [ ] Verificar `kubectl logs` del pod frontend sin errores de `Medusa respondió HTTP 400/...region_id`.
El validador de /store/products (StoreGetProductsParams, .strict()) solo
acepta region_id/country_code/province/cart_id para resolver contexto de
precio -- currency_code como campo plano no existe y rompía con 400
"Unrecognized fields: 'currency_code'" en cada carga de /catalog.
country_code tampoco alcanza: probado en vivo, devuelve "Missing required
pricing context to calculate prices - region_id". Se necesita region_id
explícito.
Se agrega MEDUSA_REGION_ID (env var) apuntando a la región "Colombia"
(COP) creada vía Admin API, ya que no existía ninguna región configurada
en el backend.
devops
merged commit 04dc6bd8bc into main2026-08-12 07:03:29 +00:00
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Resumen
/store/productsrechazabacurrency_codecomo query param plano con400 Unrecognized fields(validadorStoreGetProductsParamsde Medusa 2.18 es.strict()y solo aceptaregion_id/country_code/province/cart_id). Esto rompía toda la navegación en/catalog?category=...desde que el frontend empezó a consumir Medusa real.country_codetampoco alcanza para calcular precio: probado en vivo contra el backend, devuelveMissing required pricing context to calculate prices - region_id.reg_01KZT86WPAH7A7ZZRDSX3350V2("Colombia", COP, paísco) y COP como moneda default de la Store.MEDUSA_REGION_IDcomo env var enfrontend.yamly se reemplazacurrency_code: "cop"porregion_id: regionId()en ambos métodos delib/headless/providers/medusa.ts(fetchProductsygetProductBySlug).Nota sobre CI
Este cambio sí toca código fuente (
lib/**), así que dispara un build nuevo enbuild.yaml— la propia CI bumpeará el tag de imagen enfrontend.yamlautomáticamente tras el merge, no se tocó a mano.Test plan
https://shop.cruzcloud.net/catalog?category=Peluches(y otras categorías) ya no devuelve error 500.kubectl logsdel pod frontend sin errores deMedusa respondió HTTP 400/...region_id.