@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.
Files changed (173) hide show
  1. package/.turbo/turbo-build.log +1 -1
  2. package/CHANGELOG.md +12 -0
  3. package/dist/api/index.d.ts +1 -0
  4. package/dist/api/index.js +1 -0
  5. package/dist/api/index.js.map +1 -1
  6. package/dist/api/routes/admin/batch/create-batch-job.js +10 -7
  7. package/dist/api/routes/admin/batch/create-batch-job.js.map +1 -1
  8. package/dist/api/routes/admin/index.js +6 -4
  9. package/dist/api/routes/admin/index.js.map +1 -1
  10. package/dist/api/routes/admin/price-lists/create-price-list.d.ts +4 -0
  11. package/dist/api/routes/admin/price-lists/create-price-list.js +16 -1
  12. package/dist/api/routes/admin/price-lists/create-price-list.js.map +1 -1
  13. package/dist/api/routes/admin/price-lists/index.d.ts +2 -1
  14. package/dist/api/routes/admin/price-lists/index.js +8 -1
  15. package/dist/api/routes/admin/price-lists/index.js.map +1 -1
  16. package/dist/api/routes/admin/price-lists/update-price-list.d.ts +4 -0
  17. package/dist/api/routes/admin/price-lists/update-price-list.js +16 -1
  18. package/dist/api/routes/admin/price-lists/update-price-list.js.map +1 -1
  19. package/dist/api/routes/admin/products/update-variant.js +1 -0
  20. package/dist/api/routes/admin/products/update-variant.js.map +1 -1
  21. package/dist/api/routes/admin/regions/create-region.d.ts +4 -0
  22. package/dist/api/routes/admin/regions/create-region.js +16 -1
  23. package/dist/api/routes/admin/regions/create-region.js.map +1 -1
  24. package/dist/api/routes/admin/regions/index.d.ts +2 -1
  25. package/dist/api/routes/admin/regions/index.js +5 -1
  26. package/dist/api/routes/admin/regions/index.js.map +1 -1
  27. package/dist/api/routes/admin/regions/update-region.d.ts +4 -0
  28. package/dist/api/routes/admin/regions/update-region.js +16 -1
  29. package/dist/api/routes/admin/regions/update-region.js.map +1 -1
  30. package/dist/api/routes/admin/shipping-options/create-shipping-option.d.ts +4 -0
  31. package/dist/api/routes/admin/shipping-options/create-shipping-option.js +15 -0
  32. package/dist/api/routes/admin/shipping-options/create-shipping-option.js.map +1 -1
  33. package/dist/api/routes/admin/shipping-options/index.d.ts +2 -1
  34. package/dist/api/routes/admin/shipping-options/index.js +5 -1
  35. package/dist/api/routes/admin/shipping-options/index.js.map +1 -1
  36. package/dist/api/routes/admin/shipping-options/update-shipping-option.d.ts +4 -0
  37. package/dist/api/routes/admin/shipping-options/update-shipping-option.js +15 -0
  38. package/dist/api/routes/admin/shipping-options/update-shipping-option.js.map +1 -1
  39. package/dist/helpers/test-request.js +27 -4
  40. package/dist/helpers/test-request.js.map +1 -1
  41. package/dist/interfaces/price-selection-strategy.d.ts +4 -0
  42. package/dist/interfaces/price-selection-strategy.js.map +1 -1
  43. package/dist/loaders/feature-flags/index.d.ts +1 -0
  44. package/dist/loaders/feature-flags/index.js +18 -3
  45. package/dist/loaders/feature-flags/index.js.map +1 -1
  46. package/dist/loaders/feature-flags/order-editing.d.ts +3 -0
  47. package/dist/loaders/feature-flags/order-editing.js +10 -0
  48. package/dist/loaders/feature-flags/order-editing.js.map +1 -0
  49. package/dist/migrations/1663059812399-order_editing.d.ts +7 -0
  50. package/dist/migrations/1663059812399-order_editing.js +112 -0
  51. package/dist/migrations/1663059812399-order_editing.js.map +1 -0
  52. package/dist/models/currency.d.ts +4 -0
  53. package/dist/models/currency.js +12 -0
  54. package/dist/models/currency.js.map +1 -1
  55. package/dist/models/custom-shipping-option.d.ts +3 -0
  56. package/dist/models/custom-shipping-option.js +3 -0
  57. package/dist/models/custom-shipping-option.js.map +1 -1
  58. package/dist/models/line-item.d.ts +4 -0
  59. package/dist/models/line-item.js +12 -0
  60. package/dist/models/line-item.js.map +1 -1
  61. package/dist/models/money-amount.d.ts +2 -2
  62. package/dist/models/money-amount.js.map +1 -1
  63. package/dist/models/order-edit.d.ts +111 -0
  64. package/dist/models/order-edit.js +204 -0
  65. package/dist/models/order-edit.js.map +1 -0
  66. package/dist/models/order-item-change.d.ts +60 -0
  67. package/dist/models/order-item-change.js +143 -0
  68. package/dist/models/order-item-change.js.map +1 -0
  69. package/dist/models/order.d.ts +7 -0
  70. package/dist/models/order.js +16 -0
  71. package/dist/models/order.js.map +1 -1
  72. package/dist/models/price-list.d.ts +5 -0
  73. package/dist/models/price-list.js +13 -0
  74. package/dist/models/price-list.js.map +1 -1
  75. package/dist/models/region.d.ts +4 -0
  76. package/dist/models/region.js +12 -0
  77. package/dist/models/region.js.map +1 -1
  78. package/dist/models/shipping-method.d.ts +4 -0
  79. package/dist/models/shipping-method.js +12 -0
  80. package/dist/models/shipping-method.js.map +1 -1
  81. package/dist/models/shipping-option.d.ts +4 -0
  82. package/dist/models/shipping-option.js +12 -0
  83. package/dist/models/shipping-option.js.map +1 -1
  84. package/dist/repositories/currency.d.ts +1 -1
  85. package/dist/repositories/currency.js +2 -2
  86. package/dist/repositories/currency.js.map +1 -1
  87. package/dist/repositories/money-amount.d.ts +1 -1
  88. package/dist/repositories/money-amount.js +8 -4
  89. package/dist/repositories/money-amount.js.map +1 -1
  90. package/dist/repositories/order-edit.d.ts +4 -0
  91. package/dist/repositories/order-edit.js +38 -0
  92. package/dist/repositories/order-edit.js.map +1 -0
  93. package/dist/repositories/order-item-change.d.ts +4 -0
  94. package/dist/repositories/order-item-change.js +38 -0
  95. package/dist/repositories/order-item-change.js.map +1 -0
  96. package/dist/services/batch-job.js +4 -2
  97. package/dist/services/batch-job.js.map +1 -1
  98. package/dist/services/cart.js +83 -74
  99. package/dist/services/cart.js.map +1 -1
  100. package/dist/services/claim.js +45 -43
  101. package/dist/services/claim.js.map +1 -1
  102. package/dist/services/discount.d.ts +4 -1
  103. package/dist/services/discount.js +39 -20
  104. package/dist/services/discount.js.map +1 -1
  105. package/dist/services/index.d.ts +1 -1
  106. package/dist/services/index.js +3 -3
  107. package/dist/services/index.js.map +1 -1
  108. package/dist/services/line-item-adjustment.d.ts +1 -4
  109. package/dist/services/line-item-adjustment.js +2 -1
  110. package/dist/services/line-item-adjustment.js.map +1 -1
  111. package/dist/services/line-item.d.ts +12 -7
  112. package/dist/services/line-item.js +22 -10
  113. package/dist/services/line-item.js.map +1 -1
  114. package/dist/services/notification.js +3 -2
  115. package/dist/services/notification.js.map +1 -1
  116. package/dist/services/order.js +214 -115
  117. package/dist/services/order.js.map +1 -1
  118. package/dist/services/price-list.d.ts +7 -4
  119. package/dist/services/price-list.js +25 -11
  120. package/dist/services/price-list.js.map +1 -1
  121. package/dist/services/pricing.d.ts +7 -4
  122. package/dist/services/pricing.js +39 -12
  123. package/dist/services/pricing.js.map +1 -1
  124. package/dist/services/product-variant.js +1 -1
  125. package/dist/services/product-variant.js.map +1 -1
  126. package/dist/services/region.d.ts +10 -7
  127. package/dist/services/region.js +22 -6
  128. package/dist/services/region.js.map +1 -1
  129. package/dist/services/return.js +23 -19
  130. package/dist/services/return.js.map +1 -1
  131. package/dist/services/shipping-option.d.ts +12 -8
  132. package/dist/services/shipping-option.js +23 -2
  133. package/dist/services/shipping-option.js.map +1 -1
  134. package/dist/services/store.d.ts +1 -2
  135. package/dist/services/store.js.map +1 -1
  136. package/dist/services/totals.d.ts +18 -20
  137. package/dist/services/totals.js +614 -358
  138. package/dist/services/totals.js.map +1 -1
  139. package/dist/strategies/__fixtures__/product-export-data.js +6 -2
  140. package/dist/strategies/__fixtures__/product-export-data.js.map +1 -1
  141. package/dist/strategies/batch-jobs/product/export.d.ts +6 -0
  142. package/dist/strategies/batch-jobs/product/export.js +11 -2
  143. package/dist/strategies/batch-jobs/product/export.js.map +1 -1
  144. package/dist/strategies/batch-jobs/product/import.d.ts +6 -5
  145. package/dist/strategies/batch-jobs/product/import.js +293 -197
  146. package/dist/strategies/batch-jobs/product/import.js.map +1 -1
  147. package/dist/strategies/batch-jobs/product/index.js +2 -2
  148. package/dist/strategies/batch-jobs/product/types.d.ts +8 -0
  149. package/dist/strategies/batch-jobs/product/types.js.map +1 -1
  150. package/dist/strategies/batch-jobs/product/utils.d.ts +1 -1
  151. package/dist/strategies/batch-jobs/product/utils.js +10 -1
  152. package/dist/strategies/batch-jobs/product/utils.js.map +1 -1
  153. package/dist/strategies/price-selection.d.ts +6 -2
  154. package/dist/strategies/price-selection.js +124 -10
  155. package/dist/strategies/price-selection.js.map +1 -1
  156. package/dist/strategies/tax-calculation.d.ts +7 -5
  157. package/dist/strategies/tax-calculation.js +47 -17
  158. package/dist/strategies/tax-calculation.js.map +1 -1
  159. package/dist/subscribers/batch-job.d.ts +4 -1
  160. package/dist/subscribers/batch-job.js +71 -44
  161. package/dist/subscribers/batch-job.js.map +1 -1
  162. package/dist/types/price-list.d.ts +2 -1
  163. package/dist/types/pricing.d.ts +5 -2
  164. package/dist/types/region.d.ts +2 -0
  165. package/dist/types/shipping-options.d.ts +2 -0
  166. package/dist/utils/feature-flag-decorators.js +4 -16
  167. package/dist/utils/feature-flag-decorators.js.map +1 -1
  168. package/dist/utils/flag-router.d.ts +1 -1
  169. package/dist/utils/flag-router.js.map +1 -1
  170. package/dist/utils/index.d.ts +2 -0
  171. package/dist/utils/index.js +2 -0
  172. package/dist/utils/index.js.map +1 -1
  173. 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, _a, _b;
