Compare commits
3
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
4afc63bdc6 | ||
|
|
41c7ad25e7 | ||
|
|
f2377be69c |
No files matched your search
@@ -295,3 +295,36 @@ desviaciones reales respecto al diseño de §4/§5 de este ADR:
|
||||
Ninguna de las tres cambia la decisión ni sus consecuencias — cambian
|
||||
el cómo, no el qué. Plan de implementación completo, fase por fase,
|
||||
en la sesión que aprobó esta Etapa 2 (2026-08-26).
|
||||
|
||||
## Nota de implementación 2 (2026-08-26, gate en vivo de Fase 2)
|
||||
|
||||
Dos bugs reales encontrados y corregidos durante el gate de
|
||||
verificación en vivo (crear/editar productos, categoría y colección
|
||||
reales y confirmar que llegan a Meilisearch), ambos con la misma causa
|
||||
raíz: `variants.calculated_price` de Medusa exige `region_id` **y**
|
||||
`currency_code` resueltos en el contexto de pricing de la consulta, y
|
||||
ninguno de los dos caminos nuevos de este ADR pasa por el middleware
|
||||
nativo (`setPricingContext`) que se lo da gratis a `/store/products`:
|
||||
|
||||
1. El job de sync inicial del plugin (`sync-products.js`, corre una
|
||||
vez al boot) hacía fallar el indexado de **todos** los productos
|
||||
con `Method calculatePrices requires currency_code in the pricing
|
||||
context` — las categorías sí indexaban bien (no llevan precio).
|
||||
Arreglado indexando el precio crudo (`variants.prices`, sin
|
||||
resolver promociones/reglas) en vez de `calculated_price` — alcanza
|
||||
para el filtro/orden por precio de la búsqueda.
|
||||
2. La ruta propia `/store/search` pegaba el mismo error al re-hidratar
|
||||
productos vía `query.graph`. Pasar `region_id` solo no alcanzó;
|
||||
hubo que resolver el `currency_code` real de la región con una
|
||||
consulta adicional antes de armar el `QueryContext`.
|
||||
|
||||
Confirmado en vivo, con el fix aplicado: búsqueda por texto, facetas
|
||||
sobre las 27 unidades del catálogo real, y precio calculado correcto
|
||||
(`calculated_amount`/`currency_code`) en la respuesta de
|
||||
`/store/search`. También confirmado en vivo que los tres eventos que
|
||||
el ADR original marcaba como "verificar, no asumir" — `product.*`,
|
||||
`product-category.*` y **`product-collection.updated`** (el que tenía
|
||||
un reporte público de no disparar siempre) — sí sincronizan de forma
|
||||
confiable en esta combinación exacta (Medusa 2.18.0 + plugin 1.4.1),
|
||||
propagando un rename de categoría/colección al documento indexado en
|
||||
menos de 10 segundos.
|
||||
@@ -65,7 +65,7 @@ spec:
|
||||
memory: 64Mi
|
||||
|
||||
- name: migrations
|
||||
image: gitea.cruzcloud.net/devops/ecommerce-medusa:v1.0.166
|
||||
image: gitea.cruzcloud.net/devops/ecommerce-medusa:v1.0.167
|
||||
imagePullPolicy: IfNotPresent
|
||||
command:
|
||||
- node
|
||||
@@ -86,7 +86,7 @@ spec:
|
||||
|
||||
containers:
|
||||
- name: app
|
||||
image: gitea.cruzcloud.net/devops/ecommerce-medusa:v1.0.166
|
||||
image: gitea.cruzcloud.net/devops/ecommerce-medusa:v1.0.167
|
||||
imagePullPolicy: IfNotPresent
|
||||
envFrom:
|
||||
- configMapRef:
|
||||
|
||||
Reference in new issue
Block a user