@devx-commerce/plugin-gati 0.0.2-beta.2 → 0.0.2-beta.20

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 (80) hide show
  1. package/.medusa/server/src/api/erp/webhook/route.js +63 -14
  2. package/.medusa/server/src/links/extended-variant.js +10 -0
  3. package/.medusa/server/src/modules/category-master/index.js +13 -0
  4. package/.medusa/server/src/modules/category-master/migrations/Migration20250513122212.js +15 -0
  5. package/.medusa/server/src/modules/category-master/migrations/Migration20250519180539.js +14 -0
  6. package/.medusa/server/src/modules/category-master/models/category-master.js +12 -0
  7. package/.medusa/server/src/modules/category-master/service.js +10 -0
  8. package/.medusa/server/src/modules/collection-master/index.js +13 -0
  9. package/.medusa/server/src/modules/collection-master/migrations/Migration20250513122211.js +16 -0
  10. package/.medusa/server/src/modules/collection-master/models/collection-master.js +12 -0
  11. package/.medusa/server/src/modules/collection-master/service.js +10 -0
  12. package/.medusa/server/src/modules/erp/migrations/Migration20250513121436.js +16 -0
  13. package/.medusa/server/src/modules/erp/models/erp.js +10 -0
  14. package/.medusa/server/src/modules/extended-product/migrations/{Migration20250426103546.js → Migration20250519043358.js} +11 -5
  15. package/.medusa/server/src/modules/extended-product/models/extended-product.js +15 -2
  16. package/.medusa/server/src/modules/extended-variant/index.js +13 -0
  17. package/.medusa/server/src/modules/extended-variant/migrations/Migration20250507055941.js +27 -0
  18. package/.medusa/server/src/modules/extended-variant/migrations/Migration20250508025507.js +14 -0
  19. package/.medusa/server/src/modules/extended-variant/models/extended-variant.js +131 -0
  20. package/.medusa/server/src/modules/extended-variant/service.js +12 -0
  21. package/.medusa/server/src/modules/raw-master/index.js +13 -0
  22. package/.medusa/server/src/modules/raw-master/migrations/Migration20250509190057.js +16 -0
  23. package/.medusa/server/src/modules/raw-master/migrations/Migration20250509190322.js +14 -0
  24. package/.medusa/server/src/modules/raw-master/models/raw-master.js +17 -0
  25. package/.medusa/server/src/modules/raw-master/service.js +10 -0
  26. package/.medusa/server/src/modules/shape-master/index.js +13 -0
  27. package/.medusa/server/src/modules/shape-master/migrations/Migration20250509174455.js +16 -0
  28. package/.medusa/server/src/modules/shape-master/models/shape-master.js +13 -0
  29. package/.medusa/server/src/modules/shape-master/service.js +10 -0
  30. package/.medusa/server/src/modules/sub-category-master/index.js +13 -0
  31. package/.medusa/server/src/modules/sub-category-master/migrations/Migration20250513115356.js +15 -0
  32. package/.medusa/server/src/modules/sub-category-master/migrations/Migration20250519180538.js +14 -0
  33. package/.medusa/server/src/modules/sub-category-master/models/sub-category-master.js +14 -0
  34. package/.medusa/server/src/modules/sub-category-master/service.js +10 -0
  35. package/.medusa/server/src/subscribers/category-master.js +112 -0
  36. package/.medusa/server/src/subscribers/collection-master.js +115 -0
  37. package/.medusa/server/src/subscribers/sub-category-master.js +119 -0
  38. package/.medusa/server/src/workflows/category-master/index.js +58 -0
  39. package/.medusa/server/src/workflows/category-master/steps/create-category.js +18 -0
  40. package/.medusa/server/src/workflows/category-master/steps/delete-category.js +23 -0
  41. package/.medusa/server/src/workflows/category-master/steps/fetch-category-master.js +70 -0
  42. package/.medusa/server/src/workflows/category-master/steps/update-category.js +26 -0
  43. package/.medusa/server/src/workflows/collection-master/index.js +58 -0
  44. package/.medusa/server/src/workflows/collection-master/steps/create-collection.js +19 -0
  45. package/.medusa/server/src/workflows/collection-master/steps/delete-collection.js +22 -0
  46. package/.medusa/server/src/workflows/collection-master/steps/fetch-collection-master.js +70 -0
  47. package/.medusa/server/src/workflows/collection-master/steps/update-collection.js +29 -0
  48. package/.medusa/server/src/workflows/create-extended-product-from-product/index.js +9 -1
  49. package/.medusa/server/src/workflows/create-extended-variant-from-variant/index.js +74 -0
  50. package/.medusa/server/src/workflows/create-extended-variant-from-variant/steps/create-extended-variant.js +18 -0
  51. package/.medusa/server/src/workflows/create-extended-variant-from-variant/steps/create-style-detail-lines.js +25 -0
  52. package/.medusa/server/src/workflows/create-or-update-party-style-master/index.js +181 -0
  53. package/.medusa/server/src/workflows/create-or-update-party-style-master/steps/fetch-party-styles.js +70 -0
  54. package/.medusa/server/src/workflows/create-or-update-product-options/index.js +25 -0
  55. package/.medusa/server/src/workflows/create-or-update-product-options/steps/create-update-product-options.js +20 -0
  56. package/.medusa/server/src/workflows/create-or-update-style-master/index.js +34 -9
  57. package/.medusa/server/src/workflows/helpers/product-helper.js +309 -2
  58. package/.medusa/server/src/workflows/hooks/variant-created.js +16 -0
  59. package/.medusa/server/src/workflows/raw-master/index.js +30 -0
  60. package/.medusa/server/src/workflows/raw-master/steps/create-raw.js +25 -0
  61. package/.medusa/server/src/workflows/raw-master/steps/delete-raw.js +23 -0
  62. package/.medusa/server/src/workflows/raw-master/steps/fetch-raw-master.js +70 -0
  63. package/.medusa/server/src/workflows/raw-master/steps/update-raw.js +34 -0
  64. package/.medusa/server/src/workflows/shape-master/index.js +30 -0
  65. package/.medusa/server/src/workflows/shape-master/steps/create-shape.js +21 -0
  66. package/.medusa/server/src/workflows/shape-master/steps/delete-shape.js +23 -0
  67. package/.medusa/server/src/workflows/shape-master/steps/fetch-shape-master.js +70 -0
  68. package/.medusa/server/src/workflows/shape-master/steps/update-shape.js +30 -0
  69. package/.medusa/server/src/workflows/sub-category-master/index.js +58 -0
  70. package/.medusa/server/src/workflows/sub-category-master/steps/create-sub-category.js +21 -0
  71. package/.medusa/server/src/workflows/sub-category-master/steps/delete-sub-category.js +23 -0
  72. package/.medusa/server/src/workflows/sub-category-master/steps/fetch-category-master.js +70 -0
  73. package/.medusa/server/src/workflows/sub-category-master/steps/update-sub-category.js +30 -0
  74. package/.medusa/server/src/workflows/types/index.js +1 -1
  75. package/.medusa/server/src/workflows/update-extended-product-from-product/index.js +9 -1
  76. package/.medusa/server/src/workflows/update-extended-product-from-product/steps/update-extended-product-from-product.js +2 -1
  77. package/.medusa/server/src/workflows/update-extended-variant-from-variant/index.js +39 -0
  78. package/.medusa/server/src/workflows/update-extended-variant-from-variant/steps/update-extended-product-from-product.js +37 -0
  79. package/.medusa/server/src/workflows/update-extended-variant-from-variant/steps/update-extended-variant-with-field.js +15 -0
  80. package/package.json +1 -1
