@devx-commerce/plugin-gati 0.0.2-beta.4 → 0.0.2-beta.41

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 (164) hide show
  1. package/.medusa/server/src/api/admin/erp-event/middlewares.js +17 -0
  2. package/.medusa/server/src/api/admin/erp-event/query-config.js +23 -0
  3. package/.medusa/server/src/api/admin/erp-event/route.js +22 -0
  4. package/.medusa/server/src/api/admin/erp-event/utils.js +20 -0
  5. package/.medusa/server/src/api/admin/erp-event/validators.js +9 -0
  6. package/.medusa/server/src/api/admin/middlewares.js +11 -0
  7. package/.medusa/server/src/api/erp/webhook/config.js +88 -0
  8. package/.medusa/server/src/api/erp/webhook/route.js +39 -45
  9. package/.medusa/server/src/api/erp/webhook/utils.js +61 -0
  10. package/.medusa/server/src/api/middlewares.js +12 -0
  11. package/.medusa/server/src/lib/api-response.js +103 -0
  12. package/.medusa/server/src/modules/category-group-master/index.js +13 -0
  13. package/.medusa/server/src/modules/category-group-master/migrations/Migration20250531004725.js +15 -0
  14. package/.medusa/server/src/modules/category-group-master/models/category-group-master.js +12 -0
  15. package/.medusa/server/src/modules/category-group-master/service.js +10 -0
  16. package/.medusa/server/src/modules/category-master/index.js +13 -0
  17. package/.medusa/server/src/modules/category-master/migrations/Migration20250513122212.js +15 -0
  18. package/.medusa/server/src/modules/category-master/migrations/Migration20250519180539.js +14 -0
  19. package/.medusa/server/src/modules/category-master/migrations/Migration20250531004724.js +14 -0
  20. package/.medusa/server/src/modules/category-master/models/category-master.js +15 -0
  21. package/.medusa/server/src/modules/category-master/service.js +10 -0
  22. package/.medusa/server/src/modules/collection-group-master/index.js +13 -0
  23. package/.medusa/server/src/modules/collection-group-master/migrations/Migration20250531022203.js +15 -0
  24. package/.medusa/server/src/modules/collection-group-master/models/collection-group-master.js +12 -0
  25. package/.medusa/server/src/modules/collection-group-master/service.js +10 -0
  26. package/.medusa/server/src/modules/collection-master/index.js +13 -0
  27. package/.medusa/server/src/modules/collection-master/migrations/Migration20250513122211.js +16 -0
  28. package/.medusa/server/src/modules/collection-master/migrations/Migration20250531025048.js +14 -0
  29. package/.medusa/server/src/modules/collection-master/models/collection-master.js +15 -0
  30. package/.medusa/server/src/modules/collection-master/service.js +10 -0
  31. package/.medusa/server/src/modules/erp/migrations/Migration20250513121436.js +16 -0
  32. package/.medusa/server/src/modules/erp/models/erp.js +10 -0
  33. package/.medusa/server/src/modules/erp-event/index.js +13 -0
  34. package/.medusa/server/src/modules/erp-event/migrations/Migration20250608221239.js +15 -0
  35. package/.medusa/server/src/modules/erp-event/models/erp-event.js +11 -0
  36. package/.medusa/server/src/modules/erp-event/service.js +10 -0
  37. package/.medusa/server/src/modules/extended-product/migrations/Migration20250620030100.js +36 -0
  38. package/.medusa/server/src/modules/extended-product/models/extended-product.js +54 -5
  39. package/.medusa/server/src/modules/extended-product/service.js +3 -1
  40. package/.medusa/server/src/modules/extended-variant/migrations/Migration20250620030335.js +32 -0
  41. package/.medusa/server/src/modules/extended-variant/migrations/Migration20250620030522.js +20 -0
  42. package/.medusa/server/src/modules/extended-variant/models/extended-variant.js +38 -5
  43. package/.medusa/server/src/modules/party-master/index.js +13 -0
  44. package/.medusa/server/src/modules/party-master/migrations/Migration20250604104235.js +16 -0
  45. package/.medusa/server/src/modules/party-master/migrations/Migration20250604115453.js +16 -0
  46. package/.medusa/server/src/modules/party-master/migrations/Migration20250604120348.js +16 -0
  47. package/.medusa/server/src/modules/party-master/migrations/Migration20250604120701.js +14 -0
  48. package/.medusa/server/src/modules/party-master/migrations/Migration20250608220924.js +16 -0
  49. package/.medusa/server/src/modules/party-master/migrations/Migration20250612225738.js +20 -0
  50. package/.medusa/server/src/modules/party-master/migrations/Migration20250612231031.js +16 -0
  51. package/.medusa/server/src/modules/party-master/models/party-master.js +60 -0
  52. package/.medusa/server/src/modules/party-master/service.js +10 -0
  53. package/.medusa/server/src/modules/raw-master/index.js +13 -0
  54. package/.medusa/server/src/modules/raw-master/migrations/Migration20250509190057.js +16 -0
  55. package/.medusa/server/src/modules/raw-master/migrations/Migration20250509190322.js +14 -0
  56. package/.medusa/server/src/modules/raw-master/models/raw-master.js +17 -0
  57. package/.medusa/server/src/modules/raw-master/service.js +10 -0
  58. package/.medusa/server/src/modules/shape-master/index.js +13 -0
  59. package/.medusa/server/src/modules/shape-master/migrations/Migration20250509174455.js +16 -0
  60. package/.medusa/server/src/modules/shape-master/models/shape-master.js +13 -0
  61. package/.medusa/server/src/modules/shape-master/service.js +10 -0
  62. package/.medusa/server/src/modules/sub-category-master/index.js +13 -0
  63. package/.medusa/server/src/modules/sub-category-master/migrations/Migration20250513115356.js +15 -0
  64. package/.medusa/server/src/modules/sub-category-master/migrations/Migration20250519180538.js +14 -0
  65. package/.medusa/server/src/modules/sub-category-master/migrations/Migration20250531010409.js +14 -0
  66. package/.medusa/server/src/modules/sub-category-master/models/sub-category-master.js +15 -0
  67. package/.medusa/server/src/modules/sub-category-master/service.js +10 -0
  68. package/.medusa/server/src/subscribers/category-group-master.js +117 -0
  69. package/.medusa/server/src/subscribers/category-master.js +130 -0
  70. package/.medusa/server/src/subscribers/collection-master.js +115 -0
  71. package/.medusa/server/src/subscribers/party-master-location.js +126 -0
  72. package/.medusa/server/src/subscribers/party-master.js +226 -0
  73. package/.medusa/server/src/subscribers/product-update.js +58 -0
  74. package/.medusa/server/src/subscribers/sub-category-master.js +130 -0
  75. package/.medusa/server/src/utils/address-formatter.js +60 -0
  76. package/.medusa/server/src/utils/phone-mapper.js +28 -0
  77. package/.medusa/server/src/workflows/category-group-master/index.js +58 -0
  78. package/.medusa/server/src/workflows/category-group-master/steps/create-category-group.js +18 -0
  79. package/.medusa/server/src/workflows/category-group-master/steps/delete-category-group.js +23 -0
  80. package/.medusa/server/src/workflows/category-group-master/steps/fetch-category-master.js +70 -0
  81. package/.medusa/server/src/workflows/category-group-master/steps/update-category-group.js +26 -0
  82. package/.medusa/server/src/workflows/category-master/index.js +58 -0
  83. package/.medusa/server/src/workflows/category-master/steps/create-category.js +21 -0
  84. package/.medusa/server/src/workflows/category-master/steps/delete-category.js +23 -0
  85. package/.medusa/server/src/workflows/category-master/steps/fetch-category-master.js +70 -0
  86. package/.medusa/server/src/workflows/category-master/steps/update-category.js +29 -0
  87. package/.medusa/server/src/workflows/collection-group-master/index.js +37 -0
  88. package/.medusa/server/src/workflows/collection-group-master/steps/create-category.js +50 -0
  89. package/.medusa/server/src/workflows/collection-group-master/steps/create-collection-group.js +18 -0
  90. package/.medusa/server/src/workflows/collection-group-master/steps/delete-collection-group.js +23 -0
  91. package/.medusa/server/src/workflows/collection-group-master/steps/fetch-collection-grp-master.js +70 -0
  92. package/.medusa/server/src/workflows/collection-group-master/steps/update-collection-group.js +26 -0
  93. package/.medusa/server/src/workflows/collection-master/index.js +68 -0
  94. package/.medusa/server/src/workflows/collection-master/steps/create-category.js +60 -0
  95. package/.medusa/server/src/workflows/collection-master/steps/create-collection.js +22 -0
  96. package/.medusa/server/src/workflows/collection-master/steps/delete-collection.js +22 -0
  97. package/.medusa/server/src/workflows/collection-master/steps/fetch-collection-master.js +70 -0
  98. package/.medusa/server/src/workflows/collection-master/steps/update-collection.js +32 -0
  99. package/.medusa/server/src/workflows/create-extended-product-from-product/index.js +42 -12
  100. package/.medusa/server/src/workflows/create-extended-product-from-product/steps/create-extended-product.js +1 -1
  101. package/.medusa/server/src/workflows/create-extended-product-from-product/steps/create-style-collection-lines.js +25 -0
  102. package/.medusa/server/src/workflows/create-extended-product-from-product/steps/create-style-exploration-lines.js +25 -0
  103. package/.medusa/server/src/workflows/create-extended-variant-from-variant/index.js +84 -0
  104. package/.medusa/server/src/workflows/create-extended-variant-from-variant/steps/create-extended-variant.js +18 -0
  105. package/.medusa/server/src/workflows/create-extended-variant-from-variant/steps/create-style-detail-lines.js +25 -0
  106. package/.medusa/server/src/workflows/create-or-update-product-options/index.js +25 -0
  107. package/.medusa/server/src/workflows/create-or-update-product-options/steps/create-update-product-options.js +28 -0
  108. package/.medusa/server/src/workflows/erp-event/index.js +10 -0
  109. package/.medusa/server/src/workflows/erp-event/steps/create-erp-event.js +18 -0
  110. package/.medusa/server/src/workflows/helpers/product-helper.js +421 -4
  111. package/.medusa/server/src/workflows/hooks/variant-created.js +16 -0
  112. package/.medusa/server/src/workflows/index.js +18 -0
  113. package/.medusa/server/src/workflows/party-master/helpers/index.js +9 -0
  114. package/.medusa/server/src/workflows/party-master/index.js +157 -0
  115. package/.medusa/server/src/workflows/party-master/steps/create-party.js +71 -0
  116. package/.medusa/server/src/workflows/party-master/steps/delete-party.js +23 -0
  117. package/.medusa/server/src/workflows/party-master/steps/fetch-party-master.js +70 -0
  118. package/.medusa/server/src/workflows/party-master/steps/update-party-master-with-field.js +15 -0
  119. package/.medusa/server/src/workflows/party-master/steps/update-party.js +79 -0
  120. package/.medusa/server/src/workflows/party-master/workflows/update-party-master-with-field.js +11 -0
  121. package/.medusa/server/src/workflows/party-style-master/index.js +19 -0
  122. package/.medusa/server/src/workflows/party-style-master/steps/delete-party-style-master.js +40 -0
  123. package/.medusa/server/src/workflows/party-style-master/steps/fetch-party-styles.js +70 -0
  124. package/.medusa/server/src/workflows/party-style-master/steps/index.js +19 -0
  125. package/.medusa/server/src/workflows/party-style-master/workflows/create-or-update-party-style-master.js +199 -0
  126. package/.medusa/server/src/workflows/party-style-master/workflows/delete-party-style-master.js +13 -0
  127. package/.medusa/server/src/workflows/party-style-master/workflows/index.js +19 -0
  128. package/.medusa/server/src/workflows/raw-master/index.js +30 -0
  129. package/.medusa/server/src/workflows/raw-master/steps/create-raw.js +24 -0
  130. package/.medusa/server/src/workflows/raw-master/steps/delete-raw.js +23 -0
  131. package/.medusa/server/src/workflows/raw-master/steps/fetch-raw-master.js +70 -0
  132. package/.medusa/server/src/workflows/raw-master/steps/update-raw.js +34 -0
  133. package/.medusa/server/src/workflows/shape-master/index.js +30 -0
  134. package/.medusa/server/src/workflows/shape-master/steps/create-shape.js +20 -0
  135. package/.medusa/server/src/workflows/shape-master/steps/delete-shape.js +23 -0
  136. package/.medusa/server/src/workflows/shape-master/steps/fetch-shape-master.js +70 -0
  137. package/.medusa/server/src/workflows/shape-master/steps/update-shape.js +30 -0
  138. package/.medusa/server/src/workflows/style-master/index.js +19 -0
  139. package/.medusa/server/src/workflows/style-master/steps/delete-style-master.js +38 -0
  140. package/.medusa/server/src/workflows/style-master/steps/fetch-styles.js +70 -0
  141. package/.medusa/server/src/workflows/style-master/steps/index.js +19 -0
  142. package/.medusa/server/src/workflows/style-master/workflows/create-or-update-style-master.js +326 -0
  143. package/.medusa/server/src/workflows/style-master/workflows/delete-style-master.js +24 -0
  144. package/.medusa/server/src/workflows/style-master/workflows/index.js +19 -0
  145. package/.medusa/server/src/workflows/sub-category-master/index.js +58 -0
  146. package/.medusa/server/src/workflows/sub-category-master/steps/create-sub-category.js +21 -0
  147. package/.medusa/server/src/workflows/sub-category-master/steps/delete-sub-category.js +23 -0
  148. package/.medusa/server/src/workflows/sub-category-master/steps/fetch-category-master.js +70 -0
  149. package/.medusa/server/src/workflows/sub-category-master/steps/update-sub-category.js +31 -0
  150. package/.medusa/server/src/workflows/types/index.js +1 -1
  151. package/.medusa/server/src/workflows/update-extended-product-from-product/index.js +18 -11
  152. package/.medusa/server/src/workflows/update-extended-product-from-product/steps/update-extended-product-from-product.js +26 -7
  153. package/.medusa/server/src/workflows/update-extended-variant-from-variant/index.js +43 -0
  154. package/.medusa/server/src/workflows/update-extended-variant-from-variant/steps/update-extended-product-from-product.js +54 -0
  155. package/.medusa/server/src/workflows/update-extended-variant-from-variant/steps/update-extended-variant-with-field.js +15 -0
  156. package/package.json +6 -2
  157. package/.medusa/server/src/api/admin/plugin/route.js +0 -7
  158. package/.medusa/server/src/modules/extended-product/migrations/Migration20250502071544.js +0 -21
  159. package/.medusa/server/src/modules/extended-product/migrations/Migration20250502122607.js +0 -17
  160. package/.medusa/server/src/modules/extended-variant/migrations/Migration20250502071544.js +0 -27
  161. package/.medusa/server/src/workflows/create-or-update-party-style-master/index.js +0 -37
  162. package/.medusa/server/src/workflows/create-or-update-party-style-master/steps/fetch-party-styles.js +0 -70
  163. package/.medusa/server/src/workflows/create-or-update-style-master/index.js +0 -160
  164. package/.medusa/server/src/workflows/create-or-update-style-master/steps/fetch-styles.js +0 -70