160
- return __generator(this, function (_c) {
161
- switch (_c.label) {
162
- case 0: return [4 /*yield*/, this.shippingProfileService_.retrieveDefault()];
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 = _c.sent();
169
+ shippingProfile = _d.sent();
165
170
  seenProducts = {};
166
171
  productsCreate = [];
167
172
  productsUpdate = [];
168
173
  variantsCreate = [];
169
174
  variantsUpdate = [];
170
- _c.label = 2;
175
+ _d.label = 2;
171
176
  case 2:
172
- _c.trys.push([2, 8, 9, 10]);
177
+ _d.trys.push([2, 8, 9, 10]);
173
178
  csvData_1 = __values(csvData), csvData_1_1 = csvData_1.next();
174
- _c.label = 3;
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
- _c.sent();
182
- _c.label = 5;
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
- _c.label = 6;
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 = _c.sent();
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 && (_a = csvData_1.return)) _a.call(csvData_1);
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*/, (_b = {},
217
- _b[types_1.OperationType.ProductCreate] = productsCreate,
218
- _b[types_1.OperationType.VariantCreate] = variantsCreate,
219
- _b[types_1.OperationType.ProductUpdate] = productsUpdate,
220
- _b[types_1.OperationType.VariantUpdate] = variantsUpdate,
221
- _b)];
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, builtData, ops;
305
- return __generator(this, function (_a) {
306
- switch (_a.label) {
307
- case 0: return [4 /*yield*/, this.batchJobService_.retrieve(batchJobId)];
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 = _a.sent();
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 = _a.sent();
316
- return [4 /*yield*/, this.csvParser_.parse(csvStream)];
325
+ csvStream = _b.sent();
326
+ _b.label = 3;
317
327
  case 3:
318
- parsedData = _a.sent();
319
- return [4 /*yield*/, this.csvParser_.buildData(parsedData)];
328
+ _b.trys.push([3, 6, , 7]);
329
+ return [4 /*yield*/, this.csvParser_.parse(csvStream)];
320
330
  case 4:
321
- builtData = _a.sent();
322
- return [4 /*yield*/, this.getImportInstructions(builtData)];
331
+ parsedData = _b.sent();
332
+ return [4 /*yield*/, this.csvParser_.buildData(parsedData)];
323
333
  case 5:
324
- ops = _a.sent();
325
- return [4 /*yield*/, this.uploadImportOpsFile(batchJobId, ops)];
334
+ builtData = _b.sent();
335
+ return [3 /*break*/, 7];
326
336
  case 6:
327
- _a.sent();
328
- return [4 /*yield*/, this.batchJobService_.update(batchJobId, {
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: Object.keys(ops).reduce(function (acc, k) { return acc + ops[k].length; }, 0),
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 7:
343
- _a.sent();
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.createProducts(batchJobId)];
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.updateProducts(batchJobId)];
394
+ batchJob = (_a.sent());
395
+ return [4 /*yield*/, this.createProducts(batchJob)];
367
396
  case 2:
368
397
  _a.sent();
369
- return [4 /*yield*/, this.createVariants(batchJobId)];
398
+ return [4 /*yield*/, this.updateProducts(batchJob)];
370
399
  case 3:
371
400
  _a.sent();
372
- return [4 /*yield*/, this.updateVariants(batchJobId)];
401
+ return [4 /*yield*/, this.createVariants(batchJob)];
373
402
  case 4:
374
403
  _a.sent();
375
- this.finalize(batchJobId);
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, e_4, e_5_1;
398
- var e_5, _b;
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, 11, 12, 13]);
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*/, 10];
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
- e_4 = _c.sent();
459
+ e_5 = _c.sent();
426
460
  return [3 /*break*/, 6];
427
461
  case 6:
428
- if (!!channel) return [3 /*break*/, 8];
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
- salesChannels.push(channel);
437
- _c.label = 9;
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 10: return [3 /*break*/, 13];
442
- case 11:
443
- e_5_1 = _c.sent();
444
- e_5 = { error: e_5_1 };
445
- return [3 /*break*/, 13];
446
- case 12:
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 (e_5) throw e_5.error; }
492
+ finally { if (e_7) throw e_7.error; }
451
493
  return [7 /*endfinally*/];
452
- case 13: return [2 /*return*/, salesChannels];
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 batchJobId - An id of the current batch job being processed.
502
+ * @param batchJob - The current batch job being processed.
461
503
  */
462
- ProductImportStrategy.prototype.createProducts = function (batchJobId) {
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, e_6, e_7_1;
466
- var e_7, _d;
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(batchJobId, types_1.OperationType.ProductCreate)];
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, 12, 13, 14]);
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*/, 11];
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
- e_6 = _e.sent();
501
- ProductImportStrategy.throwDescriptiveError(productOp, e_6.message);
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 11: return [3 /*break*/, 14];
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 (e_7) throw e_7.error; }
564
+ finally { if (e_9) throw e_9.error; }
519
565
  return [7 /*endfinally*/];