@@ -0,0 +1,74 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.createExtendedVariantFromVariantWorkflow = void 0;
7
+ const utils_1 = require("@medusajs/framework/utils");
8
+ const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
9
+ const core_flows_1 = require("@medusajs/medusa/core-flows");
10
+ const extended_variant_1 = require("../../modules/extended-variant");
11
+ const update_extended_variant_with_field_1 = require("../update-extended-variant-from-variant/steps/update-extended-variant-with-field");
12
+ const create_extended_variant_1 = __importDefault(require("./steps/create-extended-variant"));
13
+ const create_style_detail_lines_1 = __importDefault(require("./steps/create-style-detail-lines"));
14
+ exports.createExtendedVariantFromVariantWorkflow = (0, workflows_sdk_1.createWorkflow)("create-extended-variant-from-variant", (input) => {
15
+ const data = (0, workflows_sdk_1.transform)({
16
+ input,
17
+ }, (data) => data.input.additional_data);
18
+ const extendedVariant = (0, create_extended_variant_1.default)({
19
+ ...data.extendedVariantData,
20
+ });
21
+ const styleDetailsLines = (0, workflows_sdk_1.when)({ extendedVariant }, ({ extendedVariant }) => extendedVariant !== undefined).then(() => {
22
+ return (0, create_style_detail_lines_1.default)({
23
+ lines: data.styleDetails,
24
+ detailId: extendedVariant.id,
25
+ });
26
+ });
27
+ //update extended product with style_detail id
28
+ const styleDetailsIds = (0, workflows_sdk_1.transform)({
29
+ styleDetailsLines,
30
+ }, (data) => data?.styleDetailsLines?.map((line) => line.id));
31
+ (0, workflows_sdk_1.when)({ styleDetailsLines }, ({ styleDetailsLines }) => styleDetailsLines !== undefined).then(() => {
32
+ (0, update_extended_variant_with_field_1.updateExtendedVariantWithFieldStep)({
33
+ id: extendedVariant.id,
34
+ data: {
35
+ party_style_details: styleDetailsIds,
36
+ },
37
+ });
38
+ });
39
+ (0, workflows_sdk_1.when)({ extendedVariant }, ({ extendedVariant }) => extendedVariant !== undefined).then(() => {
40
+ (0, core_flows_1.createRemoteLinkStep)([
41
+ {
42
+ [utils_1.Modules.PRODUCT]: {
43
+ product_variant_id: input.variant.id,
44
+ },
45
+ [extended_variant_1.EXTENDED_VARIANT_MODULE]: {
46
+ extended_variant_id: extendedVariant.id,
47
+ },
48
+ },
49
+ ]);
50
+ });
51
+ (0, core_flows_1.emitEventStep)({
52
+ eventName: "sync-to-os",
53
+ data: {
54
+ type: "variant",
55
+ operation: "create",
56
+ id: input.variant.id,
57
+ },
58
+ });
59
+ (0, core_flows_1.emitEventStep)({
60
+ eventName: "sync-to-os",
61
+ data: {
62
+ type: "product",
63
+ operation: "update",
64
+ id: input.variant.product_id,
65
+ },
66
+ }).config({
67
+ name: "sync-to-os-product",
68
+ });
69
+ return new workflows_sdk_1.WorkflowResponse({
70
+ extendedVariant,
71
+ styleDetailsLines,
72
+ });
73
+ });
74
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL2NyZWF0ZS1leHRlbmRlZC12YXJpYW50LWZyb20tdmFyaWFudC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFDQSxxREFBb0Q7QUFDcEQscUVBSzJDO0FBQzNDLDREQUdxQztBQUVyQyxxRUFBeUU7QUFNekUseUlBQXNJO0FBQ3RJLDhGQUF3RTtBQUN4RSxrR0FBMkU7QUFXOUQsUUFBQSx3Q0FBd0MsR0FBRyxJQUFBLDhCQUFjLEVBQ3BFLHNDQUFzQyxFQUN0QyxDQUFDLEtBQW9ELEVBQUUsRUFBRTtJQUN2RCxNQUFNLElBQUksR0FBRyxJQUFBLHlCQUFTLEVBQ3BCO1FBQ0UsS0FBSztLQUNOLEVBQ0QsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsZUFBZSxDQUNyQyxDQUFDO0lBRUYsTUFBTSxlQUFlLEdBQUcsSUFBQSxpQ0FBeUIsRUFBQztRQUNoRCxHQUFHLElBQUksQ0FBQyxtQkFBbUI7S0FDNUIsQ0FBQyxDQUFDO0lBRUgsTUFBTSxpQkFBaUIsR0FBRyxJQUFBLG9CQUFJLEVBQzVCLEVBQUUsZUFBZSxFQUFFLEVBQ25CLENBQUMsRUFBRSxlQUFlLEVBQUUsRUFBRSxFQUFFLENBQUMsZUFBZSxLQUFLLFNBQVMsQ0FDdkQsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFO1FBQ1YsT0FBTyxJQUFBLG1DQUEwQixFQUFDO1lBQ2hDLEtBQUssRUFBRSxJQUFJLENBQUMsWUFBWTtZQUN4QixRQUFRLEVBQUUsZUFBZSxDQUFDLEVBQUU7U0FDN0IsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7SUFFSCw4Q0FBOEM7SUFDOUMsTUFBTSxlQUFlLEdBQUcsSUFBQSx5QkFBUyxFQUMvQjtRQUNFLGlCQUFpQjtLQUNsQixFQUNELENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsaUJBQWlCLEVBQUUsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQzFELENBQUM7SUFFRixJQUFBLG9CQUFJLEVBQ0YsRUFBRSxpQkFBaUIsRUFBRSxFQUNyQixDQUFDLEVBQUUsaUJBQWlCLEVBQUUsRUFBRSxFQUFFLENBQUMsaUJBQWlCLEtBQUssU0FBUyxDQUMzRCxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUU7UUFDVixJQUFBLHVFQUFrQyxFQUFDO1lBQ2pDLEVBQUUsRUFBRSxlQUFlLENBQUMsRUFBRTtZQUN0QixJQUFJLEVBQUU7Z0JBQ0osbUJBQW1CLEVBQUUsZUFBZTthQUNyQztTQUNGLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0lBRUgsSUFBQSxvQkFBSSxFQUNGLEVBQUUsZUFBZSxFQUFFLEVBQ25CLENBQUMsRUFBRSxlQUFlLEVBQUUsRUFBRSxFQUFFLENBQUMsZUFBZSxLQUFLLFNBQVMsQ0FDdkQsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFO1FBQ1YsSUFBQSxpQ0FBb0IsRUFBQztZQUNuQjtnQkFDRSxDQUFDLGVBQU8sQ0FBQyxPQUFPLENBQUMsRUFBRTtvQkFDakIsa0JBQWtCLEVBQUUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxFQUFFO2lCQUNyQztnQkFDRCxDQUFDLDBDQUF1QixDQUFDLEVBQUU7b0JBQ3pCLG1CQUFtQixFQUFFLGVBQWUsQ0FBQyxFQUFFO2lCQUN4QzthQUNGO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7SUFFSCxJQUFBLDBCQUFhLEVBQUM7UUFDWixTQUFTLEVBQUUsWUFBWTtRQUN2QixJQUFJLEVBQUU7WUFDSixJQUFJLEVBQUUsU0FBUztZQUNmLFNBQVMsRUFBRSxRQUFRO1lBQ25CLEVBQUUsRUFBRSxLQUFLLENBQUMsT0FBTyxDQUFDLEVBQUU7U0FDckI7S0FDRixDQUFDLENBQUM7SUFFSCxJQUFBLDBCQUFhLEVBQUM7UUFDWixTQUFTLEVBQUUsWUFBWTtRQUN2QixJQUFJLEVBQUU7WUFDSixJQUFJLEVBQUUsU0FBUztZQUNmLFNBQVMsRUFBRSxRQUFRO1lBQ25CLEVBQUUsRUFBRSxLQUFLLENBQUMsT0FBTyxDQUFDLFVBQVU7U0FDN0I7S0FDRixDQUFDLENBQUMsTUFBTSxDQUFDO1FBQ1IsSUFBSSxFQUFFLG9CQUFvQjtLQUMzQixDQUFDLENBQUM7SUFFSCxPQUFPLElBQUksZ0NBQWdCLENBQUM7UUFDMUIsZUFBZTtRQUNmLGlCQUFpQjtLQUNsQixDQUFDLENBQUM7QUFDTCxDQUFDLENBQ0YsQ0FBQyJ9
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
4
+ const createExtendedVariantStep = (0, workflows_sdk_1.createStep)("create-extended-variant", async (input, { container }) => {
5
+ const extendedVariantModuleService = container.resolve("extended_variant");
6
+ const extendedVariant = await extendedVariantModuleService.createExtendedVariants({
7
+ ...input,
8
+ party_style_date: new Date(input.party_style_date),
9
+ });
10
+ return new workflows_sdk_1.StepResponse(extendedVariant, extendedVariant);
11
+ }, async (result, { container }) => {
12
+ if (result && result.id) {
13
+ const extendedVariantModuleService = container.resolve("extended_variant");
14
+ await extendedVariantModuleService.deleteExtendedVariants(result.id);
15
+ }
16
+ });
17
+ exports.default = createExtendedVariantStep;
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWV4dGVuZGVkLXZhcmlhbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL2NyZWF0ZS1leHRlbmRlZC12YXJpYW50LWZyb20tdmFyaWFudC9zdGVwcy9jcmVhdGUtZXh0ZW5kZWQtdmFyaWFudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLHFFQUE2RTtBQUs3RSxNQUFNLHlCQUF5QixHQUFHLElBQUEsMEJBQVUsRUFDMUMseUJBQXlCLEVBQ3pCLEtBQUssRUFBRSxLQUF1QixFQUFFLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRTtJQUMvQyxNQUFNLDRCQUE0QixHQUNoQyxTQUFTLENBQUMsT0FBTyxDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFFeEMsTUFBTSxlQUFlLEdBQ25CLE1BQU0sNEJBQTRCLENBQUMsc0JBQXNCLENBQUM7UUFDeEQsR0FBRyxLQUFLO1FBQ1IsZ0JBQWdCLEVBQUUsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDO0tBQ25ELENBQUMsQ0FBQztJQUVMLE9BQU8sSUFBSSw0QkFBWSxDQUFDLGVBQWUsRUFBRSxlQUFlLENBQUMsQ0FBQztBQUM1RCxDQUFDLEVBQ0QsS0FBSyxFQUFFLE1BQU0sRUFBRSxFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUU7SUFDOUIsSUFBSSxNQUFNLElBQUksTUFBTSxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBQ3hCLE1BQU0sNEJBQTRCLEdBQ2hDLFNBQVMsQ0FBQyxPQUFPLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUN4QyxNQUFNLDRCQUE0QixDQUFDLHNCQUFzQixDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUN2RSxDQUFDO0FBQ0gsQ0FBQyxDQUNGLENBQUM7QUFFRixrQkFBZSx5QkFBeUIsQ0FBQyJ9
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
4
+ const createStyleDetailLinesStep = (0, workflows_sdk_1.createStep)("create-style-detail-lines", async (input, { container }) => {
5
+ const extendedVariantModuleService = container.resolve("extended_variant");
6
+ const formattedLines = input.lines.map((line) => ({
7
+ ...line,
8
+ extended_variant: input.detailId,
9
+ }));
10
+ const styleDetailsLines = await extendedVariantModuleService.createPartyStyleDetailsLines([
11
+ ...formattedLines,
12
+ ]);
13
+ return new workflows_sdk_1.StepResponse(styleDetailsLines, styleDetailsLines);
14
+ }, async (result, { container }) => {
15
+ if (!result) {
16
+ return;
17
+ }
18
+ const extendedProductModuleService = container.resolve("extended_product");
19
+ // Get IDs of created style detail lines
20
+ const styleDetailLineIds = result.map((line) => line.id);
21
+ // Delete the created style detail lines to roll back changes
22
+ await extendedProductModuleService.deleteStyleDetailsLines(styleDetailLineIds);
23
+ });
24
+ exports.default = createStyleDetailLinesStep;
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLXN0eWxlLWRldGFpbC1saW5lcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy93b3JrZmxvd3MvY3JlYXRlLWV4dGVuZGVkLXZhcmlhbnQtZnJvbS12YXJpYW50L3N0ZXBzL2NyZWF0ZS1zdHlsZS1kZXRhaWwtbGluZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxxRUFBNkU7QUFLN0UsTUFBTSwwQkFBMEIsR0FBRyxJQUFBLDBCQUFVLEVBQzNDLDJCQUEyQixFQUMzQixLQUFLLEVBQ0gsS0FBMEQsRUFDMUQsRUFBRSxTQUFTLEVBQUUsRUFDYixFQUFFO0lBQ0YsTUFBTSw0QkFBNEIsR0FDaEMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBRXhDLE1BQU0sY0FBYyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ2hELEdBQUcsSUFBSTtRQUNQLGdCQUFnQixFQUFFLEtBQUssQ0FBQyxRQUFRO0tBQ2pDLENBQUMsQ0FBQyxDQUFDO0lBRUosTUFBTSxpQkFBaUIsR0FDckIsTUFBTSw0QkFBNEIsQ0FBQyw0QkFBNEIsQ0FBQztRQUM5RCxHQUFHLGNBQWM7S0FDbEIsQ0FBQyxDQUFDO0lBRUwsT0FBTyxJQUFJLDRCQUFZLENBQUMsaUJBQWlCLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztBQUNoRSxDQUFDLEVBQ0QsS0FBSyxFQUFFLE1BQU0sRUFBRSxFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUU7SUFDOUIsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ1osT0FBTztJQUNULENBQUM7SUFFRCxNQUFNLDRCQUE0QixHQUNoQyxTQUFTLENBQUMsT0FBTyxDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFFeEMsd0NBQXdDO0lBQ3hDLE1BQU0sa0JBQWtCLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBRXpELDZEQUE2RDtJQUM3RCxNQUFNLDRCQUE0QixDQUFDLHVCQUF1QixDQUN4RCxrQkFBa0IsQ0FDbkIsQ0FBQztBQUNKLENBQUMsQ0FDRixDQUFDO0FBRUYsa0JBQWUsMEJBQTBCLENBQUMifQ==
@@ -0,0 +1,181 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
7
+ const core_flows_1 = require("@medusajs/medusa/core-flows");
8
+ const create_or_update_product_options_1 = __importDefault(require("../create-or-update-product-options"));
9
+ const product_helper_1 = require("../helpers/product-helper");
10
+ const fetch_party_styles_1 = require("./steps/fetch-party-styles");
11
+ /**
12
+ * Main workflow for handling PartyStyleMst operations
13
+ * This workflow:
14
+ * 1. Fetches PartyStyle data from ERP
15
+ * 2. Conditionally creates variants based on operation type
16
+ *
17
+ * @param input - Contains operation type, datafor type, and transaction IDs
18
+ */
19
+ const partyStyleMstWorkflow = (0, workflows_sdk_1.createWorkflow)("party-style-mst", (input) => {
20
+ // Step 1: Fetch style data from ERP system
21
+ const partyStyleData = (0, fetch_party_styles_1.fetchPartyStyleData)(input);
22
+ const externalIdsFilters = (0, workflows_sdk_1.transform)({
23
+ partyStyleData,
24
+ }, (data) => {
25
+ return [
26
+ ...new Set(data.partyStyleData.map((product) => `${product.StyleId}`)),
27
+ ];
28
+ });
29
+ const { data: existingProducts } = (0, core_flows_1.useQueryGraphStep)({
30
+ entity: "product",
31
+ fields: [
32
+ "id",
33
+ "external_id",
34
+ "variants.*",
35
+ "options.*",
36
+ "extended_product.*",
37
+ "extended_product.style_details.*",
38
+ ],
39
+ filters: {
40
+ external_id: externalIdsFilters,
41
+ },
42
+ }).config({ name: "existing-products" });
43
+ (0, workflows_sdk_1.when)(input, (input) => {
44
+ return input.operation === "add";
45
+ }).then(() => {
46
+ // Create product options
47
+ const productOptionsAllData = create_or_update_product_options_1.default.runAsStep({
48
+ input: {
49
+ existingProducts,
50
+ partyStyleData,
51
+ },
52
+ });
53
+ const { variantsToCreate, productsToUpdate } = (0, workflows_sdk_1.transform)({
54
+ partyStyleData,
55
+ existingProducts,
56
+ productOptionsAllData,
57
+ }, (data) => {
58
+ const variantsToCreate = [];
59
+ const productsToUpdate = [];
60
+ const existingProductIds = data.existingProducts.map((product) => product.external_id);
61
+ data.partyStyleData
62
+ .filter((styleData) => existingProductIds.includes(String(styleData.StyleId)))
63
+ .forEach((styleData) => {
64
+ // Calculate costs based on raw codes
65
+ 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.PartyStyleMstDetail);
66
+ const { baseMetal, baseMetalPurity, baseMetalColor } = (0, product_helper_1.getBaseMetalDetails)(styleData.PartyStyleMstDetail);
67
+ const existingProduct = data.existingProducts.find((p) => p.external_id === String(styleData.StyleId));
68
+ const productOptions = (0, product_helper_1.createProductOptionsForPartyStyleId)(styleData, data.productOptionsAllData.find((option) => option.id === existingProduct.id));
69
+ const variant = {
70
+ product_id: existingProduct.id,
71
+ title: styleData.PartyStyleCode,
72
+ sku: `${styleData.PartyStyleCode}-${styleData.PartyStyleId}-${styleData.StyleId}`,
73
+ prices: [
74
+ {
75
+ amount: styleData.Mrp,
76
+ currency_code: "inr",
77
+ },
78
+ ],
79
+ options: {
80
+ ...productOptions,
81
+ },
82
+ manage_inventory: false,
83
+ metadata: {
84
+ external_id: `${styleData.PartyStyleId}`,
85
+ },
86
+ };
87
+ const extendedVariantData = (0, product_helper_1.getExtendedVariantData)(styleData, { baseMetal, baseMetalPurity, baseMetalColor }, {
88
+ metal_total_cost,
89
+ diamond_total_cost,
90
+ stone_total_cost,
91
+ cpf_total_cost,
92
+ metal_total_amount,
93
+ diamond_total_amount,
94
+ stone_total_amount,
95
+ cpf_total_amount,
96
+ });
97
+ const styleDetails = (0, product_helper_1.getPartyStyleDetailLines)(styleData?.PartyStyleMstDetail);
98
+ const explorationDetails = (0, product_helper_1.getPartyStyleExplorationLines)(styleData?.PartyStyleMstExploration);
99
+ variantsToCreate.push({
100
+ variant: variant,
101
+ additional_data: {
102
+ extendedVariantData,
103
+ styleDetails,
104
+ explorationDetails,
105
+ },
106
+ });
107
+ productsToUpdate.push({
108
+ product: existingProduct,
109
+ additional_data: {
110
+ extendedProductData: {
111
+ ...existingProduct.extended_product,
112
+ gross_weights_range: [
113
+ ...new Set([
114
+ ...existingProduct?.extended_product
115
+ ?.gross_weights_range,
116
+ extendedVariantData.gross_weight.toString(),
117
+ ]),
118
+ ],
119
+ net_weights_range: [
120
+ ...new Set([
121
+ ...existingProduct?.extended_product?.net_weights_range,
122
+ extendedVariantData.net_weight.toString(),
123
+ ]),
124
+ ],
125
+ prices_range: [
126
+ ...new Set([
127
+ ...existingProduct?.extended_product?.prices_range,
128
+ styleData.Mrp.toString(),
129
+ ]),
130
+ ],
131
+ },
132
+ styleDetails: existingProduct?.extended_product?.style_details,
133
+ },
134
+ });
135
+ });
136
+ return {
137
+ variantsToCreate: {
138
+ product_variants: variantsToCreate.map((p) => p.variant),
139
+ additional_data: variantsToCreate.reduce((acc, p) => {
140
+ const externalId = p?.variant?.metadata?.external_id;
141
+ if (externalId) {
142
+ acc[externalId] = p.additional_data;
143
+ }
144
+ return acc;
145
+ }, {}),
146
+ },
147
+ productsToUpdate: {
148
+ products: productsToUpdate.map((p) => {
149
+ return {
150
+ id: p.product.id,
151
+ external_id: p.product.external_id,
152
+ options: data.productOptionsAllData.find((option) => option.id === p.product.id)?.options,
153
+ };
154
+ }),
155
+ additional_data: productsToUpdate.reduce((acc, p) => {
156
+ const externalId = p?.product?.external_id;
157
+ if (externalId) {
158
+ acc[externalId] = p.additional_data;
159
+ }
160
+ return acc;
161
+ }, {}),
162
+ },
163
+ };
164
+ });
165
+ core_flows_1.updateProductsWorkflow.runAsStep({
166
+ input: {
167
+ ...productsToUpdate,
168
+ },
169
+ });
170
+ core_flows_1.createProductVariantsWorkflow.runAsStep({
171
+ input: {
172
+ ...variantsToCreate,
173
+ },
174
+ });
175
+ });
176
+ return new workflows_sdk_1.WorkflowResponse({
177
+ success: true,
178
+ });
179
+ });
180
+ exports.default = partyStyleMstWorkflow;
181
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL2NyZWF0ZS1vci11cGRhdGUtcGFydHktc3R5bGUtbWFzdGVyL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBSUEscUVBSzJDO0FBQzNDLDREQUlxQztBQUdyQywyR0FBdUY7QUFDdkYsOERBT21DO0FBRW5DLG1FQUFpRTtBQUVqRTs7Ozs7OztHQU9HO0FBQ0gsTUFBTSxxQkFBcUIsR0FBRyxJQUFBLDhCQUFjLEVBQzFDLGlCQUFpQixFQUNqQixDQUFDLEtBQXlCLEVBQUUsRUFBRTtJQUM1QiwyQ0FBMkM7SUFDM0MsTUFBTSxjQUFjLEdBQUcsSUFBQSx3Q0FBbUIsRUFBQyxLQUFLLENBQUMsQ0FBQztJQUVsRCxNQUFNLGtCQUFrQixHQUFHLElBQUEseUJBQVMsRUFDbEM7UUFDRSxjQUFjO0tBQ2YsRUFDRCxDQUFDLElBQUksRUFBRSxFQUFFO1FBQ1AsT0FBTztZQUNMLEdBQUcsSUFBSSxHQUFHLENBQ1IsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLEdBQUcsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQzNEO1NBQ0YsQ0FBQztJQUNKLENBQUMsQ0FDRixDQUFDO0lBRUYsTUFBTSxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxHQUFHLElBQUEsOEJBQWlCLEVBQUM7UUFDbkQsTUFBTSxFQUFFLFNBQVM7UUFDakIsTUFBTSxFQUFFO1lBQ04sSUFBSTtZQUNKLGFBQWE7WUFDYixZQUFZO1lBQ1osV0FBVztZQUNYLG9CQUFvQjtZQUNwQixrQ0FBa0M7U0FDbkM7UUFDRCxPQUFPLEVBQUU7WUFDUCxXQUFXLEVBQUUsa0JBQWtCO1NBQ2hDO0tBQ0YsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLElBQUksRUFBRSxtQkFBbUIsRUFBRSxDQUFDLENBQUM7SUFFekMsSUFB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
@@ -0,0 +1,70 @@
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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
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
7
+ const create_update_product_options_1 = __importDefault(require("./steps/create-update-product-options"));
8
+ const createOrUpdateProductOptionsWorkflow = (0, workflows_sdk_1.createWorkflow)("create-or-update-product-options", (input) => {
9
+ const result = (0, workflows_sdk_1.when)(input, (input) => {
10
+ return input.existingProducts.length > 0;
11
+ }).then(() => {
12
+ const stepResult = (0, create_update_product_options_1.default)({
13
+ ...input,
14
+ });
15
+ return stepResult;
16
+ }) || [];
17
+ // when(result, (result) => result.length > 0).then(() => {
18
+ // updateProductsStep({
19
+ // products: result,
20
+ // });
21
+ // });
22
+ return new workflows_sdk_1.WorkflowResponse(result);
23
+ });
24
+ exports.default = createOrUpdateProductOptionsWorkflow;
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL2NyZWF0ZS1vci11cGRhdGUtcHJvZHVjdC1vcHRpb25zL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQ0EscUVBSTJDO0FBRzNDLDBHQUEwRTtBQU8xRSxNQUFNLG9DQUFvQyxHQUFHLElBQUEsOEJBQWMsRUFDekQsa0NBQWtDLEVBQ2xDLENBQUMsS0FBZ0MsRUFBRSxFQUFFO0lBQ25DLE1BQU0sTUFBTSxHQUNWLElBQUEsb0JBQUksRUFBQyxLQUFLLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRTtRQUNwQixPQUFPLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0lBQzNDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUU7UUFDWCxNQUFNLFVBQVUsR0FBRyxJQUFBLHVDQUFxQixFQUFDO1lBQ3ZDLEdBQUcsS0FBSztTQUNULENBQUMsQ0FBQztRQUNILE9BQU8sVUFBVSxDQUFDO0lBQ3BCLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUVYLDJEQUEyRDtJQUMzRCx5QkFBeUI7SUFDekIsd0JBQXdCO0lBQ3hCLFFBQVE7SUFDUixNQUFNO0lBRU4sT0FBTyxJQUFJLGdDQUFnQixDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQ3RDLENBQUMsQ0FDRixDQUFDO0FBRUYsa0JBQWUsb0NBQW9DLENBQUMifQ==
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
4
+ const product_helper_1 = require("../../helpers/product-helper");
5
+ const getProductOptionsStep = (0, workflows_sdk_1.createStep)("get-product-options", async (input) => {
6
+ const productWithOptions = [];
7
+ for (const product of input.existingProducts) {
8
+ const productOptions = (0, product_helper_1.createProductOptionsStepFromData)(input.partyStyleData);
9
+ const productOption = productOptions.find((option) => option.styleId === product.external_id);
10
+ const filteredOptions = productOption?.options?.filter((option) => option.values.length > 0) ||
11
+ [];
12
+ productWithOptions.push({
13
+ id: product.id,
14
+ options: filteredOptions,
15
+ });
16
+ }
17
+ return new workflows_sdk_1.StepResponse(productWithOptions);
18
+ });
19
+ exports.default = getProductOptionsStep;
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLXVwZGF0ZS1wcm9kdWN0LW9wdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL2NyZWF0ZS1vci11cGRhdGUtcHJvZHVjdC1vcHRpb25zL3N0ZXBzL2NyZWF0ZS11cGRhdGUtcHJvZHVjdC1vcHRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQ0EscUVBQTZFO0FBSTdFLGlFQUFnRjtBQVloRixNQUFNLHFCQUFxQixHQUFHLElBQUEsMEJBQVUsRUFDdEMscUJBQXFCLEVBQ3JCLEtBQUssRUFBRSxLQUFnQyxFQUFFLEVBQUU7SUFDekMsTUFBTSxrQkFBa0IsR0FBeUIsRUFBRSxDQUFDO0lBQ3BELEtBQUssTUFBTSxPQUFPLElBQUksS0FBSyxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDN0MsTUFBTSxjQUFjLEdBQUcsSUFBQSxpREFBZ0MsRUFDckQsS0FBSyxDQUFDLGNBQWMsQ0FDckIsQ0FBQztRQUVGLE1BQU0sYUFBYSxHQUFHLGNBQWMsQ0FBQyxJQUFJLENBQ3ZDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsT0FBTyxLQUFLLE9BQU8sQ0FBQyxXQUFXLENBQ25ELENBQUM7UUFFRixNQUFNLGVBQWUsR0FDbkIsYUFBYSxFQUFFLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztZQUNwRSxFQUFFLENBQUM7UUFFTCxrQkFBa0IsQ0FBQyxJQUFJLENBQUM7WUFDdEIsRUFBRSxFQUFFLE9BQU8sQ0FBQyxFQUFFO1lBQ2QsT0FBTyxFQUFFLGVBQWU7U0FDekIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELE9BQU8sSUFBSSw0QkFBWSxDQUFDLGtCQUFrQixDQUFDLENBQUM7QUFDOUMsQ0FBQyxDQUNGLENBQUM7QUFFRixrQkFBZSxxQkFBcUIsQ0FBQyJ9
@@ -17,10 +17,10 @@ const styleMstWorkflow = (0, workflows_sdk_1.createWorkflow)("style-mst", (input
17
17
  // Step 1: Fetch style data from ERP system
18
18
  const styleData = (0, fetch_styles_1.fetchStyleData)(input);
19
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
- });
20
+ const { data: salesChannels } = (0, core_flows_1.useQueryGraphStep)({
21
+ entity: "sales_channel",
22
+ fields: ["id", "name"],
23
+ }).config({ name: "sales-channels" });
24
24
  // Step 3: Get shipping profile for product creation