@@ -1,37 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
4
- const core_flows_1 = require("@medusajs/medusa/core-flows");
5
- const fetch_party_styles_1 = require("./steps/fetch-party-styles");
6
- /**
7
- * Main workflow for handling StyleMst operations
8
- * This workflow:
9
- * 1. Fetches style data from ERP
10
- * 2. Gets required sales channels and shipping profiles
11
- * 3. Conditionally creates products based on operation type
12
- *
13
- * @param input - Contains operation type, datafor type, and transaction IDs
14
- */
15
- const partyStyleMstWorkflow = (0, workflows_sdk_1.createWorkflow)("party-style-mst", (input) => {
16
- // Step 1: Fetch style data from ERP system
17
- const styleData = (0, fetch_party_styles_1.fetchPartyStyleData)(input);
18
- const externalIdsFilters = (0, workflows_sdk_1.transform)({
19
- styleData,
20
- }, (data) => {
21
- return [
22
- ...new Set(data.styleData.map((product) => `${product.StyleId}`)),
23
- ];
24
- });
25
- const { data: existingProducts } = (0, core_flows_1.useQueryGraphStep)({
26
- entity: "product",
27
- fields: ["id", "external_id", "variants.*"],
28
- filters: {
29
- external_id: externalIdsFilters,
30
- },
31
- }).config({ name: "existing-products" });
32
- return new workflows_sdk_1.WorkflowResponse({
33
- success: true,
34
- });
35
- });
36
- exports.default = partyStyleMstWorkflow;
37
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL2NyZWF0ZS1vci11cGRhdGUtcGFydHktc3R5bGUtbWFzdGVyL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEscUVBSTJDO0FBRTNDLDREQUFnRTtBQUVoRSxtRUFBaUU7QUFFakU7Ozs7Ozs7O0dBUUc7QUFDSCxNQUFNLHFCQUFxQixHQUFHLElBQUEsOEJBQWMsRUFDMUMsaUJBQWlCLEVBQ2pCLENBQUMsS0FBeUIsRUFBRSxFQUFFO0lBQzVCLDJDQUEyQztJQUMzQyxNQUFNLFNBQVMsR0FBRyxJQUFBLHdDQUFtQixFQUFDLEtBQUssQ0FBQyxDQUFDO0lBRTdDLE1BQU0sa0JBQWtCLEdBQUcsSUFBQSx5QkFBUyxFQUNsQztRQUNFLFNBQVM7S0FDVixFQUNELENBQUMsSUFBSSxFQUFFLEVBQUU7UUFDUCxPQUFPO1lBQ0wsR0FBRyxJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsR0FBRyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztTQUNsRSxDQUFDO0lBQ0osQ0FBQyxDQUNGLENBQUM7SUFFRixNQUFNLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFLEdBQUcsSUFBQSw4QkFBaUIsRUFBQztRQUNuRCxNQUFNLEVBQUUsU0FBUztRQUNqQixNQUFNLEVBQUUsQ0FBQyxJQUFJLEVBQUUsYUFBYSxFQUFFLFlBQVksQ0FBQztRQUMzQyxPQUFPLEVBQUU7WUFDUCxXQUFXLEVBQUUsa0JBQWtCO1NBQ2hDO0tBQ0YsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLElBQUksRUFBRSxtQkFBbUIsRUFBRSxDQUFDLENBQUM7SUFFekMsT0FBTyxJQUFJLGdDQUFnQixDQUFDO1FBQzFCLE9BQU8sRUFBRSxJQUFJO0tBQ2QsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUNGLENBQUM7QUFFRixrQkFBZSxxQkFBcUIsQ0FBQyJ9
@@ -1,70 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.fetchPartyStyleData = void 0;
4
- const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
5
- const BATCH_SIZE = 50; // Process 50 items at a time
6
- const MAX_RETRIES = 3;
7
- const RETRY_DELAY = 1000; // 1 second delay between retries
8
- const sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
9
- const processBatch = async (erpService, datafor, batch, retryCount = 0) => {
10
- try {
11
- const results = await Promise.all(batch.map(async (transactionId) => {
12
- try {
13
- return await erpService.getMasterData(datafor, transactionId);
14
- }
15
- catch (error) {
16
- console.error(`Error fetching data for ID ${transactionId}:`, error);
17
- return null;
18
- }
19
- }));
20
- // Filter out failed requests
21
- const successfulResults = results.filter((result) => result !== null);
22
- // If we have failed requests and haven't exceeded max retries, retry them
23
- if (results.length !== successfulResults.length &&
24
- retryCount < MAX_RETRIES) {
25
- const failedIds = batch.filter((_, index) => results[index] === null);
26
- console.log(`Retrying ${failedIds.length} failed requests (attempt ${retryCount + 1})`);
27
- await sleep(RETRY_DELAY);
28
- const retryResults = await processBatch(erpService, datafor, failedIds, retryCount + 1);
29
- return [...successfulResults, ...retryResults];
30
- }
31
- return successfulResults;
32
- }
33
- catch (error) {
34
- console.error("Batch processing error:", error);
35
- if (retryCount < MAX_RETRIES) {
36
- console.log(`Retrying entire batch (attempt ${retryCount + 1})`);
37
- await sleep(RETRY_DELAY);
38
- return processBatch(erpService, datafor, batch, retryCount + 1);
39
- }
40
- throw error;
41
- }
42
- };
43
- /**
44
- * Step to fetch style data from ERP system
45
- * This step processes data in batches to avoid timeouts and handle large datasets
46
- * @param input - Contains datafor type and array of transaction IDs
47
- * @param container - Dependency injection container to resolve services
48
- */
49
- exports.fetchPartyStyleData = (0, workflows_sdk_1.createStep)("fetch-party-style-data", async (input, { container }) => {
50
- const erpService = container.resolve("erp");
51
- const { datafor, data } = input;
52
- // Split data into batches
53
- const batches = [];
54
- for (let i = 0; i < data.length; i += BATCH_SIZE) {
55
- batches.push(data.slice(i, i + BATCH_SIZE));
56
- }
57
- console.log(`Processing ${data.length} items in ${batches.length} batches`);
58
- // Process each batch sequentially
59
- const allResults = [];
60
- for (let i = 0; i < batches.length; i++) {
61
- console.log(`Processing batch ${i + 1}/${batches.length}`);
62
- const batchResults = await processBatch(erpService, datafor, batches[i]);
63
- allResults.push(...batchResults);
64
- }
65
- console.log(`Successfully processed ${allResults.length} items`);
66
- return new workflows_sdk_1.StepResponse(allResults);
67
- }, async (result, { container }) => {
68
- console.log("Something went wrong in fetch-style-data");
69
- });
70
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmV0Y2gtcGFydHktc3R5bGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3dvcmtmbG93cy9jcmVhdGUtb3ItdXBkYXRlLXBhcnR5LXN0eWxlLW1hc3Rlci9zdGVwcy9mZXRjaC1wYXJ0eS1zdHlsZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscUVBQTZFO0FBSTdFLE1BQU0sVUFBVSxHQUFHLEVBQUUsQ0FBQyxDQUFDLDZCQUE2QjtBQUNwRCxNQUFNLFdBQVcsR0FBRyxDQUFDLENBQUM7QUFDdEIsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLENBQUMsaUNBQWlDO0FBRTNELE1BQU0sS0FBSyxHQUFHLENBQUMsRUFBVSxFQUFFLEVBQUUsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBRWhGLE1BQU0sWUFBWSxHQUFHLEtBQUssRUFDeEIsVUFBNEIsRUFDNUIsT0FBZSxFQUNmLEtBQWUsRUFDZixVQUFVLEdBQUcsQ0FBQyxFQUNFLEVBQUU7SUFDbEIsSUFBSSxDQUFDO1FBQ0gsTUFBTSxPQUFPLEdBQUcsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUMvQixLQUFLLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxhQUFhLEVBQUUsRUFBRTtZQUNoQyxJQUFJLENBQUM7Z0JBQ0gsT0FBTyxNQUFNLFVBQVUsQ0FBQyxhQUFhLENBQUMsT0FBTyxFQUFFLGFBQWEsQ0FBQyxDQUFDO1lBQ2hFLENBQUM7WUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO2dCQUNmLE9BQU8sQ0FBQyxLQUFLLENBQUMsOEJBQThCLGFBQWEsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDO2dCQUNyRSxPQUFPLElBQUksQ0FBQztZQUNkLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FDSCxDQUFDO1FBRUYsNkJBQTZCO1FBQzdCLE1B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
@@ -1,160 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
4
- const core_flows_1 = require("@medusajs/medusa/core-flows");
5
- const product_helper_1 = require("../helpers/product-helper");
6
- const fetch_styles_1 = require("./steps/fetch-styles");
7
- /**
8
- * Main workflow for handling StyleMst operations
9
- * This workflow:
10
- * 1. Fetches style data from ERP
11
- * 2. Gets required sales channels and shipping profiles
12
- * 3. Conditionally creates products based on operation type
13
- *
14
- * @param input - Contains operation type, datafor type, and transaction IDs
15
- */
16
- const styleMstWorkflow = (0, workflows_sdk_1.createWorkflow)("style-mst", (input) => {
17
- // Step 1: Fetch style data from ERP system
18
- const styleData = (0, fetch_styles_1.fetchStyleData)(input);
19
- // Step 2: Get all sales channels for product creation
20
- const { data: stores } = (0, core_flows_1.useQueryGraphStep)({
21
- entity: "store",
22
- fields: ["default_sales_channel_id"],
23
- });
24
- // Step 3: Get shipping profile for product creation
25
- const { data: shippingProfiles } = (0, core_flows_1.useQueryGraphStep)({
26
- entity: "shipping_profile",
27
- fields: ["id"],
28
- pagination: {
29
- take: 1,
30
- },
31
- }).config({ name: "shipping-profile" });
32
- const externalIdsFilters = (0, workflows_sdk_1.transform)({
33
- styleData,
34
- }, (data) => {
35
- return data.styleData.map((product) => `${product.StyleId}`);
36
- });
37
- // @ts-ignore
38
- const { data: existingProducts } = (0, core_flows_1.useQueryGraphStep)({
39
- entity: "product",
40
- fields: ["id", "external_id", "variants.*"],
41
- filters: {
42
- // @ts-ignore
43
- external_id: externalIdsFilters,
44
- },
45
- }).config({ name: "existing-products" });
46
- (0, workflows_sdk_1.when)(input, (input) => {
47
- return input.operation === "add" || input.operation === "update";
48
- }).then(() => {
49
- const { productsToCreate, productsToUpdate } = (0, workflows_sdk_1.transform)({
50
- styleData,
51
- shippingProfiles,
52
- stores,
53
- existingProducts,
54
- }, (data) => {
55
- const productsToCreate = [];
56
- const productsToUpdate = [];
57
- data.styleData.forEach((styleData) => {
58
- // Calculate costs based on raw codes
59
- const { metal_total_cost, diamond_total_cost, stone_total_cost, cpf_total_cost, metal_total_amount, diamond_total_amount, stone_total_amount, cpf_total_amount, } = (0, product_helper_1.calculateStyleCostsAndAmounts)(styleData.StyleMstDetail);
60
- const productTitle = styleData.StyleMstExploration.find((exploration) => exploration.ExplorationCode === "Product Name")?.ExplorationValue || `Style ${styleData.StyleCode}`;
61
- const { baseMetal, baseMetalPurity, baseMetalColor } = (0, product_helper_1.getBaseMetalDetails)(styleData.StyleMstDetail);
62
- const product = {
63
- external_id: `${styleData.StyleId}`,
64
- title: productTitle || "",
65
- description: styleData.WebDescription || "",
66
- status: "draft",
67
- options: [
68
- {
69
- title: "Default",
70
- values: ["Default"],
71
- },
72
- ],
73
- hs_code: styleData.HSN || "",
74
- handle: (0, product_helper_1.toKebabCase)([productTitle, styleData.StyleCode]),
75
- variants: [],
76
- shipping_profile_id: data.shippingProfiles[0].id,
77
- sales_channels: [
78
- {
79
- id: data.stores[0].default_sales_channel_id || "",
80
- },
81
- ],
82
- };
83
- const existingProduct = data.existingProducts.find((p) => p.external_id === product.external_id);
84
- if (existingProduct) {
85
- product.id = existingProduct.id;
86
- product.status = existingProduct.status;
87
- product.title = existingProduct.title;
88
- product.description = existingProduct.description;
89
- product.handle = existingProduct.handle;
90
- }
91
- const extendedProductData = (0, product_helper_1.getExtendedProductData)(styleData, { baseMetal, baseMetalPurity, baseMetalColor }, {
92
- metal_total_cost,
93
- diamond_total_cost,
94
- stone_total_cost,
95
- cpf_total_cost,
96
- metal_total_amount,
97
- diamond_total_amount,
98
- stone_total_amount,
99
- cpf_total_amount,
100
- });
101
- const styleDetails = (0, product_helper_1.getStyleDetailLines)(styleData?.StyleMstDetail);
102
- if (existingProduct) {
103
- productsToUpdate.push({
104
- product: product,
105
- additional_data: {
106
- extendedProductData,
107
- styleDetails,
108
- },
109
- });
110
- }
111
- else {
112
- productsToCreate.push({
113
- product: product,
114
- additional_data: {
115
- extendedProductData,
116
- styleDetails,
117
- },
118
- });
119
- }
120
- });
121
- return {
122
- productsToCreate: {
123
- products: productsToCreate.map((p) => p.product),
124
- additional_data: productsToCreate.reduce((acc, p) => {
125
- const externalId = p?.product?.external_id;
126
- if (externalId) {
127
- acc[externalId] = p.additional_data;
128
- }
129
- return acc;
130
- }, {}),
131
- },
132
- productsToUpdate: {
133
- products: productsToUpdate.map((p) => p.product),
134
- additional_data: productsToUpdate.reduce((acc, p) => {
135
- const externalId = p?.product?.external_id;
136
- if (externalId) {
137
- acc[externalId] = p.additional_data;
138
- }
139
- return acc;
140
- }, {}),
141
- },
142
- };
143
- });
144
- core_flows_1.createProductsWorkflow.runAsStep({
145
- input: {
146
- ...productsToCreate,
147
- },
148
- });
149
- core_flows_1.updateProductsWorkflow.runAsStep({
150
- input: {
151
- ...productsToUpdate,
152
- },
153
- });
154
- });
155
- return new workflows_sdk_1.WorkflowResponse({
156
- success: true,
157
- });
158
- });
159
- exports.default = styleMstWorkflow;
160
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL2NyZWF0ZS1vci11cGRhdGUtc3R5bGUtbWFzdGVyL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBSUEscUVBSzJDO0FBQzNDLDREQUlxQztBQUdyQyw4REFNbUM7QUFFbkMsdURBQXNEO0FBRXREOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSxnQkFBZ0IsR0FBRyxJQUFBLDhCQUFjLEVBQUMsV0FBVyxFQUFFLENBQUMsS0FBb0IsRUFBRSxFQUFFO0lBQzVFLDJDQUEyQztJQUMzQyxNQUFNLFNBQVMsR0FBRyxJQUFBLDZCQUFjLEVBQUMsS0FBSyxDQUFDLENBQUM7SUFFeEMsc0RBQXNEO0lBQ3RELE1BQU0sRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLEdBQUcsSUFBQSw4QkFBaUIsRUFBQztRQUN6QyxNQUFNLEVBQUUsT0FBTztRQUNmLE1BQU0sRUFBRSxDQUFDLDBCQUEwQixDQUFDO0tBQ3JDLENBQUMsQ0FBQztJQUVILG9EQUFvRDtJQUNwRCxNQUFNLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFLEdBQUcsSUFBQSw4QkFBaUIsRUFBQztRQUNuRCxNQUFNLEVBQUUsa0JBQWtCO1FBQzFCLE1BQU0sRUFBRSxDQUFDLElBQUksQ0FBQztRQUNkLFVBQVUsRUFBRTtZQUNWLElBQUksRUFBRSxDQUFDO1NBQ1I7S0FDRixDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUUsSUFBSSxFQUFFLGtCQUFrQixFQUFFLENBQUMsQ0FBQztJQUV4QyxNQUFNLGtCQUFrQixHQUFHLElBQUEseUJBQVMsRUFDbEM7UUFDRSxTQUFTO0tBQ1YsRUFDRCxDQUFDLElBQUksRUFBRSxFQUFFO1FBQ1AsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsR0FBRyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUMs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
@@ -1,70 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.fetchStyleData = void 0;
4
- const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
5
- const BATCH_SIZE = 50; // Process 50 items at a time
6
- const MAX_RETRIES = 3;
7
- const RETRY_DELAY = 1000; // 1 second delay between retries
8
- const sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
9
- const processBatch = async (erpService, datafor, batch, retryCount = 0) => {
10
- try {
11
- const results = await Promise.all(batch.map(async (transactionId) => {
12
- try {
13
- return await erpService.getMasterData(datafor, transactionId);
14
- }
15
- catch (error) {
16
- console.error(`Error fetching data for ID ${transactionId}:`, error);
17
- return null;
18
- }
19
- }));
20
- // Filter out failed requests
21
- const successfulResults = results.filter((result) => result !== null);
22
- // If we have failed requests and haven't exceeded max retries, retry them
23
- if (results.length !== successfulResults.length &&
24
- retryCount < MAX_RETRIES) {
25
- const failedIds = batch.filter((_, index) => results[index] === null);
26
- console.log(`Retrying ${failedIds.length} failed requests (attempt ${retryCount + 1})`);
27
- await sleep(RETRY_DELAY);
28
- const retryResults = await processBatch(erpService, datafor, failedIds, retryCount + 1);
29
- return [...successfulResults, ...retryResults];
30
- }
31
- return successfulResults;
32
- }
33
- catch (error) {
34
- console.error("Batch processing error:", error);
35
- if (retryCount < MAX_RETRIES) {
36
- console.log(`Retrying entire batch (attempt ${retryCount + 1})`);
37
- await sleep(RETRY_DELAY);
38
- return processBatch(erpService, datafor, batch, retryCount + 1);
39
- }
40
- throw error;
41
- }
42
- };
43
- /**
44
- * Step to fetch style data from ERP system
45
- * This step processes data in batches to avoid timeouts and handle large datasets
46
- * @param input - Contains datafor type and array of transaction IDs
47
- * @param container - Dependency injection container to resolve services
48
- */
49
- exports.fetchStyleData = (0, workflows_sdk_1.createStep)("fetch-style-data", async (input, { container }) => {
50
- const erpService = container.resolve("erp");
51
- const { datafor, data } = input;
52
- // Split data into batches
53
- const batches = [];
54
- for (let i = 0; i < data.length; i += BATCH_SIZE) {
55
- batches.push(data.slice(i, i + BATCH_SIZE));
56
- }
57
- console.log(`Processing ${data.length} items in ${batches.length} batches`);
58
- // Process each batch sequentially
59
- const allResults = [];
60
- for (let i = 0; i < batches.length; i++) {
61
- console.log(`Processing batch ${i + 1}/${batches.length}`);
62
- const batchResults = await processBatch(erpService, datafor, batches[i]);
63
- allResults.push(...batchResults);
64
- }
65
- console.log(`Successfully processed ${allResults.length} items`);
66
- return new workflows_sdk_1.StepResponse(allResults);
67
- }, async (result, { container }) => {
68
- console.log("Something went wrong in fetch-style-data");
69
- });
70
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmV0Y2gtc3R5bGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3dvcmtmbG93cy9jcmVhdGUtb3ItdXBkYXRlLXN0eWxlLW1hc3Rlci9zdGVwcy9mZXRjaC1zdHlsZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscUVBQTZFO0FBSTdFLE1BQU0sVUFBVSxHQUFHLEVBQUUsQ0FBQyxDQUFDLDZCQUE2QjtBQUNwRCxNQUFNLFdBQVcsR0FBRyxDQUFDLENBQUM7QUFDdEIsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLENBQUMsaUNBQWlDO0FBRTNELE1BQU0sS0FBSyxHQUFHLENBQUMsRUFBVSxFQUFFLEVBQUUsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBRWhGLE1BQU0sWUFBWSxHQUFHLEtBQUssRUFDeEIsVUFBNEIsRUFDNUIsT0FBZSxFQUNmLEtBQWUsRUFDZixVQUFVLEdBQUcsQ0FBQyxFQUNFLEVBQUU7SUFDbEIsSUFBSSxDQUFDO1FBQ0gsTUFBTSxPQUFPLEdBQUcsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUMvQixLQUFLLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxhQUFhLEVBQUUsRUFBRTtZQUNoQyxJQUFJLENBQUM7Z0JBQ0gsT0FBTyxNQUFNLFVBQVUsQ0FBQyxhQUFhLENBQUMsT0FBTyxFQUFFLGFBQWEsQ0FBQyxDQUFDO1lBQ2hFLENBQUM7WUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO2dCQUNmLE9BQU8sQ0FBQyxLQUFLLENBQUMsOEJBQThCLGFBQWEsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDO2dCQUNyRSxPQUFPLElBQUksQ0FBQztZQUNkLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FDSCxDQUFDO1FBRUYsNkJBQTZCO1FBQzdCLE1BQU0saUJBQWlCLEdBQUcsT0FB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