@medusajs/medusa 1.3.9 → 1.4.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.
- package/.turbo/turbo-build.log +1 -1
- package/CHANGELOG.md +12 -0
- package/dist/api/index.d.ts +1 -0
- package/dist/api/index.js +1 -0
- package/dist/api/index.js.map +1 -1
- package/dist/api/routes/admin/batch/create-batch-job.js +10 -7
- package/dist/api/routes/admin/batch/create-batch-job.js.map +1 -1
- package/dist/api/routes/admin/index.js +6 -4
- package/dist/api/routes/admin/index.js.map +1 -1
- package/dist/api/routes/admin/price-lists/create-price-list.d.ts +4 -0
- package/dist/api/routes/admin/price-lists/create-price-list.js +16 -1
- package/dist/api/routes/admin/price-lists/create-price-list.js.map +1 -1
- package/dist/api/routes/admin/price-lists/index.d.ts +2 -1
- package/dist/api/routes/admin/price-lists/index.js +8 -1
- package/dist/api/routes/admin/price-lists/index.js.map +1 -1
- package/dist/api/routes/admin/price-lists/update-price-list.d.ts +4 -0
- package/dist/api/routes/admin/price-lists/update-price-list.js +16 -1
- package/dist/api/routes/admin/price-lists/update-price-list.js.map +1 -1
- package/dist/api/routes/admin/products/update-variant.js +1 -0
- package/dist/api/routes/admin/products/update-variant.js.map +1 -1
- package/dist/api/routes/admin/regions/create-region.d.ts +4 -0
- package/dist/api/routes/admin/regions/create-region.js +16 -1
- package/dist/api/routes/admin/regions/create-region.js.map +1 -1
- package/dist/api/routes/admin/regions/index.d.ts +2 -1
- package/dist/api/routes/admin/regions/index.js +5 -1
- package/dist/api/routes/admin/regions/index.js.map +1 -1
- package/dist/api/routes/admin/regions/update-region.d.ts +4 -0
- package/dist/api/routes/admin/regions/update-region.js +16 -1
- package/dist/api/routes/admin/regions/update-region.js.map +1 -1
- package/dist/api/routes/admin/shipping-options/create-shipping-option.d.ts +4 -0
- package/dist/api/routes/admin/shipping-options/create-shipping-option.js +15 -0
- package/dist/api/routes/admin/shipping-options/create-shipping-option.js.map +1 -1
- package/dist/api/routes/admin/shipping-options/index.d.ts +2 -1
- package/dist/api/routes/admin/shipping-options/index.js +5 -1
- package/dist/api/routes/admin/shipping-options/index.js.map +1 -1
- package/dist/api/routes/admin/shipping-options/update-shipping-option.d.ts +4 -0
- package/dist/api/routes/admin/shipping-options/update-shipping-option.js +15 -0
- package/dist/api/routes/admin/shipping-options/update-shipping-option.js.map +1 -1
- package/dist/helpers/test-request.js +27 -4
- package/dist/helpers/test-request.js.map +1 -1
- package/dist/interfaces/price-selection-strategy.d.ts +4 -0
- package/dist/interfaces/price-selection-strategy.js.map +1 -1
- package/dist/loaders/feature-flags/index.d.ts +1 -0
- package/dist/loaders/feature-flags/index.js +18 -3
- package/dist/loaders/feature-flags/index.js.map +1 -1
- package/dist/loaders/feature-flags/order-editing.d.ts +3 -0
- package/dist/loaders/feature-flags/order-editing.js +10 -0
- package/dist/loaders/feature-flags/order-editing.js.map +1 -0
- package/dist/migrations/1663059812399-order_editing.d.ts +7 -0
- package/dist/migrations/1663059812399-order_editing.js +112 -0
- package/dist/migrations/1663059812399-order_editing.js.map +1 -0
- package/dist/models/currency.d.ts +4 -0
- package/dist/models/currency.js +12 -0
- package/dist/models/currency.js.map +1 -1
- package/dist/models/custom-shipping-option.d.ts +3 -0
- package/dist/models/custom-shipping-option.js +3 -0
- package/dist/models/custom-shipping-option.js.map +1 -1
- package/dist/models/line-item.d.ts +4 -0
- package/dist/models/line-item.js +12 -0
- package/dist/models/line-item.js.map +1 -1
- package/dist/models/money-amount.d.ts +2 -2
- package/dist/models/money-amount.js.map +1 -1
- package/dist/models/order-edit.d.ts +111 -0
- package/dist/models/order-edit.js +204 -0
- package/dist/models/order-edit.js.map +1 -0
- package/dist/models/order-item-change.d.ts +60 -0
- package/dist/models/order-item-change.js +143 -0
- package/dist/models/order-item-change.js.map +1 -0
- package/dist/models/order.d.ts +7 -0
- package/dist/models/order.js +16 -0
- package/dist/models/order.js.map +1 -1
- package/dist/models/price-list.d.ts +5 -0
- package/dist/models/price-list.js +13 -0
- package/dist/models/price-list.js.map +1 -1
- package/dist/models/region.d.ts +4 -0
- package/dist/models/region.js +12 -0
- package/dist/models/region.js.map +1 -1
- package/dist/models/shipping-method.d.ts +4 -0
- package/dist/models/shipping-method.js +12 -0
- package/dist/models/shipping-method.js.map +1 -1
- package/dist/models/shipping-option.d.ts +4 -0
- package/dist/models/shipping-option.js +12 -0
- package/dist/models/shipping-option.js.map +1 -1
- package/dist/repositories/currency.d.ts +1 -1
- package/dist/repositories/currency.js +2 -2
- package/dist/repositories/currency.js.map +1 -1
- package/dist/repositories/money-amount.d.ts +1 -1
- package/dist/repositories/money-amount.js +8 -4
- package/dist/repositories/money-amount.js.map +1 -1
- package/dist/repositories/order-edit.d.ts +4 -0
- package/dist/repositories/order-edit.js +38 -0
- package/dist/repositories/order-edit.js.map +1 -0
- package/dist/repositories/order-item-change.d.ts +4 -0
- package/dist/repositories/order-item-change.js +38 -0
- package/dist/repositories/order-item-change.js.map +1 -0
- package/dist/services/batch-job.js +4 -2
- package/dist/services/batch-job.js.map +1 -1
- package/dist/services/cart.js +83 -74
- package/dist/services/cart.js.map +1 -1
- package/dist/services/claim.js +45 -43
- package/dist/services/claim.js.map +1 -1
- package/dist/services/discount.d.ts +4 -1
- package/dist/services/discount.js +39 -20
- package/dist/services/discount.js.map +1 -1
- package/dist/services/index.d.ts +1 -1
- package/dist/services/index.js +3 -3
- package/dist/services/index.js.map +1 -1
- package/dist/services/line-item-adjustment.d.ts +1 -4
- package/dist/services/line-item-adjustment.js +2 -1
- package/dist/services/line-item-adjustment.js.map +1 -1
- package/dist/services/line-item.d.ts +12 -7
- package/dist/services/line-item.js +22 -10
- package/dist/services/line-item.js.map +1 -1
- package/dist/services/notification.js +3 -2
- package/dist/services/notification.js.map +1 -1
- package/dist/services/order.js +214 -115
- package/dist/services/order.js.map +1 -1
- package/dist/services/price-list.d.ts +7 -4
- package/dist/services/price-list.js +25 -11
- package/dist/services/price-list.js.map +1 -1
- package/dist/services/pricing.d.ts +7 -4
- package/dist/services/pricing.js +39 -12
- package/dist/services/pricing.js.map +1 -1
- package/dist/services/product-variant.js +1 -1
- package/dist/services/product-variant.js.map +1 -1
- package/dist/services/region.d.ts +10 -7
- package/dist/services/region.js +22 -6
- package/dist/services/region.js.map +1 -1
- package/dist/services/return.js +23 -19
- package/dist/services/return.js.map +1 -1
- package/dist/services/shipping-option.d.ts +12 -8
- package/dist/services/shipping-option.js +23 -2
- package/dist/services/shipping-option.js.map +1 -1
- package/dist/services/store.d.ts +1 -2
- package/dist/services/store.js.map +1 -1
- package/dist/services/totals.d.ts +18 -20
- package/dist/services/totals.js +614 -358
- package/dist/services/totals.js.map +1 -1
- package/dist/strategies/__fixtures__/product-export-data.js +6 -2
- package/dist/strategies/__fixtures__/product-export-data.js.map +1 -1
- package/dist/strategies/batch-jobs/product/export.d.ts +6 -0
- package/dist/strategies/batch-jobs/product/export.js +11 -2
- package/dist/strategies/batch-jobs/product/export.js.map +1 -1
- package/dist/strategies/batch-jobs/product/import.d.ts +6 -5
- package/dist/strategies/batch-jobs/product/import.js +293 -197
- package/dist/strategies/batch-jobs/product/import.js.map +1 -1
- package/dist/strategies/batch-jobs/product/index.js +2 -2
- package/dist/strategies/batch-jobs/product/types.d.ts +8 -0
- package/dist/strategies/batch-jobs/product/types.js.map +1 -1
- package/dist/strategies/batch-jobs/product/utils.d.ts +1 -1
- package/dist/strategies/batch-jobs/product/utils.js +10 -1
- package/dist/strategies/batch-jobs/product/utils.js.map +1 -1
- package/dist/strategies/price-selection.d.ts +6 -2
- package/dist/strategies/price-selection.js +124 -10
- package/dist/strategies/price-selection.js.map +1 -1
- package/dist/strategies/tax-calculation.d.ts +7 -5
- package/dist/strategies/tax-calculation.js +47 -17
- package/dist/strategies/tax-calculation.js.map +1 -1
- package/dist/subscribers/batch-job.d.ts +4 -1
- package/dist/subscribers/batch-job.js +71 -44
- package/dist/subscribers/batch-job.js.map +1 -1
- package/dist/types/price-list.d.ts +2 -1
- package/dist/types/pricing.d.ts +5 -2
- package/dist/types/region.d.ts +2 -0
- package/dist/types/shipping-options.d.ts +2 -0
- package/dist/utils/feature-flag-decorators.js +4 -16
- package/dist/utils/feature-flag-decorators.js.map +1 -1
- package/dist/utils/flag-router.d.ts +1 -1
- package/dist/utils/flag-router.js.map +1 -1
- package/dist/utils/index.d.ts +2 -0
- package/dist/utils/index.js +2 -0
- package/dist/utils/index.js.map +1 -1
- package/package.json +1 -3
|
@@ -154,32 +154,37 @@ var ProductImportStrategy = /** @class */ (function (_super) {
|
|
|
154
154
|
* @param csvData - An array of parsed CSV rows.
|
|
155
155
|
*/
|
|
156
156
|
ProductImportStrategy.prototype.getImportInstructions = function (csvData) {
|
|
157
|
+
var _a;
|
|
157
158
|
return __awaiter(this, void 0, void 0, function () {
|
|
158
|
-
var shippingProfile, seenProducts, productsCreate, productsUpdate, variantsCreate, variantsUpdate, csvData_1, csvData_1_1, row, e_1_1;
|
|
159
|
-
var e_1,
|
|
160
|
-
return __generator(this, function (
|
|
161
|
-
switch (
|
|
162
|
-
case 0:
|
|
159
|
+
var transactionManager, shippingProfile, seenProducts, productsCreate, productsUpdate, variantsCreate, variantsUpdate, csvData_1, csvData_1_1, row, e_1_1;
|
|
160
|
+
var e_1, _b, _c;
|
|
161
|
+
return __generator(this, function (_d) {
|
|
162
|
+
switch (_d.label) {
|
|
163
|
+
case 0:
|
|
164
|
+
transactionManager = (_a = this.transactionManager_) !== null && _a !== void 0 ? _a : this.manager_;
|
|
165
|
+
return [4 /*yield*/, this.shippingProfileService_
|
|
166
|
+
.withTransaction(transactionManager)
|
|
167
|
+
.retrieveDefault()];
|
|
163
168
|
case 1:
|
|
164
|
-
shippingProfile =
|
|
169
|
+
shippingProfile = _d.sent();
|
|
165
170
|
seenProducts = {};
|
|
166
171
|
productsCreate = [];
|
|
167
172
|
productsUpdate = [];
|
|
168
173
|
variantsCreate = [];
|
|
169
174
|
variantsUpdate = [];
|
|
170
|
-
|
|
175
|
+
_d.label = 2;
|
|
171
176
|
case 2:
|
|
172
|
-
|
|
177
|
+
_d.trys.push([2, 8, 9, 10]);
|
|
173
178
|
csvData_1 = __values(csvData), csvData_1_1 = csvData_1.next();
|
|
174
|
-
|
|
179
|
+
_d.label = 3;
|
|
175
180
|
case 3:
|
|
176
181
|
if (!!csvData_1_1.done) return [3 /*break*/, 7];
|
|
177
182
|
row = csvData_1_1.value;
|
|
178
183
|
if (!row["variant.prices"].length) return [3 /*break*/, 5];
|
|
179
184
|
return [4 /*yield*/, this.prepareVariantPrices(row)];
|
|
180
185
|
case 4:
|
|
181
|
-
|
|
182
|
-
|
|
186
|
+
_d.sent();
|
|
187
|
+
_d.label = 5;
|
|
183
188
|
case 5:
|
|
184
189
|
if (row["variant.id"]) {
|
|
185
190
|
variantsUpdate.push(row);
|
|
@@ -198,27 +203,27 @@ var ProductImportStrategy = /** @class */ (function (_super) {
|
|
|
198
203
|
}
|
|
199
204
|
seenProducts[row["product.handle"]] = true;
|
|
200
205
|
}
|
|
201
|
-
|
|
206
|
+
_d.label = 6;
|
|
202
207
|
case 6:
|
|
203
208
|
csvData_1_1 = csvData_1.next();
|
|
204
209
|
return [3 /*break*/, 3];
|
|
205
210
|
case 7: return [3 /*break*/, 10];
|
|
206
211
|
case 8:
|
|
207
|
-
e_1_1 =
|
|
212
|
+
e_1_1 = _d.sent();
|
|
208
213
|
e_1 = { error: e_1_1 };
|
|
209
214
|
return [3 /*break*/, 10];
|
|
210
215
|
case 9:
|
|
211
216
|
try {
|
|
212
|
-
if (csvData_1_1 && !csvData_1_1.done && (
|
|
217
|
+
if (csvData_1_1 && !csvData_1_1.done && (_b = csvData_1.return)) _b.call(csvData_1);
|
|
213
218
|
}
|
|
214
219
|
finally { if (e_1) throw e_1.error; }
|
|
215
220
|
return [7 /*endfinally*/];
|
|
216
|
-
case 10: return [2 /*return*/, (
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
221
|
+
case 10: return [2 /*return*/, (_c = {},
|
|
222
|
+
_c[types_1.OperationType.ProductCreate] = productsCreate,
|
|
223
|
+
_c[types_1.OperationType.VariantCreate] = variantsCreate,
|
|
224
|
+
_c[types_1.OperationType.ProductUpdate] = productsUpdate,
|
|
225
|
+
_c[types_1.OperationType.VariantUpdate] = variantsUpdate,
|
|
226
|
+
_c)];
|
|
222
227
|
}
|
|
223
228
|
});
|
|
224
229
|
});
|
|
@@ -300,36 +305,57 @@ var ProductImportStrategy = /** @class */ (function (_super) {
|
|
|
300
305
|
* @param batchJobId - An id of a job that is being preprocessed.
|
|
301
306
|
*/
|
|
302
307
|
ProductImportStrategy.prototype.preProcessBatchJob = function (batchJobId) {
|
|
308
|
+
var _a;
|
|
303
309
|
return __awaiter(this, void 0, void 0, function () {
|
|
304
|
-
var batchJob, csvFileKey, csvStream, parsedData,
|
|
305
|
-
return __generator(this, function (
|
|
306
|
-
switch (
|
|
307
|
-
case 0:
|
|
310
|
+
var transactionManager, batchJob, csvFileKey, csvStream, builtData, parsedData, e_4, ops, totalOperationCount, operationsCounts;
|
|
311
|
+
return __generator(this, function (_b) {
|
|
312
|
+
switch (_b.label) {
|
|
313
|
+
case 0:
|
|
314
|
+
transactionManager = (_a = this.transactionManager_) !== null && _a !== void 0 ? _a : this.manager_;
|
|
315
|
+
return [4 /*yield*/, this.batchJobService_
|
|
316
|
+
.withTransaction(transactionManager)
|
|
317
|
+
.retrieve(batchJobId)];
|
|
308
318
|
case 1:
|
|
309
|
-
batchJob =
|
|
319
|
+
batchJob = _b.sent();
|
|
310
320
|
csvFileKey = batchJob.context.fileKey;
|
|
311
321
|
return [4 /*yield*/, this.fileService_.getDownloadStream({
|
|
312
322
|
fileKey: csvFileKey,
|
|
313
323
|
})];
|
|
314
324
|
case 2:
|
|
315
|
-
csvStream =
|
|
316
|
-
|
|
325
|
+
csvStream = _b.sent();
|
|
326
|
+
_b.label = 3;
|
|
317
327
|
case 3:
|
|
318
|
-
|
|
319
|
-
return [4 /*yield*/, this.csvParser_.
|
|
328
|
+
_b.trys.push([3, 6, , 7]);
|
|
329
|
+
return [4 /*yield*/, this.csvParser_.parse(csvStream)];
|
|
320
330
|
case 4:
|
|
321
|
-
|
|
322
|
-
return [4 /*yield*/, this.
|
|
331
|
+
parsedData = _b.sent();
|
|
332
|
+
return [4 /*yield*/, this.csvParser_.buildData(parsedData)];
|
|
323
333
|
case 5:
|
|
324
|
-
|
|
325
|
-
return [
|
|
334
|
+
builtData = _b.sent();
|
|
335
|
+
return [3 /*break*/, 7];
|
|
326
336
|
case 6:
|
|
327
|
-
|
|
328
|
-
|
|
337
|
+
e_4 = _b.sent();
|
|
338
|
+
throw new medusa_core_utils_1.MedusaError(medusa_core_utils_1.MedusaError.Types.INVALID_DATA, "The csv file parsing failed due to: " + e_4.message);
|
|
339
|
+
case 7: return [4 /*yield*/, this.getImportInstructions(builtData)];
|
|
340
|
+
case 8:
|
|
341
|
+
ops = _b.sent();
|
|
342
|
+
return [4 /*yield*/, this.uploadImportOpsFile(batchJobId, ops)];
|
|
343
|
+
case 9:
|
|
344
|
+
_b.sent();
|
|
345
|
+
totalOperationCount = 0;
|
|
346
|
+
operationsCounts = {};
|
|
347
|
+
Object.keys(ops).forEach(function (key) {
|
|
348
|
+
operationsCounts[key] = ops[key].length;
|
|
349
|
+
totalOperationCount += ops[key].length;
|
|
350
|
+
});
|
|
351
|
+
return [4 /*yield*/, this.batchJobService_
|
|
352
|
+
.withTransaction(transactionManager)
|
|
353
|
+
.update(batchJobId, {
|
|
329
354
|
result: {
|
|
330
355
|
advancement_count: 0,
|
|
331
356
|
// number of update/create operations to execute
|
|
332
|
-
count:
|
|
357
|
+
count: totalOperationCount,
|
|
358
|
+
operations: operationsCounts,
|
|
333
359
|
stat_descriptors: [
|
|
334
360
|
{
|
|
335
361
|
key: "product-import-count",
|
|
@@ -339,8 +365,8 @@ var ProductImportStrategy = /** @class */ (function (_super) {
|
|
|
339
365
|
],
|
|
340
366
|
},
|
|
341
367
|
})];
|
|
342
|
-
case
|
|
343
|
-
|
|
368
|
+
case 10:
|
|
369
|
+
_b.sent();
|
|
344
370
|
return [2 /*return*/];
|
|
345
371
|
}
|
|
346
372
|
});
|
|
@@ -357,22 +383,30 @@ var ProductImportStrategy = /** @class */ (function (_super) {
|
|
|
357
383
|
var _this = this;
|
|
358
384
|
return __generator(this, function (_a) {
|
|
359
385
|
switch (_a.label) {
|
|
360
|
-
case 0: return [4 /*yield*/, this.atomicPhase_(function () { return __awaiter(_this, void 0, void 0, function () {
|
|
386
|
+
case 0: return [4 /*yield*/, this.atomicPhase_(function (manager) { return __awaiter(_this, void 0, void 0, function () {
|
|
387
|
+
var batchJob;
|
|
361
388
|
return __generator(this, function (_a) {
|
|
362
389
|
switch (_a.label) {
|
|
363
|
-
case 0: return [4 /*yield*/, this.
|
|
390
|
+
case 0: return [4 /*yield*/, this.batchJobService_
|
|
391
|
+
.withTransaction(manager)
|
|
392
|
+
.retrieve(batchJobId)];
|
|
364
393
|
case 1:
|
|
365
|
-
_a.sent();
|
|
366
|
-
return [4 /*yield*/, this.
|
|
394
|
+
batchJob = (_a.sent());
|
|
395
|
+
return [4 /*yield*/, this.createProducts(batchJob)];
|
|
367
396
|
case 2:
|
|
368
397
|
_a.sent();
|
|
369
|
-
return [4 /*yield*/, this.
|
|
398
|
+
return [4 /*yield*/, this.updateProducts(batchJob)];
|
|
370
399
|
case 3:
|
|
371
400
|
_a.sent();
|
|
372
|
-
return [4 /*yield*/, this.
|
|
401
|
+
return [4 /*yield*/, this.createVariants(batchJob)];
|
|
373
402
|
case 4:
|
|
374
403
|
_a.sent();
|
|
375
|
-
this.
|
|
404
|
+
return [4 /*yield*/, this.updateVariants(batchJob)];
|
|
405
|
+
case 5:
|
|
406
|
+
_a.sent();
|
|
407
|
+
return [4 /*yield*/, this.finalize(batchJob)];
|
|
408
|
+
case 6:
|
|
409
|
+
_a.sent();
|
|
376
410
|
return [2 /*return*/];
|
|
377
411
|
}
|
|
378
412
|
});
|
|
@@ -394,8 +428,8 @@ var ProductImportStrategy = /** @class */ (function (_super) {
|
|
|
394
428
|
ProductImportStrategy.prototype.processSalesChannels = function (data) {
|
|
395
429
|
var _a;
|
|
396
430
|
return __awaiter(this, void 0, void 0, function () {
|
|
397
|
-
var transactionManager, salesChannelServiceTx, salesChannels, data_1, data_1_1, input, channel,
|
|
398
|
-
var
|
|
431
|
+
var transactionManager, salesChannelServiceTx, salesChannels, data_1, data_1_1, input, channel, e_5, e_6, e_7_1;
|
|
432
|
+
var e_7, _b;
|
|
399
433
|
return __generator(this, function (_c) {
|
|
400
434
|
switch (_c.label) {
|
|
401
435
|
case 0:
|
|
@@ -404,11 +438,11 @@ var ProductImportStrategy = /** @class */ (function (_super) {
|
|
|
404
438
|
salesChannels = [];
|
|
405
439
|
_c.label = 1;
|
|
406
440
|
case 1:
|
|
407
|
-
_c.trys.push([1,
|
|
441
|
+
_c.trys.push([1, 13, 14, 15]);
|
|
408
442
|
data_1 = __values(data), data_1_1 = data_1.next();
|
|
409
443
|
_c.label = 2;
|
|
410
444
|
case 2:
|
|
411
|
-
if (!!data_1_1.done) return [3 /*break*/,
|
|
445
|
+
if (!!data_1_1.done) return [3 /*break*/, 12];
|
|
412
446
|
input = data_1_1.value;
|
|
413
447
|
channel = null;
|
|
414
448
|
if (!input.id) return [3 /*break*/, 6];
|
|
@@ -422,34 +456,42 @@ var ProductImportStrategy = /** @class */ (function (_super) {
|
|
|
422
456
|
channel = _c.sent();
|
|
423
457
|
return [3 /*break*/, 6];
|
|
424
458
|
case 5:
|
|
425
|
-
|
|
459
|
+
e_5 = _c.sent();
|
|
426
460
|
return [3 /*break*/, 6];
|
|
427
461
|
case 6:
|
|
428
|
-
if (!!channel) return [3 /*break*/,
|
|
462
|
+
if (!!channel) return [3 /*break*/, 10];
|
|
463
|
+
_c.label = 7;
|
|
464
|
+
case 7:
|
|
465
|
+
_c.trys.push([7, 9, , 10]);
|
|
429
466
|
return [4 /*yield*/, salesChannelServiceTx.retrieveByName(input.name, {
|
|
430
467
|
select: ["id"],
|
|
431
468
|
})];
|
|
432
|
-
case 7:
|
|
433
|
-
channel = (_c.sent());
|
|
434
|
-
_c.label = 8;
|
|
435
469
|
case 8:
|
|
436
|
-
|
|
437
|
-
|
|
470
|
+
channel = (_c.sent());
|
|
471
|
+
return [3 /*break*/, 10];
|
|
438
472
|
case 9:
|
|
473
|
+
e_6 = _c.sent();
|
|
474
|
+
return [3 /*break*/, 10];
|
|
475
|
+
case 10:
|
|
476
|
+
if (channel) {
|
|
477
|
+
salesChannels.push(channel);
|
|
478
|
+
}
|
|
479
|
+
_c.label = 11;
|
|
480
|
+
case 11:
|
|
439
481
|
data_1_1 = data_1.next();
|
|
440
482
|
return [3 /*break*/, 2];
|
|
441
|
-
case
|
|
442
|
-
case
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
return [3 /*break*/,
|
|
446
|
-
case
|
|
483
|
+
case 12: return [3 /*break*/, 15];
|
|
484
|
+
case 13:
|
|
485
|
+
e_7_1 = _c.sent();
|
|
486
|
+
e_7 = { error: e_7_1 };
|
|
487
|
+
return [3 /*break*/, 15];
|
|
488
|
+
case 14:
|
|
447
489
|
try {
|
|
448
490
|
if (data_1_1 && !data_1_1.done && (_b = data_1.return)) _b.call(data_1);
|
|
449
491
|
}
|
|
450
|
-
finally { if (
|
|
492
|
+
finally { if (e_7) throw e_7.error; }
|
|
451
493
|
return [7 /*endfinally*/];
|
|
452
|
-
case
|
|
494
|
+
case 15: return [2 /*return*/, salesChannels];
|
|
453
495
|
}
|
|
454
496
|
});
|
|
455
497
|
});
|
|
@@ -457,35 +499,38 @@ var ProductImportStrategy = /** @class */ (function (_super) {
|
|
|
457
499
|
/**
|
|
458
500
|
* Method creates products using `ProductService` and parsed data from a CSV row.
|
|
459
501
|
*
|
|
460
|
-
* @param
|
|
502
|
+
* @param batchJob - The current batch job being processed.
|
|
461
503
|
*/
|
|
462
|
-
ProductImportStrategy.prototype.createProducts = function (
|
|
504
|
+
ProductImportStrategy.prototype.createProducts = function (batchJob) {
|
|
463
505
|
var _a;
|
|
464
506
|
return __awaiter(this, void 0, void 0, function () {
|
|
465
|
-
var transactionManager, productOps, productServiceTx, isSalesChannelsFeatureOn, productOps_1, productOps_1_1, productOp, productData, _b, _c,
|
|
466
|
-
var
|
|
507
|
+
var transactionManager, productOps, productServiceTx, isSalesChannelsFeatureOn, productOps_1, productOps_1_1, productOp, productData, _b, _c, e_8, e_9_1;
|
|
508
|
+
var e_9, _d;
|
|
467
509
|
return __generator(this, function (_e) {
|
|
468
510
|
switch (_e.label) {
|
|
469
511
|
case 0:
|
|
512
|
+
if (!batchJob.result.operations[types_1.OperationType.ProductCreate]) {
|
|
513
|
+
return [2 /*return*/];
|
|
514
|
+
}
|
|
470
515
|
transactionManager = (_a = this.transactionManager_) !== null && _a !== void 0 ? _a : this.manager_;
|
|
471
|
-
return [4 /*yield*/, this.downloadImportOpsFile(
|
|
516
|
+
return [4 /*yield*/, this.downloadImportOpsFile(batchJob.id, types_1.OperationType.ProductCreate)];
|
|
472
517
|
case 1:
|
|
473
518
|
productOps = _e.sent();
|
|
474
519
|
productServiceTx = this.productService_.withTransaction(transactionManager);
|
|
475
520
|
isSalesChannelsFeatureOn = this.featureFlagRouter_.isFeatureEnabled(sales_channels_1.default.key);
|
|
476
521
|
_e.label = 2;
|
|
477
522
|
case 2:
|
|
478
|
-
_e.trys.push([2,
|
|
523
|
+
_e.trys.push([2, 13, 14, 15]);
|
|
479
524
|
productOps_1 = __values(productOps), productOps_1_1 = productOps_1.next();
|
|
480
525
|
_e.label = 3;
|
|
481
526
|
case 3:
|
|
482
|
-
if (!!productOps_1_1.done) return [3 /*break*/,
|
|
527
|
+
if (!!productOps_1_1.done) return [3 /*break*/, 12];
|
|
483
528
|
productOp = productOps_1_1.value;
|
|
484
529
|
productData = (0, utils_1.transformProductData)(productOp);
|
|
485
530
|
_e.label = 4;
|
|
486
531
|
case 4:
|
|
487
532
|
_e.trys.push([4, 8, , 9]);
|
|
488
|
-
if (!isSalesChannelsFeatureOn) return [3 /*break*/, 6];
|
|
533
|
+
if (!(isSalesChannelsFeatureOn && productOp["product.sales_channels"])) return [3 /*break*/, 6];
|
|
489
534
|
_b = productData;
|
|
490
535
|
_c = "sales_channels";
|
|
491
536
|
return [4 /*yield*/, this.processSalesChannels(productOp["product.sales_channels"])];
|
|
@@ -497,27 +542,28 @@ var ProductImportStrategy = /** @class */ (function (_super) {
|
|
|
497
542
|
_e.sent();
|
|
498
543
|
return [3 /*break*/, 9];
|
|
499
544
|
case 8:
|
|
500
|
-
|
|
501
|
-
ProductImportStrategy.throwDescriptiveError(productOp,
|
|
545
|
+
e_8 = _e.sent();
|
|
546
|
+
ProductImportStrategy.throwDescriptiveError(productOp, e_8.message);
|
|
502
547
|
return [3 /*break*/, 9];
|
|
503
|
-
case 9:
|
|
504
|
-
this.updateProgress(batchJobId);
|
|
505
|
-
_e.label = 10;
|
|
548
|
+
case 9: return [4 /*yield*/, this.updateProgress(batchJob.id)];
|
|
506
549
|
case 10:
|
|
550
|
+
_e.sent();
|
|
551
|
+
_e.label = 11;
|
|
552
|
+
case 11:
|
|
507
553
|
productOps_1_1 = productOps_1.next();
|
|
508
554
|
return [3 /*break*/, 3];
|
|
509
|
-
case
|
|
510
|
-
case 12:
|
|
511
|
-
e_7_1 = _e.sent();
|
|
512
|
-
e_7 = { error: e_7_1 };
|
|
513
|
-
return [3 /*break*/, 14];
|
|
555
|
+
case 12: return [3 /*break*/, 15];
|
|
514
556
|
case 13:
|
|
557
|
+
e_9_1 = _e.sent();
|
|
558
|
+
e_9 = { error: e_9_1 };
|
|
559
|
+
return [3 /*break*/, 15];
|
|
560
|
+
case 14:
|
|
515
561
|
try {
|
|
516
562
|
if (productOps_1_1 && !productOps_1_1.done && (_d = productOps_1.return)) _d.call(productOps_1);
|
|
517
563
|
}
|
|
518
|
-
finally { if (
|
|
564
|
+
finally { if (e_9) throw e_9.error; }
|
|
519
565
|
return [7 /*endfinally*/];
|
|
520
|
-
case
|
|
566
|
+
case 15: return [2 /*return*/];
|
|
521
567
|
}
|
|
522
568
|
});
|
|
523
569
|
});
|
|
@@ -525,29 +571,32 @@ var ProductImportStrategy = /** @class */ (function (_super) {
|
|
|
525
571
|
/**
|
|
526
572
|
* Method updates existing products in the DB using a CSV row data.
|
|
527
573
|
*
|
|
528
|
-
* @param
|
|
574
|
+
* @param batchJob - The current batch job being processed.
|
|
529
575
|
*/
|
|
530
|
-
ProductImportStrategy.prototype.updateProducts = function (
|
|
576
|
+
ProductImportStrategy.prototype.updateProducts = function (batchJob) {
|
|
531
577
|
var _a;
|
|
532
578
|
return __awaiter(this, void 0, void 0, function () {
|
|
533
|
-
var transactionManager, productOps, productServiceTx, isSalesChannelsFeatureOn, productOps_2, productOps_2_1, productOp, productData, _b, _c,
|
|
534
|
-
var
|
|
579
|
+
var transactionManager, productOps, productServiceTx, isSalesChannelsFeatureOn, productOps_2, productOps_2_1, productOp, productData, _b, _c, e_10, e_11_1;
|
|
580
|
+
var e_11, _d;
|
|
535
581
|
return __generator(this, function (_e) {
|
|
536
582
|
switch (_e.label) {
|
|
537
583
|
case 0:
|
|
584
|
+
if (!batchJob.result.operations[types_1.OperationType.ProductUpdate]) {
|
|
585
|
+
return [2 /*return*/];
|
|
586
|
+
}
|
|
538
587
|
transactionManager = (_a = this.transactionManager_) !== null && _a !== void 0 ? _a : this.manager_;
|
|
539
|
-
return [4 /*yield*/, this.downloadImportOpsFile(
|
|
588
|
+
return [4 /*yield*/, this.downloadImportOpsFile(batchJob.id, types_1.OperationType.ProductUpdate)];
|
|
540
589
|
case 1:
|
|
541
590
|
productOps = _e.sent();
|
|
542
591
|
productServiceTx = this.productService_.withTransaction(transactionManager);
|
|
543
592
|
isSalesChannelsFeatureOn = this.featureFlagRouter_.isFeatureEnabled(sales_channels_1.default.key);
|
|
544
593
|
_e.label = 2;
|
|
545
594
|
case 2:
|
|
546
|
-
_e.trys.push([2,
|
|
595
|
+
_e.trys.push([2, 13, 14, 15]);
|
|
547
596
|
productOps_2 = __values(productOps), productOps_2_1 = productOps_2.next();
|
|
548
597
|
_e.label = 3;
|
|
549
598
|
case 3:
|
|
550
|
-
if (!!productOps_2_1.done) return [3 /*break*/,
|
|
599
|
+
if (!!productOps_2_1.done) return [3 /*break*/, 12];
|
|
551
600
|
productOp = productOps_2_1.value;
|
|
552
601
|
productData = (0, utils_1.transformProductData)(productOp);
|
|
553
602
|
_e.label = 4;
|
|
@@ -565,27 +614,28 @@ var ProductImportStrategy = /** @class */ (function (_super) {
|
|
|
565
614
|
_e.sent();
|
|
566
615
|
return [3 /*break*/, 9];
|
|
567
616
|
case 8:
|
|
568
|
-
|
|
569
|
-
ProductImportStrategy.throwDescriptiveError(productOp,
|
|
617
|
+
e_10 = _e.sent();
|
|
618
|
+
ProductImportStrategy.throwDescriptiveError(productOp, e_10.message);
|
|
570
619
|
return [3 /*break*/, 9];
|
|
571
|
-
case 9:
|
|
572
|
-
this.updateProgress(batchJobId);
|
|
573
|
-
_e.label = 10;
|
|
620
|
+
case 9: return [4 /*yield*/, this.updateProgress(batchJob.id)];
|
|
574
621
|
case 10:
|
|
622
|
+
_e.sent();
|
|
623
|
+
_e.label = 11;
|
|
624
|
+
case 11:
|
|
575
625
|
productOps_2_1 = productOps_2.next();
|
|
576
626
|
return [3 /*break*/, 3];
|
|
577
|
-
case
|
|
578
|
-
case 12:
|
|
579
|
-
e_9_1 = _e.sent();
|
|
580
|
-
e_9 = { error: e_9_1 };
|
|
581
|
-
return [3 /*break*/, 14];
|
|
627
|
+
case 12: return [3 /*break*/, 15];
|
|
582
628
|
case 13:
|
|
629
|
+
e_11_1 = _e.sent();
|
|
630
|
+
e_11 = { error: e_11_1 };
|
|
631
|
+
return [3 /*break*/, 15];
|
|
632
|
+
case 14:
|
|
583
633
|
try {
|
|
584
634
|
if (productOps_2_1 && !productOps_2_1.done && (_d = productOps_2.return)) _d.call(productOps_2);
|
|
585
635
|
}
|
|
586
|
-
finally { if (
|
|
636
|
+
finally { if (e_11) throw e_11.error; }
|
|
587
637
|
return [7 /*endfinally*/];
|
|
588
|
-
case
|
|
638
|
+
case 15: return [2 /*return*/];
|
|
589
639
|
}
|
|
590
640
|
});
|
|
591
641
|
});
|
|
@@ -594,26 +644,29 @@ var ProductImportStrategy = /** @class */ (function (_super) {
|
|
|
594
644
|
* Method creates product variants from a CSV data.
|
|
595
645
|
* Method also handles processing of variant options.
|
|
596
646
|
*
|
|
597
|
-
* @param
|
|
647
|
+
* @param batchJob - The current batch job being processed.
|
|
598
648
|
*/
|
|
599
|
-
ProductImportStrategy.prototype.createVariants = function (
|
|
649
|
+
ProductImportStrategy.prototype.createVariants = function (batchJob) {
|
|
600
650
|
var _a, _b, _c;
|
|
601
651
|
return __awaiter(this, void 0, void 0, function () {
|
|
602
|
-
var transactionManager, variantOps, _loop_1, this_1, variantOps_1, variantOps_1_1, variantOp,
|
|
603
|
-
var
|
|
652
|
+
var transactionManager, variantOps, _loop_1, this_1, variantOps_1, variantOps_1_1, variantOp, e_12_1;
|
|
653
|
+
var e_12, _d;
|
|
604
654
|
return __generator(this, function (_e) {
|
|
605
655
|
switch (_e.label) {
|
|
606
656
|
case 0:
|
|
657
|
+
if (!batchJob.result.operations[types_1.OperationType.VariantCreate]) {
|
|
658
|
+
return [2 /*return*/];
|
|
659
|
+
}
|
|
607
660
|
transactionManager = (_a = this.transactionManager_) !== null && _a !== void 0 ? _a : this.manager_;
|
|
608
|
-
return [4 /*yield*/, this.downloadImportOpsFile(
|
|
661
|
+
return [4 /*yield*/, this.downloadImportOpsFile(batchJob.id, types_1.OperationType.VariantCreate)];
|
|
609
662
|
case 1:
|
|
610
663
|
variantOps = _e.sent();
|
|
611
664
|
_loop_1 = function (variantOp) {
|
|
612
|
-
var variant, product_1, optionIds_1,
|
|
665
|
+
var variant, product_1, optionIds_1, e_13;
|
|
613
666
|
return __generator(this, function (_f) {
|
|
614
667
|
switch (_f.label) {
|
|
615
668
|
case 0:
|
|
616
|
-
_f.trys.push([0,
|
|
669
|
+
_f.trys.push([0, 4, , 5]);
|
|
617
670
|
variant = (0, utils_1.transformVariantData)(variantOp);
|
|
618
671
|
return [4 /*yield*/, this_1.productService_
|
|
619
672
|
.withTransaction(transactionManager)
|
|
@@ -634,13 +687,15 @@ var ProductImportStrategy = /** @class */ (function (_super) {
|
|
|
634
687
|
.create(product_1, variant)];
|
|
635
688
|
case 2:
|
|
636
689
|
_f.sent();
|
|
637
|
-
this_1.updateProgress(
|
|
638
|
-
return [3 /*break*/, 4];
|
|
690
|
+
return [4 /*yield*/, this_1.updateProgress(batchJob.id)];
|
|
639
691
|
case 3:
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
692
|
+
_f.sent();
|
|
693
|
+
return [3 /*break*/, 5];
|
|
694
|
+
case 4:
|
|
695
|
+
e_13 = _f.sent();
|
|
696
|
+
ProductImportStrategy.throwDescriptiveError(variantOp, e_13.message);
|
|
697
|
+
return [3 /*break*/, 5];
|
|
698
|
+
case 5: return [2 /*return*/];
|
|
644
699
|
}
|
|
645
700
|
});
|
|
646
701
|
};
|
|
@@ -662,14 +717,14 @@ var ProductImportStrategy = /** @class */ (function (_super) {
|
|
|
662
717
|
return [3 /*break*/, 3];
|
|
663
718
|
case 6: return [3 /*break*/, 9];
|
|
664
719
|
case 7:
|
|
665
|
-
|
|
666
|
-
|
|
720
|
+
e_12_1 = _e.sent();
|
|
721
|
+
e_12 = { error: e_12_1 };
|
|
667
722
|
return [3 /*break*/, 9];
|
|
668
723
|
case 8:
|
|
669
724
|
try {
|
|
670
725
|
if (variantOps_1_1 && !variantOps_1_1.done && (_d = variantOps_1.return)) _d.call(variantOps_1);
|
|
671
726
|
}
|
|
672
|
-
finally { if (
|
|
727
|
+
finally { if (e_12) throw e_12.error; }
|
|
673
728
|
return [7 /*endfinally*/];
|
|
674
729
|
case 9: return [2 /*return*/];
|
|
675
730
|
}
|
|
@@ -679,28 +734,31 @@ var ProductImportStrategy = /** @class */ (function (_super) {
|
|
|
679
734
|
/**
|
|
680
735
|
* Method updates product variants from a CSV data.
|
|
681
736
|
*
|
|
682
|
-
* @param
|
|
737
|
+
* @param batchJob - The current batch job being processed.
|
|
683
738
|
*/
|
|
684
|
-
ProductImportStrategy.prototype.updateVariants = function (
|
|
739
|
+
ProductImportStrategy.prototype.updateVariants = function (batchJob) {
|
|
685
740
|
var _a;
|
|
686
741
|
return __awaiter(this, void 0, void 0, function () {
|
|
687
|
-
var transactionManager, variantOps, productServiceTx, variantOps_2, variantOps_2_1, variantOp, product,
|
|
688
|
-
var
|
|
742
|
+
var transactionManager, variantOps, productServiceTx, variantOps_2, variantOps_2_1, variantOp, product, e_14, e_15_1;
|
|
743
|
+
var e_15, _b;
|
|
689
744
|
return __generator(this, function (_c) {
|
|
690
745
|
switch (_c.label) {
|
|
691
746
|
case 0:
|
|
747
|
+
if (!batchJob.result.operations[types_1.OperationType.VariantUpdate]) {
|
|
748
|
+
return [2 /*return*/];
|
|
749
|
+
}
|
|
692
750
|
transactionManager = (_a = this.transactionManager_) !== null && _a !== void 0 ? _a : this.manager_;
|
|
693
|
-
return [4 /*yield*/, this.downloadImportOpsFile(
|
|
751
|
+
return [4 /*yield*/, this.downloadImportOpsFile(batchJob.id, types_1.OperationType.VariantUpdate)];
|
|
694
752
|
case 1:
|
|
695
753
|
variantOps = _c.sent();
|
|
696
754
|
productServiceTx = this.productService_.withTransaction(transactionManager);
|
|
697
755
|
_c.label = 2;
|
|
698
756
|
case 2:
|
|
699
|
-
_c.trys.push([2,
|
|
757
|
+
_c.trys.push([2, 13, 14, 15]);
|
|
700
758
|
variantOps_2 = __values(variantOps), variantOps_2_1 = variantOps_2.next();
|
|
701
759
|
_c.label = 3;
|
|
702
760
|
case 3:
|
|
703
|
-
if (!!variantOps_2_1.done) return [3 /*break*/,
|
|
761
|
+
if (!!variantOps_2_1.done) return [3 /*break*/, 12];
|
|
704
762
|
variantOp = variantOps_2_1.value;
|
|
705
763
|
_c.label = 4;
|
|
706
764
|
case 4:
|
|
@@ -718,27 +776,28 @@ var ProductImportStrategy = /** @class */ (function (_super) {
|
|
|
718
776
|
_c.sent();
|
|
719
777
|
return [3 /*break*/, 9];
|
|
720
778
|
case 8:
|
|
721
|
-
|
|
722
|
-
ProductImportStrategy.throwDescriptiveError(variantOp,
|
|
779
|
+
e_14 = _c.sent();
|
|
780
|
+
ProductImportStrategy.throwDescriptiveError(variantOp, e_14.message);
|
|
723
781
|
return [3 /*break*/, 9];
|
|
724
|
-
case 9:
|
|
725
|
-
this.updateProgress(batchJobId);
|
|
726
|
-
_c.label = 10;
|
|
782
|
+
case 9: return [4 /*yield*/, this.updateProgress(batchJob.id)];
|
|
727
783
|
case 10:
|
|
784
|
+
_c.sent();
|
|
785
|
+
_c.label = 11;
|
|
786
|
+
case 11:
|
|
728
787
|
variantOps_2_1 = variantOps_2.next();
|
|
729
788
|
return [3 /*break*/, 3];
|
|
730
|
-
case
|
|
731
|
-
case 12:
|
|
732
|
-
e_13_1 = _c.sent();
|
|
733
|
-
e_13 = { error: e_13_1 };
|
|
734
|
-
return [3 /*break*/, 14];
|
|
789
|
+
case 12: return [3 /*break*/, 15];
|
|
735
790
|
case 13:
|
|
791
|
+
e_15_1 = _c.sent();
|
|
792
|
+
e_15 = { error: e_15_1 };
|
|
793
|
+
return [3 /*break*/, 15];
|
|
794
|
+
case 14:
|
|
736
795
|
try {
|
|
737
796
|
if (variantOps_2_1 && !variantOps_2_1.done && (_b = variantOps_2.return)) _b.call(variantOps_2);
|
|
738
797
|
}
|
|
739
|
-
finally { if (
|
|
798
|
+
finally { if (e_15) throw e_15.error; }
|
|
740
799
|
return [7 /*endfinally*/];
|
|
741
|
-
case
|
|
800
|
+
case 15: return [2 /*return*/];
|
|
742
801
|
}
|
|
743
802
|
});
|
|
744
803
|
});
|
|
@@ -750,39 +809,42 @@ var ProductImportStrategy = /** @class */ (function (_super) {
|
|
|
750
809
|
* @param productId - id of variant's product
|
|
751
810
|
*/
|
|
752
811
|
ProductImportStrategy.prototype.prepareVariantOptions = function (variantOp, productId) {
|
|
812
|
+
var _a;
|
|
753
813
|
return __awaiter(this, void 0, void 0, function () {
|
|
754
|
-
var productOptions, productOptions_1, productOptions_1_1, o, option,
|
|
755
|
-
var
|
|
756
|
-
return __generator(this, function (
|
|
757
|
-
switch (
|
|
814
|
+
var transactionManager, productOptions, productServiceTx, productOptions_1, productOptions_1_1, o, option, e_16_1;
|
|
815
|
+
var e_16, _b;
|
|
816
|
+
return __generator(this, function (_c) {
|
|
817
|
+
switch (_c.label) {
|
|
758
818
|
case 0:
|
|
819
|
+
transactionManager = (_a = this.transactionManager_) !== null && _a !== void 0 ? _a : this.manager_;
|
|
759
820
|
productOptions = variantOp["variant.options"] || [];
|
|
760
|
-
|
|
821
|
+
productServiceTx = this.productService_.withTransaction(transactionManager);
|
|
822
|
+
_c.label = 1;
|
|
761
823
|
case 1:
|
|
762
|
-
|
|
824
|
+
_c.trys.push([1, 6, 7, 8]);
|
|
763
825
|
productOptions_1 = __values(productOptions), productOptions_1_1 = productOptions_1.next();
|
|
764
|
-
|
|
826
|
+
_c.label = 2;
|
|
765
827
|
case 2:
|
|
766
828
|
if (!!productOptions_1_1.done) return [3 /*break*/, 5];
|
|
767
829
|
o = productOptions_1_1.value;
|
|
768
|
-
return [4 /*yield*/,
|
|
830
|
+
return [4 /*yield*/, productServiceTx.retrieveOptionByTitle(o._title, productId)];
|
|
769
831
|
case 3:
|
|
770
|
-
option =
|
|
832
|
+
option = _c.sent();
|
|
771
833
|
o.option_id = option === null || option === void 0 ? void 0 : option.id;
|
|
772
|
-
|
|
834
|
+
_c.label = 4;
|
|
773
835
|
case 4:
|
|
774
836
|
productOptions_1_1 = productOptions_1.next();
|
|
775
837
|
return [3 /*break*/, 2];
|
|
776
838
|
case 5: return [3 /*break*/, 8];
|
|
777
839
|
case 6:
|
|
778
|
-
|
|
779
|
-
|
|
840
|
+
e_16_1 = _c.sent();
|
|
841
|
+
e_16 = { error: e_16_1 };
|
|
780
842
|
return [3 /*break*/, 8];
|
|
781
843
|
case 7:
|
|
782
844
|
try {
|
|
783
|
-
if (productOptions_1_1 && !productOptions_1_1.done && (
|
|
845
|
+
if (productOptions_1_1 && !productOptions_1_1.done && (_b = productOptions_1.return)) _b.call(productOptions_1);
|
|
784
846
|
}
|
|
785
|
-
finally { if (
|
|
847
|
+
finally { if (e_16) throw e_16.error; }
|
|
786
848
|
return [7 /*endfinally*/];
|
|
787
849
|
case 8: return [2 /*return*/];
|
|
788
850
|
}
|
|
@@ -816,7 +878,7 @@ var ProductImportStrategy = /** @class */ (function (_super) {
|
|
|
816
878
|
return [4 /*yield*/, this.fileService_
|
|
817
879
|
.withTransaction(transactionManager)
|
|
818
880
|
.getUploadStreamDescriptor({
|
|
819
|
-
name:
|
|
881
|
+
name: ProductImportStrategy.buildFilename(batchJobId, op),
|
|
820
882
|
ext: "json",
|
|
821
883
|
})];
|
|
822
884
|
case 2:
|
|
@@ -854,7 +916,9 @@ var ProductImportStrategy = /** @class */ (function (_super) {
|
|
|
854
916
|
return [4 /*yield*/, this.fileService_
|
|
855
917
|
.withTransaction(transactionManager)
|
|
856
918
|
.getDownloadStream({
|
|
857
|
-
fileKey:
|
|
919
|
+
fileKey: ProductImportStrategy.buildFilename(batchJobId, op, {
|
|
920
|
+
appendExt: ".json",
|
|
921
|
+
}),
|
|
858
922
|
})];
|
|
859
923
|
case 1:
|
|
860
924
|
readableStream = _b.sent();
|
|
@@ -883,31 +947,51 @@ var ProductImportStrategy = /** @class */ (function (_super) {
|
|
|
883
947
|
ProductImportStrategy.prototype.deleteOpsFiles = function (batchJobId) {
|
|
884
948
|
var _a;
|
|
885
949
|
return __awaiter(this, void 0, void 0, function () {
|
|
886
|
-
var transactionManager, _b, _c, op;
|
|
887
|
-
var
|
|
950
|
+
var transactionManager, fileServiceTx, _b, _c, op, e_17, e_18_1;
|
|
951
|
+
var e_18, _d;
|
|
888
952
|
return __generator(this, function (_e) {
|
|
889
|
-
|
|
890
|
-
|
|
891
|
-
|
|
953
|
+
switch (_e.label) {
|
|
954
|
+
case 0:
|
|
955
|
+
transactionManager = (_a = this.transactionManager_) !== null && _a !== void 0 ? _a : this.manager_;
|
|
956
|
+
fileServiceTx = this.fileService_.withTransaction(transactionManager);
|
|
957
|
+
_e.label = 1;
|
|
958
|
+
case 1:
|
|
959
|
+
_e.trys.push([1, 8, 9, 10]);
|
|
960
|
+
_b = __values(Object.values(types_1.OperationType)), _c = _b.next();
|
|
961
|
+
_e.label = 2;
|
|
962
|
+
case 2:
|
|
963
|
+
if (!!_c.done) return [3 /*break*/, 7];
|
|
892
964
|
op = _c.value;
|
|
965
|
+
_e.label = 3;
|
|
966
|
+
case 3:
|
|
967
|
+
_e.trys.push([3, 5, , 6]);
|
|
968
|
+
return [4 /*yield*/, fileServiceTx.delete({
|
|
969
|
+
fileKey: ProductImportStrategy.buildFilename(batchJobId, op, {
|
|
970
|
+
appendExt: ".json",
|
|
971
|
+
}),
|
|
972
|
+
})];
|
|
973
|
+
case 4:
|
|
974
|
+
_e.sent();
|
|
975
|
+
return [3 /*break*/, 6];
|
|
976
|
+
case 5:
|
|
977
|
+
e_17 = _e.sent();
|
|
978
|
+
return [3 /*break*/, 6];
|
|
979
|
+
case 6:
|
|
980
|
+
_c = _b.next();
|
|
981
|
+
return [3 /*break*/, 2];
|
|
982
|
+
case 7: return [3 /*break*/, 10];
|
|
983
|
+
case 8:
|
|
984
|
+
e_18_1 = _e.sent();
|
|
985
|
+
e_18 = { error: e_18_1 };
|
|
986
|
+
return [3 /*break*/, 10];
|
|
987
|
+
case 9:
|
|
893
988
|
try {
|
|
894
|
-
|
|
895
|
-
fileKey: "imports/products/ops/-".concat(batchJobId, "-").concat(op),
|
|
896
|
-
});
|
|
897
|
-
}
|
|
898
|
-
catch (e) {
|
|
899
|
-
// noop
|
|
989
|
+
if (_c && !_c.done && (_d = _b.return)) _d.call(_b);
|
|
900
990
|
}
|
|
901
|
-
|
|
902
|
-
|
|
903
|
-
|
|
904
|
-
finally {
|
|
905
|
-
try {
|
|
906
|
-
if (_c && !_c.done && (_d = _b.return)) _d.call(_b);
|
|
907
|
-
}
|
|
908
|
-
finally { if (e_15) throw e_15.error; }
|
|
991
|
+
finally { if (e_18) throw e_18.error; }
|
|
992
|
+
return [7 /*endfinally*/];
|
|
993
|
+
case 10: return [2 /*return*/];
|
|
909
994
|
}
|
|
910
|
-
return [2 /*return*/];
|
|
911
995
|
});
|
|
912
996
|
});
|
|
913
997
|
};
|
|
@@ -915,29 +999,33 @@ var ProductImportStrategy = /** @class */ (function (_super) {
|
|
|
915
999
|
* Update count of processed data in the batch job `result` column
|
|
916
1000
|
* and cleanup temp JSON files.
|
|
917
1001
|
*
|
|
918
|
-
* @param
|
|
1002
|
+
* @param batchJob - The current batch job being processed.
|
|
919
1003
|
*/
|
|
920
|
-
ProductImportStrategy.prototype.finalize = function (
|
|
1004
|
+
ProductImportStrategy.prototype.finalize = function (batchJob) {
|
|
1005
|
+
var _a;
|
|
921
1006
|
return __awaiter(this, void 0, void 0, function () {
|
|
922
|
-
var
|
|
923
|
-
return __generator(this, function (
|
|
924
|
-
switch (
|
|
925
|
-
case 0:
|
|
926
|
-
|
|
927
|
-
|
|
928
|
-
|
|
929
|
-
|
|
1007
|
+
var transactionManager, fileKey;
|
|
1008
|
+
return __generator(this, function (_b) {
|
|
1009
|
+
switch (_b.label) {
|
|
1010
|
+
case 0:
|
|
1011
|
+
transactionManager = (_a = this.transactionManager_) !== null && _a !== void 0 ? _a : this.manager_;
|
|
1012
|
+
delete this.processedCounter[batchJob.id];
|
|
1013
|
+
return [4 /*yield*/, this.batchJobService_
|
|
1014
|
+
.withTransaction(transactionManager)
|
|
1015
|
+
.update(batchJob.id, {
|
|
930
1016
|
result: { advancement_count: batchJob.result.count },
|
|
931
1017
|
})];
|
|
932
|
-
case
|
|
933
|
-
|
|
1018
|
+
case 1:
|
|
1019
|
+
_b.sent();
|
|
934
1020
|
fileKey = batchJob.context.fileKey;
|
|
935
|
-
return [4 /*yield*/, this.fileService_
|
|
1021
|
+
return [4 /*yield*/, this.fileService_
|
|
1022
|
+
.withTransaction(transactionManager)
|
|
1023
|
+
.delete({ fileKey: fileKey })];
|
|
1024
|
+
case 2:
|
|
1025
|
+
_b.sent();
|
|
1026
|
+
return [4 /*yield*/, this.deleteOpsFiles(batchJob.id)];
|
|
936
1027
|
case 3:
|
|
937
|
-
|
|
938
|
-
return [4 /*yield*/, this.deleteOpsFiles(batchJobId)];
|
|
939
|
-
case 4:
|
|
940
|
-
_a.sent();
|
|
1028
|
+
_b.sent();
|
|
941
1029
|
return [2 /*return*/];
|
|
942
1030
|
}
|
|
943
1031
|
});
|
|
@@ -951,28 +1039,36 @@ var ProductImportStrategy = /** @class */ (function (_super) {
|
|
|
951
1039
|
* @param batchJobId - An id of the current batch job being processed.
|
|
952
1040
|
*/
|
|
953
1041
|
ProductImportStrategy.prototype.updateProgress = function (batchJobId) {
|
|
1042
|
+
var _a;
|
|
954
1043
|
return __awaiter(this, void 0, void 0, function () {
|
|
955
1044
|
var newCount;
|
|
956
|
-
return __generator(this, function (
|
|
957
|
-
switch (
|
|
1045
|
+
return __generator(this, function (_b) {
|
|
1046
|
+
switch (_b.label) {
|
|
958
1047
|
case 0:
|
|
959
1048
|
newCount = (this.processedCounter[batchJobId] || 0) + 1;
|
|
960
1049
|
this.processedCounter[batchJobId] = newCount;
|
|
961
1050
|
if (newCount % BATCH_SIZE !== 0) {
|
|
962
1051
|
return [2 /*return*/];
|
|
963
1052
|
}
|
|
964
|
-
return [4 /*yield*/, this.batchJobService_
|
|
1053
|
+
return [4 /*yield*/, this.batchJobService_
|
|
1054
|
+
.withTransaction((_a = this.transactionManager_) !== null && _a !== void 0 ? _a : this.manager_)
|
|
1055
|
+
.update(batchJobId, {
|
|
965
1056
|
result: {
|
|
966
1057
|
advancement_count: newCount,
|
|
967
1058
|
},
|
|
968
1059
|
})];
|
|
969
1060
|
case 1:
|
|
970
|
-
|
|
1061
|
+
_b.sent();
|
|
971
1062
|
return [2 /*return*/];
|
|
972
1063
|
}
|
|
973
1064
|
});
|
|
974
1065
|
});
|
|
975
1066
|
};
|
|
1067
|
+
ProductImportStrategy.buildFilename = function (batchJobId, operation, _a) {
|
|
1068
|
+
var _b = _a === void 0 ? { appendExt: undefined } : _a, appendExt = _b.appendExt;
|
|
1069
|
+
var filename = "imports/products/ops/".concat(batchJobId, "-").concat(operation);
|
|
1070
|
+
return appendExt ? filename + appendExt : filename;
|
|
1071
|
+
};
|
|
976
1072
|
ProductImportStrategy.identifier = "product-import-strategy";
|
|
977
1073
|
ProductImportStrategy.batchType = "product-import";
|
|
978
1074
|
return ProductImportStrategy;
|
|
@@ -1004,7 +1100,7 @@ var CSVSchema = {
|
|
|
1004
1100
|
{ name: "Product Height", mapTo: "product.height" },
|
|
1005
1101
|
{ name: "Product HS Code", mapTo: "product.hs_code" },
|
|
1006
1102
|
{ name: "Product Origin Country", mapTo: "product.origin_country" },
|
|
1007
|
-
{ name: "Product
|
|
1103
|
+
{ name: "Product MID Code", mapTo: "product.mid_code" },
|
|
1008
1104
|
{ name: "Product Material", mapTo: "product.material" },
|
|
1009
1105
|
// PRODUCT-COLLECTION
|
|
1010
1106
|
{ name: "Product Collection Title", mapTo: "product.collection.title" },
|
|
@@ -1042,7 +1138,7 @@ var CSVSchema = {
|
|
|
1042
1138
|
{ name: "Variant Height", mapTo: "variant.height" },
|
|
1043
1139
|
{ name: "Variant HS Code", mapTo: "variant.hs_code" },
|
|
1044
1140
|
{ name: "Variant Origin Country", mapTo: "variant.origin_country" },
|
|
1045
|
-
{ name: "Variant
|
|
1141
|
+
{ name: "Variant MID Code", mapTo: "variant.mid_code" },
|
|
1046
1142
|
{ name: "Variant Material", mapTo: "variant.material" },
|
|
1047
1143
|
// ==== DYNAMIC FIELDS ====
|
|
1048
1144
|
// PRODUCT_OPTIONS
|