@mercurjs/core 2.2.0-canary.22 → 2.2.0-canary.24
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/admin/collections/query-config.js +7 -7
- package/.medusa/server/src/api/admin/offers/query-config.js +2 -1
- package/.medusa/server/src/api/admin/product-attributes/validators.d.ts +4 -4
- package/.medusa/server/src/api/admin/product-categories/query-config.js +7 -7
- package/.medusa/server/src/api/store/middlewares.js +13 -11
- package/.medusa/server/src/api/store/offers/[id]/route.d.ts +3 -0
- package/.medusa/server/src/api/store/offers/[id]/route.js +28 -0
- package/.medusa/server/src/api/store/offers/helpers.d.ts +43 -0
- package/.medusa/server/src/api/store/offers/helpers.js +191 -0
- package/.medusa/server/src/api/store/offers/middlewares.d.ts +2 -0
- package/.medusa/server/src/api/store/offers/middlewares.js +64 -0
- package/.medusa/server/src/api/store/offers/query-config.d.ts +12 -0
- package/.medusa/server/src/api/store/offers/query-config.js +50 -0
- package/.medusa/server/src/api/store/offers/route.d.ts +3 -0
- package/.medusa/server/src/api/store/offers/route.js +30 -0
- package/.medusa/server/src/api/store/offers/validators.d.ts +159 -0
- package/.medusa/server/src/api/store/offers/validators.js +29 -0
- package/.medusa/server/src/api/store/products/middlewares.js +22 -20
- package/.medusa/server/src/api/utils/sellers.d.ts +2 -0
- package/.medusa/server/src/api/utils/sellers.js +23 -0
- package/.medusa/server/src/api/vendor/collections/query-config.js +7 -7
- package/.medusa/server/src/api/vendor/offers/query-config.js +2 -1
- package/.medusa/server/src/api/vendor/product-attributes/validators.d.ts +4 -4
- package/.medusa/server/src/api/vendor/product-categories/query-config.js +7 -7
- package/.medusa/server/src/api/vendor/product-variants/validators.d.ts +6 -6
- package/.medusa/server/src/links/media-product-category-link.d.ts +11 -3
- package/.medusa/server/src/links/media-product-category-link.js +16 -5
- package/.medusa/server/src/links/media-product-collection-link.d.ts +8 -1
- package/.medusa/server/src/links/media-product-collection-link.js +13 -3
- package/.medusa/server/src/links/offer-product-link.d.ts +2 -0
- package/.medusa/server/src/links/offer-product-link.js +15 -0
- package/.medusa/server/src/modules/media/index.d.ts +5 -5
- package/.medusa/server/src/modules/media/models/index.d.ts +1 -1
- package/.medusa/server/src/modules/media/models/index.js +4 -4
- package/.medusa/server/src/modules/media/models/{image.d.ts → media-image.d.ts} +9 -5
- package/.medusa/server/src/modules/media/models/media-image.js +41 -0
- package/.medusa/server/src/modules/media/service.d.ts +2 -2
- package/.medusa/server/src/modules/media/service.js +2 -2
- package/.medusa/server/src/modules/offer/migrations/Migration20260622000000.d.ts +5 -0
- package/.medusa/server/src/modules/offer/migrations/Migration20260622000000.js +16 -0
- package/.medusa/server/src/modules/offer/models/offer.d.ts +1 -0
- package/.medusa/server/src/modules/offer/models/offer.js +7 -1
- package/.medusa/server/src/modules/offer/service.d.ts +1 -0
- package/.medusa/server/src/workflows/media/steps/create-images.js +3 -3
- package/.medusa/server/src/workflows/media/steps/delete-images.js +3 -3
- package/.medusa/server/src/workflows/media/workflows/set-category-images.js +5 -5
- package/.medusa/server/src/workflows/media/workflows/set-collection-images.js +5 -5
- package/.medusa/server/src/workflows/offer/steps/create-offers.d.ts +1 -0
- package/.medusa/server/src/workflows/offer/steps/update-offers.d.ts +1 -0
- package/.medusa/server/src/workflows/offer/workflows/create-offers.js +3 -2
- package/package.json +1 -1
- package/.medusa/server/src/modules/media/models/image.js +0 -37
|
@@ -8,12 +8,12 @@ exports.adminCollectionFields = [
|
|
|
8
8
|
"created_at",
|
|
9
9
|
"updated_at",
|
|
10
10
|
"metadata",
|
|
11
|
-
"
|
|
12
|
-
"
|
|
13
|
-
"
|
|
14
|
-
"
|
|
15
|
-
"
|
|
16
|
-
"
|
|
11
|
+
"media_images.id",
|
|
12
|
+
"media_images.url",
|
|
13
|
+
"media_images.type",
|
|
14
|
+
"media_images.is_thumbnail",
|
|
15
|
+
"media_images.is_banner",
|
|
16
|
+
"media_images.rank",
|
|
17
17
|
];
|
|
18
18
|
exports.adminCollectionQueryConfig = {
|
|
19
19
|
list: {
|
|
@@ -26,4 +26,4 @@ exports.adminCollectionQueryConfig = {
|
|
|
26
26
|
isList: false,
|
|
27
27
|
},
|
|
28
28
|
};
|
|
29
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwaS9hZG1pbi9jb2xsZWN0aW9ucy9xdWVyeS1jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQWEsUUFBQSxxQkFBcUIsR0FBRztJQUNuQyxJQUFJO0lBQ0osT0FBTztJQUNQLFFBQVE7SUFDUixZQUFZO0lBQ1osWUFBWTtJQUNaLFVBQVU7SUFDVixpQkFBaUI7SUFDakIsa0JBQWtCO0lBQ2xCLG1CQUFtQjtJQUNuQiwyQkFBMkI7SUFDM0Isd0JBQXdCO0lBQ3hCLG1CQUFtQjtDQUNwQixDQUFBO0FBRVksUUFBQSwwQkFBMEIsR0FBRztJQUN4QyxJQUFJLEVBQUU7UUFDSixRQUFRLEVBQUUsNkJBQXFCO1FBQy9CLFlBQVksRUFBRSxFQUFFO1FBQ2hCLE1BQU0sRUFBRSxJQUFJO0tBQ2I7SUFDRCxRQUFRLEVBQUU7UUFDUixRQUFRLEVBQUUsNkJBQXFCO1FBQy9CLE1BQU0sRUFBRSxLQUFLO0tBQ2Q7Q0FDRixDQUFBIn0=
|
|
@@ -5,6 +5,7 @@ exports.defaultAdminOfferFields = [
|
|
|
5
5
|
"id",
|
|
6
6
|
"seller_id",
|
|
7
7
|
"variant_id",
|
|
8
|
+
"product_id",
|
|
8
9
|
"shipping_profile_id",
|
|
9
10
|
"sku",
|
|
10
11
|
"ean",
|
|
@@ -44,4 +45,4 @@ exports.adminOfferQueryConfig = {
|
|
|
44
45
|
isList: false,
|
|
45
46
|
},
|
|
46
47
|
};
|
|
47
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
48
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwaS9hZG1pbi9vZmZlcnMvcXVlcnktY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFhLFFBQUEsdUJBQXVCLEdBQUc7SUFDckMsSUFBSTtJQUNKLFdBQVc7SUFDWCxZQUFZO0lBQ1osWUFBWTtJQUNaLHFCQUFxQjtJQUNyQixLQUFLO0lBQ0wsS0FBSztJQUNMLEtBQUs7SUFDTCxZQUFZO0lBQ1osVUFBVTtJQUNWLFlBQVk7SUFDWixZQUFZO0lBQ1osWUFBWTtJQUNaLFdBQVc7SUFDWCxhQUFhO0lBQ2IsZUFBZTtJQUNmLG9CQUFvQjtJQUNwQix1QkFBdUI7SUFDdkIscUJBQXFCO0lBQ3JCLHFCQUFxQjtJQUNyQix1QkFBdUI7SUFDdkIsV0FBVztJQUNYLGVBQWU7SUFDZixzQkFBc0I7SUFDdEIscUJBQXFCO0lBQ3JCLHFCQUFxQjtJQUNyQiw4QkFBOEI7SUFDOUIsMEJBQTBCO0lBQzFCLG1DQUFtQztJQUNuQyxtQ0FBbUM7SUFDbkMsb0JBQW9CO0lBQ3BCLHFCQUFxQjtDQUN0QixDQUFBO0FBRVksUUFBQSxxQkFBcUIsR0FBRztJQUNuQyxJQUFJLEVBQUU7UUFDSixRQUFRLEVBQUUsK0JBQXVCO1FBQ2pDLE1BQU0sRUFBRSxJQUFJO0tBQ2I7SUFDRCxRQUFRLEVBQUU7UUFDUixRQUFRLEVBQUUsK0JBQXVCO1FBQ2pDLE1BQU0sRUFBRSxLQUFLO0tBQ2Q7Q0FDRixDQUFBIn0=
|
|
@@ -109,11 +109,11 @@ export declare const AdminGetProductAttributesParams: z.ZodObject<{} & {
|
|
|
109
109
|
updated_at?: any;
|
|
110
110
|
type?: AttributeType | AttributeType[] | undefined;
|
|
111
111
|
q?: string | undefined;
|
|
112
|
+
product_id?: string | string[] | null | undefined;
|
|
112
113
|
handle?: string | string[] | undefined;
|
|
113
114
|
is_active?: boolean | undefined;
|
|
114
115
|
is_variant_axis?: boolean | undefined;
|
|
115
116
|
is_required?: boolean | undefined;
|
|
116
|
-
product_id?: string | string[] | null | undefined;
|
|
117
117
|
is_filterable?: boolean | undefined;
|
|
118
118
|
category_id?: string | string[] | undefined;
|
|
119
119
|
}, {
|
|
@@ -122,11 +122,11 @@ export declare const AdminGetProductAttributesParams: z.ZodObject<{} & {
|
|
|
122
122
|
updated_at?: any;
|
|
123
123
|
type?: AttributeType | AttributeType[] | undefined;
|
|
124
124
|
q?: string | undefined;
|
|
125
|
+
product_id?: string | string[] | null | undefined;
|
|
125
126
|
handle?: string | string[] | undefined;
|
|
126
127
|
is_active?: string | boolean | undefined;
|
|
127
128
|
is_variant_axis?: string | boolean | undefined;
|
|
128
129
|
is_required?: string | boolean | undefined;
|
|
129
|
-
product_id?: string | string[] | null | undefined;
|
|
130
130
|
is_filterable?: string | boolean | undefined;
|
|
131
131
|
category_id?: string | string[] | undefined;
|
|
132
132
|
}>, "many">>>;
|
|
@@ -227,11 +227,11 @@ export declare const AdminGetProductAttributesParams: z.ZodObject<{} & {
|
|
|
227
227
|
updated_at?: any;
|
|
228
228
|
type?: AttributeType | AttributeType[] | undefined;
|
|
229
229
|
q?: string | undefined;
|
|
230
|
+
product_id?: string | string[] | null | undefined;
|
|
230
231
|
handle?: string | string[] | undefined;
|
|
231
232
|
is_active?: boolean | undefined;
|
|
232
233
|
is_variant_axis?: boolean | undefined;
|
|
233
234
|
is_required?: boolean | undefined;
|
|
234
|
-
product_id?: string | string[] | null | undefined;
|
|
235
235
|
is_filterable?: boolean | undefined;
|
|
236
236
|
category_id?: string | string[] | undefined;
|
|
237
237
|
}, {
|
|
@@ -240,11 +240,11 @@ export declare const AdminGetProductAttributesParams: z.ZodObject<{} & {
|
|
|
240
240
|
updated_at?: any;
|
|
241
241
|
type?: AttributeType | AttributeType[] | undefined;
|
|
242
242
|
q?: string | undefined;
|
|
243
|
+
product_id?: string | string[] | null | undefined;
|
|
243
244
|
handle?: string | string[] | undefined;
|
|
244
245
|
is_active?: string | boolean | undefined;
|
|
245
246
|
is_variant_axis?: string | boolean | undefined;
|
|
246
247
|
is_required?: string | boolean | undefined;
|
|
247
|
-
product_id?: string | string[] | null | undefined;
|
|
248
248
|
is_filterable?: string | boolean | undefined;
|
|
249
249
|
category_id?: string | string[] | undefined;
|
|
250
250
|
}>, "many">>>;
|
|
@@ -16,12 +16,12 @@ exports.adminProductCategoryFields = [
|
|
|
16
16
|
"metadata",
|
|
17
17
|
"*parent_category",
|
|
18
18
|
"*category_children",
|
|
19
|
-
"
|
|
20
|
-
"
|
|
21
|
-
"
|
|
22
|
-
"
|
|
23
|
-
"
|
|
24
|
-
"
|
|
19
|
+
"media_images.id",
|
|
20
|
+
"media_images.url",
|
|
21
|
+
"media_images.type",
|
|
22
|
+
"media_images.is_thumbnail",
|
|
23
|
+
"media_images.is_banner",
|
|
24
|
+
"media_images.rank",
|
|
25
25
|
];
|
|
26
26
|
exports.adminProductCategoryQueryConfig = {
|
|
27
27
|
list: {
|
|
@@ -34,4 +34,4 @@ exports.adminProductCategoryQueryConfig = {
|
|
|
34
34
|
isList: false,
|
|
35
35
|
},
|
|
36
36
|
};
|
|
37
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
37
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwaS9hZG1pbi9wcm9kdWN0LWNhdGVnb3JpZXMvcXVlcnktY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFhLFFBQUEsMEJBQTBCLEdBQUc7SUFDeEMsSUFBSTtJQUNKLE1BQU07SUFDTixhQUFhO0lBQ2IsUUFBUTtJQUNSLFdBQVc7SUFDWCxhQUFhO0lBQ2IsZUFBZTtJQUNmLE1BQU07SUFDTixvQkFBb0I7SUFDcEIsWUFBWTtJQUNaLFlBQVk7SUFDWixVQUFVO0lBQ1Ysa0JBQWtCO0lBQ2xCLG9CQUFvQjtJQUNwQixpQkFBaUI7SUFDakIsa0JBQWtCO0lBQ2xCLG1CQUFtQjtJQUNuQiwyQkFBMkI7SUFDM0Isd0JBQXdCO0lBQ3hCLG1CQUFtQjtDQUNwQixDQUFBO0FBRVksUUFBQSwrQkFBK0IsR0FBRztJQUM3QyxJQUFJLEVBQUU7UUFDSixRQUFRLEVBQUUsa0NBQTBCO1FBQ3BDLFlBQVksRUFBRSxFQUFFO1FBQ2hCLE1BQU0sRUFBRSxJQUFJO0tBQ2I7SUFDRCxRQUFRLEVBQUU7UUFDUixRQUFRLEVBQUUsa0NBQTBCO1FBQ3BDLE1BQU0sRUFBRSxLQUFLO0tBQ2Q7Q0FDRixDQUFBIn0=
|
|
@@ -2,17 +2,19 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.storeMiddlewares = void 0;
|
|
4
4
|
const middlewares_1 = require("./carts/middlewares");
|
|
5
|
-
const middlewares_2 = require("./
|
|
6
|
-
const middlewares_3 = require("./
|
|
7
|
-
const middlewares_4 = require("./product-
|
|
8
|
-
const middlewares_5 = require("./
|
|
9
|
-
const middlewares_6 = require("./
|
|
5
|
+
const middlewares_2 = require("./offers/middlewares");
|
|
6
|
+
const middlewares_3 = require("./order-groups/middlewares");
|
|
7
|
+
const middlewares_4 = require("./product-attributes/middlewares");
|
|
8
|
+
const middlewares_5 = require("./product-categories/middlewares");
|
|
9
|
+
const middlewares_6 = require("./products/middlewares");
|
|
10
|
+
const middlewares_7 = require("./sellers/middlewares");
|
|
10
11
|
exports.storeMiddlewares = [
|
|
11
12
|
...middlewares_1.storeCartsMiddlewares,
|
|
12
|
-
...middlewares_2.
|
|
13
|
-
...middlewares_3.
|
|
14
|
-
...middlewares_4.
|
|
15
|
-
...middlewares_5.
|
|
16
|
-
...middlewares_6.
|
|
13
|
+
...middlewares_2.storeOffersMiddlewares,
|
|
14
|
+
...middlewares_3.storeOrderGroupsMiddlewares,
|
|
15
|
+
...middlewares_4.storeProductAttributesMiddlewares,
|
|
16
|
+
...middlewares_5.storeProductCategoriesMiddlewares,
|
|
17
|
+
...middlewares_6.storeProductsMiddlewares,
|
|
18
|
+
...middlewares_7.storeSellersMiddlewares,
|
|
17
19
|
];
|
|
18
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWlkZGxld2FyZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3N0b3JlL21pZGRsZXdhcmVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUVBLHFEQUEyRDtBQUMzRCxzREFBNkQ7QUFDN0QsNERBQXdFO0FBQ3hFLGtFQUFvRjtBQUNwRixrRUFBb0Y7QUFDcEYsd0RBQWlFO0FBQ2pFLHVEQUErRDtBQUVsRCxRQUFBLGdCQUFnQixHQUFzQjtJQUNqRCxHQUFHLG1DQUFxQjtJQUN4QixHQUFHLG9DQUFzQjtJQUN6QixHQUFHLHlDQUEyQjtJQUM5QixHQUFHLCtDQUFpQztJQUNwQyxHQUFHLCtDQUFpQztJQUNwQyxHQUFHLHNDQUF3QjtJQUMzQixHQUFHLHFDQUF1QjtDQUMzQixDQUFBIn0=
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.GET = void 0;
|
|
4
|
+
const utils_1 = require("@medusajs/framework/utils");
|
|
5
|
+
const helpers_1 = require("../helpers");
|
|
6
|
+
const GET = async (req, res) => {
|
|
7
|
+
const query = req.scope.resolve(utils_1.ContainerRegistrationKeys.QUERY);
|
|
8
|
+
const { fields, withCalculatedPrice, withInventoryQuantity } = (0, helpers_1.splitComputedOfferFields)(req.queryConfig.fields);
|
|
9
|
+
const { data: [offer], } = await query.graph({
|
|
10
|
+
entity: "offer",
|
|
11
|
+
fields: fields,
|
|
12
|
+
filters: { ...req.filterableFields, id: req.params.id },
|
|
13
|
+
});
|
|
14
|
+
if (!offer) {
|
|
15
|
+
throw new utils_1.MedusaError(utils_1.MedusaError.Types.NOT_FOUND, `Offer with id ${req.params.id} was not found`);
|
|
16
|
+
}
|
|
17
|
+
const offers = [offer];
|
|
18
|
+
if (withCalculatedPrice) {
|
|
19
|
+
await (0, helpers_1.wrapOffersWithCalculatedPrices)(req, offers);
|
|
20
|
+
await (0, helpers_1.wrapOffersWithTaxPrices)(req, offers);
|
|
21
|
+
}
|
|
22
|
+
if (withInventoryQuantity) {
|
|
23
|
+
await (0, helpers_1.wrapOffersWithInventoryQuantityForSalesChannel)(req, offers);
|
|
24
|
+
}
|
|
25
|
+
res.json({ offer });
|
|
26
|
+
};
|
|
27
|
+
exports.GET = GET;
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3N0b3JlL29mZmVycy9baWRdL3JvdXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUlBLHFEQUdrQztBQUVsQyx3Q0FLbUI7QUFHWixNQUFNLEdBQUcsR0FBRyxLQUFLLEVBQ3RCLEdBQWdELEVBQ2hELEdBQW1CLEVBQ25CLEVBQUU7SUFDRixNQUFNLEtBQUssR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxpQ0FBeUIsQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUVoRSxNQUFNLEVBQUUsTUFBTSxFQUFFLG1CQUFtQixFQUFFLHFCQUFxQixFQUFFLEdBQzFELElBQUEsa0NBQXdCLEVBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQTtJQUVsRCxNQUFNLEVBQ0osSUFBSSxFQUFFLENBQUMsS0FBSyxDQUFDLEdBQ2QsR0FBRyxNQUFNLEtBQUssQ0FBQyxLQUFLLENBQUM7UUFDcEIsTUFBTSxFQUFFLE9BQU87UUFDZixNQUFNLEVBQUUsTUFBTTtRQUNkLE9BQU8sRUFBRSxFQUFFLEdBQUcsR0FBRyxDQUFDLGdCQUFnQixFQUFFLEVBQUUsRUFBRSxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRTtLQUN4RCxDQUFDLENBQUE7SUFFRixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDWCxNQUFNLElBQUksbUJBQVcsQ0FDbkIsbUJBQVcsQ0FBQyxLQUFLLENBQUMsU0FBUyxFQUMzQixpQkFBaUIsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLGdCQUFnQixDQUMvQyxDQUFBO0lBQ0gsQ0FBQztJQUVELE1BQU0sTUFBTSxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUE7SUFDdEIsSUFBSSxtQkFBbUIsRUFBRSxDQUFDO1FBQ3hCLE1BQU0sSUFBQSx3Q0FBOEIsRUFDbEMsR0FBRyxFQUNILE1BQU0sQ0FDUCxDQUFBO1FBQ0QsTUFBTSxJQUFBLGlDQUF1QixFQUFDLEdBQUcsRUFBRSxNQUFNLENBQUMsQ0FBQTtJQUM1QyxDQUFDO0lBRUQsSUFBSSxxQkFBcUIsRUFBRSxDQUFDO1FBQzFCLE1BQU0sSUFBQSx3REFBOEMsRUFBQyxHQUFHLEVBQUUsTUFBTSxDQUFDLENBQUE7SUFDbkUsQ0FBQztJQUVELEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFBO0FBQ3JCLENBQUMsQ0FBQTtBQXRDWSxRQUFBLEdBQUcsT0FzQ2YifQ==
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { MedusaStoreRequest } from "@medusajs/framework/http";
|
|
2
|
+
import { MedusaPricingContext, TaxCalculationContext } from "@medusajs/framework/types";
|
|
3
|
+
type OfferLocationLevel = {
|
|
4
|
+
location_id: string;
|
|
5
|
+
stocked_quantity: number;
|
|
6
|
+
};
|
|
7
|
+
type OfferInventoryLink = {
|
|
8
|
+
required_quantity?: number | null;
|
|
9
|
+
inventory_item?: {
|
|
10
|
+
location_levels?: OfferLocationLevel[] | null;
|
|
11
|
+
} | null;
|
|
12
|
+
};
|
|
13
|
+
export type EnrichableOffer = {
|
|
14
|
+
id: string;
|
|
15
|
+
product_id?: string;
|
|
16
|
+
product_variant?: {
|
|
17
|
+
price_set?: {
|
|
18
|
+
id?: string;
|
|
19
|
+
} | null;
|
|
20
|
+
} | null;
|
|
21
|
+
inventory_item_link?: OfferInventoryLink[] | null;
|
|
22
|
+
calculated_price?: Record<string, unknown> | null;
|
|
23
|
+
inventory_quantity?: number | null;
|
|
24
|
+
in_stock?: boolean;
|
|
25
|
+
};
|
|
26
|
+
type StoreRequestWithContext = MedusaStoreRequest<unknown> & {
|
|
27
|
+
pricingContext?: MedusaPricingContext;
|
|
28
|
+
taxContext?: {
|
|
29
|
+
taxLineContext?: TaxCalculationContext;
|
|
30
|
+
taxInclusivityContext?: {
|
|
31
|
+
automaticTaxes: boolean;
|
|
32
|
+
};
|
|
33
|
+
};
|
|
34
|
+
};
|
|
35
|
+
export declare const wrapOffersWithCalculatedPrices: (req: StoreRequestWithContext, offers: EnrichableOffer[]) => Promise<void>;
|
|
36
|
+
export declare const wrapOffersWithTaxPrices: (req: StoreRequestWithContext, offers: EnrichableOffer[]) => Promise<void>;
|
|
37
|
+
export declare const wrapOffersWithInventoryQuantityForSalesChannel: (req: MedusaStoreRequest<unknown>, offers: EnrichableOffer[]) => Promise<void>;
|
|
38
|
+
export declare const splitComputedOfferFields: (fields: string[]) => {
|
|
39
|
+
fields: string[];
|
|
40
|
+
withCalculatedPrice: boolean;
|
|
41
|
+
withInventoryQuantity: boolean;
|
|
42
|
+
};
|
|
43
|
+
export {};
|
|
@@ -0,0 +1,191 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.splitComputedOfferFields = exports.wrapOffersWithInventoryQuantityForSalesChannel = exports.wrapOffersWithTaxPrices = exports.wrapOffersWithCalculatedPrices = void 0;
|
|
4
|
+
const utils_1 = require("@medusajs/framework/utils");
|
|
5
|
+
const utils_2 = require("@medusajs/framework/utils");
|
|
6
|
+
const index_1 = require("@medusajs/medusa/api/utils/middlewares/index");
|
|
7
|
+
const wrapOffersWithCalculatedPrices = async (req, offers) => {
|
|
8
|
+
if (!req.pricingContext || !offers?.length) {
|
|
9
|
+
return;
|
|
10
|
+
}
|
|
11
|
+
const pricingModule = req.scope.resolve(utils_1.Modules.PRICING);
|
|
12
|
+
const baseContext = req.pricingContext;
|
|
13
|
+
const byPriceSet = new Map();
|
|
14
|
+
for (const offer of offers) {
|
|
15
|
+
const priceSetId = offer.product_variant?.price_set?.id;
|
|
16
|
+
if (!priceSetId) {
|
|
17
|
+
continue;
|
|
18
|
+
}
|
|
19
|
+
const group = byPriceSet.get(priceSetId);
|
|
20
|
+
if (group) {
|
|
21
|
+
group.push(offer);
|
|
22
|
+
}
|
|
23
|
+
else {
|
|
24
|
+
byPriceSet.set(priceSetId, [offer]);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
if (!byPriceSet.size) {
|
|
28
|
+
return;
|
|
29
|
+
}
|
|
30
|
+
const singletons = [];
|
|
31
|
+
const siblings = [];
|
|
32
|
+
for (const [priceSetId, group] of byPriceSet) {
|
|
33
|
+
if (group.length === 1) {
|
|
34
|
+
singletons.push({ priceSetId, offer: group[0] });
|
|
35
|
+
}
|
|
36
|
+
else {
|
|
37
|
+
for (const offer of group) {
|
|
38
|
+
siblings.push({ priceSetId, offer });
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
const tasks = [];
|
|
43
|
+
if (singletons.length) {
|
|
44
|
+
tasks.push((async () => {
|
|
45
|
+
const context = {
|
|
46
|
+
...baseContext,
|
|
47
|
+
offer_id: singletons.map((s) => s.offer.id),
|
|
48
|
+
};
|
|
49
|
+
const calculated = await pricingModule.calculatePrices({ id: singletons.map((s) => s.priceSetId) }, { context: context });
|
|
50
|
+
const byPriceSetId = new Map(calculated.map((c) => [
|
|
51
|
+
c.id,
|
|
52
|
+
c,
|
|
53
|
+
]));
|
|
54
|
+
for (const { priceSetId, offer } of singletons) {
|
|
55
|
+
offer.calculated_price = byPriceSetId.get(priceSetId) ?? null;
|
|
56
|
+
}
|
|
57
|
+
})());
|
|
58
|
+
}
|
|
59
|
+
for (const { priceSetId, offer } of siblings) {
|
|
60
|
+
tasks.push((async () => {
|
|
61
|
+
const context = {
|
|
62
|
+
...baseContext,
|
|
63
|
+
offer_id: offer.id,
|
|
64
|
+
};
|
|
65
|
+
const [calculated] = await pricingModule.calculatePrices({ id: [priceSetId] }, { context: context });
|
|
66
|
+
offer.calculated_price =
|
|
67
|
+
calculated ?? null;
|
|
68
|
+
})());
|
|
69
|
+
}
|
|
70
|
+
await (0, utils_2.promiseAll)(tasks);
|
|
71
|
+
};
|
|
72
|
+
exports.wrapOffersWithCalculatedPrices = wrapOffersWithCalculatedPrices;
|
|
73
|
+
const wrapOffersWithTaxPrices = async (req, offers) => {
|
|
74
|
+
if (!req.taxContext?.taxInclusivityContext ||
|
|
75
|
+
!req.taxContext?.taxLineContext ||
|
|
76
|
+
!offers?.length) {
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
79
|
+
const items = offers
|
|
80
|
+
.map((offer) => {
|
|
81
|
+
const price = offer.calculated_price;
|
|
82
|
+
if (!price || !offer.product_id) {
|
|
83
|
+
return undefined;
|
|
84
|
+
}
|
|
85
|
+
return {
|
|
86
|
+
id: offer.id,
|
|
87
|
+
product_id: offer.product_id,
|
|
88
|
+
quantity: 1,
|
|
89
|
+
unit_price: price.calculated_amount,
|
|
90
|
+
currency_code: price.currency_code,
|
|
91
|
+
};
|
|
92
|
+
})
|
|
93
|
+
.filter((item) => !!item);
|
|
94
|
+
if (!items.length) {
|
|
95
|
+
return;
|
|
96
|
+
}
|
|
97
|
+
const taxService = req.scope.resolve(utils_1.Modules.TAX);
|
|
98
|
+
const taxLines = (await taxService.getTaxLines(items, req.taxContext.taxLineContext));
|
|
99
|
+
const taxRatesMap = new Map();
|
|
100
|
+
taxLines.forEach((taxLine) => {
|
|
101
|
+
const existing = taxRatesMap.get(taxLine.line_item_id) ?? [];
|
|
102
|
+
existing.push(taxLine);
|
|
103
|
+
taxRatesMap.set(taxLine.line_item_id, existing);
|
|
104
|
+
});
|
|
105
|
+
offers.forEach((offer) => {
|
|
106
|
+
const price = offer.calculated_price;
|
|
107
|
+
if (!price) {
|
|
108
|
+
return;
|
|
109
|
+
}
|
|
110
|
+
const taxRatesForOffer = taxRatesMap.get(offer.id) || [];
|
|
111
|
+
const { priceWithTax, priceWithoutTax } = (0, utils_2.calculateAmountsWithTax)({
|
|
112
|
+
taxLines: taxRatesForOffer,
|
|
113
|
+
amount: price.calculated_amount,
|
|
114
|
+
includesTax: price.is_calculated_price_tax_inclusive,
|
|
115
|
+
});
|
|
116
|
+
price.calculated_amount_with_tax = priceWithTax;
|
|
117
|
+
price.calculated_amount_without_tax = priceWithoutTax;
|
|
118
|
+
const { priceWithTax: originalPriceWithTax, priceWithoutTax: originalPriceWithoutTax, } = (0, utils_2.calculateAmountsWithTax)({
|
|
119
|
+
taxLines: taxRatesForOffer,
|
|
120
|
+
amount: price.original_amount,
|
|
121
|
+
includesTax: price.is_original_price_tax_inclusive,
|
|
122
|
+
});
|
|
123
|
+
price.original_amount_with_tax = originalPriceWithTax;
|
|
124
|
+
price.original_amount_without_tax = originalPriceWithoutTax;
|
|
125
|
+
});
|
|
126
|
+
};
|
|
127
|
+
exports.wrapOffersWithTaxPrices = wrapOffersWithTaxPrices;
|
|
128
|
+
const wrapOffersWithInventoryQuantityForSalesChannel = async (req, offers) => {
|
|
129
|
+
if (!offers?.length) {
|
|
130
|
+
return;
|
|
131
|
+
}
|
|
132
|
+
const salesChannelIds = (0, index_1.transformAndValidateSalesChannelIds)(req);
|
|
133
|
+
const publishableApiKeySalesChannelIds = req.publishable_key_context?.sales_channel_ids ?? [];
|
|
134
|
+
let channelToUse;
|
|
135
|
+
if (publishableApiKeySalesChannelIds.length === 1) {
|
|
136
|
+
channelToUse = publishableApiKeySalesChannelIds[0];
|
|
137
|
+
}
|
|
138
|
+
else if (salesChannelIds.length === 1) {
|
|
139
|
+
channelToUse = salesChannelIds[0];
|
|
140
|
+
}
|
|
141
|
+
else {
|
|
142
|
+
throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, `Inventory availability cannot be calculated in the given context. Either provide a single sales channel id or configure a single sales channel in the publishable key`);
|
|
143
|
+
}
|
|
144
|
+
const query = req.scope.resolve(utils_1.ContainerRegistrationKeys.QUERY);
|
|
145
|
+
const { data: channels } = await query.graph({
|
|
146
|
+
entity: "sales_channel",
|
|
147
|
+
fields: ["stock_locations.id"],
|
|
148
|
+
filters: { id: channelToUse },
|
|
149
|
+
});
|
|
150
|
+
const channelLocationIds = new Set((channels[0]?.stock_locations ?? [])
|
|
151
|
+
.map((l) => l.id)
|
|
152
|
+
.filter((id) => Boolean(id)));
|
|
153
|
+
for (const offer of offers) {
|
|
154
|
+
const links = offer.inventory_item_link ?? [];
|
|
155
|
+
if (!links.length) {
|
|
156
|
+
offer.inventory_quantity = 0;
|
|
157
|
+
offer.in_stock = false;
|
|
158
|
+
continue;
|
|
159
|
+
}
|
|
160
|
+
let offerAvailability = Number.POSITIVE_INFINITY;
|
|
161
|
+
for (const link of links) {
|
|
162
|
+
const requiredQuantity = link.required_quantity ?? 1;
|
|
163
|
+
const levels = link.inventory_item?.location_levels ?? [];
|
|
164
|
+
const stocked = levels
|
|
165
|
+
.filter((level) => channelLocationIds.has(level.location_id))
|
|
166
|
+
.reduce((sum, level) => sum + (level.stocked_quantity ?? 0), 0);
|
|
167
|
+
const itemAvailability = requiredQuantity > 0 ? Math.floor(stocked / requiredQuantity) : 0;
|
|
168
|
+
offerAvailability = Math.min(offerAvailability, itemAvailability);
|
|
169
|
+
}
|
|
170
|
+
const quantity = Number.isFinite(offerAvailability) ? offerAvailability : 0;
|
|
171
|
+
offer.inventory_quantity = quantity;
|
|
172
|
+
offer.in_stock = quantity > 0;
|
|
173
|
+
}
|
|
174
|
+
};
|
|
175
|
+
exports.wrapOffersWithInventoryQuantityForSalesChannel = wrapOffersWithInventoryQuantityForSalesChannel;
|
|
176
|
+
const splitComputedOfferFields = (fields) => {
|
|
177
|
+
const withCalculatedPrice = fields.some((f) => f === "calculated_price" || f.startsWith("calculated_price."));
|
|
178
|
+
const withInventoryQuantity = fields.includes("inventory_quantity");
|
|
179
|
+
const withInStock = fields.includes("in_stock");
|
|
180
|
+
const filteredFields = fields.filter((f) => f !== "calculated_price" &&
|
|
181
|
+
!f.startsWith("calculated_price.") &&
|
|
182
|
+
f !== "inventory_quantity" &&
|
|
183
|
+
f !== "in_stock");
|
|
184
|
+
return {
|
|
185
|
+
fields: filteredFields,
|
|
186
|
+
withCalculatedPrice,
|
|
187
|
+
withInventoryQuantity: withInventoryQuantity || withInStock,
|
|
188
|
+
};
|
|
189
|
+
};
|
|
190
|
+
exports.splitComputedOfferFields = splitComputedOfferFields;
|
|
191
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcGkvc3RvcmUvb2ZmZXJzL2hlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBR0EscURBSWtDO0FBT2xDLHFEQUErRTtBQUMvRSx3RUFBa0c7QUFnQzNGLE1BQU0sOEJBQThCLEdBQUcsS0FBSyxFQUNqRCxHQUE0QixFQUM1QixNQUF5QixFQUNWLEVBQUU7SUFDakIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxjQUFjLElBQUksQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLENBQUM7UUFDM0MsT0FBTTtJQUNSLENBQUM7SUFFRCxNQUFNLGFBQWEsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxlQUFPLENBQUMsT0FBTyxDQUFDLENBQUE7SUFDeEQsTUFBTSxXQUFXLEdBQUcsR0FBRyxDQUFDLGNBQXlDLENBQUE7SUFFakUsTUFBTSxVQUFVLEdBQUcsSUFBSSxHQUFHLEVBQTZCLENBQUE7SUFDdkQsS0FBSyxNQUFNLEtBQUssSUFBSSxNQUFNLEVBQUUsQ0FBQztRQUMzQixNQUFNLFVBQVUsR0FBRyxLQUFLLENBQUMsZUFBZSxFQUFFLFNBQVMsRUFBRSxFQUFFLENBQUE7UUFDdkQsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ2hCLFNBQVE7UUFDVixDQUFDO1FBQ0QsTUFBTSxLQUFLLEdBQUcsVUFBVSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQTtRQUN4QyxJQUFJLEtBQUssRUFBRSxDQUFDO1lBQ1YsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQTtRQUNuQixDQUFDO2FBQU0sQ0FBQztZQUNOLFVBQVUsQ0FBQyxHQUFHLENBQUMsVUFBVSxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQTtRQUNyQyxDQUFDO0lBQ0gsQ0FBQztJQUVELElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLENB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
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.storeOffersMiddlewares = void 0;
|
|
4
|
+
const http_1 = require("@medusajs/framework/http");
|
|
5
|
+
const framework_1 = require("@medusajs/framework");
|
|
6
|
+
const utils_1 = require("@medusajs/framework/utils");
|
|
7
|
+
const types_1 = require("@mercurjs/types");
|
|
8
|
+
const index_1 = require("@medusajs/medusa/api/utils/middlewares/index");
|
|
9
|
+
const query_config_1 = require("./query-config");
|
|
10
|
+
const validators_1 = require("./validators");
|
|
11
|
+
const sellers_1 = require("../../utils/sellers");
|
|
12
|
+
async function applyVisibleSellerIdsFilter(req, _res, next) {
|
|
13
|
+
req.filterableFields ??= {};
|
|
14
|
+
req.filterableFields.seller_id = await (0, sellers_1.resolveVisibleSellerIds)(req.scope);
|
|
15
|
+
next();
|
|
16
|
+
}
|
|
17
|
+
async function applyPublishedProductFilter(req, _res, next) {
|
|
18
|
+
req.filterableFields ??= {};
|
|
19
|
+
const requested = req.filterableFields.product_id;
|
|
20
|
+
const query = req.scope.resolve(utils_1.ContainerRegistrationKeys.QUERY);
|
|
21
|
+
const { data: products } = await query.graph({
|
|
22
|
+
entity: "product",
|
|
23
|
+
fields: ["id"],
|
|
24
|
+
filters: {
|
|
25
|
+
status: types_1.ProductStatus.PUBLISHED,
|
|
26
|
+
...(requested ? { id: requested } : {}),
|
|
27
|
+
},
|
|
28
|
+
});
|
|
29
|
+
req.filterableFields.product_id = products.map((p) => p.id);
|
|
30
|
+
next();
|
|
31
|
+
}
|
|
32
|
+
const pricingMiddlewares = [
|
|
33
|
+
(0, index_1.normalizeDataForContext)({ priceFieldPaths: ["calculated_price"] }),
|
|
34
|
+
(0, index_1.setPricingContext)({ priceFieldPaths: ["calculated_price"] }),
|
|
35
|
+
(0, index_1.setTaxContext)({ priceFieldPaths: ["calculated_price"] }),
|
|
36
|
+
];
|
|
37
|
+
const offerMiddlewares = [
|
|
38
|
+
(0, http_1.authenticate)("customer", ["session", "bearer"], {
|
|
39
|
+
allowUnauthenticated: true,
|
|
40
|
+
}),
|
|
41
|
+
applyVisibleSellerIdsFilter,
|
|
42
|
+
applyPublishedProductFilter,
|
|
43
|
+
...pricingMiddlewares,
|
|
44
|
+
(0, http_1.clearFiltersByKey)(["region_id", "country_code", "province", "cart_id"]),
|
|
45
|
+
];
|
|
46
|
+
exports.storeOffersMiddlewares = [
|
|
47
|
+
{
|
|
48
|
+
method: ["GET"],
|
|
49
|
+
matcher: "/store/offers",
|
|
50
|
+
middlewares: [
|
|
51
|
+
(0, framework_1.validateAndTransformQuery)(validators_1.StoreGetOffersParams, query_config_1.storeOfferQueryConfig.list),
|
|
52
|
+
...offerMiddlewares,
|
|
53
|
+
],
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
method: ["GET"],
|
|
57
|
+
matcher: "/store/offers/:id",
|
|
58
|
+
middlewares: [
|
|
59
|
+
(0, framework_1.validateAndTransformQuery)(validators_1.StoreGetOfferParams, query_config_1.storeOfferQueryConfig.retrieve),
|
|
60
|
+
...offerMiddlewares,
|
|
61
|
+
],
|
|
62
|
+
},
|
|
63
|
+
];
|
|
64
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWlkZGxld2FyZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3N0b3JlL29mZmVycy9taWRkbGV3YXJlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtREFPaUM7QUFDakMsbURBQStEO0FBQy9ELHFEQUFxRTtBQUNyRSwyQ0FBK0M7QUFDL0Msd0VBSXFEO0FBRXJELGlEQUFzRDtBQUN0RCw2Q0FBd0U7QUFDeEUsaURBQTZEO0FBRTdELEtBQUssVUFBVSwyQkFBMkIsQ0FDeEMsR0FBa0IsRUFDbEIsSUFBb0IsRUFDcEIsSUFBd0I7SUFFeEIsR0FBRyxDQUFDLGdCQUFnQixLQUFLLEVBQUUsQ0FBQTtJQUMzQixHQUFHLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxHQUFHLE1BQU0sSUFBQSxpQ0FBdUIsRUFBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUE7SUFDekUsSUFBSSxFQUFFLENBQUE7QUFDUixDQUFDO0FBRUQsS0FBSyxVQUFVLDJCQUEyQixDQUN4QyxHQUFrQixFQUNsQixJQUFvQixFQUNwQixJQUF3QjtJQUV4QixHQUFHLENBQUMsZ0JBQWdCLEtBQUssRUFBRSxDQUFBO0lBQzNCLE1BQU0sU0FBUyxHQUFHLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxVQUcxQixDQUFBO0lBRWIsTUFBTSxLQUFLLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsaUNBQXlCLENBQUMsS0FBSyxDQUFDLENBQUE7SUFDaEUsTUFBTSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsR0FBRyxNQUFNLEtBQUssQ0FBQyxLQUFLLENBQUM7UUFDM0MsTUFBTSxFQUFFLFNBQVM7UUFDakIsTUFBTSxFQUFFLENBQUMsSUFBSSxDQUFDO1FBQ2QsT0FBTyxFQUFFO1lBQ1AsTUFBTSxFQUFFLHFCQUFhLENBQUMsU0FBUztZQUMvQixHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1NBQ3hDO0tBQ0YsQ0FBQyxDQUFBO0lBRUYsR0FBRyxDQUFDLGdCQUFnQixDQUFDLFVBQVUsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBaUIsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFBO0lBQzNFLElBQUksRUFBRSxDQUFBO0FBQ1IsQ0FBQztBQUVELE1BQU0sa0JBQWtCLEdBQUc7SUFDekIsSUFBQSwrQkFBdUIsRUFBQyxFQUFFLGVBQWUsRUFBRSxDQUFDLGtCQUFrQixDQUFDLEVBQUUsQ0FBQztJQUNsRSxJQUFBLHlCQUFpQixFQUFDLEVBQUUsZUFBZSxFQUFFLENBQUMsa0JBQWtCLENBQUMsRUFBRSxDQUFDO0lBQzVELElBQUEscUJBQWEsRUFBQyxFQUFFLGVBQWUsRUFBRSxDQUFDLGtCQUFrQixDQUFDLEVBQUUsQ0FBQztDQUN6RCxDQUFBO0FBRUQsTUFBTSxnQkFBZ0IsR0FBRztJQUN2QixJQUFBLG1CQUFZLEVBQUMsVUFBVSxFQUFFLENBQUMsU0FBUyxFQUFFLFFBQVEsQ0FBQyxFQUFFO1FBQzlDLG9CQUFvQixFQUFFLElBQUk7S0FDM0IsQ0FBQztJQUNGLDJCQUEyQjtJQUMzQiwyQkFBMkI7SUFDM0IsR0FBRyxrQkFBa0I7SUFDckIsSUFBQSx3QkFBaUIsRUFBQyxDQUFDLFdBQVcsRUFBRSxjQUFjLEVBQUUsVUFBVSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0NBQ3hFLENBQUE7QUFFWSxRQUFBLHNCQUFzQixHQUFzQjtJQUN2RDtRQUNFLE1BQU0sRUFBRSxDQUFDLEtBQUssQ0FBQztRQUNmLE9BQU8sRUFBRSxlQUFlO1FBQ3hCLFdBQVcsRUFBRTtZQUNYLElBQUEscUNBQXlCLEVBQ3ZCLGlDQUFvQixFQUNwQixvQ0FBcUIsQ0FBQyxJQUFJLENBQzNCO1lBQ0QsR0FBRyxnQkFBZ0I7U0FDcEI7S0FDRjtJQUNEO1FBQ0UsTUFBTSxFQUFFLENBQUMsS0FBSyxDQUFDO1FBQ2YsT0FBTyxFQUFFLG1CQUFtQjtRQUM1QixXQUFXLEVBQUU7WUFDWCxJQUFBLHFDQUF5QixFQUN2QixnQ0FBbUIsRUFDbkIsb0NBQXFCLENBQUMsUUFBUSxDQUMvQjtZQUNELEdBQUcsZ0JBQWdCO1NBQ3BCO0tBQ0Y7Q0FDRixDQUFBIn0=
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.storeOfferQueryConfig = exports.defaultStoreOfferFields = void 0;
|
|
4
|
+
exports.defaultStoreOfferFields = [
|
|
5
|
+
"id",
|
|
6
|
+
"seller_id",
|
|
7
|
+
"variant_id",
|
|
8
|
+
"product_id",
|
|
9
|
+
"shipping_profile_id",
|
|
10
|
+
"sku",
|
|
11
|
+
"ean",
|
|
12
|
+
"upc",
|
|
13
|
+
"metadata",
|
|
14
|
+
"created_at",
|
|
15
|
+
"updated_at",
|
|
16
|
+
"seller.id",
|
|
17
|
+
"seller.name",
|
|
18
|
+
"seller.handle",
|
|
19
|
+
"product_variant.id",
|
|
20
|
+
"product_variant.title",
|
|
21
|
+
"product_variant.sku",
|
|
22
|
+
"product_variant.price_set.id",
|
|
23
|
+
"shipping_profile.id",
|
|
24
|
+
"shipping_profile.name",
|
|
25
|
+
"prices.id",
|
|
26
|
+
"prices.amount",
|
|
27
|
+
"prices.currency_code",
|
|
28
|
+
"prices.min_quantity",
|
|
29
|
+
"prices.max_quantity",
|
|
30
|
+
"inventory_item_link.id",
|
|
31
|
+
"inventory_item_link.required_quantity",
|
|
32
|
+
"inventory_item_link.inventory_item_id",
|
|
33
|
+
"inventory_item_link.inventory_item.id",
|
|
34
|
+
"inventory_item_link.inventory_item.sku",
|
|
35
|
+
"inventory_item_link.inventory_item.location_levels.id",
|
|
36
|
+
"inventory_item_link.inventory_item.location_levels.location_id",
|
|
37
|
+
"inventory_item_link.inventory_item.location_levels.stocked_quantity",
|
|
38
|
+
];
|
|
39
|
+
exports.storeOfferQueryConfig = {
|
|
40
|
+
list: {
|
|
41
|
+
defaults: exports.defaultStoreOfferFields,
|
|
42
|
+
defaultLimit: 50,
|
|
43
|
+
isList: true,
|
|
44
|
+
},
|
|
45
|
+
retrieve: {
|
|
46
|
+
defaults: exports.defaultStoreOfferFields,
|
|
47
|
+
isList: false,
|
|
48
|
+
},
|
|
49
|
+
};
|
|
50
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwaS9zdG9yZS9vZmZlcnMvcXVlcnktY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFhLFFBQUEsdUJBQXVCLEdBQUc7SUFDckMsSUFBSTtJQUNKLFdBQVc7SUFDWCxZQUFZO0lBQ1osWUFBWTtJQUNaLHFCQUFxQjtJQUNyQixLQUFLO0lBQ0wsS0FBSztJQUNMLEtBQUs7SUFDTCxVQUFVO0lBQ1YsWUFBWTtJQUNaLFlBQVk7SUFDWixXQUFXO0lBQ1gsYUFBYTtJQUNiLGVBQWU7SUFDZixvQkFBb0I7SUFDcEIsdUJBQXVCO0lBQ3ZCLHFCQUFxQjtJQUNyQiw4QkFBOEI7SUFDOUIscUJBQXFCO0lBQ3JCLHVCQUF1QjtJQUN2QixXQUFXO0lBQ1gsZUFBZTtJQUNmLHNCQUFzQjtJQUN0QixxQkFBcUI7SUFDckIscUJBQXFCO0lBQ3JCLHdCQUF3QjtJQUN4Qix1Q0FBdUM7SUFDdkMsdUNBQXVDO0lBQ3ZDLHVDQUF1QztJQUN2Qyx3Q0FBd0M7SUFDeEMsdURBQXVEO0lBQ3ZELGdFQUFnRTtJQUNoRSxxRUFBcUU7Q0FDdEUsQ0FBQTtBQUVZLFFBQUEscUJBQXFCLEdBQUc7SUFDbkMsSUFBSSxFQUFFO1FBQ0osUUFBUSxFQUFFLCtCQUF1QjtRQUNqQyxZQUFZLEVBQUUsRUFBRTtRQUNoQixNQUFNLEVBQUUsSUFBSTtLQUNiO0lBQ0QsUUFBUSxFQUFFO1FBQ1IsUUFBUSxFQUFFLCtCQUF1QjtRQUNqQyxNQUFNLEVBQUUsS0FBSztLQUNkO0NBQ0YsQ0FBQSJ9
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.GET = void 0;
|
|
4
|
+
const utils_1 = require("@medusajs/framework/utils");
|
|
5
|
+
const helpers_1 = require("./helpers");
|
|
6
|
+
const GET = async (req, res) => {
|
|
7
|
+
const query = req.scope.resolve(utils_1.ContainerRegistrationKeys.QUERY);
|
|
8
|
+
const { fields, withCalculatedPrice, withInventoryQuantity } = (0, helpers_1.splitComputedOfferFields)(req.queryConfig.fields);
|
|
9
|
+
const { data: offers, metadata } = await query.graph({
|
|
10
|
+
entity: "offer",
|
|
11
|
+
fields: fields,
|
|
12
|
+
filters: req.filterableFields,
|
|
13
|
+
pagination: req.queryConfig.pagination,
|
|
14
|
+
});
|
|
15
|
+
if (withCalculatedPrice) {
|
|
16
|
+
await (0, helpers_1.wrapOffersWithCalculatedPrices)(req, offers);
|
|
17
|
+
await (0, helpers_1.wrapOffersWithTaxPrices)(req, offers);
|
|
18
|
+
}
|
|
19
|
+
if (withInventoryQuantity) {
|
|
20
|
+
await (0, helpers_1.wrapOffersWithInventoryQuantityForSalesChannel)(req, offers);
|
|
21
|
+
}
|
|
22
|
+
res.json({
|
|
23
|
+
offers,
|
|
24
|
+
count: metadata?.count ?? 0,
|
|
25
|
+
offset: metadata?.skip ?? 0,
|
|
26
|
+
limit: metadata?.take ?? 0,
|
|
27
|
+
});
|
|
28
|
+
};
|
|
29
|
+
exports.GET = GET;
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3N0b3JlL29mZmVycy9yb3V0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFJQSxxREFBcUU7QUFFckUsdUNBS2tCO0FBR1gsTUFBTSxHQUFHLEdBQUcsS0FBSyxFQUN0QixHQUFpRCxFQUNqRCxHQUFtQixFQUNuQixFQUFFO0lBQ0YsTUFBTSxLQUFLLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsaUNBQXlCLENBQUMsS0FBSyxDQUFDLENBQUE7SUFFaEUsTUFBTSxFQUFFLE1BQU0sRUFBRSxtQkFBbUIsRUFBRSxxQkFBcUIsRUFBRSxHQUMxRCxJQUFBLGtDQUF3QixFQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUE7SUFFbEQsTUFBTSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLEdBQUcsTUFBTSxLQUFLLENBQUMsS0FBSyxDQUFDO1FBQ25ELE1BQU0sRUFBRSxPQUFPO1FBQ2YsTUFBTSxFQUFFLE1BQU07UUFDZCxPQUFPLEVBQUUsR0FBRyxDQUFDLGdCQUFnQjtRQUM3QixVQUFVLEVBQUUsR0FBRyxDQUFDLFdBQVcsQ0FBQyxVQUFVO0tBQ3ZDLENBQUMsQ0FBQTtJQUVGLElBQUksbUJBQW1CLEVBQUUsQ0FBQztRQUN4QixNQUFNLElBQUEsd0NBQThCLEVBQ2xDLEdBQUcsRUFDSCxNQUFNLENBQ1AsQ0FBQTtRQUNELE1BQU0sSUFBQSxpQ0FBdUIsRUFBQyxHQUFHLEVBQUUsTUFBTSxDQUFDLENBQUE7SUFDNUMsQ0FBQztJQUVELElBQUkscUJBQXFCLEVBQUUsQ0FBQztRQUMxQixNQUFNLElBQUEsd0RBQThDLEVBQUMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxDQUFBO0lBQ25FLENBQUM7SUFFRCxHQUFHLENBQUMsSUFBSSxDQUFDO1FBQ1AsTUFBTTtRQUNOLEtBQUssRUFBRSxRQUFRLEVBQUUsS0FBSyxJQUFJLENBQUM7UUFDM0IsTUFBTSxFQUFFLFFBQVEsRUFBRSxJQUFJLElBQUksQ0FBQztRQUMzQixLQUFLLEVBQUUsUUFBUSxFQUFFLElBQUksSUFBSSxDQUFDO0tBQzNCLENBQUMsQ0FBQTtBQUNKLENBQUMsQ0FBQTtBQWxDWSxRQUFBLEdBQUcsT0FrQ2YifQ==
|