@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.
- package/.medusa/server/src/api/admin/erp-event/middlewares.js +17 -0
- package/.medusa/server/src/api/admin/erp-event/query-config.js +23 -0
- package/.medusa/server/src/api/admin/erp-event/route.js +22 -0
- package/.medusa/server/src/api/admin/erp-event/utils.js +20 -0
- package/.medusa/server/src/api/admin/erp-event/validators.js +9 -0
- package/.medusa/server/src/api/admin/middlewares.js +11 -0
- package/.medusa/server/src/api/erp/webhook/config.js +88 -0
- package/.medusa/server/src/api/erp/webhook/route.js +39 -45
- package/.medusa/server/src/api/erp/webhook/utils.js +61 -0
- package/.medusa/server/src/api/middlewares.js +12 -0
- package/.medusa/server/src/lib/api-response.js +103 -0
- package/.medusa/server/src/modules/category-group-master/index.js +13 -0
- package/.medusa/server/src/modules/category-group-master/migrations/Migration20250531004725.js +15 -0
- package/.medusa/server/src/modules/category-group-master/models/category-group-master.js +12 -0
- package/.medusa/server/src/modules/category-group-master/service.js +10 -0
- package/.medusa/server/src/modules/category-master/index.js +13 -0
- package/.medusa/server/src/modules/category-master/migrations/Migration20250513122212.js +15 -0
- package/.medusa/server/src/modules/category-master/migrations/Migration20250519180539.js +14 -0
- package/.medusa/server/src/modules/category-master/migrations/Migration20250531004724.js +14 -0
- package/.medusa/server/src/modules/category-master/models/category-master.js +15 -0
- package/.medusa/server/src/modules/category-master/service.js +10 -0
- package/.medusa/server/src/modules/collection-group-master/index.js +13 -0
- package/.medusa/server/src/modules/collection-group-master/migrations/Migration20250531022203.js +15 -0
- package/.medusa/server/src/modules/collection-group-master/models/collection-group-master.js +12 -0
- package/.medusa/server/src/modules/collection-group-master/service.js +10 -0
- package/.medusa/server/src/modules/collection-master/index.js +13 -0
- package/.medusa/server/src/modules/collection-master/migrations/Migration20250513122211.js +16 -0
- package/.medusa/server/src/modules/collection-master/migrations/Migration20250531025048.js +14 -0
- package/.medusa/server/src/modules/collection-master/models/collection-master.js +15 -0
- package/.medusa/server/src/modules/collection-master/service.js +10 -0
- package/.medusa/server/src/modules/erp/migrations/Migration20250513121436.js +16 -0
- package/.medusa/server/src/modules/erp/models/erp.js +10 -0
- package/.medusa/server/src/modules/erp-event/index.js +13 -0
- package/.medusa/server/src/modules/erp-event/migrations/Migration20250608221239.js +15 -0
- package/.medusa/server/src/modules/erp-event/models/erp-event.js +11 -0
- package/.medusa/server/src/modules/erp-event/service.js +10 -0
- package/.medusa/server/src/modules/extended-product/migrations/Migration20250620030100.js +36 -0
- package/.medusa/server/src/modules/extended-product/models/extended-product.js +54 -5
- package/.medusa/server/src/modules/extended-product/service.js +3 -1
- package/.medusa/server/src/modules/extended-variant/migrations/Migration20250620030335.js +32 -0
- package/.medusa/server/src/modules/extended-variant/migrations/Migration20250620030522.js +20 -0
- package/.medusa/server/src/modules/extended-variant/models/extended-variant.js +38 -5
- package/.medusa/server/src/modules/party-master/index.js +13 -0
- package/.medusa/server/src/modules/party-master/migrations/Migration20250604104235.js +16 -0
- package/.medusa/server/src/modules/party-master/migrations/Migration20250604115453.js +16 -0
- package/.medusa/server/src/modules/party-master/migrations/Migration20250604120348.js +16 -0
- package/.medusa/server/src/modules/party-master/migrations/Migration20250604120701.js +14 -0
- package/.medusa/server/src/modules/party-master/migrations/Migration20250608220924.js +16 -0
- package/.medusa/server/src/modules/party-master/migrations/Migration20250612225738.js +20 -0
- package/.medusa/server/src/modules/party-master/migrations/Migration20250612231031.js +16 -0
- package/.medusa/server/src/modules/party-master/models/party-master.js +60 -0
- package/.medusa/server/src/modules/party-master/service.js +10 -0
- package/.medusa/server/src/modules/raw-master/index.js +13 -0
- package/.medusa/server/src/modules/raw-master/migrations/Migration20250509190057.js +16 -0
- package/.medusa/server/src/modules/raw-master/migrations/Migration20250509190322.js +14 -0
- package/.medusa/server/src/modules/raw-master/models/raw-master.js +17 -0
- package/.medusa/server/src/modules/raw-master/service.js +10 -0
- package/.medusa/server/src/modules/shape-master/index.js +13 -0
- package/.medusa/server/src/modules/shape-master/migrations/Migration20250509174455.js +16 -0
- package/.medusa/server/src/modules/shape-master/models/shape-master.js +13 -0
- package/.medusa/server/src/modules/shape-master/service.js +10 -0
- package/.medusa/server/src/modules/sub-category-master/index.js +13 -0
- package/.medusa/server/src/modules/sub-category-master/migrations/Migration20250513115356.js +15 -0
- package/.medusa/server/src/modules/sub-category-master/migrations/Migration20250519180538.js +14 -0
- package/.medusa/server/src/modules/sub-category-master/migrations/Migration20250531010409.js +14 -0
- package/.medusa/server/src/modules/sub-category-master/models/sub-category-master.js +15 -0
- package/.medusa/server/src/modules/sub-category-master/service.js +10 -0
- package/.medusa/server/src/subscribers/category-group-master.js +117 -0
- package/.medusa/server/src/subscribers/category-master.js +130 -0
- package/.medusa/server/src/subscribers/collection-master.js +115 -0
- package/.medusa/server/src/subscribers/party-master-location.js +126 -0
- package/.medusa/server/src/subscribers/party-master.js +226 -0
- package/.medusa/server/src/subscribers/product-update.js +58 -0
- package/.medusa/server/src/subscribers/sub-category-master.js +130 -0
- package/.medusa/server/src/utils/address-formatter.js +60 -0
- package/.medusa/server/src/utils/phone-mapper.js +28 -0
- package/.medusa/server/src/workflows/category-group-master/index.js +58 -0
- package/.medusa/server/src/workflows/category-group-master/steps/create-category-group.js +18 -0
- package/.medusa/server/src/workflows/category-group-master/steps/delete-category-group.js +23 -0
- package/.medusa/server/src/workflows/category-group-master/steps/fetch-category-master.js +70 -0
- package/.medusa/server/src/workflows/category-group-master/steps/update-category-group.js +26 -0
- package/.medusa/server/src/workflows/category-master/index.js +58 -0
- package/.medusa/server/src/workflows/category-master/steps/create-category.js +21 -0
- package/.medusa/server/src/workflows/category-master/steps/delete-category.js +23 -0
- package/.medusa/server/src/workflows/category-master/steps/fetch-category-master.js +70 -0
- package/.medusa/server/src/workflows/category-master/steps/update-category.js +29 -0
- package/.medusa/server/src/workflows/collection-group-master/index.js +37 -0
- package/.medusa/server/src/workflows/collection-group-master/steps/create-category.js +50 -0
- package/.medusa/server/src/workflows/collection-group-master/steps/create-collection-group.js +18 -0
- package/.medusa/server/src/workflows/collection-group-master/steps/delete-collection-group.js +23 -0
- package/.medusa/server/src/workflows/collection-group-master/steps/fetch-collection-grp-master.js +70 -0
- package/.medusa/server/src/workflows/collection-group-master/steps/update-collection-group.js +26 -0
- package/.medusa/server/src/workflows/collection-master/index.js +68 -0
- package/.medusa/server/src/workflows/collection-master/steps/create-category.js +60 -0
- package/.medusa/server/src/workflows/collection-master/steps/create-collection.js +22 -0
- package/.medusa/server/src/workflows/collection-master/steps/delete-collection.js +22 -0
- package/.medusa/server/src/workflows/collection-master/steps/fetch-collection-master.js +70 -0
- package/.medusa/server/src/workflows/collection-master/steps/update-collection.js +32 -0
- package/.medusa/server/src/workflows/create-extended-product-from-product/index.js +42 -12
- package/.medusa/server/src/workflows/create-extended-product-from-product/steps/create-extended-product.js +1 -1
- package/.medusa/server/src/workflows/create-extended-product-from-product/steps/create-style-collection-lines.js +25 -0
- package/.medusa/server/src/workflows/create-extended-product-from-product/steps/create-style-exploration-lines.js +25 -0
- package/.medusa/server/src/workflows/create-extended-variant-from-variant/index.js +84 -0
- package/.medusa/server/src/workflows/create-extended-variant-from-variant/steps/create-extended-variant.js +18 -0
- package/.medusa/server/src/workflows/create-extended-variant-from-variant/steps/create-style-detail-lines.js +25 -0
- package/.medusa/server/src/workflows/create-or-update-product-options/index.js +25 -0
- package/.medusa/server/src/workflows/create-or-update-product-options/steps/create-update-product-options.js +28 -0
- package/.medusa/server/src/workflows/erp-event/index.js +10 -0
- package/.medusa/server/src/workflows/erp-event/steps/create-erp-event.js +18 -0
- package/.medusa/server/src/workflows/helpers/product-helper.js +421 -4
- package/.medusa/server/src/workflows/hooks/variant-created.js +16 -0
- package/.medusa/server/src/workflows/index.js +18 -0
- package/.medusa/server/src/workflows/party-master/helpers/index.js +9 -0
- package/.medusa/server/src/workflows/party-master/index.js +157 -0
- package/.medusa/server/src/workflows/party-master/steps/create-party.js +71 -0
- package/.medusa/server/src/workflows/party-master/steps/delete-party.js +23 -0
- package/.medusa/server/src/workflows/party-master/steps/fetch-party-master.js +70 -0
- package/.medusa/server/src/workflows/party-master/steps/update-party-master-with-field.js +15 -0
- package/.medusa/server/src/workflows/party-master/steps/update-party.js +79 -0
- package/.medusa/server/src/workflows/party-master/workflows/update-party-master-with-field.js +11 -0
- package/.medusa/server/src/workflows/party-style-master/index.js +19 -0
- package/.medusa/server/src/workflows/party-style-master/steps/delete-party-style-master.js +40 -0
- package/.medusa/server/src/workflows/party-style-master/steps/fetch-party-styles.js +70 -0
- package/.medusa/server/src/workflows/party-style-master/steps/index.js +19 -0
- package/.medusa/server/src/workflows/party-style-master/workflows/create-or-update-party-style-master.js +199 -0
- package/.medusa/server/src/workflows/party-style-master/workflows/delete-party-style-master.js +13 -0
- package/.medusa/server/src/workflows/party-style-master/workflows/index.js +19 -0
- package/.medusa/server/src/workflows/raw-master/index.js +30 -0
- package/.medusa/server/src/workflows/raw-master/steps/create-raw.js +24 -0
- package/.medusa/server/src/workflows/raw-master/steps/delete-raw.js +23 -0
- package/.medusa/server/src/workflows/raw-master/steps/fetch-raw-master.js +70 -0
- package/.medusa/server/src/workflows/raw-master/steps/update-raw.js +34 -0
- package/.medusa/server/src/workflows/shape-master/index.js +30 -0
- package/.medusa/server/src/workflows/shape-master/steps/create-shape.js +20 -0
- package/.medusa/server/src/workflows/shape-master/steps/delete-shape.js +23 -0
- package/.medusa/server/src/workflows/shape-master/steps/fetch-shape-master.js +70 -0
- package/.medusa/server/src/workflows/shape-master/steps/update-shape.js +30 -0
- package/.medusa/server/src/workflows/style-master/index.js +19 -0
- package/.medusa/server/src/workflows/style-master/steps/delete-style-master.js +38 -0
- package/.medusa/server/src/workflows/style-master/steps/fetch-styles.js +70 -0
- package/.medusa/server/src/workflows/style-master/steps/index.js +19 -0
- package/.medusa/server/src/workflows/style-master/workflows/create-or-update-style-master.js +326 -0
- package/.medusa/server/src/workflows/style-master/workflows/delete-style-master.js +24 -0
- package/.medusa/server/src/workflows/style-master/workflows/index.js +19 -0
- package/.medusa/server/src/workflows/sub-category-master/index.js +58 -0
- package/.medusa/server/src/workflows/sub-category-master/steps/create-sub-category.js +21 -0
- package/.medusa/server/src/workflows/sub-category-master/steps/delete-sub-category.js +23 -0
- package/.medusa/server/src/workflows/sub-category-master/steps/fetch-category-master.js +70 -0
- package/.medusa/server/src/workflows/sub-category-master/steps/update-sub-category.js +31 -0
- package/.medusa/server/src/workflows/types/index.js +1 -1
- package/.medusa/server/src/workflows/update-extended-product-from-product/index.js +18 -11
- package/.medusa/server/src/workflows/update-extended-product-from-product/steps/update-extended-product-from-product.js +26 -7
- package/.medusa/server/src/workflows/update-extended-variant-from-variant/index.js +43 -0
- package/.medusa/server/src/workflows/update-extended-variant-from-variant/steps/update-extended-product-from-product.js +54 -0
- package/.medusa/server/src/workflows/update-extended-variant-from-variant/steps/update-extended-variant-with-field.js +15 -0
- package/package.json +6 -2
- package/.medusa/server/src/api/admin/plugin/route.js +0 -7
- package/.medusa/server/src/modules/extended-product/migrations/Migration20250502071544.js +0 -21
- package/.medusa/server/src/modules/extended-product/migrations/Migration20250502122607.js +0 -17
- package/.medusa/server/src/modules/extended-variant/migrations/Migration20250502071544.js +0 -27
- package/.medusa/server/src/workflows/create-or-update-party-style-master/index.js +0 -37
- package/.medusa/server/src/workflows/create-or-update-party-style-master/steps/fetch-party-styles.js +0 -70
- package/.medusa/server/src/workflows/create-or-update-style-master/index.js +0 -160
- 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
|
package/.medusa/server/src/workflows/create-or-update-party-style-master/steps/fetch-party-styles.js
DELETED
|
@@ -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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
|