520
- case 14: return [2 /*return*/];
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 batchJobId - An id of the current batch job being processed.
574
+ * @param batchJob - The current batch job being processed.
529
575
  */
530
- ProductImportStrategy.prototype.updateProducts = function (batchJobId) {
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, e_8, e_9_1;
534
- var e_9, _d;
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(batchJobId, types_1.OperationType.ProductUpdate)];
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, 12, 13, 14]);
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*/, 11];
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
- e_8 = _e.sent();
569
- ProductImportStrategy.throwDescriptiveError(productOp, e_8.message);
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 11: return [3 /*break*/, 14];
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 (e_9) throw e_9.error; }
636
+ finally { if (e_11) throw e_11.error; }
587
637
  return [7 /*endfinally*/];
588
- case 14: return [2 /*return*/];
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 batchJobId - An id of the current batch job being processed.
647
+ * @param batchJob - The current batch job being processed.
598
648
  */
599
- ProductImportStrategy.prototype.createVariants = function (batchJobId) {
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, e_10_1;
603
- var e_10, _d;
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(batchJobId, types_1.OperationType.VariantCreate)];
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, e_11;
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, 3, , 4]);
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(batchJobId);
638
- return [3 /*break*/, 4];
690
+ return [4 /*yield*/, this_1.updateProgress(batchJob.id)];
639
691
  case 3:
