medusa-product-helper 0.0.4 → 0.0.7
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/admin/index.js +612 -79
- package/.medusa/server/src/admin/index.mjs +612 -79
- package/.medusa/server/src/api/admin/product-metadata-config/route.js +10 -2
- package/.medusa/server/src/config/product-helper-options.js +33 -12
- package/.medusa/server/src/shared/product-metadata/utils.js +5 -1
- package/.medusa/server/src/utils/query-builders/product-filters.js +4 -2
- package/README.md +88 -73
- package/package.json +1 -1
|
@@ -3,11 +3,19 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.GET = GET;
|
|
4
4
|
const utils_1 = require("@medusajs/framework/utils");
|
|
5
5
|
const product_helper_options_1 = require("../../../config/product-helper-options");
|
|
6
|
+
const ENTITY_PARAM = {
|
|
7
|
+
PRODUCT: "product",
|
|
8
|
+
CATEGORY: "category",
|
|
9
|
+
};
|
|
6
10
|
async function GET(req, res) {
|
|
7
11
|
const configModule = req.scope.resolve(utils_1.ContainerRegistrationKeys.CONFIG_MODULE);
|
|
8
12
|
const options = (0, product_helper_options_1.resolveProductHelperOptions)(configModule);
|
|
13
|
+
const entity = req.query?.entity ?? ENTITY_PARAM.PRODUCT;
|
|
14
|
+
const metadataDescriptors = entity === ENTITY_PARAM.CATEGORY
|
|
15
|
+
? options.metadata.categories.descriptors
|
|
16
|
+
: options.metadata.products.descriptors;
|
|
9
17
|
res.json({
|
|
10
|
-
metadataDescriptors
|
|
18
|
+
metadataDescriptors,
|
|
11
19
|
});
|
|
12
20
|
}
|
|
13
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL3Byb2R1Y3QtbWV0YWRhdGEtY29uZmlnL3JvdXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBWUEsa0JBZ0JDO0FBM0JELHFEQUFxRTtBQUVyRSxtRkFBb0Y7QUFFcEYsTUFBTSxZQUFZLEdBQUc7SUFDbkIsT0FBTyxFQUFFLFNBQVM7SUFDbEIsUUFBUSxFQUFFLFVBQVU7Q0FDWixDQUFBO0FBSUgsS0FBSyxVQUFVLEdBQUcsQ0FBQyxHQUFrQixFQUFFLEdBQW1CO0lBQy9ELE1BQU0sWUFBWSxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUNwQyxpQ0FBeUIsQ0FBQyxhQUFhLENBQ3hDLENBQUE7SUFFRCxNQUFNLE9BQU8sR0FBRyxJQUFBLG9EQUEyQixFQUFDLFlBQVksQ0FBQyxDQUFBO0lBQ3pELE1BQU0sTUFBTSxHQUFJLEdBQUcsQ0FBQyxLQUFLLEVBQUUsTUFBeUIsSUFBSSxZQUFZLENBQUMsT0FBTyxDQUFBO0lBRTVFLE1BQU0sbUJBQW1CLEdBQ3ZCLE1BQU0sS0FBSyxZQUFZLENBQUMsUUFBUTtRQUM5QixDQUFDLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsV0FBVztRQUN6QyxDQUFDLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFBO0lBRTNDLEdBQUcsQ0FBQyxJQUFJLENBQUM7UUFDUCxtQkFBbUI7S0FDcEIsQ0FBQyxDQUFBO0FBQ0osQ0FBQyJ9
|
|
@@ -47,6 +47,22 @@ const MetadataDescriptorSchema = zod_1.z.object({
|
|
|
47
47
|
.transform((value) => (value.length ? value : undefined))
|
|
48
48
|
.optional(),
|
|
49
49
|
type: zod_1.z.enum(types_1.METADATA_FIELD_TYPES),
|
|
50
|
+
filterable: zod_1.z.boolean().default(false),
|
|
51
|
+
});
|
|
52
|
+
const MetadataCollectionSchema = zod_1.z.object({
|
|
53
|
+
descriptors: zod_1.z.array(MetadataDescriptorSchema).default([]),
|
|
54
|
+
});
|
|
55
|
+
const ProductMetadataSchema = MetadataCollectionSchema.extend({
|
|
56
|
+
expose_client_helpers: zod_1.z.boolean().default(true),
|
|
57
|
+
});
|
|
58
|
+
const MetadataSchema = zod_1.z.object({
|
|
59
|
+
products: ProductMetadataSchema.default({
|
|
60
|
+
descriptors: [],
|
|
61
|
+
expose_client_helpers: true,
|
|
62
|
+
}),
|
|
63
|
+
categories: MetadataCollectionSchema.default({
|
|
64
|
+
descriptors: [],
|
|
65
|
+
}),
|
|
50
66
|
});
|
|
51
67
|
const PromotionWindowSchema = zod_1.z.object({
|
|
52
68
|
start_metadata_key: zod_1.z.string().min(1).default("promotion_start"),
|
|
@@ -67,16 +83,15 @@ const RatingSchema = zod_1.z.object({
|
|
|
67
83
|
require_reviews: zod_1.z.boolean().default(false),
|
|
68
84
|
});
|
|
69
85
|
const ProductHelperOptionsSchema = zod_1.z.object({
|
|
70
|
-
metadata:
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
86
|
+
metadata: MetadataSchema.default({
|
|
87
|
+
products: {
|
|
88
|
+
descriptors: [],
|
|
89
|
+
expose_client_helpers: true,
|
|
90
|
+
},
|
|
91
|
+
categories: {
|
|
92
|
+
descriptors: [],
|
|
93
|
+
},
|
|
78
94
|
}),
|
|
79
|
-
price_ranges: zod_1.z.array(PriceRangeSchema).default([]),
|
|
80
95
|
default_price_range: PriceRangeSchema.default({
|
|
81
96
|
label: "custom",
|
|
82
97
|
min: null,
|
|
@@ -108,8 +123,14 @@ function normalizeProductHelperOptions(input) {
|
|
|
108
123
|
return {
|
|
109
124
|
...parsed,
|
|
110
125
|
metadata: {
|
|
111
|
-
|
|
112
|
-
|
|
126
|
+
products: {
|
|
127
|
+
...parsed.metadata.products,
|
|
128
|
+
descriptors: (0, utils_2.normalizeMetadataDescriptors)(parsed.metadata.products.descriptors),
|
|
129
|
+
},
|
|
130
|
+
categories: {
|
|
131
|
+
...parsed.metadata.categories,
|
|
132
|
+
descriptors: (0, utils_2.normalizeMetadataDescriptors)(parsed.metadata.categories.descriptors),
|
|
133
|
+
},
|
|
113
134
|
},
|
|
114
135
|
};
|
|
115
136
|
}
|
|
@@ -128,4 +149,4 @@ function resolveProductHelperOptions(configModule) {
|
|
|
128
149
|
}
|
|
129
150
|
return exports.DEFAULT_PRODUCT_HELPER_OPTIONS;
|
|
130
151
|
}
|
|
131
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
152
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC1oZWxwZXItb3B0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb25maWcvcHJvZHVjdC1oZWxwZXItb3B0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFxS0Esc0VBc0JDO0FBRUQsa0VBbUJDO0FBaE5ELHFEQUFvRDtBQUNwRCw2QkFBdUI7QUFFdkIsNERBR3lDO0FBQ3pDLDREQUErRTtBQUUvRSxNQUFNLGdCQUFnQixHQUFHLE9BQUM7S0FDdkIsTUFBTSxDQUFDO0lBQ04sS0FBSyxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUM7SUFDbEQsYUFBYSxFQUFFLE9BQUM7U0FDYixNQUFNLEVBQUU7U0FDUixJQUFJLEVBQUU7U0FDTixNQUFNLENBQUMsQ0FBQyxFQUFFLG1DQUFtQyxDQUFDO1NBQzlDLFNBQVMsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQ3pDLFFBQVEsRUFBRTtJQUNiLEdBQUcsRUFBRSxPQUFDO1NBQ0gsTUFBTSxDQUFDO1FBQ04sTUFBTSxFQUFFLElBQUk7UUFDWixrQkFBa0IsRUFBRSw0QkFBNEI7S0FDakQsQ0FBQztTQUNELFdBQVcsRUFBRTtTQUNiLFFBQVEsRUFBRTtTQUNWLE9BQU8sQ0FBQyxJQUFJLENBQUM7SUFDaEIsR0FBRyxFQUFFLE9BQUM7U0FDSCxNQUFNLENBQUM7UUFDTixNQUFNLEVBQUUsSUFBSTtRQUNaLGtCQUFrQixFQUFFLDRCQUE0QjtLQUNqRCxDQUFDO1NBQ0QsV0FBVyxFQUFFO1NBQ2IsUUFBUSxFQUFFO1NBQ1YsT0FBTyxDQUFDLElBQUksQ0FBQztDQUNqQixDQUFDO0tBQ0QsTUFBTSxDQUNMLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FDUixLQUFL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
|
|
@@ -33,10 +33,14 @@ function normalizeMetadataDescriptors(input) {
|
|
|
33
33
|
continue;
|
|
34
34
|
}
|
|
35
35
|
const label = getNormalizedLabel(item.label);
|
|
36
|
+
const filterable = typeof item.filterable === "boolean"
|
|
37
|
+
? item.filterable
|
|
38
|
+
: Boolean(item.filterable);
|
|
36
39
|
normalized.push({
|
|
37
40
|
key,
|
|
38
41
|
type,
|
|
39
42
|
...(label ? { label } : {}),
|
|
43
|
+
...(filterable ? { filterable: true } : {}),
|
|
40
44
|
});
|
|
41
45
|
seenKeys.add(key);
|
|
42
46
|
}
|
|
@@ -192,4 +196,4 @@ function isDeepEqual(a, b) {
|
|
|
192
196
|
}
|
|
193
197
|
return false;
|
|
194
198
|
}
|
|
195
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
199
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvc2hhcmVkL3Byb2R1Y3QtbWV0YWRhdGEvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFrQkEsb0VBd0NDO0FBRUQsNENBT0M7QUFFRCxzREFnQkM7QUFFRCxvREEyQkM7QUFFRCxnREFvQkM7QUFFRCxnRUErQkM7QUF6S0QsbUNBS2dCO0FBS2hCLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxHQUFHLENBQW9CLDRCQUFvQixDQUFDLENBQUE7QUFFMUU7Ozs7O0dBS0c7QUFDSCxTQUFnQiw0QkFBNEIsQ0FDMUMsS0FBYztJQUVkLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDMUIsT0FBTyxFQUFFLENBQUE7SUFDWCxDQUFDO0lBRUQsTUFBTSxRQUFRLEdBQUcsSUFBSSxHQUFHLEVBQVUsQ0FBQTtJQUNsQyxNQUFNLFVBQVUsR0FBeUIsRUFBRSxDQUFBO0lBRTNDLEtBQUssTUFBTSxJQUFJLElBQUksS0FBSyxFQUFFLENBQUM7UUFDekIsSUFBSSxDQUFDLElBQUksSUFBSSxPQUFPLElBQUksS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUN0QyxTQUFRO1FBQ1YsQ0FBQztRQUVELE1BQU0sR0FBRyxHQUFHLGdCQUFnQixDQUFFLElBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQTtRQUMvQyxJQUFJLENBQUMsR0FBRyxJQUFJLFFBQVEsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUM5QixTQUFRO1FBQ1YsQ0FBQztRQUVELE1BQU0sSUFBSSxHQUFHLGlCQUFpQixDQUFFLElBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUNsRCxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDVixTQUFRO1FBQ1YsQ0FBQztRQUVELE1BQU0sS0FBSyxHQUFHLGtCQUFrQixDQUFFLElBQVksQ0FBQyxLQUFLLENB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
|
|
@@ -28,7 +28,9 @@ function buildProductFilterPlan({ query, options, }) {
|
|
|
28
28
|
id: query.sales_channel_id,
|
|
29
29
|
};
|
|
30
30
|
}
|
|
31
|
-
const metadataAllowList = new Set(options.metadata.descriptors
|
|
31
|
+
const metadataAllowList = new Set(options.metadata.products.descriptors
|
|
32
|
+
.filter((descriptor) => descriptor.filterable)
|
|
33
|
+
.map((descriptor) => descriptor.key));
|
|
32
34
|
const metadataFilters = metadataAllowList.size === 0
|
|
33
35
|
? {}
|
|
34
36
|
: Object.entries(query.metadata ?? {}).reduce((acc, [key, value]) => {
|
|
@@ -134,4 +136,4 @@ function buildBestSellingPlan(query) {
|
|
|
134
136
|
variant_id: query.variant_id,
|
|
135
137
|
};
|
|
136
138
|
}
|
|
137
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
139
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC1maWx0ZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL3V0aWxzL3F1ZXJ5LWJ1aWxkZXJzL3Byb2R1Y3QtZmlsdGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQWdFQSx3REFzSkM7QUFFRCxvREFvQkM7QUE1S0QsU0FBZ0Isc0JBQXNCLENBQUMsRUFDckMsS0FBSyxFQUNMLE9BQU8sR0FJUjtJQUNDLE1BQU0sV0FBVyxHQUE0QixFQUFFLENBQUE7SUFFL0MsSUFBSSxLQUFLLENBQUMsRUFBRSxFQUFFLE1BQU0sRUFBRSxDQUFDO1FBQ3JCLFdBQVcsQ0FBQyxFQUFFLEdBQUcsS0FBSyxDQUFDLEVBQUUsQ0FBQTtJQUMzQixDQUFDO0lBRUQsSUFBSSxLQUFLLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxDQUFDO1FBQ3pCLFdBQVcsQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQTtJQUNuQyxDQUFDO0lBRUQsSUFBSSxLQUFLLENBQUMsYUFBYSxFQUFFLE1BQU0sRUFBRSxDQUFDO1FBQ2hDLFdBQVcsQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDLGFBQWEsQ0FBQTtJQUNqRCxDQUFDO0lBRUQsSUFBSSxLQUFLLENBQUMsV0FBVyxFQUFFLE1BQU0sRUFBRSxDQUFDO1FBQzlCLFdBQVcsQ0FBQyxVQUFVLEdBQUc7WUFDdkIsRUFBRSxFQUFFLEtBQUssQ0FBQyxXQUFXO1NBQ3RCLENBQUE7SUFDSCxDQUFDO0lBRUQsSUFBSSxLQUFLLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSxDQUFDO1FBQ3ZCLFdBQVcsQ0FBQyxJQUFJLEdBQUc7WUFDakIsS0FBSyxFQUFFLEtBQUssQ0FBQyxJQUFJO1NBQ2xCLENBQUE7SUFDSCxDQUFDO0lBRUQsSUFBSSxLQUFLLENBQUMsZ0JBQWdCLEVBQUUsTUFBTSxFQUFFLENBQUM7UUFDbkMsV0FBVyxDQUFDLGNBQWMsR0FBRztZQUMzQixFQUFFLEVB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
|
package/README.md
CHANGED
|
@@ -55,71 +55,59 @@ const plugins = [
|
|
|
55
55
|
{
|
|
56
56
|
resolve: "medusa-product-helper",
|
|
57
57
|
options: {
|
|
58
|
-
// Metadata descriptors for product metadata fields
|
|
58
|
+
// Metadata descriptors for product & category metadata fields
|
|
59
59
|
metadata: {
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
label: "Under $50",
|
|
95
|
-
currency_code: "usd",
|
|
96
|
-
min: 0,
|
|
97
|
-
max: 50,
|
|
98
|
-
},
|
|
99
|
-
{
|
|
100
|
-
label: "$50 - $100",
|
|
101
|
-
currency_code: "usd",
|
|
102
|
-
min: 50,
|
|
103
|
-
max: 100,
|
|
104
|
-
},
|
|
105
|
-
{
|
|
106
|
-
label: "$100 - $200",
|
|
107
|
-
currency_code: "usd",
|
|
108
|
-
min: 100,
|
|
109
|
-
max: 200,
|
|
110
|
-
},
|
|
111
|
-
{
|
|
112
|
-
label: "Over $200",
|
|
113
|
-
currency_code: "usd",
|
|
114
|
-
min: 200,
|
|
115
|
-
max: null,
|
|
60
|
+
products: {
|
|
61
|
+
// Expose client-side helper functions for metadata access
|
|
62
|
+
expose_client_helpers: true,
|
|
63
|
+
// Define metadata fields that will be used across products
|
|
64
|
+
descriptors: [
|
|
65
|
+
{
|
|
66
|
+
key: "brand",
|
|
67
|
+
label: "Brand",
|
|
68
|
+
type: "text",
|
|
69
|
+
filterable: true,
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
key: "material",
|
|
73
|
+
label: "Material",
|
|
74
|
+
type: "text",
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
key: "warranty_years",
|
|
78
|
+
label: "Warranty (Years)",
|
|
79
|
+
type: "number",
|
|
80
|
+
filterable: true,
|
|
81
|
+
},
|
|
82
|
+
{
|
|
83
|
+
key: "is_eco_friendly",
|
|
84
|
+
label: "Eco Friendly",
|
|
85
|
+
type: "bool",
|
|
86
|
+
filterable: true,
|
|
87
|
+
},
|
|
88
|
+
{
|
|
89
|
+
key: "certification_file",
|
|
90
|
+
label: "Certification Document",
|
|
91
|
+
type: "file",
|
|
92
|
+
},
|
|
93
|
+
],
|
|
116
94
|
},
|
|
117
|
-
{
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
95
|
+
categories: {
|
|
96
|
+
// Define metadata fields maintained on product categories
|
|
97
|
+
descriptors: [
|
|
98
|
+
{
|
|
99
|
+
key: "taxonomy_label",
|
|
100
|
+
label: "Taxonomy Label",
|
|
101
|
+
type: "text",
|
|
102
|
+
},
|
|
103
|
+
{
|
|
104
|
+
key: "category_banner",
|
|
105
|
+
label: "Category Banner URL",
|
|
106
|
+
type: "file",
|
|
107
|
+
},
|
|
108
|
+
],
|
|
121
109
|
},
|
|
122
|
-
|
|
110
|
+
},
|
|
123
111
|
// Default price range when none is specified
|
|
124
112
|
default_price_range: {
|
|
125
113
|
label: "custom",
|
|
@@ -177,19 +165,46 @@ export default {
|
|
|
177
165
|
|
|
178
166
|
#### Metadata
|
|
179
167
|
|
|
180
|
-
Define metadata fields that will be used across your products
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
- `
|
|
184
|
-
- `
|
|
168
|
+
Define metadata fields that will be used across your products and product categories.
|
|
169
|
+
|
|
170
|
+
`metadata.products`
|
|
171
|
+
- `descriptors`: Drives the product metadata widgets and product filter API.
|
|
172
|
+
- `expose_client_helpers`: When `true`, exposes helper utilities for retrieving product metadata on the storefront.
|
|
173
|
+
|
|
174
|
+
`metadata.categories`
|
|
175
|
+
- `descriptors`: Drives the category metadata widget. These keys are never exposed to the product filter API.
|
|
176
|
+
|
|
177
|
+
Each descriptor supports:
|
|
178
|
+
- `text`, `number`, `bool`, `file` field types
|
|
179
|
+
- `filterable` (products only): Optional boolean flag (default `false`) that controls whether the key can be used in the public product filter API. Only product keys with `filterable: true` are honored when customers pass `metadata` filters.
|
|
180
|
+
|
|
181
|
+
### Admin Metadata Widgets
|
|
182
|
+
|
|
183
|
+
The plugin ships two Medusa Admin widgets:
|
|
184
|
+
|
|
185
|
+
- **Product metadata table** (`product.details.after`) replaces the default
|
|
186
|
+
product metadata editor with a structured, type-aware table driven by your
|
|
187
|
+
configured descriptors.
|
|
188
|
+
- **Category metadata table** (`product_category.details.after`) provides the
|
|
189
|
+
exact experience on the product category detail page so category metadata can
|
|
190
|
+
be edited consistently.
|
|
191
|
+
|
|
192
|
+
Both widgets automatically hide the default metadata sections to avoid duplicate
|
|
193
|
+
inputs. No extra configuration is required beyond defining descriptors under
|
|
194
|
+
`metadata.products.descriptors` or `metadata.categories.descriptors` in
|
|
195
|
+
`medusa-config.ts`.
|
|
196
|
+
|
|
197
|
+
#### Wishlist Insights Widget
|
|
198
|
+
|
|
199
|
+
The admin extension also injects a **Wishlist performance** card into the product
|
|
200
|
+
details sidebar (`product.details.side.after`). The widget:
|
|
185
201
|
|
|
186
|
-
|
|
202
|
+
- Shows how many unique customers saved the current product.
|
|
203
|
+
- Highlights whether the product ranks within the most wishlisted items.
|
|
204
|
+
- Displays a live leaderboard (top 5) powered by `/admin/wishlist/stats`.
|
|
187
205
|
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
- `currency_code`: Optional ISO 3-letter currency code (e.g., "usd", "eur")
|
|
191
|
-
- `min`: Minimum price (null for no minimum)
|
|
192
|
-
- `max`: Maximum price (null for no maximum)
|
|
206
|
+
No additional configuration is required—install the plugin, run the wishlist
|
|
207
|
+
migration, and open any product inside Medusa Admin to see the UI.
|
|
193
208
|
|
|
194
209
|
#### Promotion Window
|
|
195
210
|
|