Merge fix/adr0006-etapa2-fase2-currency-code-search into main
This commit is contained in:
commit
41c7ad25e7
1 file changed
+26
-3
@@ -149,13 +149,36 @@ export async function GET(req: MedusaRequest, res: MedusaResponse) {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// calculatePrices exige currency_code en el contexto -- no alcanza con
|
||||||
|
// region_id solo (a diferencia de /store/products nativo, que lo
|
||||||
|
// resuelve el middleware setPricingContext; esta ruta no pasa por esa
|
||||||
|
// cadena). Resolvemos la moneda real de la region en vez de asumir COP
|
||||||
|
// fijo, por si el catalogo suma otra region/moneda mas adelante.
|
||||||
|
let currencyCode: string | undefined;
|
||||||
|
if (regionId) {
|
||||||
|
const { data: regions = [] } = await query.graph({
|
||||||
|
entity: "region",
|
||||||
|
fields: ["id", "currency_code"],
|
||||||
|
filters: { id: regionId },
|
||||||
|
});
|
||||||
|
currencyCode = regions[0]?.currency_code;
|
||||||
|
}
|
||||||
|
|
||||||
const { data: products = [] } = await query.graph({
|
const { data: products = [] } = await query.graph({
|
||||||
entity: "product",
|
entity: "product",
|
||||||
fields: PRODUCT_FIELDS,
|
fields: PRODUCT_FIELDS,
|
||||||
filters: { id: productIds },
|
filters: { id: productIds },
|
||||||
context: regionId
|
context:
|
||||||
? { variants: { calculated_price: QueryContext({ region_id: regionId }) } }
|
regionId && currencyCode
|
||||||
: {},
|
? {
|
||||||
|
variants: {
|
||||||
|
calculated_price: QueryContext({
|
||||||
|
region_id: regionId,
|
||||||
|
currency_code: currencyCode,
|
||||||
|
}),
|
||||||
|
},
|
||||||
|
}
|
||||||
|
: {},
|
||||||
});
|
});
|
||||||
|
|
||||||
// Preserva el ranking de relevancia de Meilisearch -- query.graph no
|
// Preserva el ranking de relevancia de Meilisearch -- query.graph no
|
||||||
|
|||||||
Reference in new issue
Block a user