640
- e_11 = _f.sent();
641
- ProductImportStrategy.throwDescriptiveError(variantOp, e_11.message);
642
- return [3 /*break*/, 4];
643
- case 4: return [2 /*return*/];
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
- e_10_1 = _e.sent();
666
- e_10 = { error: e_10_1 };
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 (e_10) throw e_10.error; }
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 batchJobId - An id of the current batch job being processed.
737
+ * @param batchJob - The current batch job being processed.
683
738
  */
684
- ProductImportStrategy.prototype.updateVariants = function (batchJobId) {
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, e_12, e_13_1;
688
- var e_13, _b;
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(batchJobId, types_1.OperationType.VariantUpdate)];
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, 12, 13, 14]);
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*/, 11];
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
- e_12 = _c.sent();
722
- ProductImportStrategy.throwDescriptiveError(variantOp, e_12.message);
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 11: return [3 /*break*/, 14];
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 (e_13) throw e_13.error; }
798
+ finally { if (e_15) throw e_15.error; }
740
799
  return [7 /*endfinally*/];
741
- case 14: return [2 /*return*/];
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, e_14_1;
755
- var e_14, _a;
756
- return __generator(this, function (_b) {
757
- switch (_b.label) {
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
- _b.label = 1;
821
+ productServiceTx = this.productService_.withTransaction(transactionManager);
822
+ _c.label = 1;
761
823
  case 1:
762
- _b.trys.push([1, 6, 7, 8]);
824
+ _c.trys.push([1, 6, 7, 8]);
763
825
  productOptions_1 = __values(productOptions), productOptions_1_1 = productOptions_1.next();
764
- _b.label = 2;
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*/, this.productService_.retrieveOptionByTitle(o._title, productId)];
830
+ return [4 /*yield*/, productServiceTx.retrieveOptionByTitle(o._title, productId)];
769
831
  case 3:
770
- option = _b.sent();
832
+ option = _c.sent();
771
833
  o.option_id = option === null || option === void 0 ? void 0 : option.id;
772
- _b.label = 4;
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
- e_14_1 = _b.sent();
779
- e_14 = { error: e_14_1 };
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 && (_a = productOptions_1.return)) _a.call(productOptions_1);
845
+ if (productOptions_1_1 && !productOptions_1_1.done && (_b = productOptions_1.return)) _b.call(productOptions_1);
784
846
  }
