fix: usar region_id en vez de currency_code para precios de Medusa #5

Merged
devops merged 1 commits from fix/medusa-region-id-pricing into main 2026-08-12 07:03:29 +00:00
Owner

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.
## 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`.
devops added 1 commit 2026-08-12 07:02:32 +00:00
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 main 2026-08-12 07:03:29 +00:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: devops/apps-registry#5