@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.
Files changed (72) hide show
  1. package/.medusa/server/src/api/admin/inventory-items/[id]/location-levels/[location_id]/route.d.ts +3 -0
  2. package/.medusa/server/src/api/admin/inventory-items/[id]/location-levels/[location_id]/route.js +36 -0
  3. package/.medusa/server/src/api/admin/notifications/route.js +8 -8
  4. package/.medusa/server/src/api/admin/sellers/validators.d.ts +2 -2
  5. package/.medusa/server/src/api/admin/sellers/validators.js +9 -7
  6. package/.medusa/server/src/api/store/carts/[id]/promotions/route.js +3 -4
  7. package/.medusa/server/src/api/store/middlewares.js +11 -9
  8. package/.medusa/server/src/api/store/products/middlewares.d.ts +2 -0
  9. package/.medusa/server/src/api/store/products/middlewares.js +13 -0
  10. package/.medusa/server/src/api/store/products/search/route.d.ts +81 -0
  11. package/.medusa/server/src/api/store/products/search/route.js +170 -0
  12. package/.medusa/server/src/api/store/products/validators.d.ts +36 -0
  13. package/.medusa/server/src/api/store/products/validators.js +17 -0
  14. package/.medusa/server/src/api/store/wishlist/middlewares.d.ts +1 -1
  15. package/.medusa/server/src/api/store/wishlist/middlewares.js +47 -25
  16. package/.medusa/server/src/api/store/wishlist/{[id]/product → product}/[reference_id]/route.d.ts +3 -9
  17. package/.medusa/server/src/api/store/wishlist/product/[reference_id]/route.js +65 -0
  18. package/.medusa/server/src/api/store/wishlist/route.d.ts +789 -28
  19. package/.medusa/server/src/api/store/wishlist/route.js +817 -37
  20. package/.medusa/server/src/api/vendor/campaigns/validators.js +4 -4
  21. package/.medusa/server/src/api/vendor/inventory-items/[id]/location-levels/[location_id]/route.js +2 -5
  22. package/.medusa/server/src/api/vendor/inventory-items/[id]/location-levels/batch/route.js +2 -2
  23. package/.medusa/server/src/api/vendor/orders/validators.d.ts +4 -4
  24. package/.medusa/server/src/api/vendor/payout-account/route.js +3 -2
  25. package/.medusa/server/src/api/vendor/price-lists/[id]/prices/route.d.ts +2 -2
  26. package/.medusa/server/src/api/vendor/price-lists/[id]/prices/route.js +2 -2
  27. package/.medusa/server/src/api/vendor/price-lists/route.d.ts +1 -1
  28. package/.medusa/server/src/api/vendor/price-lists/route.js +27 -8
  29. package/.medusa/server/src/api/vendor/product-collections/middlewares.js +2 -2
  30. package/.medusa/server/src/api/vendor/product-collections/route.d.ts +18 -0
  31. package/.medusa/server/src/api/vendor/product-collections/route.js +19 -1
  32. package/.medusa/server/src/api/vendor/product-collections/validators.d.ts +404 -15
  33. package/.medusa/server/src/api/vendor/product-collections/validators.js +18 -3
  34. package/.medusa/server/src/api/vendor/product-tags/route.d.ts +4 -1
  35. package/.medusa/server/src/api/vendor/product-tags/route.js +8 -8
  36. package/.medusa/server/src/api/vendor/products/route.d.ts +8 -2
  37. package/.medusa/server/src/api/vendor/products/route.js +28 -20
  38. package/.medusa/server/src/api/vendor/products/utils.d.ts +20 -1
  39. package/.medusa/server/src/api/vendor/products/utils.js +81 -5
  40. package/.medusa/server/src/api/vendor/products/validators.d.ts +60 -0
  41. package/.medusa/server/src/api/vendor/products/validators.js +8 -2
  42. package/.medusa/server/src/api/vendor/promotions/route.d.ts +86 -2
  43. package/.medusa/server/src/api/vendor/promotions/route.js +116 -7
  44. package/.medusa/server/src/api/vendor/promotions/validators.d.ts +237 -38
  45. package/.medusa/server/src/api/vendor/promotions/validators.js +23 -5
  46. package/.medusa/server/src/api/vendor/shipping-profiles/route.d.ts +31 -2
  47. package/.medusa/server/src/api/vendor/shipping-profiles/route.js +61 -10
  48. package/.medusa/server/src/api/vendor/shipping-profiles/validators.d.ts +92 -3
  49. package/.medusa/server/src/api/vendor/shipping-profiles/validators.js +10 -2
  50. package/.medusa/server/src/api/vendor/stock-locations/validators.d.ts +10 -10
  51. package/.medusa/server/src/links/wishlist-product.js +3 -3
  52. package/.medusa/server/src/modules/seller/utils.d.ts +1 -1
  53. package/.medusa/server/src/modules/seller/utils.js +37 -10
  54. package/.medusa/server/src/shared/infra/http/utils/products.js +8 -2
  55. package/.medusa/server/src/workflows/attribute/steps/validate-attribute-value.js +7 -3
  56. package/.medusa/server/src/workflows/attribute/utils/products-updated-handler.d.ts +3 -3
  57. package/.medusa/server/src/workflows/attribute/utils/products-updated-handler.js +17 -15
  58. package/.medusa/server/src/workflows/hooks/fetch-shipping-option-pricing-context.d.ts +1 -0
  59. package/.medusa/server/src/workflows/hooks/fetch-shipping-option-pricing-context.js +97 -0
  60. package/.medusa/server/src/workflows/promotions/steps/index.d.ts +2 -0
  61. package/.medusa/server/src/workflows/promotions/steps/index.js +3 -1
  62. package/.medusa/server/src/workflows/promotions/steps/inject-seller-product-rule.d.ts +6 -0
  63. package/.medusa/server/src/workflows/promotions/steps/inject-seller-product-rule.js +40 -0
  64. package/.medusa/server/src/workflows/promotions/steps/verify-seller-product-rule-deletion.d.ts +9 -0
  65. package/.medusa/server/src/workflows/promotions/steps/verify-seller-product-rule-deletion.js +27 -0
  66. package/.medusa/server/src/workflows/promotions/steps/verify-vendor-target-promotion-rules.d.ts +5 -0
  67. package/.medusa/server/src/workflows/promotions/steps/verify-vendor-target-promotion-rules.js +27 -11
  68. package/.medusa/server/src/workflows/promotions/workflows/batch-vendor-promotion-rules.js +5 -1
  69. package/.medusa/server/src/workflows/promotions/workflows/create-vendor-promotion.js +4 -3
  70. package/.medusa/server/src/workflows/seller/steps/validate-products-to-import.d.ts +5 -0
  71. package/package.json +1 -1
  72. 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmV0Y2gtc2hpcHBpbmctb3B0aW9uLXByaWNpbmctY29udGV4dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy93b3JrZmxvd3MvaG9va3MvZmV0Y2gtc2hpcHBpbmctb3B0aW9uLXByaWNpbmctY29udGV4dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLHFEQUFzRTtBQUN0RSw0REFBa0Y7QUFDbEYscUVBQWlFO0FBRWpFLDRFQUFtRDtBQUNuRCxnR0FBc0U7QUFDdEUsOEZBQW9FO0FBcUJwRTs7Ozs7Ozs7Ozs7R0FXRztBQUNILGdEQUFtQyxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsQ0FDekQsS0FBSyxFQUNILEVBQUUsa0JBQWtCLEVBQUUsYUFBYSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsZUFBZSxFQUFFLEVBQ3pFLEVBQUUsU0FBUyxFQUFFLEVBQ2IsRUFBRTtJQUNGLE1BQU0sS0FBSyxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsaUNBQXlCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFFakUsTUFBTSxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxHQUFHLE1BQU0sS0FBSyxDQUFDLEtBQUssQ0FBQztRQUNuRCxNQUFNLEVBQUUsc0JBQVcsQ0FBQyxVQUFVO1FBQzlCLE1BQU0sRUFBRSxDQUFDLFdBQVcsQ0FBQztRQUNyQixPQUFPLEVBQUU7WUFDUCxRQUFRLEVBQUUsUUFBUTtTQUNuQjtLQUNGLENBQUMsQ0FBQztJQUVILElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUM3QixPQUFPLElBQUksNEJBQVksQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRUQsTUFBTSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsR0FBRyxNQUFNLEtBQUssQ0FBQyxLQUFLLENBQUM7UUFDNUMsTUFBTSxFQUFFLE9BQU87UUFDZixNQUFNLEVBQUUsQ0FBQyxJQUFJLEVBQUUs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