785
- finally { if (e_14) throw e_14.error; }
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: "imports/products/ops/".concat(batchJobId, "-").concat(op),
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: "imports/products/ops/".concat(batchJobId, "-").concat(op, ".json"),
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 e_15, _d;
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
- transactionManager = (_a = this.transactionManager_) !== null && _a !== void 0 ? _a : this.manager_;
890
- try {
891
- for (_b = __values(Object.keys(types_1.OperationType)), _c = _b.next(); !_c.done; _c = _b.next()) {
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
- this.fileService_.withTransaction(transactionManager).delete({
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
- catch (e_15_1) { e_15 = { error: e_15_1 }; }
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 batchJobId - An id of the current batch job being processed.
1002
+ * @param batchJob - The current batch job being processed.
919
1003
  */
920
- ProductImportStrategy.prototype.finalize = function (batchJobId) {
1004
+ ProductImportStrategy.prototype.finalize = function (batchJob) {
1005
+ var _a;
921
1006
  return __awaiter(this, void 0, void 0, function () {
922
- var batchJob, fileKey;
923
- return __generator(this, function (_a) {
924
- switch (_a.label) {
925
- case 0: return [4 /*yield*/, this.batchJobService_.retrieve(batchJobId)];
926
- case 1:
927
- batchJob = _a.sent();
928
- delete this.processedCounter[batchJobId];
929
- return [4 /*yield*/, this.batchJobService_.update(batchJobId, {
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 2:
933
- _a.sent();
1018
+ case 1:
1019
+ _b.sent();
934
1020
  fileKey = batchJob.context.fileKey;
935
- return [4 /*yield*/, this.fileService_.delete({ fileKey: fileKey })];
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
- _a.sent();
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 (_a) {
957
- switch (_a.label) {
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_.update(batchJobId, {
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
- _a.sent();
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 Mid Code", mapTo: "product.mid_code" },
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 Mid Code", mapTo: "variant.mid_code" },
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