Fase 2 fix: /store/search acepta region_id para calculated_price
Mismo error encontrado en el gate de verificacion, ahora en la ruta propia en vez del job de sync: "Method calculatePrices requires currency_code in the pricing context" -- query.graph necesita region_id/currency_code en el contexto para resolver variants.calculated_price. El storefront ya manda region_id contra /store/products (medusa.ts, regionId()); esta ruta ahora acepta el mismo query param y arma el contexto de pricing con QueryContext(), igual que la ruta oficial /store/meilisearch/products del plugin.
This commit is contained in:
1 parent
fbf0aec892
commit
f8f540af6a
1 file changed
+14
-1
@@ -1,5 +1,8 @@
|
|||||||
import type { MedusaRequest, MedusaResponse } from "@medusajs/framework";
|
import type { MedusaRequest, MedusaResponse } from "@medusajs/framework";
|
||||||
import { ContainerRegistrationKeys } from "@medusajs/framework/utils";
|
import {
|
||||||
|
ContainerRegistrationKeys,
|
||||||
|
QueryContext,
|
||||||
|
} from "@medusajs/framework/utils";
|
||||||
import {
|
import {
|
||||||
MEILISEARCH_MODULE,
|
MEILISEARCH_MODULE,
|
||||||
type MeiliSearchService,
|
type MeiliSearchService,
|
||||||
@@ -76,6 +79,13 @@ export async function GET(req: MedusaRequest, res: MedusaResponse) {
|
|||||||
const q = stringParam(req.query, "q") ?? "";
|
const q = stringParam(req.query, "q") ?? "";
|
||||||
const limit = numberParam(req.query, "limit") ?? 24;
|
const limit = numberParam(req.query, "limit") ?? 24;
|
||||||
const offset = numberParam(req.query, "offset") ?? 0;
|
const offset = numberParam(req.query, "offset") ?? 0;
|
||||||
|
// calculated_price exige region_id/currency_code en el contexto de
|
||||||
|
// pricing o query.graph tira "Method calculatePrices requires
|
||||||
|
// currency_code in the pricing context" (mismo error que ya rompio el
|
||||||
|
// job de sync -- ver medusa-config.ts). El storefront ya manda
|
||||||
|
// region_id contra /store/products (medusa.ts, regionId()); esta ruta
|
||||||
|
// espera el mismo query param.
|
||||||
|
const regionId = stringParam(req.query, "region_id");
|
||||||
|
|
||||||
const filterParts: string[] = [];
|
const filterParts: string[] = [];
|
||||||
for (const facet of ["category", "collection", "brand", "ageRange"]) {
|
for (const facet of ["category", "collection", "brand", "ageRange"]) {
|
||||||
@@ -143,6 +153,9 @@ export async function GET(req: MedusaRequest, res: MedusaResponse) {
|
|||||||
entity: "product",
|
entity: "product",
|
||||||
fields: PRODUCT_FIELDS,
|
fields: PRODUCT_FIELDS,
|
||||||
filters: { id: productIds },
|
filters: { id: productIds },
|
||||||
|
context: regionId
|
||||||
|
? { variants: { calculated_price: QueryContext({ region_id: regionId }) } }
|
||||||
|
: {},
|
||||||
});
|
});
|
||||||
|
|
||||||
// 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