@@ -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
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL3Byb21vdGlvbnMvc3RlcHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDREQUF5QztBQUN6QywyREFBd0M7QUFDeEMseUVBQXNEO0FBQ3RELHdEQUFxQyJ9
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=
@@ -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=
@@ -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;
@@ -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 nonProductAttributes = input.rules
13
- ?.map((p) => p.attribute)
14
- .filter((attr) => attr !== 'items.product.id') || [];
15
- if (nonProductAttributes.length) {
16
- throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, 'Invalid attribute!');
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 products = input.rules?.map((p) => p.values).flat() || [];
19
- const { data: relations } = await query.graph({
33
+ const { data: sellerProducts } = await query.graph({
20
34
  entity: seller_product_1.default.entryPoint,
21
- fields: ['id'],
35
+ fields: ['product_id'],
22
36
  filters: {
23
37
  seller_id: input.seller_id,
24
- product_id: products
38
+ product_id: productIds
25
39
  }
26
40
  });
27
- if (relations.length !== products.length) {
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyaWZ5LXZlbmRvci10YXJnZXQtcHJvbW90aW9uLXJ1bGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3dvcmtmbG93cy9wcm9tb3Rpb25zL3N0ZXBzL3ZlcmlmeS12ZW5kb3ItdGFyZ2V0LXByb21vdGlvbi1ydWxlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFDQSxxREFHa0M7QUFDbEMscUVBQThEO0FBRTlELG1GQUF5RDtBQUU1QyxRQUFBLG9DQUFvQyxHQUFHLElBQUEsMEJBQVUsRUFDNUQsc0NBQXNDLEVBQ3RDLEtBQUssRUFDSCxLQUE4RCxFQUM5RCxFQUFFLFNBQVMsRUFBRSxFQUNiLEVBQUU7SUFDRixNQUFNLEtBQUssR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFDLGlDQUF5QixDQUFDLEtBQUssQ0FBQyxDQUFBO0lBRWhFLE1BQU0sb0JBQW9CLEdBQ3hCLEtBQUssQ0FBQyxLQUFLO1FBQ1QsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7U0FDeEIsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEtBQUssa0JBQWtCLENBQUMsSUFBSSxFQUFFLENBQUE7SUFFeEQsSUFBSSxvQkFBb0IsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNoQyxNQUFNLElBQUksbUJBQVcsQ0FDbkIsbUJBQVcsQ0FBQyxLQUFLLENBQUMsWUFBWSxFQUM5QixvQkFBb0IsQ0FDckIsQ0FBQTtJQUNILENBQUM7SUFFRCxNQUFNLFFBQVEsR0FBRyxLQUFLLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQTtJQUUvRCxNQUFNLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxHQUFHLE1BQU0sS0FBSyxDQUFDLEtBQUssQ0FBQztRQUM1QyxNQUFNLEVBQUUsd0JBQWEsQ0FBQyxVQUFVO1FBQ2hDLE1BQU0sRUFBRSxDQUFDLElBQUksQ0FBQztRQUNkLE9BQU8sRUFBRTtZQUNQLFNBQVMsRUFBRSxLQUFLLENBQUMsU0FBUztZQUMxQixVQUFVLEVBQUUsUUFBUTtTQUNyQjtLQUNGLENBQUMsQ0FBQTtJQUVGLElBQUksU0FBUyxDQUFDLE1BQU0sS0FBSyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDekMsTUFBTSxJQUFJLG1CQUFXLENBQ25CLG1CQUFXLENBQUMsS0FBSyxDQUFDLFlBQVksRUFDOUIsOERBQThELENBQy9ELENBQUE7SUFDSCxDQUFDO0FBQ0gsQ0FBQyxDQUNGLENBQUEifQ==
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmF0Y2gtdmVuZG9yLXByb21vdGlvbi1ydWxlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy93b3JrZmxvd3MvcHJvbW90aW9ucy93b3JrZmxvd3MvYmF0Y2gtdmVuZG9yLXByb21vdGlvbi1ydWxlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw0REFHb0M7QUFDcEMsMkRBQXlFO0FBRXpFLG9DQUErRDtBQUVsRCxRQUFBLGlDQUFpQyxHQUFHLElBQUEsOEJBQWMsRUFDN0QsOEJBQThCLEVBQzlCLFVBQVUsS0FHVDtJQUNDLElBQUEsb0JBQUksRUFBQyxLQUFLLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxLQUFLLGNBQWMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUU7UUFDeEUsSUFBQSw0Q0FBb0MsRUFDbEMsSUFBQSx5QkFBUyxFQUFDLEtBQUssRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztZQUMzQixLQUFLLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNO1lBQ3hCLFNBQVMsRUFBRSxLQUFLLENBQUMsU0FBUztTQUMzQixDQUFDLENBQUMsQ0FDSixDQUFBO0lBQ0gsQ0FBQyxDQUFDLENBQUE7SUFFRix3Q0FBMkIsQ0FBQyxTQUFTLENBQUM7UUFDcEMsS0FBSyxFQUFFLEtBQUssQ0FBQyxJQUFJO0tBQ2xCLENBQUMsQ0FBQTtBQUNKLENBQUMsQ0FDRixDQUFBIn0=
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.target_rules,
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: [input.promotion],
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLXZlbmRvci1wcm9tb3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL3Byb21vdGlvbnMvd29ya2Zsb3dzL2NyZWF0ZS12ZW5kb3ItcHJvbW90aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLHFEQUFvRDtBQUNwRCw0REFHcUM7QUFDckMsMkRBSWlDO0FBRWpDLG9EQUF3RDtBQUV4RCxvQ0FJa0I7QUFFTCxRQUFBLDZCQUE2QixHQUFHLElBQUEsOEJBQWMsRUFDekQseUJBQXlCLEVBQ3pCLFVBQVUsS0FBMkQ7SUFDbkUsSUFBQSxnQ0FBd0IsRUFBQyxLQUFLLENBQUMsQ0FBQztJQUNoQyxJQUFBLGlDQUF5QixFQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2pDLElBQUEsNENBQW9DLEVBQ2xDLElBQUEseUJBQVMsRUFBQyxLQUFLLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDM0IsS0FBSyxFQUFFLEtBQUssQ0FBQyxTQUFTLENBQUMsa0JBQWtCLENBQUMsWUFBWTtRQUN0RCxTQUFTLEVBQUUsS0FBSyxDQUFDLFNBQVM7S0FDM0IsQ0FBQyxDQUFDLENBQ0osQ0FBQztJQUVGLE1BQU0sVUFBVSxHQUFHLHFDQUF3QixDQUFDLFNBQVMsQ0FBQztRQUNwRCxLQUFLLEVBQUU7WUFDTCxjQUFjLEVBQUUsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDO1NBQ2xDO0tBQ0YsQ0FBQyxDQUFDO0lBRUgsTUFBTSxLQUFLLEdBQUcsSUFBQSx5QkFBUyxFQUFDLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLEVBQUUsRUFBRTtRQUN2RSxNQUFNLEtBQUssR0FBRyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDNUIsTUFBTSxJQUFJLEdBQXFCO1lBQzdCO2dCQUNFLENBQUMsc0JBQWEsQ0FBQyxFQUFFO29CQUNmLFNBQVMsRUFBRSxLQUFLLENBQUMsU0FBUztpQkFDM0I7Z0JBQ0QsQ0FBQyxlQUFPLENBQUMsU0FBUyxDQUFDLEVBQUU7b0JBQ25CLFlBQVksRUFBRSxLQUFLLENBQUMsRUFBRTtpQkFDdkI7YUFDRjtTQUNGLENBQUM7UUFFRixJQUFJLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNuQixJQUFJLENBQUMsSUFBSSxDQUFDO2dCQUNSLENBQUMsc0JBQWEsQ0FBQyxFQUFFO29CQUNmLFNBQVMsRUFBRSxLQUFLLENBQUMsU0FBUztpQkFDM0I7Z0JBQ0QsQ0FBQyxlQUFPLENBQUMsU0FBUyxDQUFDLEVBQUU7b0JBQ25CLFdBQVcsRUFBRSxLQUFLLENBQUMsUUFBUSxDQUFDLEVBQUU7aUJBQy9CO2FBQ0YsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQyxDQUFDLENBQUM7SUFFSCxJQUFBLGlDQUFvQixFQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzVCLE9BQU8sSUFBSSxnQ0FBZ0IsQ0FBQyxVQUFVLENBQUMsQ0FBQztBQUMxQyxDQUFDLENBQ0YsQ0FBQyJ9
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,6 +1,6 @@
1
1
  {
2
2
  "name": "@mercurjs/b2c-core",
3
- "version": "1.5.0",
3
+ "version": "1.5.1",
4
4
  "author": "MercurJS <hello@mercurjs.com> (https://mercurjs.com)",
5
5
  "repository": {
6
6
  "type": "git",
@@ -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==