@devx-commerce/plugin-gati 0.0.34 → 0.0.35-beta.2

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 (125) hide show
  1. package/.medusa/server/src/api/admin/masters/[master]/[id]/route.js +121 -0
  2. package/.medusa/server/src/api/admin/masters/[master]/route.js +33 -0
  3. package/.medusa/server/src/api/admin/masters/middlewares.js +35 -0
  4. package/.medusa/server/src/api/admin/masters/query-config.js +14 -0
  5. package/.medusa/server/src/api/admin/masters/search-middleware.js +16 -0
  6. package/.medusa/server/src/api/admin/masters/utils.js +108 -0
  7. package/.medusa/server/src/api/admin/masters/validators.js +28 -0
  8. package/.medusa/server/src/api/admin/middlewares.js +6 -2
  9. package/.medusa/server/src/api/admin/variant-options/recalculate/route.js +446 -0
  10. package/.medusa/server/src/api/admin/variant-options/sync/route.js +329 -0
  11. package/.medusa/server/src/api/erp/webhook/config.js +37 -6
  12. package/.medusa/server/src/api/erp/webhook/route.js +10 -137
  13. package/.medusa/server/src/api/middlewares.js +3 -1
  14. package/.medusa/server/src/api/pos/gold-rate/middleware.js +13 -0
  15. package/.medusa/server/src/api/pos/gold-rate/route.js +96 -0
  16. package/.medusa/server/src/api/pos/middleware.js +13 -0
  17. package/.medusa/server/src/api/store/gold-rate/current/route.js +70 -0
  18. package/.medusa/server/src/api/store/gold-rate/historical/route.js +108 -0
  19. package/.medusa/server/src/api/store/gold-rate/middleware.js +19 -0
  20. package/.medusa/server/src/api/store/gold-rate/validators.js +37 -0
  21. package/.medusa/server/src/api/store/middleware.js +3 -1
  22. package/.medusa/server/src/jobs/process-erp-events.js +205 -0
  23. package/.medusa/server/src/jobs/process-variant-option-sync.js +536 -0
  24. package/.medusa/server/src/jobs/sync-order-erp.js +2 -2
  25. package/.medusa/server/src/modules/category-group-master/migrations/Migration20251031061116.js +14 -0
  26. package/.medusa/server/src/modules/category-group-master/migrations/Migration20251104045912.js +14 -0
  27. package/.medusa/server/src/modules/category-master/migrations/Migration20251031061327.js +14 -0
  28. package/.medusa/server/src/modules/category-master/migrations/Migration20251104045755.js +14 -0
  29. package/.medusa/server/src/modules/collection-group-master/migrations/Migration20251031061432.js +14 -0
  30. package/.medusa/server/src/modules/collection-group-master/migrations/Migration20251104050102.js +14 -0
  31. package/.medusa/server/src/modules/collection-master/migrations/Migration20251031060941.js +14 -0
  32. package/.medusa/server/src/modules/collection-master/migrations/Migration20251104050012.js +14 -0
  33. package/.medusa/server/src/modules/discount-master/migrations/Migration20251031061523.js +14 -0
  34. package/.medusa/server/src/modules/discount-master/migrations/Migration20251104050153.js +14 -0
  35. package/.medusa/server/src/modules/erp/service.js +59 -1
  36. package/.medusa/server/src/modules/extended-product/migrations/Migration20251103182726.js +14 -0
  37. package/.medusa/server/src/modules/extended-product/migrations/Migration20251119062526.js +16 -0
  38. package/.medusa/server/src/modules/extended-product/migrations/Migration20251202055742.js +14 -0
  39. package/.medusa/server/src/modules/extended-product/migrations/Migration20251202064200.js +16 -0
  40. package/.medusa/server/src/modules/extended-product/models/extended-product.js +89 -9
  41. package/.medusa/server/src/modules/extended-variant/migrations/Migration20251119063328.js +20 -0
  42. package/.medusa/server/src/modules/extended-variant/migrations/Migration20251120045708.js +14 -0
  43. package/.medusa/server/src/modules/extended-variant/migrations/Migration20251120051832.js +14 -0
  44. package/.medusa/server/src/modules/extended-variant/migrations/Migration20251120052514.js +14 -0
  45. package/.medusa/server/src/modules/extended-variant/migrations/Migration20251202055952.js +14 -0
  46. package/.medusa/server/src/modules/extended-variant/models/extended-variant.js +145 -12
  47. package/.medusa/server/src/modules/item-size-master/index.js +13 -0
  48. package/.medusa/server/src/modules/item-size-master/migrations/Migration20251031111036.js +17 -0
  49. package/.medusa/server/src/modules/item-size-master/models/item-size-master.js +14 -0
  50. package/.medusa/server/src/modules/item-size-master/service.js +10 -0
  51. package/.medusa/server/src/modules/party-master/migrations/Migration20251031061657.js +14 -0
  52. package/.medusa/server/src/modules/party-master/migrations/Migration20251104050242.js +14 -0
  53. package/.medusa/server/src/modules/promocode-master/migrations/Migration20251031061829.js +14 -0
  54. package/.medusa/server/src/modules/promocode-master/migrations/Migration20251104050332.js +14 -0
  55. package/.medusa/server/src/modules/quality-master/index.js +13 -0
  56. package/.medusa/server/src/modules/quality-master/migrations/Migration20251031095211.js +16 -0
  57. package/.medusa/server/src/modules/quality-master/migrations/Migration20251105045114.js +14 -0
  58. package/.medusa/server/src/modules/quality-master/models/quality-master.js +17 -0
  59. package/.medusa/server/src/modules/quality-master/service.js +10 -0
  60. package/.medusa/server/src/modules/raw-master/migrations/Migration20251031061912.js +14 -0
  61. package/.medusa/server/src/modules/raw-master/models/raw-master.js +2 -1
  62. package/.medusa/server/src/modules/shape-master/migrations/Migration20251031062019.js +14 -0
  63. package/.medusa/server/src/modules/shape-master/models/shape-master.js +2 -1
  64. package/.medusa/server/src/modules/shipping-info-master/migrations/Migration20251031062128.js +14 -0
  65. package/.medusa/server/src/modules/shipping-info-master/migrations/Migration20251104050501.js +14 -0
  66. package/.medusa/server/src/modules/shipping-info-master/migrations/Migration20251203083315.js +16 -0
  67. package/.medusa/server/src/modules/shipping-info-master/models/shipping-info-master.js +2 -2
  68. package/.medusa/server/src/modules/sub-category-master/migrations/Migration20251031062303.js +14 -0
  69. package/.medusa/server/src/modules/sub-category-master/migrations/Migration20251104050743.js +14 -0
  70. package/.medusa/server/src/modules/tone-master/index.js +13 -0
  71. package/.medusa/server/src/modules/tone-master/migrations/Migration20251031104320.js +16 -0
  72. package/.medusa/server/src/modules/tone-master/models/tone-master.js +15 -0
  73. package/.medusa/server/src/modules/tone-master/service.js +10 -0
  74. package/.medusa/server/src/modules/variant-option-sync-queue/index.js +13 -0
  75. package/.medusa/server/src/modules/variant-option-sync-queue/migrations/Migration20251101082220.js +19 -0
  76. package/.medusa/server/src/modules/variant-option-sync-queue/migrations/Migration20251103123857.js +16 -0
  77. package/.medusa/server/src/modules/variant-option-sync-queue/models/variant-option-sync-queue.js +23 -0
  78. package/.medusa/server/src/modules/variant-option-sync-queue/service.js +49 -0
  79. package/.medusa/server/src/subscribers/cutomer-updated.js +2 -1
  80. package/.medusa/server/src/subscribers/party-master.js +35 -34
  81. package/.medusa/server/src/utils/build-redis-key.js +30 -0
  82. package/.medusa/server/src/workflows/create-or-update-product-options/steps/create-update-product-options.js +39 -2
  83. package/.medusa/server/src/workflows/helpers/product-helper.js +445 -115
  84. package/.medusa/server/src/workflows/helpers/update-variant-option-metadata.js +105 -0
  85. package/.medusa/server/src/workflows/helpers/variant-helper.js +215 -0
  86. package/.medusa/server/src/workflows/hooks/product-updated.js +6 -11
  87. package/.medusa/server/src/workflows/inward-master/helper/index.js +88 -39
  88. package/.medusa/server/src/workflows/inward-master/workflows/update-inward.js +6 -2
  89. package/.medusa/server/src/workflows/item-size-master/create-or-update-item-size-master.js +51 -0
  90. package/.medusa/server/src/workflows/item-size-master/index.js +15 -0
  91. package/.medusa/server/src/workflows/item-size-master/steps/create-item-size.js +21 -0
  92. package/.medusa/server/src/workflows/item-size-master/steps/delete-item-size.js +23 -0
  93. package/.medusa/server/src/workflows/item-size-master/steps/fetch-item-size-master.js +55 -0
  94. package/.medusa/server/src/workflows/item-size-master/steps/update-item-size.js +36 -0
  95. package/.medusa/server/src/workflows/orders/steps/sync-order-to-erp.js +3 -2
  96. package/.medusa/server/src/workflows/orders/utils/order-helper.js +6 -5
  97. package/.medusa/server/src/workflows/orders/workflows/sync-order-to-erp.js +27 -2
  98. package/.medusa/server/src/workflows/party-master/steps/delete-party.js +4 -7
  99. package/.medusa/server/src/workflows/party-master/steps/fetch-party-master.js +2 -1
  100. package/.medusa/server/src/workflows/party-master/workflows/create-or-update-party-master.js +2 -50
  101. package/.medusa/server/src/workflows/party-master/workflows/delete-party-master.js +60 -0
  102. package/.medusa/server/src/workflows/party-master/workflows/index.js +2 -1
  103. package/.medusa/server/src/workflows/party-style-master/steps/update-product-options-after-deletion.js +80 -195
  104. package/.medusa/server/src/workflows/party-style-master/steps/update-product-options-after-variant-update.js +448 -0
  105. package/.medusa/server/src/workflows/party-style-master/workflows/create-or-update-party-style-master.js +126 -4
  106. package/.medusa/server/src/workflows/quality-master/create-or-update-quality-master.js +58 -0
  107. package/.medusa/server/src/workflows/quality-master/index.js +30 -0
  108. package/.medusa/server/src/workflows/quality-master/steps/create-quality.js +22 -0
  109. package/.medusa/server/src/workflows/quality-master/steps/delete-quality.js +20 -0
  110. package/.medusa/server/src/workflows/quality-master/steps/fetch-quality-master.js +54 -0
  111. package/.medusa/server/src/workflows/quality-master/steps/update-quality.js +37 -0
  112. package/.medusa/server/src/workflows/raw-master/create-or-update-raw-master.js +58 -0
  113. package/.medusa/server/src/workflows/raw-master/steps/delete-raw.js +9 -11
  114. package/.medusa/server/src/workflows/shape-master/create-or-update-shape-master.js +53 -0
  115. package/.medusa/server/src/workflows/shape-master/steps/delete-shape.js +9 -9
  116. package/.medusa/server/src/workflows/style-master/workflows/create-or-update-style-master.js +2 -2
  117. package/.medusa/server/src/workflows/tone-master/create-or-update-tone-master.js +52 -0
  118. package/.medusa/server/src/workflows/tone-master/index.js +30 -0
  119. package/.medusa/server/src/workflows/tone-master/steps/create-tone.js +22 -0
  120. package/.medusa/server/src/workflows/tone-master/steps/delete-tone.js +20 -0
  121. package/.medusa/server/src/workflows/tone-master/steps/fetch-tone-master.js +54 -0
  122. package/.medusa/server/src/workflows/tone-master/steps/update-tone.js +37 -0
  123. package/.medusa/server/src/workflows/update-extended-product-from-product/index.js +6 -8
  124. package/.medusa/server/src/workflows/update-extended-variant-from-variant/workflows/update-extended-variant-status-from-variant.js +9 -3
  125. package/package.json +1 -1
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.deletePartyMasterWorkflow = exports.deletePartyMasterWorkflowId = void 0;
4
+ const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
5
+ const core_flows_1 = require("@medusajs/medusa/core-flows");
6
+ const steps_1 = require("../steps");
7
+ exports.deletePartyMasterWorkflowId = "delete-party-master";
8
+ exports.deletePartyMasterWorkflow = (0, workflows_sdk_1.createWorkflow)(exports.deletePartyMasterWorkflowId, (input) => {
9
+ // Transform ids to the format expected by deletePartyStep
10
+ const partyData = (0, workflows_sdk_1.transform)({ ids: input.ids }, ({ ids }) => {
11
+ return ids.map((id) => ({ PartyNo: id }));
12
+ });
13
+ const deletedParty = (0, steps_1.deletePartyStep)(partyData);
14
+ // Transform deleted parties for event emission
15
+ const customersToDelete = (0, workflows_sdk_1.transform)({
16
+ party: deletedParty,
17
+ }, (data) => data.party.filter((item) => item.is_customer &&
18
+ !item.is_inline_branch &&
19
+ !item.is_location &&
20
+ !item.is_supplier &&
21
+ !item.is_salesman &&
22
+ !item.is_factory &&
23
+ !item.is_tools));
24
+ const outletsToDelete = (0, workflows_sdk_1.transform)({
25
+ party: deletedParty,
26
+ }, (data) => data.party.filter((item) => item.is_inline_branch && !item.is_customer && !item.is_location));
27
+ const locationsToDelete = (0, workflows_sdk_1.transform)({
28
+ party: deletedParty,
29
+ }, (data) => data.party.filter((item) => item.is_location && !item.is_inline_branch));
30
+ // Emit events for different party types
31
+ (0, core_flows_1.emitEventStep)({
32
+ eventName: "party_master",
33
+ data: {
34
+ operation: "delete",
35
+ data: customersToDelete,
36
+ },
37
+ }).config({
38
+ name: "delete-party-event",
39
+ });
40
+ (0, core_flows_1.emitEventStep)({
41
+ eventName: "party_master_outlet",
42
+ data: {
43
+ operation: "delete",
44
+ data: outletsToDelete,
45
+ },
46
+ }).config({
47
+ name: "delete-party-outlet-event",
48
+ });
49
+ (0, core_flows_1.emitEventStep)({
50
+ eventName: "party_master_location",
51
+ data: {
52
+ operation: "delete",
53
+ data: locationsToDelete,
54
+ },
55
+ }).config({
56
+ name: "delete-party-location-event",
57
+ });
58
+ return new workflows_sdk_1.WorkflowResponse(deletedParty);
59
+ });
60
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVsZXRlLXBhcnR5LW1hc3Rlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy93b3JrZmxvd3MvcGFydHktbWFzdGVyL3dvcmtmbG93cy9kZWxldGUtcGFydHktbWFzdGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHFFQUsyQztBQUMzQyw0REFBNEQ7QUFFNUQsb0NBQTJDO0FBYTlCLFFBQUEsMkJBQTJCLEdBQUcscUJBQXFCLENBQUM7QUFFcEQsUUFBQSx5QkFBeUIsR0FBRyxJQUFBLDhCQUFjLEVBQ3JELG1DQUEyQixFQUMzQixDQUFDLEtBQW1ELEVBQUUsRUFBRTtJQUN0RCwwREFBMEQ7SUFDMUQsTUFBTSxTQUFTLEdBQUcsSUFBQSx5QkFBUyxFQUFDLEVBQUUsR0FBRyxFQUFFLEtBQUssQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRTtRQUMxRCxPQUFPLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzVDLENBQUMsQ0FBQyxDQUFDO0lBRUgsTUFBTSxZQUFZLEdBQUcsSUFBQSx1QkFBZSxFQUFDLFNBQVMsQ0FBQyxDQUFDO0lBRWhELCtDQUErQztJQUMvQyxNQUFNLGlCQUFpQixHQUFHLElBQUEseUJBQVMsRUFDakM7UUFDRSxLQUFLLEVBQUUsWUFBWTtLQUNwQixFQUNELENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FDUCxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FDZixDQUFDLElBQUksRUFBRSxFQUFFLENBQ1AsSUFBSSxDQUFDLFdBQVc7UUFDaEIsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCO1FBQ3RCLENBQUMsSUFBSSxDQUFDLFdBQVc7UUFDakIsQ0FBQyxJQUFJLENBQUMsV0FBVztRQUNqQixDQUFDLElBQUksQ0FBQyxXQUFXO1FBQ2pCLENBQUMsSUFBSSxDQUFDLFVBQVU7UUFDaEIsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUNqQixDQUNKLENBQUM7SUFFRixNQUFNLGVBQWUsR0FBRyxJQUFBLHlCQUFTLEVBQy9CO1FBQ0UsS0FBSyxFQUFFLFlBQVk7S0FDcEIsRUFDRCxDQUFDLElBQUksRUFBRSxFQUFFLENBQ1AsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQ2YsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUNQLElBQUksQ0FBQyxnQkFBZ0IsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUNsRSxDQUNKLENBQUM7SUFFRixNQUFNLGlCQUFpQixHQUFHLElBQUEseUJBQVMsRUFDakM7UUFDRSxLQUFLLEVBQUUsWUFBWTtLQUNwQixFQUNELENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FDUCxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FDZixDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FDckQsQ0FDSixDQUFDO0lBRUYsd0NBQXdDO0lBQ3hDLElBQUEsMEJBQWEsRUFBQztRQUNaLFNBQVMsRUFBRSxjQUFjO1FBQ3pCLElBQUksRUFBRTtZQUNKLFNBQVMsRUFBRSxRQUFRO1lBQ25CLElBQUksRUFBRSxpQkFBaUI7U0FDeEI7S0FDRixDQUFDLENBQUMsTUFBTSxDQUFDO1FBQ1IsSUFBSSxFQUFFLG9CQUFvQjtLQUMzQixDQUFDLENBQUM7SUFFSCxJQUFBLDBCQUFhLEVBQUM7UUFDWixTQUFTLEVBQUUscUJBQXFCO1FBQ2hDLElBQUksRUFBRTtZQUNKLFNBQVMsRUFBRSxRQUFRO1lBQ25CLElBQUksRUFBRSxlQUFlO1NBQ3RCO0tBQ0YsQ0FBQyxDQUFDLE1BQU0sQ0FBQztRQUNSLElBQUksRUFBRSwyQkFBMkI7S0FDbEMsQ0FBQyxDQUFDO0lBRUgsSUFBQSwwQkFBYSxFQUFDO1FBQ1osU0FBUyxFQUFFLHVCQUF1QjtRQUNsQyxJQUFJLEVBQUU7WUFDSixTQUFTLEVBQUUsUUFBUTtZQUNuQixJQUFJLEVBQUUsaUJBQWlCO1NBQ3hCO0tBQ0YsQ0FBQyxDQUFDLE1BQU0sQ0FBQztRQUNSLElBQUksRUFBRSw2QkFBNkI7S0FDcEMsQ0FBQyxDQUFDO0lBRUgsT0FBTyxJQUFJLGdDQUFnQixDQUFDLFlBQVksQ0FBQyxDQUFDO0FBQzVDLENBQUMsQ0FDRixDQUFDIn0=
@@ -18,4 +18,5 @@ __exportStar(require("./create-or-update-party-master"), exports);
18
18
  __exportStar(require("./update-party-master-with-field"), exports);
