@devx-commerce/plugin-gati 0.0.2-beta.0

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.
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ const widgetModule = { widgets: [] };
3
+ const routeModule = {
4
+ routes: []
5
+ };
6
+ const menuItemModule = {
7
+ menuItems: []
8
+ };
9
+ const formModule = { customFields: {} };
10
+ const displayModule = {
11
+ displays: {}
12
+ };
13
+ const plugin = {
14
+ widgetModule,
15
+ routeModule,
16
+ menuItemModule,
17
+ formModule,
18
+ displayModule
19
+ };
20
+ module.exports = plugin;
@@ -0,0 +1,21 @@
1
+ const widgetModule = { widgets: [] };
2
+ const routeModule = {
3
+ routes: []
4
+ };
5
+ const menuItemModule = {
6
+ menuItems: []
7
+ };
8
+ const formModule = { customFields: {} };
9
+ const displayModule = {
10
+ displays: {}
11
+ };
12
+ const plugin = {
13
+ widgetModule,
14
+ routeModule,
15
+ menuItemModule,
16
+ formModule,
17
+ displayModule
18
+ };
19
+ export {
20
+ plugin as default
21
+ };
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GET = GET;
4
+ async function GET(req, res) {
5
+ res.sendStatus(200);
6
+ }
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL3BsdWdpbi9yb3V0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUVBLGtCQUtDO0FBTE0sS0FBSyxVQUFVLEdBQUcsQ0FDdkIsR0FBa0IsRUFDbEIsR0FBbUI7SUFFbkIsR0FBRyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUN0QixDQUFDIn0=
@@ -0,0 +1,64 @@
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.POST = POST;
7
+ const framework_1 = require("@medusajs/framework");
8
+ const create_or_update_style_master_1 = __importDefault(require("../../../workflows/create-or-update-style-master"));
9
+ async function POST(req, res) {
10
+ try {
11
+ const { datafor, operation, data } = req.body;
12
+ if (!datafor || !operation || !Array.isArray(data)) {
13
+ res.status(400).json({
14
+ status: false,
15
+ message: "Invalid request body. Required fields: datafor, operation, data (array)",
16
+ });
17
+ return;
18
+ }
19
+ // Log the received data
20
+ framework_1.logger.info(`Received webhook: ${operation} for ${datafor} with ${data.length} items`);
21
+ // Handle different datafor types
22
+ switch (datafor) {
23
+ case "StyleMst":
24
+ await (0, create_or_update_style_master_1.default)(req.scope).run({
25
+ input: {
26
+ datafor,
27
+ operation,
28
+ data,
29
+ },
30
+ });
31
+ break;
32
+ // Add more cases for other datafor types here
33
+ // case "StockMst":
34
+ // result = await stockMstWorkflow(req.scope).run({
35
+ // input: {
36
+ // datafor,
37
+ // operation,
38
+ // data,
39
+ // authToken,
40
+ // baseUrl,
41
+ // },
42
+ // });
43
+ // break;
44
+ default:
45
+ res.status(400).json({
46
+ status: false,
47
+ message: `Unsupported datafor type: ${datafor}`,
48
+ });
49
+ return;
50
+ }
51
+ res.status(200).json({
52
+ status: true,
53
+ message: `Successfully processed ${operation} for ${datafor}`,
54
+ });
55
+ }
56
+ catch (error) {
57
+ framework_1.logger.error("Error processing webhook:", error);
58
+ res.status(500).json({
59
+ status: false,
60
+ message: "Internal server error",
61
+ });
62
+ }
63
+ }
64
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2VycC93ZWJob29rL3JvdXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBTUEsb0JBK0RDO0FBckVELG1EQUE2QztBQUc3QyxxSEFBZ0Y7QUFHekUsS0FBSyxVQUFVLElBQUksQ0FDeEIsR0FBa0IsRUFDbEIsR0FBbUI7SUFFbkIsSUFBSSxDQUFDO1FBQ0gsTUFBTSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLEdBQUcsR0FBRyxDQUFDLElBQXNCLENBQUM7UUFFaEUsSUFBSSxDQUFDLE9BQU8sSUFBSSxDQUFDLFNBQVMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUNuRCxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQztnQkFDbkIsTUFBTSxFQUFFLEtBQUs7Z0JBQ2IsT0FBTyxFQUNMLHlFQUF5RTthQUM1RSxDQUFDLENBQUM7WUFDSCxPQUFPO1FBQ1QsQ0FBQztRQUVELHdCQUF3QjtRQUN4QixrQkFBTSxDQUFDLElBQUksQ0FDVCxxQkFBcUIsU0FBUyxRQUFRLE9BQU8sU0FBUyxJQUFJLENBQUMsTUFBTSxRQUFRLENBQzFFLENBQUM7UUFFRixpQ0FBaUM7UUFDakMsUUFBUSxPQUFPLEVBQUUsQ0FBQztZQUNoQixLQUFLLFVBQVU7Z0JBQ2IsTUFBTSxJQUFBLHVDQUFnQixFQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUM7b0JBQ3BDLEtBQUssRUFBRTt3QkFDTCxPQUFPO3dCQUNQLFNBQVM7d0JBQ1QsSUFBSTtxQkFDTDtpQkFDRixDQUFDLENBQUM7Z0JBQ0gsTUFBTTtZQUNSLDhDQUE4QztZQUM5QyxtQkFBbUI7WUFDbkIscURBQXFEO1lBQ3JELGVBQWU7WUFDZixpQkFBaUI7WUFDakIsbUJBQW1CO1lBQ25CLGNBQWM7WUFDZCxtQkFBbUI7WUFDbkIsaUJBQWlCO1lBQ2pCLFNBQVM7WUFDVCxRQUFRO1lBQ1IsV0FBVztZQUNYO2dCQUNFLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDO29CQUNuQixNQUFNLEVBQUUsS0FBSztvQkFDYixPQUFPLEVBQUUsNkJBQTZCLE9BQU8sRUFBRTtpQkFDaEQsQ0FBQyxDQUFDO2dCQUNILE9BQU87UUFDWCxDQUFDO1FBRUQsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUM7WUFDbkIsTUFBTSxFQUFFLElBQUk7WUFDWixPQUFPLEVBQUUsMEJBQTBCLFNBQVMsUUFBUSxPQUFPLEVBQUU7U0FDOUQsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7UUFDZixrQkFBTSxDQUFDLEtBQUssQ0FBQywyQkFBMkIsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNqRCxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQztZQUNuQixNQUFNLEVBQUUsS0FBSztZQUNiLE9BQU8sRUFBRSx1QkFBdUI7U0FDakMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztBQUNILENBQUMifQ==
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GET = GET;
4
+ async function GET(req, res) {
5
+ res.sendStatus(200);
6
+ }
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3N0b3JlL3BsdWdpbi9yb3V0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUVBLGtCQUtDO0FBTE0sS0FBSyxVQUFVLEdBQUcsQ0FDdkIsR0FBa0IsRUFDbEIsR0FBbUI7SUFFbkIsR0FBRyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUN0QixDQUFDIn0=
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3R5cGVzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIifQ==
@@ -0,0 +1,16 @@
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.ERP_MODULE = void 0;
7
+ const utils_1 = require("@medusajs/framework/utils");
8
+ const service_1 = __importDefault(require("./service"));
9
+ const types_1 = require("./types");
10
+ const erp_loader_1 = __importDefault(require("./loaders/erp-loader"));
11
+ exports.ERP_MODULE = types_1.ErpKeys.ERP;
12
+ exports.default = (0, utils_1.Module)(exports.ERP_MODULE, {
13
+ service: service_1.default,
14
+ loaders: [erp_loader_1.default],
15
+ });
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9lcnAvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEscURBQW1EO0FBRW5ELHdEQUFtQztBQUNuQyxtQ0FBa0M7QUFDbEMsc0VBQTZDO0FBRWhDLFFBQUEsVUFBVSxHQUFHLGVBQU8sQ0FBQyxHQUFHLENBQUM7QUFFdEMsa0JBQWUsSUFBQSxjQUFNLEVBQUMsa0JBQVUsRUFBRTtJQUNoQyxPQUFPLEVBQUUsaUJBQVU7SUFDbkIsT0FBTyxFQUFFLENBQUMsb0JBQVMsQ0FBQztDQUNyQixDQUFDLENBQUMifQ==
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.default = validationLoader;
4
+ const utils_1 = require("@medusajs/framework/utils");
5
+ async function validationLoader({ options, }) {
6
+ if (!options?.authToken || !options?.baseUrl) {
7
+ throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, "ERP Module requires an authToken and baseUrl option.");
8
+ }
9
+ }
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJwLWxvYWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9tb2R1bGVzL2VycC9sb2FkZXJzL2VycC1sb2FkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFLQSxtQ0FTQztBQWJELHFEQUF3RDtBQUl6QyxLQUFLLFVBQVUsZ0JBQWdCLENBQUMsRUFDN0MsT0FBTyxHQUNtQjtJQUMxQixJQUFJLENBQUMsT0FBTyxFQUFFLFNBQVMsSUFBSSxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsQ0FBQztRQUM3QyxNQUFNLElBQUksbUJBQVcsQ0FDbkIsbUJBQVcsQ0FBQyxLQUFLLENBQUMsWUFBWSxFQUM5QixzREFBc0QsQ0FDdkQsQ0FBQztJQUNKLENBQUM7QUFDSCxDQUFDIn0=
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const types_1 = require("./types");
4
+ class ErpService {
5
+ constructor({}, options) {
6
+ this._options = options;
7
+ }
8
+ get options() {
9
+ return this._options;
10
+ }
11
+ async getMasterData(datafor, transactionId) {
12
+ const response = await fetch(`${this._options.baseUrl}/GetMasterData`, {
13
+ method: "GET",
14
+ headers: {
15
+ AuthorizationToken: this._options.authToken,
16
+ datafor: datafor,
17
+ transactionid: transactionId,
18
+ },
19
+ });
20
+ if (!response.ok) {
21
+ throw new Error(`Failed to fetch data for transaction ID: ${transactionId}`);
22
+ }
23
+ return response.json().then((data) => {
24
+ return data.data;
25
+ });
26
+ }
27
+ }
28
+ ErpService.identifier = types_1.ErpKeys.ERP;
29
+ exports.default = ErpService;
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9tb2R1bGVzL2VycC9zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsbUNBQTREO0FBRTVELE1BQXFCLFVBQVU7SUFJN0IsWUFBWSxFQUFFLEVBQUUsT0FBbUI7UUFDakMsSUFBSSxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUM7SUFDMUIsQ0FBQztJQUVELElBQUksT0FBTztRQUNULE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN2QixDQUFDO0lBRUQsS0FBSyxDQUFDLGFBQWEsQ0FDakIsT0FBZSxFQUNmLGFBQXFCO1FBRXJCLE1BQU0sUUFBUSxHQUFHLE1BQU0sS0FBSyxDQUFDLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLGdCQUFnQixFQUFFO1lBQ3JFLE1BQU0sRUFBRSxLQUFLO1lBQ2IsT0FBTyxFQUFFO2dCQUNQLGtCQUFrQixFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUztnQkFDM0MsT0FBTyxFQUFFLE9BQU87Z0JBQ2hCLGFBQWEsRUFBRSxhQUFhO2FBQzdCO1NBQ0YsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUNqQixNQUFNLElBQUksS0FBSyxDQUNiLDRDQUE0QyxhQUFhLEVBQUUsQ0FDNUQsQ0FBQztRQUNKLENBQUM7UUFFRCxPQUFPLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUNuQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDbkIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOztBQWpDTSxxQkFBVSxHQUFHLGVBQU8sQ0FBQyxHQUFHLENBQUM7a0JBRGIsVUFBVSJ9
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ErpKeys = void 0;
4
+ var ErpKeys;
5
+ (function (ErpKeys) {
6
+ ErpKeys["ERP"] = "erp";
7
+ })(ErpKeys || (exports.ErpKeys = ErpKeys = {}));
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9lcnAvdHlwZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsSUFBWSxPQUVYO0FBRkQsV0FBWSxPQUFPO0lBQ2pCLHNCQUFXLENBQUE7QUFDYixDQUFDLEVBRlcsT0FBTyx1QkFBUCxPQUFPLFFBRWxCIn0=
@@ -0,0 +1,228 @@
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 steps_1 = require("./steps");
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, steps_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
+ // Conditional step: Only create products if operation is "add"
47
+ (0, workflows_sdk_1.when)(input, (input) => {
48
+ return input.operation === "add";
49
+ }).then(() => {
50
+ const { productsToCreate, productsToUpdate } = (0, workflows_sdk_1.transform)({
51
+ styleData,
52
+ shippingProfiles,
53
+ stores,
54
+ existingProducts,
55
+ }, (data) => {
56
+ const productsToCreate = [];
57
+ const productsToUpdate = [];
58
+ data.styleData.forEach((styleData) => {
59
+ // Calculate costs based on raw codes
60
+ const metalTotalCost = styleData.StyleMstDetail.filter((detail) => detail.RawType === "Metal").reduce((acc, detail) => acc + detail.CostAmount, 0);
61
+ const diamondTotalCost = styleData.StyleMstDetail.filter((detail) => detail.RawType === "Diamond").reduce((acc, detail) => acc + detail.CostAmount, 0);
62
+ const stoneTotalCost = styleData.StyleMstDetail.filter((detail) => detail.RawType === "Stone" ||
63
+ detail.RawType === "Stone(Color Stone)").reduce((acc, detail) => acc + detail.CostAmount, 0);
64
+ // const czTotalCost = styleData.StyleMstDetail.filter(
65
+ // (detail) => detail.RawType === "CZ"
66
+ // ).reduce((acc, detail) => acc + detail.CostAmount, 0);
67
+ const cpfTotalCost = styleData.StyleMstDetail.filter((detail) => detail.RawType === "Metal").reduce((acc, detail) => acc + detail.CPFCostAmt, 0);
68
+ // const otherMaterialTotalCost = styleData.StyleMstDetail.filter(
69
+ // (detail) => detail.RawType === "Other Material"
70
+ // ).reduce((acc, detail) => acc + detail.CostAmount, 0);
71
+ // Calculate amounts based on raw codes
72
+ const metalTotalAmount = styleData.StyleMstDetail.filter((detail) => detail.RawType === "Metal").reduce((acc, detail) => acc + detail.Amount, 0);
73
+ const diamondTotalAmount = styleData.StyleMstDetail.filter((detail) => detail.RawType === "Diamond").reduce((acc, detail) => acc + detail.Amount, 0);
74
+ const stoneTotalAmount = styleData.StyleMstDetail.filter((detail) => detail.RawType === "Stone" ||
75
+ detail.RawType === "Stone(Color Stone)").reduce((acc, detail) => acc + detail.Amount, 0);
76
+ // const otherMaterialTotalAmount = styleData.StyleMstDetail.filter(
77
+ // (detail) => detail.RawType === "Other Material"
78
+ // ).reduce((acc, detail) => acc + detail.Amount, 0);
79
+ const cpfTotalAmount = styleData.StyleMstDetail.filter((detail) => detail.RawType === "Metal").reduce((acc, detail) => acc + detail.CPFAmt, 0);
80
+ const productTitle = styleData.StyleMstExploration.find((exploration) => exploration.ExplorationCode === "Product Name")?.ExplorationValue || "";
81
+ console.log("productTitle", productTitle);
82
+ const product = {
83
+ external_id: `${styleData.StyleId}`,
84
+ title: productTitle,
85
+ description: styleData.WebDescription || "",
86
+ status: "draft",
87
+ options: [
88
+ {
89
+ title: "Default",
90
+ values: ["Default"],
91
+ },
92
+ ],
93
+ hs_code: styleData.HSN || "",
94
+ handle: (0, product_helper_1.toKebabCase)([productTitle, styleData.StyleCode]),
95
+ variants: [],
96
+ shipping_profile_id: data.shippingProfiles[0].id,
97
+ sales_channels: [
98
+ {
99
+ id: data.stores[0].default_sales_channel_id || "",
100
+ },
101
+ ],
102
+ };
103
+ const existingProduct = data.existingProducts.find((p) => p.external_id === product.external_id);
104
+ if (existingProduct) {
105
+ product.id = existingProduct.id;
106
+ product.status = existingProduct.status;
107
+ }
108
+ product.variants?.push({
109
+ id: existingProduct ? existingProduct.variants[0].id : undefined,
110
+ title: "Default",
111
+ options: {
112
+ Default: "Default",
113
+ },
114
+ prices: [
115
+ {
116
+ amount: styleData.Mrp,
117
+ currency_code: "INR",
118
+ },
119
+ ],
120
+ metadata: {
121
+ external_id: `${styleData.StyleId}`,
122
+ },
123
+ manage_inventory: false,
124
+ });
125
+ const additionalData = {
126
+ styleId: styleData.StyleId,
127
+ styleDate: styleData.StyleDate,
128
+ styleCode: styleData.StyleCode,
129
+ styleAliasNo: styleData.StyleAliasNo,
130
+ category: styleData.Category || "",
131
+ subCategory: styleData.SubCategory || "",
132
+ manufacturer: styleData.Manufacturer || "",
133
+ manufacturerNo: styleData.ManufacturerNo || "",
134
+ makeType: styleData.MakeType || "",
135
+ stockType: styleData.StockType || "",
136
+ itemSize: styleData.ItemSize || "",
137
+ brand: styleData.Brand || "",
138
+ gender: (0, product_helper_1.genderMapper)(styleData.Gender),
139
+ shapeCode: styleData.StyleMstDetail.find((detail) => detail.IsCenterStone)
140
+ ?.ShapeCode || "",
141
+ isComplete: styleData.IsComplete || false,
142
+ restricted: styleData.Restricted || false,
143
+ currency: styleData.Currency || "INR",
144
+ rateChart: styleData.RateChart || "",
145
+ discountMarkup: styleData.DiscountMarkup || "",
146
+ cost: styleData.Cost || 0,
147
+ mrp: styleData.Mrp || 0,
148
+ hsnCode: styleData.HSN || "",
149
+ grossWeight: styleData.GrossWt || 0,
150
+ netWeight: styleData.NetWt || 0,
151
+ waxWeight: styleData.WaxWt || 0,
152
+ modelWeight: styleData.ModelWt || 0,
153
+ totalDiamondPcs: styleData.TotDiamondPcs || 0,
154
+ totalDiamondWeight: styleData.TotDiamondWt || 0,
155
+ totalClientDiamondPcs: styleData.TotClientDiamondPcs || 0,
156
+ totalClientDiamondWeight: styleData.TotClientDiamondWt || 0,
157
+ totalStonePcs: styleData.TotStonePcs || 0,
158
+ totalStoneWeight: styleData.TotStoneWt || 0,
159
+ totalCzPcs: styleData.TotCzPcs || 0,
160
+ totalCzWeight: styleData.TotCzWt || 0,
161
+ webDescription: styleData.WebDescription || "",
162
+ remarks: styleData.Remarks || "",
163
+ customerRemarks: styleData.CustomerRemarks || "",
164
+ specialRemarks: styleData.SpecialRemarks || "",
165
+ metalTotalCost,
166
+ diamondTotalCost,
167
+ stoneTotalCost,
168
+ czTotalCost: 0,
169
+ cpfTotalCost,
170
+ metalTotalAmount,
171
+ diamondTotalAmount,
172
+ stoneTotalAmount,
173
+ czTotalAmount: 0,
174
+ cpfTotalAmount,
175
+ };
176
+ if (existingProduct) {
177
+ productsToUpdate.push({
178
+ product: product,
179
+ additional_data: additionalData,
180
+ });
181
+ }
182
+ else {
183
+ productsToCreate.push({
184
+ product: product,
185
+ additional_data: additionalData,
186
+ });
187
+ }
188
+ });
189
+ return {
190
+ productsToCreate: {
191
+ products: productsToCreate.map((p) => p.product),
192
+ additional_data: productsToCreate.reduce((acc, p) => {
193
+ const externalId = p?.product?.external_id;
194
+ if (externalId) {
195
+ acc[externalId] = p.additional_data;
196
+ }
197
+ return acc;
198
+ }, {}),
199
+ },
200
+ productsToUpdate: {
201
+ products: productsToUpdate.map((p) => p.product),
202
+ additional_data: productsToUpdate.reduce((acc, p) => {
203
+ const externalId = p?.product?.external_id;
204
+ if (externalId) {
205
+ acc[externalId] = p.additional_data;
206
+ }
207
+ return acc;
208
+ }, {}),
209
+ },
210
+ };
211
+ });
212
+ core_flows_1.createProductsWorkflow.runAsStep({
213
+ input: {
214
+ ...productsToCreate,
215
+ },
216
+ });
217
+ core_flows_1.updateProductsWorkflow.runAsStep({
218
+ input: {
219
+ ...productsToUpdate,
220
+ },
221
+ });
222
+ });
223
+ return new workflows_sdk_1.WorkflowResponse({
224
+ success: true,
225
+ });
226
+ });
227
+ exports.default = styleMstWorkflow;
228
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL2NyZWF0ZS1vci11cGRhdGUtc3R5bGUtbWFzdGVyL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEscUVBSzJDO0FBQzNDLDREQUlxQztBQU1yQyw4REFBc0U7QUFFdEUsbUNBQXlDO0FBRXpDOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSxnQkFBZ0IsR0FBRyxJQUFBLDhCQUFjLEVBQUMsV0FBVyxFQUFFLENBQUMsS0FBb0IsRUFBRSxFQUFFO0lBQzVFLDJDQUEyQztJQUMzQyxNQUFNLFNBQVMsR0FBRyxJQUFBLHNCQUFjLEVBQUMsS0FBSyxDQUFDLENBQUM7SUFFeEMsc0RBQXNEO0lBQ3RELE1BQU0sRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLEdBQUcsSUFBQSw4QkFBaUIsRUFBQztRQUN6QyxNQUFNLEVBQUUsT0FBTztRQUNmLE1BQU0sRUFBRSxDQUFDLDBCQUEwQixDQUFDO0tBQ3JDLENBQUMsQ0FBQztJQUVILG9EQUFvRDtJQUNwRCxNQUFNLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFLEdBQUcsSUFBQSw4QkFBaUIsRUFBQztRQUNuRCxNQUFNLEVBQUUsa0JBQWtCO1FBQzFCLE1BQU0sRUFBRSxDQUFDLElBQUksQ0FBQztRQUNkLFVBQVUsRUFBRTtZQUNWLElBQUksRUFBRSxDQUFDO1NBQ1I7S0FDRixDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUUsSUFBSSxFQUFFLGtCQUFrQixFQUFFLENBQUMsQ0FBQztJQUV4QyxNQUFNLGtCQUFrQixHQUFHLElBQUEseUJBQVMsRUFDbEM7UUFDRSxTQUFTO0tBQ1YsRUFDRCxDQUFDLElBQUksRUFBRSxFQUFFO1FBQ1AsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsR0FBRyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUMs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
@@ -0,0 +1,18 @@
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
+ /**
6
+ * Step to fetch style data from ERP system
7
+ * This step makes parallel API calls to fetch data for each transaction ID
8
+ * @param input - Contains datafor type and array of transaction IDs
9
+ * @param container - Dependency injection container to resolve services
10
+ */
11
+ exports.fetchStyleData = (0, workflows_sdk_1.createStep)("fetch-style-data", async (input, { container }) => {
12
+ const erpService = container.resolve("erp");
13
+ const styleData = await Promise.all(input.data.map(async (transactionId) => {
14
+ return erpService.getMasterData(input.datafor, transactionId);
15
+ }));
16
+ return new workflows_sdk_1.StepResponse(styleData.flat());
17
+ });
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL2NyZWF0ZS1vci11cGRhdGUtc3R5bGUtbWFzdGVyL3N0ZXBzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHFFQUE2RTtBQUk3RTs7Ozs7R0FLRztBQUNVLFFBQUEsY0FBYyxHQUFHLElBQUEsMEJBQVUsRUFDdEMsa0JBQWtCLEVBQ2xCLEtBQUssRUFBRSxLQUFvQixFQUFFLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRTtJQUM1QyxNQUFNLFVBQVUsR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBcUIsQ0FBQztJQUVoRSxNQUFNLFNBQVMsR0FBRyxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQ2pDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxhQUFhLEVBQUUsRUFBRTtRQUNyQyxPQUFPLFVBQVUsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxhQUFhLENBQUMsQ0FBQztJQUNoRSxDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0YsT0FBTyxJQUFJLDRCQUFZLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7QUFDNUMsQ0FBQyxDQUNGLENBQUMifQ==
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.genderMapper = exports.toKebabCase = void 0;
4
+ const toKebabCase = (strings) => {
5
+ return strings
6
+ .join("-")
7
+ .toLowerCase()
8
+ .replace(/\s+/g, "-") // Replace spaces with hyphens
9
+ .replace(/[^a-z0-9-]/g, ""); // Remove non-alphanumeric characters except hyphens
10
+ };
11
+ exports.toKebabCase = toKebabCase;
12
+ const genderMapper = (gender) => {
13
+ const genderMap = {
14
+ MN: "Men",
15
+ WN: "Women",
16
+ UN: "Unisex",
17
+ KD: "Kids",
18
+ };
19
+ return genderMap[gender] || "Unisex";
20
+ };
21
+ exports.genderMapper = genderMapper;
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC1oZWxwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL2hlbHBlcnMvcHJvZHVjdC1oZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQU8sTUFBTSxXQUFXLEdBQUcsQ0FBQyxPQUFpQixFQUFVLEVBQUU7SUFDdkQsT0FBTyxPQUFPO1NBQ1gsSUFBSSxDQUFDLEdBQUcsQ0FBQztTQUNULFdBQVcsRUFBRTtTQUNiLE9BQU8sQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUMsOEJBQThCO1NBQ25ELE9BQU8sQ0FBQyxhQUFhLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxvREFBb0Q7QUFDckYsQ0FBQyxDQUFDO0FBTlcsUUFBQSxXQUFXLGVBTXRCO0FBRUssTUFBTSxZQUFZLEdBQUcsQ0FBQyxNQUFjLEVBQVUsRUFBRTtJQUNyRCxNQUFNLFNBQVMsR0FBMkI7UUFDeEMsRUFBRSxFQUFFLEtBQUs7UUFDVCxFQUFFLEVBQUUsT0FBTztRQUNYLEVBQUUsRUFBRSxRQUFRO1FBQ1osRUFBRSxFQUFFLE1BQU07S0FDWCxDQUFDO0lBQ0YsT0FBTyxTQUFTLENBQUMsTUFBTSxDQUFDLElBQUksUUFBUSxDQUFDO0FBQ3ZDLENBQUMsQ0FBQztBQVJXLFFBQUEsWUFBWSxnQkFRdkIifQ==
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL3R5cGVzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIifQ==
package/README.md ADDED
@@ -0,0 +1,64 @@
1
+ <p align="center">
2
+ <a href="https://www.medusajs.com">
3
+ <picture>
4
+ <source media="(prefers-color-scheme: dark)" srcset="https://user-images.githubusercontent.com/59018053/229103275-b5e482bb-4601-46e6-8142-244f531cebdb.svg">
5
+ <source media="(prefers-color-scheme: light)" srcset="https://user-images.githubusercontent.com/59018053/229103726-e5b529a3-9b3f-4970-8a1f-c6af37f087bf.svg">
6
+ <img alt="Medusa logo" src="https://user-images.githubusercontent.com/59018053/229103726-e5b529a3-9b3f-4970-8a1f-c6af37f087bf.svg">
7
+ </picture>
8
+ </a>
9
+ </p>
10
+ <h1 align="center">
11
+ Medusa Plugin - Gati ERP
12
+ </h1>
13
+
14
+ <h4 align="center">
15
+ <a href="https://docs.medusajs.com">Documentation</a> |
16
+ <a href="https://www.medusajs.com">Website</a>
17
+ </h4>
18
+
19
+ <p align="center">
20
+ Building blocks for digital commerce
21
+ </p>
22
+ <p align="center">
23
+ <a href="https://github.com/medusajs/medusa/blob/master/CONTRIBUTING.md">
24
+ <img src="https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat" alt="PRs welcome!" />
25
+ </a>
26
+ <a href="https://www.producthunt.com/posts/medusa"><img src="https://img.shields.io/badge/Product%20Hunt-%231%20Product%20of%20the%20Day-%23DA552E" alt="Product Hunt"></a>
27
+ <a href="https://discord.gg/xpCwq3Kfn8">
28
+ <img src="https://img.shields.io/badge/chat-on%20discord-7289DA.svg" alt="Discord Chat" />
29
+ </a>
30
+ <a href="https://twitter.com/intent/follow?screen_name=medusajs">
31
+ <img src="https://img.shields.io/twitter/follow/medusajs.svg?label=Follow%20@medusajs" alt="Follow @medusajs" />
32
+ </a>
33
+ </p>
34
+
35
+ ## Compatibility
36
+
37
+ This starter is compatible with versions >= 2.4.0 of `@medusajs/medusa`.
38
+
39
+ ## Getting Started
40
+
41
+ Visit the [Quickstart Guide](https://docs.medusajs.com/learn/installation) to set up a server.
42
+
43
+ Visit the [Plugins documentation](https://docs.medusajs.com/learn/fundamentals/plugins) to learn more about plugins and how to create them.
44
+
45
+ Visit the [Docs](https://docs.medusajs.com/learn/installation#get-started) to learn more about our system requirements.
46
+
47
+ ## What is Medusa
48
+
49
+ Medusa is a set of commerce modules and tools that allow you to build rich, reliable, and performant commerce applications without reinventing core commerce logic. The modules can be customized and used to build advanced ecommerce stores, marketplaces, or any product that needs foundational commerce primitives. All modules are open-source and freely available on npm.
50
+
51
+ Learn more about [Medusa’s architecture](https://docs.medusajs.com/learn/introduction/architecture) and [commerce modules](https://docs.medusajs.com/learn/fundamentals/modules/commerce-modules) in the Docs.
52
+
53
+ ## Community & Contributions
54
+
55
+ The community and core team are available in [GitHub Discussions](https://github.com/medusajs/medusa/discussions), where you can ask for support, discuss roadmap, and share ideas.
56
+
57
+ Join our [Discord server](https://discord.com/invite/medusajs) to meet other community members.
58
+
59
+ ## Other channels
60
+
61
+ - [GitHub Issues](https://github.com/medusajs/medusa/issues)
62
+ - [Twitter](https://twitter.com/medusajs)
63
+ - [LinkedIn](https://www.linkedin.com/company/medusajs)
64
+ - [Medusa Blog](https://medusajs.com/blog/)
package/package.json ADDED
@@ -0,0 +1,84 @@
1
+ {
2
+ "name": "@devx-commerce/plugin-gati",
3
+ "version": "0.0.2-beta.0",
4
+ "description": "Gati ERP integration for Medusa",
5
+ "author": "devx commerce",
6
+ "license": "MIT",
7
+ "files": [
8
+ ".medusa/server"
9
+ ],
10
+ "exports": {
11
+ "./package.json": "./package.json",
12
+ "./workflows": "./.medusa/server/src/workflows/index.js",
13
+ "./.medusa/server/src/modules/*": "./.medusa/server/src/modules/*/index.js",
14
+ "./providers/*": "./.medusa/server/src/providers/*/index.js",
15
+ "./admin": {
16
+ "import": "./.medusa/server/src/admin/index.mjs",
17
+ "require": "./.medusa/server/src/admin/index.js",
18
+ "default": "./.medusa/server/src/admin/index.js"
19
+ },
20
+ "./*": "./.medusa/server/src/*.js"
21
+ },
22
+ "keywords": [
23
+ "medusa",
24
+ "plugin",
25
+ "medusa-plugin-other",
26
+ "medusa-plugin",
27
+ "medusa-v2",
28
+ "medusa-plugin-integration"
29
+ ],
30
+ "scripts": {
31
+ "build": "medusa plugin:build",
32
+ "dev": "medusa plugin:develop",
33
+ "prepublishOnly": "medusa plugin:build",
34
+ "release": "yarn standard-version"
35
+ },
36
+ "devDependencies": {
37
+ "@medusajs/admin-sdk": "2.7.0",
38
+ "@medusajs/cli": "2.7.0",
39
+ "@medusajs/framework": "2.7.0",
40
+ "@medusajs/icons": "2.7.0",
41
+ "@medusajs/medusa": "2.7.0",
42
+ "@medusajs/test-utils": "2.7.0",
43
+ "@medusajs/ui": "4.0.4",
44
+ "@mikro-orm/cli": "6.4.3",
45
+ "@mikro-orm/core": "6.4.3",
46
+ "@mikro-orm/knex": "6.4.3",
47
+ "@mikro-orm/migrations": "6.4.3",
48
+ "@mikro-orm/postgresql": "6.4.3",
49
+ "@swc/core": "1.5.7",
50
+ "@types/node": "^20.0.0",
51
+ "@types/react": "^18.3.2",
52
+ "@types/react-dom": "^18.2.25",
53
+ "awilix": "^8.0.1",
54
+ "pg": "^8.13.0",
55
+ "prop-types": "^15.8.1",
56
+ "react": "^18.2.0",
57
+ "react-dom": "^18.2.0",
58
+ "standard-version": "^9.5.0",
59
+ "ts-node": "^10.9.2",
60
+ "typescript": "^5.6.2",
61
+ "vite": "^5.2.11",
62
+ "yalc": "^1.0.0-pre.53"
63
+ },
64
+ "peerDependencies": {
65
+ "@medusajs/admin-sdk": "2.7.0",
66
+ "@medusajs/cli": "2.7.0",
67
+ "@medusajs/framework": "2.7.0",
68
+ "@medusajs/icons": "2.7.0",
69
+ "@medusajs/medusa": "2.7.0",
70
+ "@medusajs/test-utils": "2.7.0",
71
+ "@medusajs/ui": "4.0.3",
72
+ "@mikro-orm/cli": "6.4.3",
73
+ "@mikro-orm/core": "6.4.3",
74
+ "@mikro-orm/knex": "6.4.3",
75
+ "@mikro-orm/migrations": "6.4.3",
76
+ "@mikro-orm/postgresql": "6.4.3",
77
+ "awilix": "^8.0.1",
78
+ "pg": "^8.13.0"
79
+ },
80
+ "engines": {
81
+ "node": ">=20"
82
+ },
83
+ "packageManager": "yarn@3.2.3+sha512.f26f951f67de0c6a33ee381e5ff364709c87e70eb5e65c694e4facde3512f1fa80b8679e6ba31ce7d340fbb46f08dd683af9457e240f25a204be7427940d767e"
84
+ }