fix: usar region_id en vez de currency_code para precios de Medusa
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.
This commit is contained in:
@@ -258,6 +258,14 @@ function backendUrl(): string {
|
||||
return value.replace(/\/$/, "");
|
||||
}
|
||||
|
||||
function regionId(): string {
|
||||
const value = process.env.MEDUSA_REGION_ID;
|
||||
if (!value) {
|
||||
throw new Error("MEDUSA_REGION_ID no está configurado.");
|
||||
}
|
||||
return value;
|
||||
}
|
||||
|
||||
async function medusaFetch<T>(
|
||||
path: string,
|
||||
searchParams?: URLSearchParams,
|
||||
@@ -515,7 +523,10 @@ async function fetchProducts(
|
||||
): Promise<Product[]> {
|
||||
const params = new URLSearchParams({
|
||||
limit: String(limit),
|
||||
currency_code: "cop",
|
||||
// El validador de /store/products no acepta currency_code (400
|
||||
// "Unrecognized fields"); el precio calculado solo se resuelve con
|
||||
// region_id.
|
||||
region_id: regionId(),
|
||||
fields:
|
||||
"+metadata,+images,+tags,+categories,+collection,+variants.inventory_quantity,+variants.calculated_price,+variants.options",
|
||||
});
|
||||
@@ -543,7 +554,10 @@ export const medusaCatalogProvider: CatalogProvider = {
|
||||
const params = new URLSearchParams({
|
||||
handle: slug,
|
||||
limit: "1",
|
||||
currency_code: "cop",
|
||||
// El validador de /store/products no acepta currency_code (400
|
||||
// "Unrecognized fields"); el precio calculado solo se resuelve con
|
||||
// region_id.
|
||||
region_id: regionId(),
|
||||
fields:
|
||||
"+metadata,+images,+tags,+categories,+collection,+variants.inventory_quantity,+variants.calculated_price,+variants.options",
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user