19
19
  __exportStar(require("./create-customer-erp"), exports);
20
20
  __exportStar(require("./create-party-workflow"), exports);
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL3BhcnR5LW1hc3Rlci93b3JrZmxvd3MvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLGtFQUFnRDtBQUNoRCxtRUFBaUQ7QUFDakQsd0RBQXNDO0FBQ3RDLDBEQUF3QyJ9
21
+ __exportStar(require("./delete-party-master"), exports);
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL3BhcnR5LW1hc3Rlci93b3JrZmxvd3MvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLGtFQUFnRDtBQUNoRCxtRUFBaUQ7QUFDakQsd0RBQXNDO0FBQ3RDLDBEQUF3QztBQUN4Qyx3REFBc0MifQ==
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.updateProductOptionsAfterDeletionStep = void 0;
4
4
  const utils_1 = require("@medusajs/framework/utils");
5
5
  const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
6
+ const core_flows_1 = require("@medusajs/medusa/core-flows");
6
7
  const utils_2 = require("@medusajs/framework/utils");
7
8
  const utils_3 = require("@medusajs/framework/utils");
8
9
  exports.updateProductOptionsAfterDeletionStep = (0, workflows_sdk_1.createStep)("update-product-options-after-deletion", async (input, { container }) => {
@@ -12,222 +13,106 @@ exports.updateProductOptionsAfterDeletionStep = (0, workflows_sdk_1.createStep)(
12
13
  return new workflows_sdk_1.StepResponse([]);
13
14
  }
14
15
  const query = container.resolve(utils_1.ContainerRegistrationKeys.QUERY);
15
- console.log(`Updating product options for ${input.productIds.length} products`);
16
- // Get the products that had variants deleted
17
- const { data: productsWithDeletedVariants } = await query.graph({
16
+ console.log(`Updating product options for ${input.productIds.length} products after deletion`);
17
+ // Get products with their options
18
+ const { data: products } = await query.graph({
18
19
  entity: "product",
19
20
  fields: ["id", "external_id", "options.*"],
20
21
  filters: {
21
22
  id: input.productIds,
22
23
  },
23
24
  });
24
- if (!productsWithDeletedVariants || !productsWithDeletedVariants.length) {
25
+ if (!products || !products.length) {
25
26
  console.log("No products found for the provided IDs");
26
27
  return new workflows_sdk_1.StepResponse([]);
27
28
  }
28
- console.log(`Found ${productsWithDeletedVariants.length} products to update`);
29
- // Get remaining variants for these products
30
- const { data: remainingVariants } = await query.graph({
31
- entity: "variant",
32
- fields: ["id", "product_id", "metadata.external_id"],
29
+ // Get all remaining variants for these products with their existing options
30
+ const { data: variants } = await query.graph({
31
+ entity: "product_variant",
32
+ fields: [
33
+ "id",
34
+ "product_id",
35
+ "options.*",
36
+ "options.option.title",
37
+ ],
33
38
  filters: {
34
39
  product_id: input.productIds,
35
40
  },
36
41
  });
37
- console.log(`Found ${remainingVariants?.length || 0} remaining variants`);
38
- // Get extended variants data for the remaining variants
39
- let remainingExtendedVariants;
40
- try {
41
- const result = await query.graph({
42
- entity: "extended_variant",
43
- fields: [
44
- "id",
45
- "mapping_id",
46
- "party_style_id",
47
- "style_id",
48
- "item_size",
49
- "metal",
50
- "metal_purity",
51
- "metal_color",
52
- "party_style_details.raw_type",
53
- "party_style_details.is_base",
54
- "party_style_details.qly_code",
55
- "party_style_details.raw_code",
56
- "party_style_details.tone_code",
42
+ console.log(`Found ${variants?.length || 0} remaining variants`);
43
+ // If no variants remain, set products to draft with Default option
44
+ if (!variants || variants.length === 0) {
45
+ const productsToUpdate = products.map((product) => ({
46
+ id: product.id,
47
+ options: [
48
+ {
49
+ title: "Default",
50
+ values: ["Default"],
51
+ },
57
52
  ],
58
- filters: {
59
- mapping_id: (remainingVariants || []).map((v) => v.id),
60
- },
61
- });
62
- remainingExtendedVariants = result.data;
63
- console.log(`Found ${remainingExtendedVariants?.length || 0} remaining extended variants`);
64
- }
65
- catch (error) {
66
- console.error("Error fetching extended variants:", error);
67
- console.log("Falling back to empty array for extended variants");
68
- remainingExtendedVariants = [];
69
- }
70
- // Update product options for each affected product using the same approach as create-or-update-party-style-master
71
- const productsToUpdate = [];
72
- for (const product of productsWithDeletedVariants) {
73
- console.log(`Processing product ${product.id} (${product.external_id})`);
74
- // Get variants for this specific product
75
- const productVariants = (remainingVariants || []).filter((variant) => variant.product_id === product.id);
76
- if (productVariants.length === 0) {
77
- console.log(`No variants left for product ${product.id}, setting Default option only and status to draft`);
78
- // No variants left, remove all options except Default and set status to draft
79
- productsToUpdate.push({
80
- id: product.id,
81
- options: [
82
- {
83
- title: "Default",
84
- values: ["Default"],
85
- },
86
- ],
87
- status: utils_3.ProductUtils.ProductStatus.DRAFT, // Set status to draft when no variants exist
53
+ }));
54
+ // Update products with Default option
55
+ if (productsToUpdate.length > 0) {
56
+ await (0, core_flows_1.updateProductsWorkflow)(container).run({
57
+ input: {
58
+ products: productsToUpdate,
59
+ },
88
60
  });
89
- continue;
90
- }
91
- // Get extended variants for this product's variants
92
- const productExtendedVariants = (remainingExtendedVariants || []).filter((extVariant) => productVariants.some((variant) => variant.id === extVariant.mapping_id));
93
- if (productExtendedVariants.length === 0) {
94
- console.log(`No extended variants found for product ${product.id}, setting Default option only`);
95
- // No extended variants found, use Default option
96
- productsToUpdate.push({
97
- id: product.id,
98
- options: [
99
- {
100
- title: "Default",
101
- values: ["Default"],
102
- },
103
- ],
104
- status: utils_3.ProductUtils.ProductStatus.DRAFT, // Set status to draft when no extended variants exist
105
- });
106
- continue;
107
- }
108
- console.log(`Processing ${productExtendedVariants.length} extended variants for product ${product.id}`);
109
- // Use the same approach as create-or-update-party-style-master
110
- // Calculate new options based on remaining variants
111
- const newOptions = [];
112
- // Collect all unique option values from remaining variants
113
- const optionValues = {
114
- metals: new Set(),
115
- metalColors: new Set(),
116
- diamondQualities: new Set(),
117
- sizes: new Set(),
118
- };
119
- productExtendedVariants.forEach((extVariant) => {
120
- // Safely access properties with null checks
121
- // Use direct fields from ExtendedVariant model
122
- if (extVariant.item_size) {
123
- optionValues.sizes.add(String(extVariant.item_size));
124
- }
125
- // Don't use raw metal fields - we'll get them from party_style_details
126
- // if (extVariant.metal) {
127
- // optionValues.metals.add(extVariant.metal);
128
- // }
129
- // if (extVariant.metal_color) {
130
- // optionValues.metalColors.add(extVariant.metal_color);
131
- // }
132
- // Process party style details if available
133
- if (extVariant.party_style_details) {
134
- extVariant.party_style_details.forEach((detail) => {
135
- if (detail?.raw_type === "Metal" && detail?.is_base) {
136
- if (detail.qly_code && detail.raw_code) {
137
- optionValues.metals.add(`${detail.qly_code}KT ${detail.raw_code}`);
138
- }
139
- // Map tone code to color name
140
- if (detail.tone_code === "R")
141
- optionValues.metalColors.add("Rose");
142
- else if (detail.tone_code === "Y")
143
- optionValues.metalColors.add("Yellow");
144
- else if (detail.tone_code === "W")
145
- optionValues.metalColors.add("White");
146
- else if (detail.tone_code === "YRW")
147
- optionValues.metalColors.add("YELLOW/ROSE/WHITE");
148
- else if (detail.tone_code === "YW")
149
- optionValues.metalColors.add("YELLOW/WHITE");
150
- else if (detail.tone_code === "RW")
151
- optionValues.metalColors.add("ROSE/WHITE");
152
- else if (detail.tone_code === "BU")
153
- optionValues.metalColors.add("BLUE");
154
- else if (detail.tone_code === "BL")
155
- optionValues.metalColors.add("BLACK");
156
- }
157
- if (detail?.raw_type === "Diamond" &&
158
- detail?.tone_code &&
159
- detail?.qly_code &&
160
- detail?.is_base) {
161
- optionValues.diamondQualities.add(`${detail.tone_code}/${detail.qly_code}`);
162
- }
61
+ // Set status to draft separately if needed
62
+ const productService = container.resolve(utils_2.Modules.PRODUCT);
63
+ for (const product of productsToUpdate) {
64
+ await productService.updateProducts(product.id, {
65
+ status: utils_3.ProductUtils.ProductStatus.DRAFT,
163
66
  });
164
67
  }
165
- });
166
- // Build options array - ensure proper structure
167
- // Only add Default option when no variants exist
168
- if (productExtendedVariants.length === 0) {
169
- newOptions.push({
170
- title: "Default",
171
- values: ["Default"],
172
- });
173
- }
174
- // Add other options only if they have values
175
- if (optionValues.metals.size > 0) {
176
- newOptions.push({
177
- title: "Metal",
178
- values: Array.from(optionValues.metals),
179
- });
180
68
  }
181
- if (optionValues.metalColors.size > 0) {
182
- newOptions.push({
183
- title: "Metal Color",
184
- values: Array.from(optionValues.metalColors),
185
- });
186
- }
187
- if (optionValues.diamondQualities.size > 0) {
188
- newOptions.push({
189
- title: "Diamond Quality",
190
- values: Array.from(optionValues.diamondQualities),
191
- });
192
- }
193
- if (optionValues.sizes.size > 0) {
194
- newOptions.push({
195
- title: "Size",
196
- values: Array.from(optionValues.sizes),
197
- });
69
+ return new workflows_sdk_1.StepResponse(productsToUpdate);
70
+ }
71
+ // Collect existing option values from remaining variants
72
+ // NOTE: We only update product options based on existing variant options,
73
+ // we do NOT recalculate or update variants themselves
74
+ const productOptionsMap = new Map();
75
+ for (const variant of variants) {
76
+ const productId = variant.product_id;
77
+ if (!productId)
78
+ continue;
79
+ // Initialize product options map if not exists
80
+ if (!productOptionsMap.has(productId)) {
81
+ productOptionsMap.set(productId, new Map());
198
82
  }
199
- console.log(`Calculated ${newOptions.length} options for product ${product.id}:`, newOptions);
200
- // Get current product options for reference (but we won't merge them)
201
- const { data: currentProductOptions } = await query.graph({
202
- entity: "product_option",
203
- fields: ["id", "title", "values.*"],
204
- filters: { product_id: product.id },
205
- });
206
- console.log(`Current product options for ${product.id}:`, currentProductOptions);
207
- // Don't merge with existing options - replace them entirely
208
- // This ensures options only reflect current variants
209
- let finalOptions = newOptions;
210
- console.log(`Final options for ${product.id}:`, finalOptions);
211
- productsToUpdate.push({
212
- id: product.id,
213
- options: finalOptions,
83
+ const optionsMap = productOptionsMap.get(productId);
84
+ // Collect option values from existing variant options
85
+ variant.options?.forEach((optionValue) => {
86
+ const title = optionValue.option?.title;
87
+ const value = optionValue.value;
88
+ if (title && value) {
89
+ if (!optionsMap.has(title)) {
90
+ optionsMap.set(title, new Set());
91
+ }
92
+ optionsMap.get(title).add(value);
93
+ }
214
94
  });
215
95
  }
216
- // Update products with new options
96
+ // Update products with option values from remaining variants
97
+ const productsToUpdate = Array.from(productOptionsMap.entries()).map(([productId, optionsMap]) => {
98
+ const options = Array.from(optionsMap.entries())
99
+ .sort(([a], [b]) => a.localeCompare(b))
100
+ .map(([title, values]) => ({
101
+ title,
102
+ values: Array.from(values).sort((x, y) => x.localeCompare(y)),
103
+ }));
104
+ return {
105
+ id: productId,
106
+ options,
107
+ };
108
+ });
109
+ console.log("productsToUpdate (after deletion)", JSON.stringify(productsToUpdate, null, 2));
217
110
  if (productsToUpdate.length > 0) {
218
- console.log(`Updating ${productsToUpdate.length} products with new options`);
219
- const productService = container.resolve(utils_2.Modules.PRODUCT);
220
- // Update each product individually
221
- for (const productUpdate of productsToUpdate) {
222
- await productService.updateProducts(productUpdate.id, {
223
- options: productUpdate.options,
224
- status: productUpdate.status, // Apply status update
225
- });
226
- }
227
- console.log("Product options update completed successfully");
228
- }
229
- else {
230
- console.log("No products to update");
111
+ await (0, core_flows_1.updateProductsWorkflow)(container).run({
112
+ input: {
113
+ products: productsToUpdate,
114
+ },
115
+ });
231
116
  }
232
117
  return new workflows_sdk_1.StepResponse(productsToUpdate);
233
118
  }
@@ -236,4 +121,4 @@ exports.updateProductOptionsAfterDeletionStep = (0, workflows_sdk_1.createStep)(
236
121
  throw error;
237
122
  }
238
123
  });
239
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlLXByb2R1Y3Qtb3B0aW9ucy1hZnRlci1kZWxldGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy93b3JrZmxvd3MvcGFydHktc3R5bGUtbWFzdGVyL3N0ZXBzL3VwZGF0ZS1wcm9kdWN0LW9wdGlvbnMtYWZ0ZXItZGVsZXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscURBQXNFO0FBQ3RFLHFFQUE2RTtBQUM3RSxxREFBb0Q7QUFDcEQscURBQXlEO0FBUzVDLFFBQUEscUNBQXFDLEdBQUcsSUFBQSwwQkFBVSxFQUM3RCx1Q0FBdUMsRUFDdkMsS0FBSyxFQUFFLEtBQWlELEVBQUUsRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFFO0lBQ3pFLElBQUksQ0FBQztRQUNILElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQzdCLE9BQU8sQ0FBQyxHQUFHLENBQUMsMERBQTBELENBQUMsQ0FBQztZQUN4RSxPQUFPLElBQUksNEJBQVksQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUM5QixDQUFDO1FBRUQsTUFBTSxLQUFLLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxpQ0FBeUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUVqRSxPQUFPLENBQUMsR0FBRyxDQUNULGdDQUFnQyxLQUFLLENBQUMsVUFBVSxDQUFDLE1BQU0sV0FBVyxDQUNuRSxDQUFDO1FBRUYsNkNBQTZDO1FBQzdDLE1BQU0sRUFBRSxJQUFJLEVBQUUsMkJBQTJCLEVBQUUsR0FBRyxNQUFNLEtBQUssQ0FBQyxLQUFLLENBQUM7WUFDOUQsTUFBTSxFQUFFLFNBQVM7WUFDakIsTUFBTSxFQUFFLENBQUMsSUFBSSxFQUFFLGFBQWEsRUFBRSxXQUFXLENBQUM7WUFDMUMsT0FBTyxFQUFFO2dCQUNQLEVBQUUsRUFBRSxLQUFLLENBQUMsVUFBVTthQUNyQjtTQUNGLENBQUMsQ0FBQztRQUVILElBQUks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
124
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlLXByb2R1Y3Qtb3B0aW9ucy1hZnRlci1kZWxldGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy93b3JrZmxvd3MvcGFydHktc3R5bGUtbWFzdGVyL3N0ZXBzL3VwZGF0ZS1wcm9kdWN0LW9wdGlvbnMtYWZ0ZXItZGVsZXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscURBQXNFO0FBQ3RFLHFFQUE2RTtBQUM3RSw0REFBcUU7QUFDckUscURBQW9EO0FBQ3BELHFEQUF5RDtBQU81QyxRQUFBLHFDQUFxQyxHQUFHLElBQUEsMEJBQVUsRUFDN0QsdUNBQXVDLEVBQ3ZDLEtBQUssRUFBRSxLQUFpRCxFQUFFLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRTtJQUN6RSxJQUFJLENBQUM7UUFDSCxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUM3QixPQUFPLENBQUMsR0FBRyxDQUFDLDBEQUEwRCxDQUFDLENBQUM7WUFDeEUsT0FBTyxJQUFJLDRCQUFZLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDOUIsQ0FBQztRQUVELE1BQU0sS0FBSyxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsaUNBQXlCLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDakUsT0FBTyxDQUFDLEdBQUcsQ0FDVCxnQ0FBZ0MsS0FBSyxDQUFDLFVBQVUsQ0FBQyxNQUFNLDBCQUEwQixDQUNsRixDQUFDO1FBRUYsa0NBQWtDO1FBQ2xDLE1BQU0sRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLEdBQUcsTUFBTSxLQUFLLENBQUMsS0FBSyxDQUFDO1lBQzNDLE1BQU0sRUFBRSxTQUFTO1lBQ2pCLE1BQU0sRUFBRSxDQUFDLElBQUksRUFBRSxhQUFhLEVBQUUsV0FBVyxDQUFDO1lBQzFDLE9BQU8sRUFBRTtnQkFDUCxFQUFFLEVBQUUsS0FBSyxDQUFDLFVBQVU7YUFDckI7U0FDRixDQUFDLENB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