@mercurjs/b2c-core 1.5.0 → 1.5.1
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/inventory-items/[id]/location-levels/[location_id]/route.d.ts +3 -0
- package/.medusa/server/src/api/admin/inventory-items/[id]/location-levels/[location_id]/route.js +36 -0
- package/.medusa/server/src/api/admin/notifications/route.js +8 -8
- package/.medusa/server/src/api/admin/sellers/validators.d.ts +2 -2
- package/.medusa/server/src/api/admin/sellers/validators.js +9 -7
- package/.medusa/server/src/api/store/carts/[id]/promotions/route.js +3 -4
- package/.medusa/server/src/api/store/middlewares.js +11 -9
- package/.medusa/server/src/api/store/products/middlewares.d.ts +2 -0
- package/.medusa/server/src/api/store/products/middlewares.js +13 -0
- package/.medusa/server/src/api/store/products/search/route.d.ts +81 -0
- package/.medusa/server/src/api/store/products/search/route.js +170 -0
- package/.medusa/server/src/api/store/products/validators.d.ts +36 -0
- package/.medusa/server/src/api/store/products/validators.js +17 -0
- package/.medusa/server/src/api/store/wishlist/middlewares.d.ts +1 -1
- package/.medusa/server/src/api/store/wishlist/middlewares.js +47 -25
- package/.medusa/server/src/api/store/wishlist/{[id]/product → product}/[reference_id]/route.d.ts +3 -9
- package/.medusa/server/src/api/store/wishlist/product/[reference_id]/route.js +65 -0
- package/.medusa/server/src/api/store/wishlist/route.d.ts +789 -28
- package/.medusa/server/src/api/store/wishlist/route.js +817 -37
- package/.medusa/server/src/api/vendor/campaigns/validators.js +4 -4
- package/.medusa/server/src/api/vendor/inventory-items/[id]/location-levels/[location_id]/route.js +2 -5
- package/.medusa/server/src/api/vendor/inventory-items/[id]/location-levels/batch/route.js +2 -2
- package/.medusa/server/src/api/vendor/orders/validators.d.ts +4 -4
- package/.medusa/server/src/api/vendor/payout-account/route.js +3 -2
- package/.medusa/server/src/api/vendor/price-lists/[id]/prices/route.d.ts +2 -2
- package/.medusa/server/src/api/vendor/price-lists/[id]/prices/route.js +2 -2
- package/.medusa/server/src/api/vendor/price-lists/route.d.ts +1 -1
- package/.medusa/server/src/api/vendor/price-lists/route.js +27 -8
- package/.medusa/server/src/api/vendor/product-collections/middlewares.js +2 -2
- package/.medusa/server/src/api/vendor/product-collections/route.d.ts +18 -0
- package/.medusa/server/src/api/vendor/product-collections/route.js +19 -1
- package/.medusa/server/src/api/vendor/product-collections/validators.d.ts +404 -15
- package/.medusa/server/src/api/vendor/product-collections/validators.js +18 -3
- package/.medusa/server/src/api/vendor/product-tags/route.d.ts +4 -1
- package/.medusa/server/src/api/vendor/product-tags/route.js +8 -8
- package/.medusa/server/src/api/vendor/products/route.d.ts +8 -2
- package/.medusa/server/src/api/vendor/products/route.js +28 -20
- package/.medusa/server/src/api/vendor/products/utils.d.ts +20 -1
- package/.medusa/server/src/api/vendor/products/utils.js +81 -5
- package/.medusa/server/src/api/vendor/products/validators.d.ts +60 -0
- package/.medusa/server/src/api/vendor/products/validators.js +8 -2
- package/.medusa/server/src/api/vendor/promotions/route.d.ts +86 -2
- package/.medusa/server/src/api/vendor/promotions/route.js +116 -7
- package/.medusa/server/src/api/vendor/promotions/validators.d.ts +237 -38
- package/.medusa/server/src/api/vendor/promotions/validators.js +23 -5
- package/.medusa/server/src/api/vendor/shipping-profiles/route.d.ts +31 -2
- package/.medusa/server/src/api/vendor/shipping-profiles/route.js +61 -10
- package/.medusa/server/src/api/vendor/shipping-profiles/validators.d.ts +92 -3
- package/.medusa/server/src/api/vendor/shipping-profiles/validators.js +10 -2
- package/.medusa/server/src/api/vendor/stock-locations/validators.d.ts +10 -10
- package/.medusa/server/src/links/wishlist-product.js +3 -3
- package/.medusa/server/src/modules/seller/utils.d.ts +1 -1
- package/.medusa/server/src/modules/seller/utils.js +37 -10
- package/.medusa/server/src/shared/infra/http/utils/products.js +8 -2
- package/.medusa/server/src/workflows/attribute/steps/validate-attribute-value.js +7 -3
- package/.medusa/server/src/workflows/attribute/utils/products-updated-handler.d.ts +3 -3
- package/.medusa/server/src/workflows/attribute/utils/products-updated-handler.js +17 -15
- package/.medusa/server/src/workflows/hooks/fetch-shipping-option-pricing-context.d.ts +1 -0
- package/.medusa/server/src/workflows/hooks/fetch-shipping-option-pricing-context.js +97 -0
- package/.medusa/server/src/workflows/promotions/steps/index.d.ts +2 -0
- package/.medusa/server/src/workflows/promotions/steps/index.js +3 -1
- package/.medusa/server/src/workflows/promotions/steps/inject-seller-product-rule.d.ts +6 -0
- package/.medusa/server/src/workflows/promotions/steps/inject-seller-product-rule.js +40 -0
- package/.medusa/server/src/workflows/promotions/steps/verify-seller-product-rule-deletion.d.ts +9 -0
- package/.medusa/server/src/workflows/promotions/steps/verify-seller-product-rule-deletion.js +27 -0
- package/.medusa/server/src/workflows/promotions/steps/verify-vendor-target-promotion-rules.d.ts +5 -0
- package/.medusa/server/src/workflows/promotions/steps/verify-vendor-target-promotion-rules.js +27 -11
- package/.medusa/server/src/workflows/promotions/workflows/batch-vendor-promotion-rules.js +5 -1
- package/.medusa/server/src/workflows/promotions/workflows/create-vendor-promotion.js +4 -3
- package/.medusa/server/src/workflows/seller/steps/validate-products-to-import.d.ts +5 -0
- package/package.json +1 -1
- package/.medusa/server/src/api/store/wishlist/[id]/product/[reference_id]/route.js +0 -61
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const utils_1 = require("@medusajs/framework/utils");
|
|
7
|
+
const core_flows_1 = require("@medusajs/medusa/core-flows");
|
|
8
|
+
const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
|
|
9
|
+
const seller_order_1 = __importDefault(require("../../links/seller-order"));
|
|
10
|
+
const seller_shipping_option_1 = __importDefault(require("../../links/seller-shipping-option"));
|
|
11
|
+
const seller_stock_location_1 = __importDefault(require("../../links/seller-stock-location"));
|
|
12
|
+
/**
|
|
13
|
+
* This hook provides the pricing context for shipping options in RMA flows (claims, returns, exchanges).
|
|
14
|
+
*
|
|
15
|
+
* In a marketplace scenario, shipping options are linked to seller stock locations.
|
|
16
|
+
* When an admin creates a claim on a seller's order, the shipping option's price needs
|
|
17
|
+
* to be calculated using the seller's stock location context.
|
|
18
|
+
*
|
|
19
|
+
* Without this hook, the pricing calculation fails because:
|
|
20
|
+
* 1. The shipping option belongs to a seller's fulfillment set/stock location
|
|
21
|
+
* 2. The default pricing context doesn't include the stock location
|
|
22
|
+
* 3. The calculated_price returns null, causing the workflow to fail
|
|
23
|
+
*/
|
|
24
|
+
core_flows_1.fetchShippingOptionForOrderWorkflow.hooks.setPricingContext(async ({ shipping_option_id, currency_code, order_id, context, additional_data }, { container }) => {
|
|
25
|
+
const query = container.resolve(utils_1.ContainerRegistrationKeys.QUERY);
|
|
26
|
+
const { data: sellerOrderLinks } = await query.graph({
|
|
27
|
+
entity: seller_order_1.default.entryPoint,
|
|
28
|
+
fields: ["seller_id"],
|
|
29
|
+
filters: {
|
|
30
|
+
order_id: order_id,
|
|
31
|
+
},
|
|
32
|
+
});
|
|
33
|
+
if (!sellerOrderLinks.length) {
|
|
34
|
+
return new workflows_sdk_1.StepResponse({});
|
|
35
|
+
}
|
|
36
|
+
const { data: orderData } = await query.graph({
|
|
37
|
+
entity: "order",
|
|
38
|
+
fields: ["id", "region_id"],
|
|
39
|
+
filters: {
|
|
40
|
+
id: order_id,
|
|
41
|
+
},
|
|
42
|
+
});
|
|
43
|
+
const regionId = orderData[0]?.region_id;
|
|
44
|
+
const { data: shippingOptionData } = await query.graph({
|
|
45
|
+
entity: "shipping_option",
|
|
46
|
+
fields: [
|
|
47
|
+
"id",
|
|
48
|
+
"service_zone.fulfillment_set.location.id",
|
|
49
|
+
"service_zone.fulfillment_set.location.name",
|
|
50
|
+
],
|
|
51
|
+
filters: {
|
|
52
|
+
id: shipping_option_id,
|
|
53
|
+
},
|
|
54
|
+
});
|
|
55
|
+
const shippingOption = shippingOptionData[0];
|
|
56
|
+
const locationFromOption = shippingOption?.service_zone?.fulfillment_set?.location;
|
|
57
|
+
if (locationFromOption?.id) {
|
|
58
|
+
return new workflows_sdk_1.StepResponse({
|
|
59
|
+
location_id: locationFromOption.id,
|
|
60
|
+
...(regionId && { region_id: regionId }),
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
const { data: shippingOptionSeller } = await query.graph({
|
|
64
|
+
entity: seller_shipping_option_1.default.entryPoint,
|
|
65
|
+
fields: ["seller_id"],
|
|
66
|
+
filters: {
|
|
67
|
+
shipping_option_id: shipping_option_id,
|
|
68
|
+
},
|
|
69
|
+
});
|
|
70
|
+
const shippingOptionSellerId = shippingOptionSeller[0]?.seller_id;
|
|
71
|
+
if (shippingOptionSellerId) {
|
|
72
|
+
const { data: sellerLocations } = await query.graph({
|
|
73
|
+
entity: seller_stock_location_1.default.entryPoint,
|
|
74
|
+
fields: [
|
|
75
|
+
"stock_location_id",
|
|
76
|
+
"stock_location.fulfillment_sets.id",
|
|
77
|
+
"stock_location.fulfillment_sets.service_zones.shipping_options.id",
|
|
78
|
+
],
|
|
79
|
+
filters: {
|
|
80
|
+
seller_id: shippingOptionSellerId,
|
|
81
|
+
},
|
|
82
|
+
});
|
|
83
|
+
for (const location of sellerLocations) {
|
|
84
|
+
const hasShippingOption = location.stock_location?.fulfillment_sets?.some((fs) => fs.service_zones?.some((sz) => sz.shipping_options?.some((so) => so.id === shipping_option_id)));
|
|
85
|
+
if (hasShippingOption) {
|
|
86
|
+
return new workflows_sdk_1.StepResponse({
|
|
87
|
+
location_id: location.stock_location_id,
|
|
88
|
+
...(regionId && { region_id: regionId }),
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
return new workflows_sdk_1.StepResponse({
|
|
94
|
+
...(regionId && { region_id: regionId }),
|
|
95
|
+
});
|
|
96
|
+
});
|
|
97
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmV0Y2gtc2hpcHBpbmctb3B0aW9uLXByaWNpbmctY29udGV4dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy93b3JrZmxvd3MvaG9va3MvZmV0Y2gtc2hpcHBpbmctb3B0aW9uLXByaWNpbmctY29udGV4dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLHFEQUFzRTtBQUN0RSw0REFBa0Y7QUFDbEYscUVBQWlFO0FBRWpFLDRFQUFtRDtBQUNuRCxnR0FBc0U7QUFDdEUsOEZBQW9FO0FBcUJwRTs7Ozs7Ozs7Ozs7R0FXRztBQUNILGdEQUFtQyxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsQ0FDekQsS0FBSyxFQUNILEVBQUUsa0JBQWtCLEVBQUUsYUFBYSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsZUFBZSxFQUFFLEVBQ3pFLEVBQUUsU0FBUyxFQUFFLEVBQ2IsRUFBRTtJQUNGLE1BQU0sS0FBSyxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsaUNBQXlCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFFakUsTUFBTSxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxHQUFHLE1BQU0sS0FBSyxDQUFDLEtBQUssQ0FBQztRQUNuRCxNQUFNLEVBQUUsc0JBQVcsQ0FBQyxVQUFVO1FBQzlCLE1BQU0sRUFBRSxDQUFDLFdBQVcsQ0FBQztRQUNyQixPQUFPLEVBQUU7WUFDUCxRQUFRLEVBQUUsUUFBUTtTQUNuQjtLQUNGLENBQUMsQ0FBQztJQUVILElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUM3QixPQUFPLElBQUksNEJBQVksQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRUQsTUFBTSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsR0FBRyxNQUFNLEtBQUssQ0FBQyxLQUFLLENBQUM7UUFDNUMsTUFBTSxFQUFFLE9BQU87UUFDZixNQUFNLEVBQUUsQ0FBQyxJQUFJLEVBQUUsV0FBVyxDQUFDO1FBQzNCLE9BQU8sRUFBRTtZQUNQLEVBQUUsRUFBRSxRQUFRO1NBQ2I7S0FDRixDQUFDLENBQUM7SUFFSCxNQUFNLFFBQVEsR0FBSSxTQUFTLENBQUMsQ0FBQyxDQUEyQixFQUFFLFNBQVMsQ0FBQztJQUVwRSxNQUFNLEVBQUUsSUFBSSxFQUFFLGtCQUFrQixFQUFFLEdBQUcsTUFBTSxLQUFLLENBQUMsS0FBSyxDQUFDO1FBQ3JELE1BQU0sRUFBRSxpQkFBaUI7UUFDekIsTUFBTSxFQUFFO1lBQ04sSUFBSTtZQUNKLDBDQUEwQztZQUMxQyw0Q0FBNEM7U0FDN0M7UUFDRCxPQUFPLEVBQUU7WUFDUCxFQUFFLEVBQUUsa0JBQWtCO1NBQ3ZCO0tBQ0YsQ0FBQyxDQUFDO0lBRUgsTUFBTSxjQUFjLEdBQUcsa0JBQWtCLENBQUMsQ0FBQyxDQUFRLENBQUM7SUFDcEQsTUFBTSxrQkFBa0IsR0FDdEIsY0FBYyxFQUFFLFlBQVksRUFBRSxlQUFlLEVBQUUsUUFBUSxDQUFDO0lBRTFELElBQUksa0JBQWtCLEVBQUUsRUFBRSxFQUFFLENBQUM7UUFDM0IsT0FBTyxJQUFJLDRCQUFZLENBQUM7WUFDdEIsV0FBVyxFQUFFLGtCQUFrQixDQUFDLEVBQUU7WUFDbEMsR0FBRyxDQUFDLFFBQVEsSUFBSSxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsQ0FBQztTQUN6QyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsTUFBTSxFQUFFLElBQUksRUFBRSxvQkFBb0IsRUFBRSxHQUFHLE1BQU0sS0FBSyxDQUFDLEtBQUssQ0FBQztRQUN2RCxNQUFNLEVBQUUsZ0NBQW9CLENBQUMsVUFBVTtRQUN2QyxNQUFNLEVBQUUsQ0FBQyxXQUFXLENBQUM7UUFDckIsT0FBTyxFQUFFO1lBQ1Asa0JBQWtCLEVBQUUsa0JBQWtCO1NBQ3ZDO0tBQ0YsQ0FBQyxDQUFDO0lBRUgsTUFBTSxzQkFBc0IsR0FBRyxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsRUFBRSxTQUFTLENBQUM7SUFFbEUsSUFBSSxzQkFBc0IsRUFBRSxDQUFDO1FBQzNCLE1BQU0sRUFBRSxJQUFJLEVBQUUsZUFBZSxFQUFFLEdBQUcsTUFBTSxLQUFLLENBQUMsS0FBSyxDQUFDO1lBQ2xELE1BQU0sRUFBRSwrQkFBbUIsQ0FBQyxVQUFVO1lBQ3RDLE1BQU0sRUFBRTtnQkFDTixtQkFBbUI7Z0JBQ25CLG9DQUFvQztnQkFDcEMsbUVBQW1FO2FBQ3BFO1lBQ0QsT0FBTyxFQUFFO2dCQUNQLFNBQVMsRUFBRSxzQkFBc0I7YUFDbEM7U0FDRixDQUFtRCxDQUFDO1FBRXJELEtBQUssTUFBTSxRQUFRLElBQUksZUFBZSxFQUFFLENBQUM7WUFDdkMsTUFBTSxpQkFBaUIsR0FBRyxRQUFRLENBQUMsY0FBYyxFQUFFLGdCQUFnQixFQUFFLElBQUksQ0FDdkUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUNMLEVBQUUsQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FDNUIsRUFBRSxDQUFDLGdCQUFnQixFQUFFLElBQUksQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsS0FBSyxrQkFBa0IsQ0FBQyxDQUNoRSxDQUNKLENBQUM7WUFFRixJQUFJLGlCQUFpQixFQUFFLENBQUM7Z0JBQ3RCLE9BQU8sSUFBSSw0QkFBWSxDQUFDO29CQUN0QixXQUFXLEVBQUUsUUFBUSxDQUFDLGlCQUFpQjtvQkFDdkMsR0FBRyxDQUFDLFFBQVEsSUFBSSxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsQ0FBQztpQkFDekMsQ0FBQyxDQUFDO1lBQ0wsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRUQsT0FBTyxJQUFJLDRCQUFZLENBQUM7UUFDdEIsR0FBRyxDQUFDLFFBQVEsSUFBSSxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsQ0FBQztLQUN6QyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQ0YsQ0FBQyJ9
|
|
@@ -2,3 +2,5 @@ export * from './verify-vendor-promotion';
|
|
|
2
2
|
export * from './verify-vendor-campaign';
|
|
3
3
|
export * from './verify-vendor-target-promotion-rules';
|
|
4
4
|
export * from './register-usage-step';
|
|
5
|
+
export * from './inject-seller-product-rule';
|
|
6
|
+
export * from './verify-seller-product-rule-deletion';
|
|
@@ -18,4 +18,6 @@ __exportStar(require("./verify-vendor-promotion"), exports);
|
|
|
18
18
|
__exportStar(require("./verify-vendor-campaign"), exports);
|
|
19
19
|
__exportStar(require("./verify-vendor-target-promotion-rules"), exports);
|
|
20
20
|
__exportStar(require("./register-usage-step"), exports);
|
|
21
|
-
|
|
21
|
+
__exportStar(require("./inject-seller-product-rule"), exports);
|
|
22
|
+
__exportStar(require("./verify-seller-product-rule-deletion"), exports);
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL3Byb21vdGlvbnMvc3RlcHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDREQUF5QztBQUN6QywyREFBd0M7QUFDeEMseUVBQXNEO0FBQ3RELHdEQUFxQztBQUNyQywrREFBNEM7QUFDNUMsd0VBQXFEIn0=
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { CreatePromotionDTO } from '@medusajs/framework/types';
|
|
2
|
+
export declare const SELLER_PRODUCTS_RULE_DESCRIPTION = "seller_products_default_rule";
|
|
3
|
+
export declare const injectSellerProductRuleStep: import("@medusajs/framework/workflows-sdk").StepFunction<{
|
|
4
|
+
promotion: CreatePromotionDTO;
|
|
5
|
+
seller_id: string;
|
|
6
|
+
}, CreatePromotionDTO>;
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.injectSellerProductRuleStep = exports.SELLER_PRODUCTS_RULE_DESCRIPTION = void 0;
|
|
7
|
+
const utils_1 = require("@medusajs/framework/utils");
|
|
8
|
+
const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
|
|
9
|
+
const seller_product_1 = __importDefault(require("../../../links/seller-product"));
|
|
10
|
+
exports.SELLER_PRODUCTS_RULE_DESCRIPTION = 'seller_products_default_rule';
|
|
11
|
+
exports.injectSellerProductRuleStep = (0, workflows_sdk_1.createStep)('inject-seller-product-rule', async (input, { container }) => {
|
|
12
|
+
const query = container.resolve(utils_1.ContainerRegistrationKeys.QUERY);
|
|
13
|
+
const { data: sellerProducts } = await query.graph({
|
|
14
|
+
entity: seller_product_1.default.entryPoint,
|
|
15
|
+
fields: ['product_id'],
|
|
16
|
+
filters: {
|
|
17
|
+
seller_id: input.seller_id
|
|
18
|
+
}
|
|
19
|
+
});
|
|
20
|
+
const productIds = sellerProducts.map((sp) => sp.product_id);
|
|
21
|
+
if (productIds.length === 0) {
|
|
22
|
+
throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, 'Seller has no products. Cannot create a promotion without products.');
|
|
23
|
+
}
|
|
24
|
+
const existingTargetRules = input.promotion.application_method?.target_rules || [];
|
|
25
|
+
const sellerProductRule = {
|
|
26
|
+
attribute: 'items.product.id',
|
|
27
|
+
operator: 'in',
|
|
28
|
+
values: productIds,
|
|
29
|
+
description: exports.SELLER_PRODUCTS_RULE_DESCRIPTION
|
|
30
|
+
};
|
|
31
|
+
const promotionWithDefaultRule = {
|
|
32
|
+
...input.promotion,
|
|
33
|
+
application_method: {
|
|
34
|
+
...input.promotion.application_method,
|
|
35
|
+
target_rules: [sellerProductRule, ...existingTargetRules]
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
return new workflows_sdk_1.StepResponse(promotionWithDefaultRule);
|
|
39
|
+
});
|
|
40
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5qZWN0LXNlbGxlci1wcm9kdWN0LXJ1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL3Byb21vdGlvbnMvc3RlcHMvaW5qZWN0LXNlbGxlci1wcm9kdWN0LXJ1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQ0EscURBR2tDO0FBQ2xDLHFFQUE0RTtBQUU1RSxtRkFBeUQ7QUFFNUMsUUFBQSxnQ0FBZ0MsR0FBRyw4QkFBOEIsQ0FBQTtBQUVqRSxRQUFBLDJCQUEyQixHQUFHLElBQUEsMEJBQVUsRUFDbkQsNEJBQTRCLEVBQzVCLEtBQUssRUFDSCxLQUEyRCxFQUMzRCxFQUFFLFNBQVMsRUFBRSxFQUNiLEVBQUU7SUFDRixNQUFNLEtBQUssR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFDLGlDQUF5QixDQUFDLEtBQUssQ0FBQyxDQUFBO0lBRWhFLE1BQU0sRUFBRSxJQUFJLEVBQUUsY0FBYyxFQUFFLEdBQUcsTUFBTSxLQUFLLENBQUMsS0FBSyxDQUFDO1FBQ2pELE1BQU0sRUFBRSx3QkFBYSxDQUFDLFVBQVU7UUFDaEMsTUFBTSxFQUFFLENBQUMsWUFBWSxDQUFDO1FBQ3RCLE9BQU8sRUFBRTtZQUNQLFNBQVMsRUFBRSxLQUFLLENBQUMsU0FBUztTQUMzQjtLQUNGLENBQUMsQ0FBQTtJQUVGLE1BQU0sVUFBVSxHQUFHLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsQ0FBQTtJQUU1RCxJQUFJLFVBQVUsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDNUIsTUFBTSxJQUFJLG1CQUFXLENBQ25CLG1CQUFXLENBQUMsS0FBSyxDQUFDLFlBQVksRUFDOUIscUVBQXFFLENBQ3RFLENBQUE7SUFDSCxDQUFDO0lBRUQsTUFBTSxtQkFBbUIsR0FDdkIsS0FBSyxDQUFDLFNBQVMsQ0FBQyxrQkFBa0IsRUFBRSxZQUFZLElBQUksRUFBRSxDQUFBO0lBRXhELE1BQU0saUJBQWlCLEdBQUc7UUFDeEIsU0FBUyxFQUFFLGtCQUFrQjtRQUM3QixRQUFRLEVBQUUsSUFBYTtRQUN2QixNQUFNLEVBQUUsVUFBVTtRQUNsQixXQUFXLEVBQUUsd0NBQWdDO0tBQzlDLENBQUE7SUFFRCxNQUFNLHdCQUF3QixHQUF1QjtRQUNuRCxHQUFHLEtBQUssQ0FBQyxTQUFTO1FBQ2xCLGtCQUFrQixFQUFFO1lBQ2xCLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQyxrQkFBa0I7WUFDckMsWUFBWSxFQUFFLENBQUMsaUJBQWlCLEVBQUUsR0FBRyxtQkFBbUIsQ0FBQztTQUMxRDtLQUNGLENBQUE7SUFFRCxPQUFPLElBQUksNEJBQVksQ0FBQyx3QkFBd0IsQ0FBQyxDQUFBO0FBQ25ELENBQUMsQ0FDRixDQUFBIn0=
|
package/.medusa/server/src/workflows/promotions/steps/verify-seller-product-rule-deletion.d.ts
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Verifies that the default seller products rule cannot be deleted.
|
|
3
|
+
* This rule is automatically added when creating a vendor promotion
|
|
4
|
+
* and ensures promotions only apply to the seller's own products.
|
|
5
|
+
*/
|
|
6
|
+
export declare const verifySellerProductRuleDeletionStep: import("@medusajs/framework/workflows-sdk").StepFunction<{
|
|
7
|
+
promotion_id: string;
|
|
8
|
+
rule_ids_to_delete: string[];
|
|
9
|
+
}, unknown>;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.verifySellerProductRuleDeletionStep = void 0;
|
|
4
|
+
const utils_1 = require("@medusajs/framework/utils");
|
|
5
|
+
const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
|
|
6
|
+
const inject_seller_product_rule_1 = require("./inject-seller-product-rule");
|
|
7
|
+
/**
|
|
8
|
+
* Verifies that the default seller products rule cannot be deleted.
|
|
9
|
+
* This rule is automatically added when creating a vendor promotion
|
|
10
|
+
* and ensures promotions only apply to the seller's own products.
|
|
11
|
+
*/
|
|
12
|
+
exports.verifySellerProductRuleDeletionStep = (0, workflows_sdk_1.createStep)('verify-seller-product-rule-deletion', async (input, { container }) => {
|
|
13
|
+
if (!input.rule_ids_to_delete || input.rule_ids_to_delete.length === 0) {
|
|
14
|
+
return;
|
|
15
|
+
}
|
|
16
|
+
const promotionModuleService = container.resolve(utils_1.Modules.PROMOTION);
|
|
17
|
+
const promotion = await promotionModuleService.retrievePromotion(input.promotion_id, {
|
|
18
|
+
relations: ['application_method.target_rules']
|
|
19
|
+
});
|
|
20
|
+
const targetRules = promotion.application_method?.target_rules || [];
|
|
21
|
+
const sellerProductsRule = targetRules.find((rule) => rule.description === inject_seller_product_rule_1.SELLER_PRODUCTS_RULE_DESCRIPTION);
|
|
22
|
+
if (sellerProductsRule &&
|
|
23
|
+
input.rule_ids_to_delete.includes(sellerProductsRule.id)) {
|
|
24
|
+
throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, 'Cannot delete the default seller products rule. This rule ensures the promotion only applies to your products.');
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyaWZ5LXNlbGxlci1wcm9kdWN0LXJ1bGUtZGVsZXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL3Byb21vdGlvbnMvc3RlcHMvdmVyaWZ5LXNlbGxlci1wcm9kdWN0LXJ1bGUtZGVsZXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscURBQWdFO0FBQ2hFLHFFQUE4RDtBQUU5RCw2RUFBK0U7QUFFL0U7Ozs7R0FJRztBQUNVLFFBQUEsbUNBQW1DLEdBQUcsSUFBQSwwQkFBVSxFQUMzRCxxQ0FBcUMsRUFDckMsS0FBSyxFQUNILEtBQTZELEVBQzdELEVBQUUsU0FBUyxFQUFFLEVBQ2IsRUFBRTtJQUNGLElBQUksQ0FBQyxLQUFLLENBQUMsa0JBQWtCLElBQUksS0FBSyxDQUFDLGtCQUFrQixDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUN2RSxPQUFNO0lBQ1IsQ0FBQztJQUVELE1BQU0sc0JBQXNCLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxlQUFPLENBQUMsU0FBUyxDQUFDLENBQUE7SUFFbkUsTUFBTSxTQUFTLEdBQUcsTUFBTSxzQkFBc0IsQ0FBQyxpQkFBaUIsQ0FDOUQsS0FBSyxDQUFDLFlBQVksRUFDbEI7UUFDRSxTQUFTLEVBQUUsQ0FBQyxpQ0FBaUMsQ0FBQztLQUMvQyxDQUNGLENBQUE7SUFFRCxNQUFNLFdBQVcsR0FBRyxTQUFTLENBQUMsa0JBQWtCLEVBQUUsWUFBWSxJQUFJLEVBQUUsQ0FBQTtJQUVwRSxNQUFNLGtCQUFrQixHQUFHLFdBQVcsQ0FBQyxJQUFJLENBQ3pDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxLQUFLLDZEQUFnQyxDQUNoRSxDQUFBO0lBRUQsSUFDRSxrQkFBa0I7UUFDbEIsS0FBSyxDQUFDLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLENBQUMsRUFDeEQsQ0FBQztRQUNELE1BQU0sSUFBSSxtQkFBVyxDQUNuQixtQkFBVyxDQUFDLEtBQUssQ0FBQyxZQUFZLEVBQzlCLGdIQUFnSCxDQUNqSCxDQUFBO0lBQ0gsQ0FBQztBQUNILENBQUMsQ0FDRixDQUFBIn0=
|
package/.medusa/server/src/workflows/promotions/steps/verify-vendor-target-promotion-rules.d.ts
CHANGED
|
@@ -1,4 +1,9 @@
|
|
|
1
1
|
import { CreatePromotionRuleDTO } from '@medusajs/framework/types';
|
|
2
|
+
/**
|
|
3
|
+
* Verifies that any product-based target rules in a promotion only reference
|
|
4
|
+
* products that belong to the seller. Other attribute types (category, collection, etc.)
|
|
5
|
+
* are allowed and will be combined with the default seller products rule using AND logic.
|
|
6
|
+
*/
|
|
2
7
|
export declare const verifyVendorTargetPromotionRulesStep: import("@medusajs/framework/workflows-sdk").StepFunction<{
|
|
3
8
|
rules?: CreatePromotionRuleDTO[];
|
|
4
9
|
seller_id: string;
|
package/.medusa/server/src/workflows/promotions/steps/verify-vendor-target-promotion-rules.js
CHANGED
|
@@ -7,25 +7,41 @@ exports.verifyVendorTargetPromotionRulesStep = void 0;
|
|
|
7
7
|
const utils_1 = require("@medusajs/framework/utils");
|
|
8
8
|
const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
|
|
9
9
|
const seller_product_1 = __importDefault(require("../../../links/seller-product"));
|
|
10
|
+
const inject_seller_product_rule_1 = require("./inject-seller-product-rule");
|
|
11
|
+
/**
|
|
12
|
+
* Verifies that any product-based target rules in a promotion only reference
|
|
13
|
+
* products that belong to the seller. Other attribute types (category, collection, etc.)
|
|
14
|
+
* are allowed and will be combined with the default seller products rule using AND logic.
|
|
15
|
+
*/
|
|
10
16
|
exports.verifyVendorTargetPromotionRulesStep = (0, workflows_sdk_1.createStep)('verify-vendor-target-promotion-rules', async (input, { container }) => {
|
|
17
|
+
if (!input.rules || input.rules.length === 0) {
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
11
20
|
const query = container.resolve(utils_1.ContainerRegistrationKeys.QUERY);
|
|
12
|
-
const
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
21
|
+
const productRules = input.rules.filter((rule) => rule.attribute === 'items.product.id' &&
|
|
22
|
+
rule.description !== inject_seller_product_rule_1.SELLER_PRODUCTS_RULE_DESCRIPTION);
|
|
23
|
+
if (productRules.length === 0) {
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
const productIds = productRules
|
|
27
|
+
.map((rule) => rule.values)
|
|
28
|
+
.flat()
|
|
29
|
+
.filter((value) => typeof value === 'string');
|
|
30
|
+
if (productIds.length === 0) {
|
|
31
|
+
return;
|
|
17
32
|
}
|
|
18
|
-
const
|
|
19
|
-
const { data: relations } = await query.graph({
|
|
33
|
+
const { data: sellerProducts } = await query.graph({
|
|
20
34
|
entity: seller_product_1.default.entryPoint,
|
|
21
|
-
fields: ['
|
|
35
|
+
fields: ['product_id'],
|
|
22
36
|
filters: {
|
|
23
37
|
seller_id: input.seller_id,
|
|
24
|
-
product_id:
|
|
38
|
+
product_id: productIds
|
|
25
39
|
}
|
|
26
40
|
});
|
|
27
|
-
|
|
41
|
+
const sellerProductIds = new Set(sellerProducts.map((sp) => sp.product_id));
|
|
42
|
+
const invalidProducts = productIds.filter((id) => !sellerProductIds.has(id));
|
|
43
|
+
if (invalidProducts.length > 0) {
|
|
28
44
|
throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, 'Vendor Promotion can be applied only to seller own products!');
|
|
29
45
|
}
|
|
30
46
|
});
|
|
31
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
47
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyaWZ5LXZlbmRvci10YXJnZXQtcHJvbW90aW9uLXJ1bGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3dvcmtmbG93cy9wcm9tb3Rpb25zL3N0ZXBzL3ZlcmlmeS12ZW5kb3ItdGFyZ2V0LXByb21vdGlvbi1ydWxlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFDQSxxREFHa0M7QUFDbEMscUVBQThEO0FBRTlELG1GQUF5RDtBQUN6RCw2RUFBK0U7QUFFL0U7Ozs7R0FJRztBQUNVLFFBQUEsb0NBQW9DLEdBQUcsSUFBQSwwQkFBVSxFQUM1RCxzQ0FBc0MsRUFDdEMsS0FBSyxFQUNILEtBQThELEVBQzlELEVBQUUsU0FBUyxFQUFFLEVBQ2IsRUFBRTtJQUNGLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxJQUFJLEtBQUssQ0FBQyxLQUFLLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQzdDLE9BQU07SUFDUixDQUFDO0lBRUQsTUFBTSxLQUFLLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxpQ0FBeUIsQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUVoRSxNQUFNLFlBQVksR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FDckMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUNQLElBQUksQ0FBQyxTQUFTLEtBQUssa0JBQWtCO1FBQ3JDLElBQUksQ0FBQyxXQUFXLEtBQUssNkRBQWdDLENBQ3hELENBQUE7SUFFRCxJQUFJLFlBQVksQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDOUIsT0FBTTtJQUNSLENBQUM7SUFFRCxNQUFNLFVBQVUsR0FBRyxZQUFZO1NBQzVCLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQztTQUMxQixJQUFJLEVBQUU7U0FDTixNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQW1CLEVBQUUsQ0FBQyxPQUFPLEtBQUssS0FBSyxRQUFRLENBQUMsQ0FBQTtJQUVoRSxJQUFJLFVBQVUsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDNUIsT0FBTTtJQUNSLENBQUM7SUFFRCxNQUFNLEVBQUUsSUFBSSxFQUFFLGNBQWMsRUFBRSxHQUFHLE1BQU0sS0FBSyxDQUFDLEtBQUssQ0FBQztRQUNqRCxNQUFNLEVBQUUsd0JBQWEsQ0FBQyxVQUFVO1FBQ2hDLE1BQU0sRUFBRSxDQUFDLFlBQVksQ0FBQztRQUN0QixPQUFPLEVBQUU7WUFDUCxTQUFTLEVBQUUsS0FBSyxDQUFDLFNBQVM7WUFDMUIsVUFBVSxFQUFFLFVBQVU7U0FDdkI7S0FDRixDQUFDLENBQUE7SUFFRixNQUFNLGdCQUFnQixHQUFHLElBQUksR0FBRyxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFBO0lBQzNFLE1BQU0sZUFBZSxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUE7SUFFNUUsSUFBSSxlQUFlLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQy9CLE1BQU0sSUFBSSxtQkFBVyxDQUNuQixtQkFBVyxDQUFDLEtBQUssQ0FBQyxZQUFZLEVBQzlCLDhEQUE4RCxDQUMvRCxDQUFBO0lBQ0gsQ0FBQztBQUNILENBQUMsQ0FDRixDQUFBIn0=
|
|
@@ -10,9 +10,13 @@ exports.batchVendorPromotionRulesWorkflow = (0, workflows_sdk_1.createWorkflow)(
|
|
|
10
10
|
rules: input.data.create,
|
|
11
11
|
seller_id: input.seller_id
|
|
12
12
|
})));
|
|
13
|
+
(0, steps_1.verifySellerProductRuleDeletionStep)((0, workflows_sdk_1.transform)(input, (input) => ({
|
|
14
|
+
promotion_id: input.data.id,
|
|
15
|
+
rule_ids_to_delete: input.data.delete || []
|
|
16
|
+
})));
|
|
13
17
|
});
|
|
14
18
|
core_flows_1.batchPromotionRulesWorkflow.runAsStep({
|
|
15
19
|
input: input.data
|
|
16
20
|
});
|
|
17
21
|
});
|
|
18
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmF0Y2gtdmVuZG9yLXByb21vdGlvbi1ydWxlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy93b3JrZmxvd3MvcHJvbW90aW9ucy93b3JrZmxvd3MvYmF0Y2gtdmVuZG9yLXByb21vdGlvbi1ydWxlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw0REFHb0M7QUFDcEMsMkRBQXlFO0FBRXpFLG9DQUdpQjtBQUVKLFFBQUEsaUNBQWlDLEdBQUcsSUFBQSw4QkFBYyxFQUM3RCw4QkFBOEIsRUFDOUIsVUFBVSxLQUdUO0lBQ0MsSUFBQSxvQkFBSSxFQUFDLEtBQUssRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLEtBQUssY0FBYyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRTtRQUN4RSxJQUFBLDRDQUFvQyxFQUNsQyxJQUFBLHlCQUFTLEVBQUMsS0FBSyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQzNCLEtBQUssRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU07WUFDeEIsU0FBUyxFQUFFLEtBQUssQ0FBQyxTQUFTO1NBQzNCLENBQUMsQ0FBQyxDQUNKLENBQUE7UUFFRCxJQUFBLDJDQUFtQyxFQUNqQyxJQUFBLHlCQUFTLEVBQUMsS0FBSyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQzNCLFlBQVksRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDM0Isa0JBQWtCLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLElBQUksRUFBRTtTQUM1QyxDQUFDLENBQUMsQ0FDSixDQUFBO0lBQ0gsQ0FBQyxDQUFDLENBQUE7SUFFRix3Q0FBMkIsQ0FBQyxTQUFTLENBQUM7UUFDcEMsS0FBSyxFQUFFLEtBQUssQ0FBQyxJQUFJO0tBQ2xCLENBQUMsQ0FBQTtBQUNKLENBQUMsQ0FDRixDQUFBIn0=
|
|
@@ -10,12 +10,13 @@ exports.createVendorPromotionWorkflow = (0, workflows_sdk_1.createWorkflow)("cre
|
|
|
10
10
|
(0, steps_1.verifyVendorCampaignStep)(input);
|
|
11
11
|
(0, steps_1.verifyVendorPromotionStep)(input);
|
|
12
12
|
(0, steps_1.verifyVendorTargetPromotionRulesStep)((0, workflows_sdk_1.transform)(input, (input) => ({
|
|
13
|
-
rules: input.promotion.application_method
|
|
13
|
+
rules: input.promotion.application_method?.target_rules,
|
|
14
14
|
seller_id: input.seller_id,
|
|
15
15
|
})));
|
|
16
|
+
const promotionWithDefaultRule = (0, steps_1.injectSellerProductRuleStep)(input);
|
|
16
17
|
const promotions = core_flows_1.createPromotionsWorkflow.runAsStep({
|
|
17
18
|
input: {
|
|
18
|
-
promotionsData: [
|
|
19
|
+
promotionsData: [promotionWithDefaultRule],
|
|
19
20
|
},
|
|
20
21
|
});
|
|
21
22
|
const links = (0, workflows_sdk_1.transform)({ input, promotions }, ({ input, promotions }) => {
|
|
@@ -45,4 +46,4 @@ exports.createVendorPromotionWorkflow = (0, workflows_sdk_1.createWorkflow)("cre
|
|
|
45
46
|
(0, core_flows_1.createRemoteLinkStep)(links);
|
|
46
47
|
return new workflows_sdk_1.WorkflowResponse(promotions);
|
|
47
48
|
});
|
|
48
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
49
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLXZlbmRvci1wcm9tb3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL3Byb21vdGlvbnMvd29ya2Zsb3dzL2NyZWF0ZS12ZW5kb3ItcHJvbW90aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLHFEQUFvRDtBQUNwRCw0REFHcUM7QUFDckMsMkRBSWlDO0FBRWpDLG9EQUF3RDtBQUV4RCxvQ0FLa0I7QUFFTCxRQUFBLDZCQUE2QixHQUFHLElBQUEsOEJBQWMsRUFDekQseUJBQXlCLEVBQ3pCLFVBQVUsS0FBMkQ7SUFDbkUsSUFBQSxnQ0FBd0IsRUFBQyxLQUFLLENBQUMsQ0FBQztJQUNoQyxJQUFBLGlDQUF5QixFQUFDLEtBQUssQ0FBQyxDQUFDO0lBRWpDLElBQUEsNENBQW9DLEVBQ2xDLElBQUEseUJBQVMsRUFBQyxLQUFLLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDM0IsS0FBSyxFQUFFLEtBQUssQ0FBQyxTQUFTLENBQUMsa0JBQWtCLEVBQUUsWUFBWTtRQUN2RCxTQUFTLEVBQUUsS0FBSyxDQUFDLFNBQVM7S0FDM0IsQ0FBQyxDQUFDLENBQ0osQ0FBQztJQUVGLE1BQU0sd0JBQXdCLEdBQUcsSUFBQSxtQ0FBMkIsRUFBQyxLQUFLLENBQUMsQ0FBQztJQUVwRSxNQUFNLFVBQVUsR0FBRyxxQ0FBd0IsQ0FBQyxTQUFTLENBQUM7UUFDcEQsS0FBSyxFQUFFO1lBQ0wsY0FBYyxFQUFFLENBQUMsd0JBQXdCLENBQUM7U0FDM0M7S0FDRixDQUFDLENBQUM7SUFFSCxNQUFNLEtBQUssR0FBRyxJQUFBLHlCQUFTLEVBQUMsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsRUFBRSxFQUFFO1FBQ3ZFLE1BQU0sS0FBSyxHQUFHLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM1QixNQUFNLElBQUksR0FBcUI7WUFDN0I7Z0JBQ0UsQ0FBQyxzQkFBYSxDQUFDLEVBQUU7b0JBQ2YsU0FBUyxFQUFFLEtBQUssQ0FBQyxTQUFTO2lCQUMzQjtnQkFDRCxDQUFDLGVBQU8sQ0FBQyxTQUFTLENBQUMsRUFBRTtvQkFDbkIsWUFBWSxFQUFFLEtBQUssQ0FBQyxFQUFFO2lCQUN2QjthQUNGO1NBQ0YsQ0FBQztRQUVGLElBQUksS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ25CLElBQUksQ0FBQyxJQUFJLENBQUM7Z0JBQ1IsQ0FBQyxzQkFBYSxDQUFDLEVBQUU7b0JBQ2YsU0FBUyxFQUFFLEtBQUssQ0FBQyxTQUFTO2lCQUMzQjtnQkFDRCxDQUFDLGVBQU8sQ0FBQyxTQUFTLENBQUMsRUFBRTtvQkFDbkIsV0FBVyxFQUFFLEtBQUssQ0FBQyxRQUFRLENBQUMsRUFBRTtpQkFDL0I7YUFDRixDQUFDLENBQUM7UUFDTCxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDLENBQUMsQ0FBQztJQUVILElBQUEsaUNBQW9CLEVBQUMsS0FBSyxDQUFDLENBQUM7SUFDNUIsT0FBTyxJQUFJLGdDQUFnQixDQUFDLFVBQVUsQ0FBQyxDQUFDO0FBQzFDLENBQUMsQ0FDRixDQUFDIn0=
|
|
@@ -68,4 +68,9 @@ export declare const validateProductsToImportStep: import("@medusajs/framework/w
|
|
|
68
68
|
sales_channels?: {
|
|
69
69
|
id: string;
|
|
70
70
|
}[] | undefined;
|
|
71
|
+
variants_images?: {
|
|
72
|
+
variant_image_key: string;
|
|
73
|
+
image_urls?: string[] | undefined;
|
|
74
|
+
thumbnail_url?: string | undefined;
|
|
75
|
+
}[] | undefined;
|
|
71
76
|
}[]>;
|
package/package.json
CHANGED
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.DELETE = void 0;
|
|
4
|
-
const workflows_1 = require("../../../../../../workflows/wishlist/workflows");
|
|
5
|
-
/**
|
|
6
|
-
* @oas [delete] /store/wishlist/{id}/product/{reference_id}
|
|
7
|
-
* operationId: "StoreDeleteWishlist"
|
|
8
|
-
* summary: "Delete a wishlist entry"
|
|
9
|
-
* description: "Deletes a wishlist entry by its ID for the authenticated user."
|
|
10
|
-
* x-authenticated: true
|
|
11
|
-
* parameters:
|
|
12
|
-
* - name: id
|
|
13
|
-
* in: path
|
|
14
|
-
* required: true
|
|
15
|
-
* description: The ID of the wishlist entry to delete.
|
|
16
|
-
* schema:
|
|
17
|
-
* type: string
|
|
18
|
-
* - name: reference_id
|
|
19
|
-
* in: path
|
|
20
|
-
* required: true
|
|
21
|
-
* description: The ID of the wishlist entry to delete.
|
|
22
|
-
* schema:
|
|
23
|
-
* type: string
|
|
24
|
-
* responses:
|
|
25
|
-
* "200":
|
|
26
|
-
* description: OK
|
|
27
|
-
* content:
|
|
28
|
-
* application/json:
|
|
29
|
-
* schema:
|
|
30
|
-
* type: object
|
|
31
|
-
* properties:
|
|
32
|
-
* id:
|
|
33
|
-
* type: string
|
|
34
|
-
* description: Id of the wishlsit nad reference id.
|
|
35
|
-
* reference_id:
|
|
36
|
-
* type: string
|
|
37
|
-
* object:
|
|
38
|
-
* type: string
|
|
39
|
-
* description: The type of resource
|
|
40
|
-
* deleted:
|
|
41
|
-
* type: boolean
|
|
42
|
-
* description: Indicates if the wishlist entry was deleted.
|
|
43
|
-
* tags:
|
|
44
|
-
* - Store Wishlist
|
|
45
|
-
* security:
|
|
46
|
-
* - api_token: []
|
|
47
|
-
* - cookie_auth: []
|
|
48
|
-
*/
|
|
49
|
-
const DELETE = async (req, res) => {
|
|
50
|
-
await workflows_1.deleteWishlistEntryWorkflow.run({
|
|
51
|
-
container: req.scope,
|
|
52
|
-
input: req.params
|
|
53
|
-
});
|
|
54
|
-
res.json({
|
|
55
|
-
...req.params,
|
|
56
|
-
object: 'wishlist',
|
|
57
|
-
deleted: true
|
|
58
|
-
});
|
|
59
|
-
};
|
|
60
|
-
exports.DELETE = DELETE;
|
|
61
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3N0b3JlL3dpc2hsaXN0L1tpZF0vcHJvZHVjdC9bcmVmZXJlbmNlX2lkXS9yb3V0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFQSw4RUFBNEY7QUFFNUY7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0EyQ0c7QUFFSSxNQUFNLE1BQU0sR0FBRyxLQUFLLEVBQ3pCLEdBQStCLEVBQy9CLEdBQW1CLEVBQ25CLEVBQUU7SUFDRixNQUFNLHVDQUEyQixDQUFDLEdBQUcsQ0FBQztRQUNwQyxTQUFTLEVBQUUsR0FBRyxDQUFDLEtBQUs7UUFDcEIsS0FBSyxFQUFFLEdBQUcsQ0FBQyxNQUFNO0tBQ2xCLENBQUMsQ0FBQTtJQUVGLEdBQUcsQ0FBQyxJQUFJLENBQUM7UUFDUCxHQUFHLEdBQUcsQ0FBQyxNQUFNO1FBQ2IsTUFBTSxFQUFFLFVBQVU7UUFDbEIsT0FBTyxFQUFFLElBQUk7S0FDZCxDQUFDLENBQUE7QUFDSixDQUFDLENBQUE7QUFkWSxRQUFBLE1BQU0sVUFjbEIifQ==
|