@devx-commerce/plugin-gati 0.0.2-beta.26 → 0.0.2-beta.27
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.
|
@@ -59,20 +59,39 @@ const partyStyleMstWorkflow = (0, workflows_sdk_1.createWorkflow)("party-style-m
|
|
|
59
59
|
}, (data) => {
|
|
60
60
|
const variantsToCreate = [];
|
|
61
61
|
const productsToUpdate = [];
|
|
62
|
-
const gross_weights_range = [];
|
|
63
|
-
const net_weights_range = [];
|
|
64
|
-
const prices_range = [];
|
|
65
62
|
const existingProductIds = data.existingProducts.map((product) => product.external_id);
|
|
63
|
+
// First, collect all variant data for each product
|
|
64
|
+
const productVariantData = new Map();
|
|
66
65
|
data.partyStyleData
|
|
67
66
|
.filter((styleData) => existingProductIds.includes(String(styleData.StyleId)))
|
|
68
67
|
.forEach((styleData) => {
|
|
69
|
-
|
|
68
|
+
const existingProduct = data.existingProducts.find((p) => p.external_id === String(styleData.StyleId));
|
|
70
69
|
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);
|
|
71
70
|
const { baseMetal, baseMetalPurity, baseMetalColor } = (0, product_helper_1.getBaseMetalDetails)(styleData.PartyStyleMstDetail);
|
|
72
|
-
const
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
71
|
+
const extendedVariantData = (0, product_helper_1.getExtendedVariantData)(styleData, { baseMetal, baseMetalPurity, baseMetalColor }, {
|
|
72
|
+
metal_total_cost,
|
|
73
|
+
diamond_total_cost,
|
|
74
|
+
stone_total_cost,
|
|
75
|
+
cpf_total_cost,
|
|
76
|
+
metal_total_amount,
|
|
77
|
+
diamond_total_amount,
|
|
78
|
+
stone_total_amount,
|
|
79
|
+
cpf_total_amount,
|
|
80
|
+
});
|
|
81
|
+
// Collect variant data for each product
|
|
82
|
+
if (!productVariantData.has(existingProduct.id)) {
|
|
83
|
+
productVariantData.set(existingProduct.id, {
|
|
84
|
+
gross_weights: new Set(),
|
|
85
|
+
net_weights: new Set(),
|
|
86
|
+
prices: new Set(),
|
|
87
|
+
product: existingProduct,
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
const productData = productVariantData.get(existingProduct.id);
|
|
91
|
+
productData.gross_weights.add(extendedVariantData.gross_weight.toString());
|
|
92
|
+
productData.net_weights.add(extendedVariantData.net_weight.toString());
|
|
93
|
+
productData.prices.add(styleData.Mrp.toString());
|
|
94
|
+
// Create variant
|
|
76
95
|
const productOptions = (0, product_helper_1.createProductOptionsForPartyStyleId)(styleData, data.productOptionsAllData.find((option) => option.id === existingProduct.id));
|
|
77
96
|
const title = styleData.PartyStyleMstExploration.find((exploration) => exploration.ExplorationName.toLowerCase() === "product name")?.ExplorationValue;
|
|
78
97
|
const variant = {
|
|
@@ -95,16 +114,6 @@ const partyStyleMstWorkflow = (0, workflows_sdk_1.createWorkflow)("party-style-m
|
|
|
95
114
|
external_id: `${styleData.PartyStyleId}`,
|
|
96
115
|
},
|
|
97
116
|
};
|
|
98
|
-
const extendedVariantData = (0, product_helper_1.getExtendedVariantData)(styleData, { baseMetal, baseMetalPurity, baseMetalColor }, {
|
|
99
|
-
metal_total_cost,
|
|
100
|
-
diamond_total_cost,
|
|
101
|
-
stone_total_cost,
|
|
102
|
-
cpf_total_cost,
|
|
103
|
-
metal_total_amount,
|
|
104
|
-
diamond_total_amount,
|
|
105
|
-
stone_total_amount,
|
|
106
|
-
cpf_total_amount,
|
|
107
|
-
});
|
|
108
117
|
const styleDetails = (0, product_helper_1.getPartyStyleDetailLines)(styleData?.PartyStyleMstDetail);
|
|
109
118
|
const explorationDetails = (0, product_helper_1.getPartyStyleExplorationLines)(styleData?.PartyStyleMstExploration);
|
|
110
119
|
variantsToCreate.push({
|
|
@@ -115,54 +124,24 @@ const partyStyleMstWorkflow = (0, workflows_sdk_1.createWorkflow)("party-style-m
|
|
|
115
124
|
explorationDetails,
|
|
116
125
|
},
|
|
117
126
|
});
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
const
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
...new Set([
|
|
131
|
-
...existingNetWeights,
|
|
132
|
-
extendedVariantData.net_weight.toString(),
|
|
133
|
-
]),
|
|
134
|
-
];
|
|
135
|
-
const combinedPrices = [
|
|
136
|
-
...new Set([...existingPrices, styleData.Mrp.toString()]),
|
|
137
|
-
];
|
|
138
|
-
// Find if product already exists in productsToUpdate
|
|
139
|
-
const existingProductIndex = productsToUpdate.findIndex((p) => p.product.id === existingProduct.id);
|
|
140
|
-
if (existingProductIndex !== -1) {
|
|
141
|
-
// Update ranges for existing product
|
|
142
|
-
productsToUpdate[existingProductIndex].additional_data.extendedProductData.gross_weights_range =
|
|
143
|
-
combinedGrossWeights;
|
|
144
|
-
productsToUpdate[existingProductIndex].additional_data.extendedProductData.net_weights_range =
|
|
145
|
-
combinedNetWeights;
|
|
146
|
-
productsToUpdate[existingProductIndex].additional_data.extendedProductData.prices_range =
|
|
147
|
-
combinedPrices;
|
|
148
|
-
}
|
|
149
|
-
else {
|
|
150
|
-
// Add new product if it doesn't exist
|
|
151
|
-
productsToUpdate.push({
|
|
152
|
-
product: existingProduct,
|
|
153
|
-
additional_data: {
|
|
154
|
-
extendedProductData: {
|
|
155
|
-
...existingProduct.extended_product,
|
|
156
|
-
gross_weights_range: combinedGrossWeights,
|
|
157
|
-
net_weights_range: combinedNetWeights,
|
|
158
|
-
prices_range: combinedPrices,
|
|
159
|
-
},
|
|
160
|
-
styleDetails: existingProduct?.extended_product?.style_details,
|
|
161
|
-
styleExplorations: existingProduct?.extended_product?.style_explorations,
|
|
162
|
-
styleCollections: existingProduct?.extended_product?.style_collections,
|
|
127
|
+
});
|
|
128
|
+
// Now update products with all collected variant data
|
|
129
|
+
productVariantData.forEach((productData, productId) => {
|
|
130
|
+
const existingProduct = productData.product;
|
|
131
|
+
productsToUpdate.push({
|
|
132
|
+
product: existingProduct,
|
|
133
|
+
additional_data: {
|
|
134
|
+
extendedProductData: {
|
|
135
|
+
...existingProduct.extended_product,
|
|
136
|
+
gross_weights_range: Array.from(productData.gross_weights),
|
|
137
|
+
net_weights_range: Array.from(productData.net_weights),
|
|
138
|
+
prices_range: Array.from(productData.prices),
|
|
163
139
|
},
|
|
164
|
-
|
|
165
|
-
|
|
140
|
+
styleDetails: existingProduct?.extended_product?.style_details,
|
|
141
|
+
styleExplorations: existingProduct?.extended_product?.style_explorations,
|
|
142
|
+
styleCollections: existingProduct?.extended_product?.style_collections,
|
|
143
|
+
},
|
|
144
|
+
});
|
|
166
145
|
});
|
|
167
146
|
return {
|
|
168
147
|
variantsToCreate: {
|
|
@@ -209,4 +188,4 @@ const partyStyleMstWorkflow = (0, workflows_sdk_1.createWorkflow)("party-style-m
|
|
|
209
188
|
});
|
|
210
189
|
});
|
|
211
190
|
exports.default = partyStyleMstWorkflow;
|
|
212
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
191
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL2NyZWF0ZS1vci11cGRhdGUtcGFydHktc3R5bGUtbWFzdGVyL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBSUEscUVBSzJDO0FBQzNDLDREQUlxQztBQUdyQywyR0FBdUY7QUFDdkYsOERBT21DO0FBRW5DLG1FQUFpRTtBQUVqRTs7Ozs7OztHQU9HO0FBQ0gsTUFBTSxxQkFBcUIsR0FBRyxJQUFBLDhCQUFjLEVBQzFDLGlCQUFpQixFQUNqQixDQUFDLEtBQXlCLEVBQUUsRUFBRTtJQUM1QiwyQ0FBMkM7SUFDM0MsTUFBTSxjQUFjLEdBQUcsSUFBQSx3Q0FBbUIsRUFBQyxLQUFLLENBQUMsQ0FBQztJQUVsRCxNQUFNLGtCQUFrQixHQUFHLElBQUEseUJBQVMsRUFDbEM7UUFDRSxjQUFjO0tBQ2YsRUFDRCxDQUFDLElBQUksRUFBRSxFQUFFO1FBQ1AsT0FBTztZQUNMLEdBQUcsSUFBSSxHQUFHLENBQ1IsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLEdBQUcsT0FBTyxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQzVEO1NBQ0YsQ0FBQztJQUNKLENBQUMsQ0FDRixDQUFDO0lBRUYsTUFBTSxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxHQUFHLElBQUEsOEJBQWlCLEVBQUM7UUFDbkQsTUFBTSxFQUFFLFNBQVM7UUFDakIsTUFBTSxFQUFFO1lBQ04sSUFBSTtZQUNKLGFBQWE7WUFDYixZQUFZO1lBQ1osV0FBVztZQUNYLG9CQUFvQjtZQUNwQixrQ0FBa0M7WUFDbEMsdUNBQXVDO1lBQ3ZDLHNDQUFzQztTQUN2QztRQUNELE9BQU8sRUFBRTtZQUNQLFdBQVcsRUFBRSxrQkFBa0I7U0FDaEM7S0FDRixDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUUsSUFBSSxFQUFFLG1CQUFt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
|