25
25
  const { data: shippingProfiles } = (0, core_flows_1.useQueryGraphStep)({
26
26
  entity: "shipping_profile",
@@ -49,7 +49,7 @@ const styleMstWorkflow = (0, workflows_sdk_1.createWorkflow)("style-mst", (input
49
49
  const { productsToCreate, productsToUpdate } = (0, workflows_sdk_1.transform)({
50
50
  styleData,
51
51
  shippingProfiles,
52
- stores,
52
+ salesChannels,
53
53
  existingProducts,
54
54
  }, (data) => {
55
55
  const productsToCreate = [];
@@ -57,8 +57,24 @@ const styleMstWorkflow = (0, workflows_sdk_1.createWorkflow)("style-mst", (input
57
57
  data.styleData.forEach((styleData) => {
58
58
  // Calculate costs based on raw codes
59
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}`;
60
+ const productTitle = styleData.StyleMstExploration?.find((exploration) => exploration.ExplorationCode === "Product Name")?.ExplorationValue || `Style ${styleData.StyleCode}`;
61
+ const productAvailabilityInOnline = styleData.StyleMstExploration?.find((exploration) => exploration.ExplorationCode.toLowerCase() === "web indicator")?.ExplorationValue.toLowerCase() === "true";
61
62
  const { baseMetal, baseMetalPurity, baseMetalColor } = (0, product_helper_1.getBaseMetalDetails)(styleData.StyleMstDetail);
63
+ let collectionId = "";
64
+ const collection = styleData?.StyleMstCollection?.find((collection) => collection.IsBaseCollection)?.Collection;
65
+ if (collection) {
66
+ const { data: existingCollection } = (0, core_flows_1.useQueryGraphStep)({
67
+ entity: "collection_master",
68
+ fields: ["id", "mapping_id"],
69
+ filters: {
70
+ collection_code: collection,
71
+ },
72
+ }).config({ name: "existing-collection" });
73
+ collectionId = existingCollection[0].mapping_id;
74
+ }
75
+ const onlineSalesChannelId = data.salesChannels.find((channel) => channel.name.toLowerCase() === "online")?.id || "";
76
+ const offlineSalesChannelId = data.salesChannels.find((channel) => channel.name.toLowerCase() === "offline")?.id || "";
77
+ //TODO: Add category ids
62
78
  const product = {
63
79
  external_id: `${styleData.StyleId}`,
64
80
  title: productTitle || "",
@@ -70,20 +86,29 @@ const styleMstWorkflow = (0, workflows_sdk_1.createWorkflow)("style-mst", (input
70
86
  values: ["Default"],
71
87
  },
72
88
  ],
73
- hs_code: styleData.HSN || "",
89
+ origin_country: "IN",
90
+ material: styleData.StyleMstDetail.find((i) => i.RawType === "Metal" && i.IsBase)?.RawCode || "",
74
91
  handle: (0, product_helper_1.toKebabCase)([productTitle, styleData.StyleCode]),
75
92
  variants: [],
76
93
  shipping_profile_id: data.shippingProfiles[0].id,
77
94
  sales_channels: [
78
95
  {
79
- id: data.stores[0].default_sales_channel_id || "",
96
+ id: productAvailabilityInOnline
97
+ ? onlineSalesChannelId
98
+ : offlineSalesChannelId,
80
99
  },
81
100
  ],
82
101
  };
83
102
  const existingProduct = data.existingProducts.find((p) => p.external_id === product.external_id);
103
+ if (collectionId) {
104
+ product.collection_id = collectionId;
105
+ }
84
106
  if (existingProduct) {
85
107
  product.id = existingProduct.id;
86
108
  product.status = existingProduct.status;
109
+ product.title = existingProduct.title;
110
+ product.description = existingProduct.description;
111
+ product.handle = existingProduct.handle;
87
112
  }
88
113
  const extendedProductData = (0, product_helper_1.getExtendedProductData)(styleData, { baseMetal, baseMetalPurity, baseMetalColor }, {
89
114
  metal_total_cost,
@@ -154,4 +179,4 @@ const styleMstWorkflow = (0, workflows_sdk_1.createWorkflow)("style-mst", (input
154
179
  });
155
180
  });
156
181
  exports.default = styleMstWorkflow;
157
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL2NyZWF0ZS1vci11cGRhdGUtc3R5bGUtbWFzdGVyL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBSUEscUVBSzJDO0FBQzNDLDREQUlxQztBQUdyQyw4REFNbUM7QUFFbkMsdURBQXNEO0FBRXREOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSxnQkFBZ0IsR0FBRyxJQUFBLDhCQUFjLEVBQUMsV0FBVyxFQUFFLENBQUMsS0FBb0IsRUFBRSxFQUFFO0lBQzVFLDJDQUEyQztJQUMzQyxNQUFNLFNBQVMsR0FBRyxJQUFBLDZCQUFjLEVBQUMsS0FBSyxDQUFDLENBQUM7SUFFeEMsc0RBQXNEO0lBQ3RELE1BQU0sRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLEdBQUcsSUFBQSw4QkFBaUIsRUFBQztRQUN6QyxNQUFNLEVBQUUsT0FBTztRQUNmLE1BQU0sRUFBRSxDQUFDLDBCQUEwQixDQUFDO0tBQ3JDLENBQUMsQ0FBQztJQUVILG9EQUFvRDtJQUNwRCxNQUFNLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFLEdBQUcsSUFBQSw4QkFBaUIsRUFBQztRQUNuRCxNQUFNLEVBQUUsa0JBQWtCO1FBQzFCLE1BQU0sRUFBRSxDQUFDLElBQUksQ0FBQztRQUNkLFVBQVUsRUFBRTtZQUNWLElBQUksRUFBRSxDQUFDO1NBQ1I7S0FDRixDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUUsSUFBSSxFQUFFLGtCQUFrQixFQUFFLENBQUMsQ0FBQztJQUV4QyxNQUFNLGtCQUFrQixHQUFHLElBQUEseUJBQVMsRUFDbEM7UUFDRSxTQUFTO0tBQ1YsRUFDRCxDQUFDLElBQUksRUFBRSxFQUFFO1FBQ1AsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsR0FBRyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUMs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
182
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL2NyZWF0ZS1vci11cGRhdGUtc3R5bGUtbWFzdGVyL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBSUEscUVBTzJDO0FBQzNDLDREQUlxQztBQUdyQyw4REFNbUM7QUFFbkMsdURBQXNEO0FBRXREOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSxnQkFBZ0IsR0FBRyxJQUFBLDhCQUFjLEVBQUMsV0FBVyxFQUFFLENBQUMsS0FBb0IsRUFBRSxFQUFFO0lBQzVFLDJDQUEyQztJQUMzQyxNQUFNLFNBQVMsR0FBRyxJQUFBLDZCQUFjLEVBQUMsS0FBSyxDQUFDLENBQUM7SUFFeEMsc0RBQXNEO0lBQ3RELE1BQU0sRUFBRSxJQUFJLEVBQUUsYUFBYSxFQUFFLEdBQUcsSUFBQSw4QkFBaUIsRUFBQztRQUNoRCxNQUFNLEVBQUUsZUFBZTtRQUN2QixNQUFNLEVBQUUsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDO0tBQ3ZCLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDO0lBRXRDLG9EQUFvRDtJQUNwRCxNQUFNLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFLEdBQUcsSUFBQSw4QkFBaUIsRUFBQztRQUNuRCxNQUFNLEVBQUUsa0JBQWtCO1FBQzFCLE1BQU0sRUFBRSxDQUFDLElBQUksQ0FBQztRQUNkLFVBQVUsRUFBRTtZQUNWLElBQUksRUFBRSxDQUFDO1NBQ1I7S0FDRixDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUUsSUFBSSxFQUFFLGtCQUFrQixFQUFFLENBQUMsQ0FBQztJQUV4QyxNQUFNLGtCQUFrQixHQUFHLElBQUEseUJBQVMsRUFDbEM7UUFDRSxTQUFTO0tBQ1YsRUFDRCxDQUFDLElBQUksRUFBRSxFQUFFO1FBQ1AsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FB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