medusa-product-helper 0.0.18 → 0.0.19
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.medusa/server/src/api/store/product-helper/products/route.js +105 -11
- package/.medusa/server/src/api/store/product-helper/products/validators.js +10 -1
- package/.medusa/server/src/providers/filter-providers/metadata-provider.js +9 -5
- package/.medusa/server/src/services/dynamic-filter-service.js +471 -96
- package/.medusa/server/src/services/product-filter-service.js +61 -3
- package/package.json +1 -1
|
@@ -35,6 +35,90 @@ const GET = async (req, res) => {
|
|
|
35
35
|
// Validate query parameters using zod schema
|
|
36
36
|
// This ensures type safety and catches invalid inputs early
|
|
37
37
|
const validatedQuery = validators_1.StoreProductHelperFilterQuerySchema.parse(normalizedQuery);
|
|
38
|
+
// Extract region_id (required field)
|
|
39
|
+
const regionId = validatedQuery.region_id;
|
|
40
|
+
if (!regionId) {
|
|
41
|
+
res.status(400).json({
|
|
42
|
+
message: "region_id is required",
|
|
43
|
+
});
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
// Fetch region to get currency_code
|
|
47
|
+
const query = req.scope.resolve(utils_1.ContainerRegistrationKeys.QUERY);
|
|
48
|
+
const regionResult = await query.graph({
|
|
49
|
+
entity: "region",
|
|
50
|
+
fields: ["id", "currency_code"],
|
|
51
|
+
filters: { id: regionId },
|
|
52
|
+
});
|
|
53
|
+
console.log(`[ProductHelperRoute] Region fetch result:`, {
|
|
54
|
+
hasData: !!regionResult.data,
|
|
55
|
+
dataLength: Array.isArray(regionResult.data) ? regionResult.data.length : 0,
|
|
56
|
+
regionId
|
|
57
|
+
});
|
|
58
|
+
const region = Array.isArray(regionResult.data) ? regionResult.data[0] : null;
|
|
59
|
+
if (!region) {
|
|
60
|
+
console.error(`[ProductHelperRoute] Region not found: ${regionId}`);
|
|
61
|
+
res.status(404).json({
|
|
62
|
+
message: `Region with id ${regionId} not found`,
|
|
63
|
+
});
|
|
64
|
+
return;
|
|
65
|
+
}
|
|
66
|
+
// Extract currency_code and validate it
|
|
67
|
+
const currencyCode = region.currency_code;
|
|
68
|
+
console.log(`[ProductHelperRoute] Region currency_code:`, {
|
|
69
|
+
currencyCode,
|
|
70
|
+
type: typeof currencyCode,
|
|
71
|
+
trimmed: typeof currencyCode === "string" ? currencyCode.trim() : null
|
|
72
|
+
});
|
|
73
|
+
if (!currencyCode || typeof currencyCode !== "string" || currencyCode.trim().length === 0) {
|
|
74
|
+
console.error(`[ProductHelperRoute] Invalid currency_code for region ${regionId}:`, currencyCode);
|
|
75
|
+
res.status(400).json({
|
|
76
|
+
message: `Region with id ${regionId} has no valid currency_code`,
|
|
77
|
+
});
|
|
78
|
+
return;
|
|
79
|
+
}
|
|
80
|
+
const trimmedCurrencyCode = currencyCode.trim();
|
|
81
|
+
// Log req.pricingContext if it exists
|
|
82
|
+
if (req.pricingContext) {
|
|
83
|
+
console.log(`[ProductHelperRoute] req.pricingContext exists:`, {
|
|
84
|
+
hasCurrencyCode: !!req.pricingContext.currency_code,
|
|
85
|
+
currencyCode: req.pricingContext.currency_code,
|
|
86
|
+
keys: Object.keys(req.pricingContext)
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
else {
|
|
90
|
+
console.log(`[ProductHelperRoute] req.pricingContext does not exist`);
|
|
91
|
+
}
|
|
92
|
+
// Build pricing context with region_id and currency_code
|
|
93
|
+
// Don't trust req.pricingContext - always build fresh with currency_code from region
|
|
94
|
+
// Only preserve other properties from req.pricingContext if currency_code is valid
|
|
95
|
+
const pricingContext = {
|
|
96
|
+
region_id: regionId,
|
|
97
|
+
currency_code: trimmedCurrencyCode, // Always set currency_code from region first
|
|
98
|
+
};
|
|
99
|
+
// Only spread req.pricingContext if it has a valid currency_code
|
|
100
|
+
// Otherwise, we might inherit an invalid or missing currency_code
|
|
101
|
+
if (req.pricingContext) {
|
|
102
|
+
const existingCurrencyCode = req.pricingContext.currency_code;
|
|
103
|
+
if (typeof existingCurrencyCode === "string" && existingCurrencyCode.trim().length > 0) {
|
|
104
|
+
// Preserve other properties from req.pricingContext, but use our currency_code
|
|
105
|
+
const existingContext = req.pricingContext;
|
|
106
|
+
Object.keys(existingContext).forEach(key => {
|
|
107
|
+
if (key !== "currency_code" && key !== "region_id") {
|
|
108
|
+
pricingContext[key] = existingContext[key];
|
|
109
|
+
}
|
|
110
|
+
});
|
|
111
|
+
console.log(`[ProductHelperRoute] Preserved properties from req.pricingContext (excluding currency_code and region_id)`);
|
|
112
|
+
}
|
|
113
|
+
else {
|
|
114
|
+
console.warn(`[ProductHelperRoute] req.pricingContext exists but has invalid currency_code, ignoring it`);
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
console.log(`[ProductHelperRoute] Final pricing context:`, {
|
|
118
|
+
region_id: pricingContext.region_id,
|
|
119
|
+
currency_code: pricingContext.currency_code,
|
|
120
|
+
keys: Object.keys(pricingContext)
|
|
121
|
+
});
|
|
38
122
|
// Resolve plugin options
|
|
39
123
|
const configModule = req.scope.resolve(utils_1.ContainerRegistrationKeys.CONFIG_MODULE);
|
|
40
124
|
const options = (0, product_helper_options_1.resolveProductHelperOptions)(configModule);
|
|
@@ -44,10 +128,11 @@ const GET = async (req, res) => {
|
|
|
44
128
|
const { products, count, metadata } = await filterService.applyFilterPlanWithMedusaContext({
|
|
45
129
|
queryConfig: req.queryConfig,
|
|
46
130
|
filterableFields: req.filterableFields || {},
|
|
47
|
-
pricingContext
|
|
48
|
-
query: validatedQuery,
|
|
131
|
+
pricingContext,
|
|
132
|
+
query: { ...validatedQuery, currency_code: currencyCode },
|
|
49
133
|
}, options);
|
|
50
134
|
// Calculate min_price and max_price if price_range=true
|
|
135
|
+
// Only consider prices in the selected region's currency
|
|
51
136
|
let minPrice = null;
|
|
52
137
|
let maxPrice = null;
|
|
53
138
|
if (validatedQuery.price_range === true) {
|
|
@@ -56,16 +141,25 @@ const GET = async (req, res) => {
|
|
|
56
141
|
continue;
|
|
57
142
|
}
|
|
58
143
|
for (const variant of product.variants) {
|
|
59
|
-
if
|
|
60
|
-
|
|
144
|
+
// Prioritize calculated_price if available (includes price list overrides)
|
|
145
|
+
let priceToUse;
|
|
146
|
+
if (variant.calculated_price?.calculated_amount !== undefined &&
|
|
147
|
+
variant.calculated_price?.currency_code === currencyCode) {
|
|
148
|
+
priceToUse = variant.calculated_price.calculated_amount;
|
|
149
|
+
}
|
|
150
|
+
else if (variant.prices && Array.isArray(variant.prices)) {
|
|
151
|
+
// Find price matching the selected currency
|
|
152
|
+
const matchingPrice = variant.prices.find((p) => p.currency_code === currencyCode);
|
|
153
|
+
if (matchingPrice?.amount !== undefined) {
|
|
154
|
+
priceToUse = matchingPrice.amount;
|
|
155
|
+
}
|
|
61
156
|
}
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
minPrice = price;
|
|
157
|
+
if (priceToUse !== undefined && typeof priceToUse === "number") {
|
|
158
|
+
if (minPrice === null || priceToUse < minPrice) {
|
|
159
|
+
minPrice = priceToUse;
|
|
66
160
|
}
|
|
67
|
-
if (maxPrice === null ||
|
|
68
|
-
maxPrice =
|
|
161
|
+
if (maxPrice === null || priceToUse > maxPrice) {
|
|
162
|
+
maxPrice = priceToUse;
|
|
69
163
|
}
|
|
70
164
|
}
|
|
71
165
|
}
|
|
@@ -109,4 +203,4 @@ const GET = async (req, res) => {
|
|
|
109
203
|
}
|
|
110
204
|
};
|
|
111
205
|
exports.GET = GET;
|
|
112
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
206
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3N0b3JlL3Byb2R1Y3QtaGVscGVyL3Byb2R1Y3RzL3JvdXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUVBLHFEQUFxRTtBQUVyRSxzRkFBdUY7QUFDdkYsd0ZBQWtGO0FBQ2xGLGlFQUFxRTtBQUNyRSw2Q0FFcUI7QUFnQnJCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBbUJHO0FBQ0ksTUFBTSxHQUFHLEdBQUcsS0FBSyxFQUN0QixHQUF1QixFQUN2QixHQUF1RCxFQUN2RCxFQUFFO0lBQ0YsSUFBSSxDQUFDO1FBQ0gseUVBQXlFO1FBQ3pFLDhEQUE4RDtRQUM5RCxNQUFNLFFBQVEsR0FBRyxHQUFHLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQTtRQUNoQyxNQUFNLGVBQWUsR0FBRyxJQUFBLG1DQUFvQixFQUMxQyxRQUFtQyxDQUNwQyxDQUFBO1FBRUQsNkNBQTZDO1FBQzdDLDREQUE0RDtRQUM1RCxNQUFNLGNBQWMsR0FBRyxnREFBbUMsQ0FBQyxLQUFLLENBQzlELGVBQWUsQ0FDaEIsQ0FBQTtRQUVELHFDQUFxQztRQUNyQyxNQUFNLFFBQVEsR0FBRyxjQUFjLENBQUMsU0FBUyxDQUFBO1FBQ3pDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNkLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDO2dCQUNuQixPQUFPLEVBQUUsdUJBQXVCO2FBQ2dCLENBQUMsQ0FBQTtZQUNuRCxPQUFNO1FBQ1IsQ0FBQztRQUVELG9DQUFvQztRQUNwQyxNQUFNLEtBQUssR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBUSxpQ0FBeUIsQ0FBQyxLQUFLLENBQUMsQ0FBQTtRQUN2RSxNQUFNLFlBQVksR0FBRyxNQUFNLEtBQUssQ0FBQyxLQUFLLENBQUM7WUFDckMsTUFBTSxFQUFFLFFBQVE7WUFDaEIs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
|
|
@@ -125,6 +125,15 @@ exports.StoreProductHelperFilterQuerySchema = zod_1.z
|
|
|
125
125
|
category_id: stringArray,
|
|
126
126
|
tags: stringArray,
|
|
127
127
|
sales_channel_id: stringArray,
|
|
128
|
+
region_id: zod_1.z
|
|
129
|
+
.union([zod_1.z.string(), zod_1.z.array(zod_1.z.string())])
|
|
130
|
+
.transform((value) => {
|
|
131
|
+
if (Array.isArray(value)) {
|
|
132
|
+
return value.length > 0 ? value[0] : undefined;
|
|
133
|
+
}
|
|
134
|
+
return typeof value === "string" && value.trim().length > 0 ? value.trim() : undefined;
|
|
135
|
+
})
|
|
136
|
+
.pipe(zod_1.z.string().min(1, { message: "region_id is required" })),
|
|
128
137
|
limit: positiveInt,
|
|
129
138
|
offset: nonNegativeInt,
|
|
130
139
|
order: zod_1.z.string().optional(),
|
|
@@ -170,4 +179,4 @@ exports.StoreBestSellingQuerySchema = zod_1.z.object({
|
|
|
170
179
|
variant_id: stringArray,
|
|
171
180
|
product_id: stringArray,
|
|
172
181
|
});
|
|
173
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
182
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcGkvc3RvcmUvcHJvZHVjdC1oZWxwZXIvcHJvZHVjdHMvdmFsaWRhdG9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw2QkFBdUI7QUFFdkIsTUFBTSxjQUFjLEdBQUcsT0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFBO0FBQ3hELE1BQU0saUJBQWlCLEdBQUcsT0FBQztLQUN4QixLQUFLLENBQUMsQ0FBQyxPQUFDLENBQUMsU0FBUyxFQUFFLEVBQUUsT0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLGNBQWMsQ0FBQyxDQUFDO0tBQ2hELFNBQVMsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO0lBQ25CLElBQUksS0FBSyxLQUFLLFNBQVMsSUFBSSxLQUFLLEtBQUssSUFBSSxJQUFJLEtBQUssS0FBSyxFQUFFLEVBQUUsQ0FBQztRQUMxRCxPQUFPLFNBQVMsQ0FBQTtJQUNsQixDQUFDO0lBRUQsTUFBTSxPQUFPLEdBQ1gsT0FBTyxLQUFLLEtBQUssUUFBUTtRQUN2QixDQUFDLENBQUMsS0FBSztRQUNQLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQTtJQUVwRCxJQUFJLE1BQU0sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztRQUMxQixNQUFNLElBQUksS0FBSyxDQUFDLHVCQUF1QixDQUFDLENBQUE7SUFDMUMsQ0FBQztJQUVELE9BQU8sT0FBTyxDQUFBO0FBQ2hCLENBQUMsQ0FBQyxDQUFBO0FBRUosTUFBTSxXQUFXLEdBQUcsT0FBQztLQUNsQixLQUFLLENBQUMsQ0FBQyxP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
|
|
@@ -8,15 +8,19 @@ class MetadataFilterProvider extends base_filter_provider_1.BaseFilterProvider {
|
|
|
8
8
|
return filters;
|
|
9
9
|
const metadataFilters = value;
|
|
10
10
|
const allowlist = this.getAllowlist(context);
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
const allowedMetadata =
|
|
11
|
+
// If allowlist is empty, allow all metadata keys (treat as "allow all")
|
|
12
|
+
// Otherwise, filter by allowlist
|
|
13
|
+
const allowedMetadata = allowlist.size === 0
|
|
14
|
+
? metadataFilters // Empty allowlist = allow all keys
|
|
15
|
+
: this.filterByAllowlist(metadataFilters, allowlist);
|
|
14
16
|
if (Object.keys(allowedMetadata).length === 0) {
|
|
15
17
|
return filters;
|
|
16
18
|
}
|
|
19
|
+
// Store metadata filter in special key for post-query filtering
|
|
20
|
+
// RemoteQuery may not support nested metadata filtering, so we filter after query
|
|
17
21
|
return {
|
|
18
22
|
...filters,
|
|
19
|
-
|
|
23
|
+
__metadata_filter__: allowedMetadata
|
|
20
24
|
};
|
|
21
25
|
}
|
|
22
26
|
validate(value) {
|
|
@@ -66,4 +70,4 @@ exports.MetadataFilterProvider = MetadataFilterProvider;
|
|
|
66
70
|
MetadataFilterProvider.identifier = "metadata";
|
|
67
71
|
MetadataFilterProvider.displayName = "Metadata Filter";
|
|
68
72
|
MetadataFilterProvider.description = "Filters products by metadata with allowlist validation";
|
|
69
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
73
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWV0YWRhdGEtcHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvcHJvdmlkZXJzL2ZpbHRlci1wcm92aWRlcnMvbWV0YWRhdGEtcHJvdmlkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsaUVBQStFO0FBSy9FLE1BQWEsc0JBQXVCLFNBQVEseUNBQWtCO0lBSzVELEtBQUssQ0FBQyxPQUFnQyxFQUFFLEtBQWMsRUFBRSxPQUF1QjtRQUM3RSxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUM7WUFBRSxPQUFPLE9BQU8sQ0FBQTtRQUVoRCxNQUFNLGVBQWUsR0FBRyxLQUFzQyxDQUFBO1FBQzlELE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUE7UUFFNUMsd0VBQXdFO1FBQ3hFLGlDQUFpQztRQUNqQyxNQUFNLGVBQWUsR0FBRyxTQUFTLENBQUMsSUFBSSxLQUFLLENBQUM7WUFDMUMsQ0FBQyxDQUFDLGVBQWUsQ0FBRSxtQ0FBbUM7WUFDdEQsQ0FBQyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxlQUFlLEVBQUUsU0FBUyxDQUFDLENBQUE7UUFFdEQsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUM5QyxPQUFPLE9BQU8sQ0FBQTtRQUNoQixDQUFDO1FBRUQsZ0VBQWdFO1FBQ2hFLGtGQUFrRjtRQUNsRixPQUFPO1lBQ0wsR0FBRyxPQUFPO1lBQ1YsbUJBQW1CLEVBQUUsZUFBZTtTQUNyQyxDQUFBO0lBQ0gsQ0FBQztJQUVELFFBQVEsQ0FBQyxLQUFjO1FBQ3JCLElBQUksS0FBSyxJQUFJLElBQUk7WUFBRSxPQUFNO1FBRXpCLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDakMsTUFBTSxJQUFJLEtB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
|