@haus-tech/product-import-export-plugin 3.2.0 → 3.3.1-next.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 (46) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/README.mdx +31 -11
  3. package/package.json +2 -1
  4. package/src/api/product-export.controller.d.ts +6 -7
  5. package/src/api/product-export.controller.js +39 -78
  6. package/src/api/product-export.controller.js.map +1 -1
  7. package/src/constants.d.ts +1 -0
  8. package/src/constants.js +2 -1
  9. package/src/constants.js.map +1 -1
  10. package/src/dashboard/import.tsx +1 -1
  11. package/src/index.d.ts +4 -0
  12. package/src/index.js +3 -0
  13. package/src/index.js.map +1 -1
  14. package/src/product-import-export.plugin.js +23 -0
  15. package/src/product-import-export.plugin.js.map +1 -1
  16. package/src/providers/import-providers/import-parser.d.ts +5 -0
  17. package/src/providers/import-providers/import-parser.js +72 -35
  18. package/src/providers/import-providers/import-parser.js.map +1 -1
  19. package/src/providers/import-providers/product-importer.d.ts +10 -1
  20. package/src/providers/import-providers/product-importer.js +145 -35
  21. package/src/providers/import-providers/product-importer.js.map +1 -1
  22. package/src/services/export-storage/export-storage-strategy.d.ts +31 -0
  23. package/src/services/export-storage/export-storage-strategy.js +3 -0
  24. package/src/services/export-storage/export-storage-strategy.js.map +1 -0
  25. package/src/services/export-storage/local-export-storage-strategy.d.ts +20 -0
  26. package/src/services/export-storage/local-export-storage-strategy.js +106 -0
  27. package/src/services/export-storage/local-export-storage-strategy.js.map +1 -0
  28. package/src/services/export-storage/s3-export-storage-strategy.d.ts +15 -0
  29. package/src/services/export-storage/s3-export-storage-strategy.js +130 -0
  30. package/src/services/export-storage/s3-export-storage-strategy.js.map +1 -0
  31. package/src/services/export-storage.util.d.ts +18 -0
  32. package/src/services/export-storage.util.js +81 -0
  33. package/src/services/export-storage.util.js.map +1 -0
  34. package/src/services/extended-fast-importer.service.d.ts +3 -2
  35. package/src/services/extended-fast-importer.service.js +9 -2
  36. package/src/services/extended-fast-importer.service.js.map +1 -1
  37. package/src/services/product-export.service.d.ts +19 -2
  38. package/src/services/product-export.service.js +99 -38
  39. package/src/services/product-export.service.js.map +1 -1
  40. package/src/services/product-import.service.d.ts +2 -1
  41. package/src/services/product-import.service.js +3 -2
  42. package/src/services/product-import.service.js.map +1 -1
  43. package/src/types.d.ts +13 -0
  44. package/src/ui/components/export-dialog.component.ts +2 -2
  45. package/src/ui/components/product-import.component.ts +5 -5
  46. package/src/ui/product-export.service.ts +4 -3
@@ -15,6 +15,7 @@ const common_1 = require("@nestjs/common");
15
15
  const generated_types_1 = require("@vendure/common/lib/generated-types");
16
16
  const unique_1 = require("@vendure/common/lib/unique");
17
17
  const core_1 = require("@vendure/core");
18
+ const core_2 = require("@vendure/core");
18
19
  const csv_parse_1 = require("csv-parse");
19
20
  const lodash_1 = require("lodash");
20
21
  const baseTranslatableColumns = [
@@ -159,6 +160,43 @@ let ImportParser = class ImportParser {
159
160
  }
160
161
  return { results, errors, processed: totalProducts };
161
162
  }
163
+ /**
164
+ * Maps a CSV column key (e.g. `product:relatedProducts:product`) to the Vendure custom field `name`.
165
+ */
166
+ resolveCustomFieldImportFieldName(prefix, fullColumnKey) {
167
+ if (!fullColumnKey.startsWith(`${prefix}:`)) {
168
+ return undefined;
169
+ }
170
+ const rest = fullColumnKey.slice(prefix.length + 1);
171
+ const configs = prefix === 'product'
172
+ ? this.configService.customFields.Product
173
+ : this.configService.customFields.ProductVariant;
174
+ const exact = configs.find((c) => c.name === rest);
175
+ if (exact) {
176
+ return exact.name;
177
+ }
178
+ const colonIdx = rest.indexOf(':');
179
+ if (colonIdx === -1) {
180
+ return undefined;
181
+ }
182
+ const name = rest.slice(0, colonIdx);
183
+ const suffix = rest.slice(colonIdx + 1);
184
+ const field = configs.find((c) => c.name === name);
185
+ if (!field) {
186
+ return undefined;
187
+ }
188
+ if (field.type === 'relation') {
189
+ const relationField = field;
190
+ if (suffix === relationField.entity.name.toLowerCase()) {
191
+ return field.name;
192
+ }
193
+ return undefined;
194
+ }
195
+ if (suffix === field.type) {
196
+ return field.name;
197
+ }
198
+ return undefined;
199
+ }
162
200
  validateCustomFields(rowKeys) {
163
201
  const errors = [];
164
202
  for (const rowKey of rowKeys) {
@@ -167,19 +205,9 @@ let ImportParser = class ImportParser {
167
205
  if (parts.length === 1) {
168
206
  continue;
169
207
  }
170
- if (parts.length === 2) {
171
- let customFieldConfigs = [];
172
- if (parts[0] === 'product') {
173
- customFieldConfigs = this.configService.customFields.Product;
174
- }
175
- else if (parts[0] === 'variant') {
176
- customFieldConfigs = this.configService.customFields.ProductVariant;
177
- }
178
- else {
179
- continue;
180
- }
181
- const customFieldConfig = customFieldConfigs.find((config) => config.name === parts[1]);
182
- if (customFieldConfig) {
208
+ if (parts[0] === 'product' || parts[0] === 'variant') {
209
+ const resolved = this.resolveCustomFieldImportFieldName(parts[0], baseKey);
210
+ if (resolved) {
183
211
  continue;
184
212
  }
185
213
  }
@@ -187,6 +215,22 @@ let ImportParser = class ImportParser {
187
215
  }
188
216
  return errors;
189
217
  }
218
+ parseCustomFieldsFromRow(prefix, r) {
219
+ return Object.entries(r)
220
+ .filter(([key]) => {
221
+ return key.indexOf(`${prefix}:`) === 0;
222
+ })
223
+ .reduce((output, [key, value]) => {
224
+ const fieldName = this.resolveCustomFieldImportFieldName(prefix, key);
225
+ if (!fieldName) {
226
+ return output;
227
+ }
228
+ return {
229
+ ...output,
230
+ [fieldName]: isRelationObject(value) ? JSON.parse(value) : value,
231
+ };
232
+ }, {});
233
+ }
190
234
  isTranslatable(baseKey) {
191
235
  const parts = baseKey.split(':');
192
236
  if (parts.length === 1) {
@@ -201,15 +245,21 @@ let ImportParser = class ImportParser {
201
245
  customFieldConfigs = this.configService.customFields.ProductVariant;
202
246
  }
203
247
  else {
204
- throw new core_1.InternalServerError(`Invalid column header '${baseKey}'`);
248
+ throw new core_2.InternalServerError(`Invalid column header '${baseKey}'`);
205
249
  }
206
250
  const customFieldConfig = customFieldConfigs.find((config) => config.name === parts[1]);
207
251
  if (!customFieldConfig) {
208
- throw new core_1.InternalServerError(`Could not find custom field config for column header '${baseKey}'`);
252
+ throw new core_2.InternalServerError(`Could not find custom field config for column header '${baseKey}'`);
209
253
  }
210
254
  return customFieldConfig.type === 'localeString';
211
255
  }
212
- throw new core_1.InternalServerError(`Invalid column header '${baseKey}'`);
256
+ if (parts.length === 3 && (parts[0] === 'product' || parts[0] === 'variant')) {
257
+ const owner = parts[0];
258
+ if (this.resolveCustomFieldImportFieldName(owner, baseKey)) {
259
+ return false;
260
+ }
261
+ }
262
+ throw new core_2.InternalServerError(`Invalid column header '${baseKey}'`);
213
263
  }
214
264
  validateHeaderTranslations(rowKeys) {
215
265
  const missing = [];
@@ -290,8 +340,8 @@ let ImportParser = class ImportParser {
290
340
  }
291
341
  const translations = translationCodes.map(async (languageCode) => {
292
342
  const translatedFields = getRawTranslatedFields(r, languageCode);
293
- const parsedTranslatedCustomFields = parseCustomFields('product', translatedFields);
294
- const parsedUntranslatedCustomFields = parseCustomFields('product', getRawUntranslatedFields(r));
343
+ const parsedTranslatedCustomFields = this.parseCustomFieldsFromRow('product', translatedFields);
344
+ const parsedUntranslatedCustomFields = this.parseCustomFieldsFromRow('product', getRawUntranslatedFields(r));
295
345
  const parsedCustomFields = {
296
346
  ...parsedUntranslatedCustomFields,
297
347
  ...parsedTranslatedCustomFields,
@@ -307,7 +357,7 @@ let ImportParser = class ImportParser {
307
357
  slug = parseString(r.slug);
308
358
  }
309
359
  if (slug.length === 0) {
310
- slug = await this.slugStrategy.generate(new core_1.RequestContext({
360
+ slug = await this.slugStrategy.generate(new core_2.RequestContext({
311
361
  apiType: 'admin',
312
362
  isAuthorized: true,
313
363
  authorizedAsOwnerOnly: false,
@@ -366,8 +416,8 @@ let ImportParser = class ImportParser {
366
416
  : r.optionValues;
367
417
  const translatedOptionValues = parseStringArray(rawTranslOptionValues);
368
418
  const translatedFields = getRawTranslatedFields(r, languageCode);
369
- const parsedTranslatedCustomFields = parseCustomFields('variant', translatedFields);
370
- const parsedUntranslatedCustomFields = parseCustomFields('variant', getRawUntranslatedFields(r));
419
+ const parsedTranslatedCustomFields = this.parseCustomFieldsFromRow('variant', translatedFields);
420
+ const parsedUntranslatedCustomFields = this.parseCustomFieldsFromRow('variant', getRawUntranslatedFields(r));
371
421
  const parsedCustomFields = {
372
422
  ...parsedUntranslatedCustomFields,
373
423
  ...parsedTranslatedCustomFields,
@@ -411,7 +461,7 @@ function populateOptionGroupValues(currentRow) {
411
461
  const values = currentRow.variants.map((variant) => {
412
462
  const variantTranslation = variant.translations.find((t) => t.languageCode === translation.languageCode);
413
463
  if (!variantTranslation) {
414
- throw new core_1.InternalServerError(`No translation '${translation.languageCode}' for variant SKU '${variant.sku}'`);
464
+ throw new core_2.InternalServerError(`No translation '${translation.languageCode}' for variant SKU '${variant.sku}'`);
415
465
  }
416
466
  return variantTranslation.optionValues;
417
467
  });
@@ -551,19 +601,6 @@ function isRelationObject(value) {
551
601
  return false;
552
602
  }
553
603
  }
554
- function parseCustomFields(prefix, r) {
555
- return Object.entries(r)
556
- .filter(([key, value]) => {
557
- return key.indexOf(`${prefix}:`) === 0;
558
- })
559
- .reduce((output, [key, value]) => {
560
- const fieldName = key.replace(`${prefix}:`, '');
561
- return {
562
- ...output,
563
- [fieldName]: isRelationObject(value) ? JSON.parse(value) : value,
564
- };
565
- }, {});
566
- }
567
604
  function parseString(input) {
568
605
  return (input || '').trim();
569
606
  }
@@ -1 +1 @@
1
- {"version":3,"file":"import-parser.js","sourceRoot":"","sources":["../../../../../../packages/product-import-export-plugin/src/providers/import-providers/import-parser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"import-parser.js","sourceRoot":"","sources":["../../../../../../packages/product-import-export-plugin/src/providers/import-providers/import-parser.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
- import { ConfigService, ChannelService, FacetService, FacetValueService, TaxCategoryService, ID, ImportProgress, LanguageCode, RequestContext, OnProgressFn, ParsedFacet, ProductService, Product, TransactionalConnection, TranslatableSaver, AssetService, Asset, ProductOptionGroupService } from '@vendure/core';
1
+ import { ConfigService, ChannelService, FacetService, FacetValueService, TaxCategoryService, ID, ImportProgress, LanguageCode, OnProgressFn, ParsedFacet, ProductService, TransactionalConnection, TranslatableSaver, AssetService, ProductOptionGroupService } from '@vendure/core';
2
+ import { RequestContext, Product, Asset } from '@vendure/core';
2
3
  import { Stream } from 'stream';
3
4
  import { Observable } from 'rxjs';
4
5
  import { ExtendedFastImporterService } from '../../services/extended-fast-importer.service';
@@ -37,6 +38,14 @@ export declare class ProductImporter {
37
38
  private doParseAndImport;
38
39
  private getRequestContext;
39
40
  importProducts(ctx: RequestContext, rows: ParsedProductWithId[], updatingStrategy: UpdatingStrategy, onProgress: OnProgressFn): Promise<string[]>;
41
+ /**
42
+ * Normalizes CSV-style JSON (single quotes, spacing) before JSON.parse, consistent with other custom-field parsing in this importer.
43
+ */
44
+ private normalizeCustomFieldJsonInput;
45
+ /**
46
+ * Coerces raw JSON object properties to the scalar types declared on a struct custom field.
47
+ */
48
+ private coerceStructRow;
40
49
  private processCustomFieldValues;
41
50
  /**
42
51
  * Attempts to match a TaxCategory entity against the name supplied in the import table. If no matches
@@ -17,7 +17,9 @@ exports.ProductImporter = void 0;
17
17
  /* eslint-disable @typescript-eslint/no-non-null-assertion */
18
18
  const common_1 = require("@nestjs/common");
19
19
  const core_1 = require("@vendure/core");
20
+ const core_2 = require("@vendure/core");
20
21
  const rxjs_1 = require("rxjs");
22
+ const shared_utils_1 = require("@vendure/common/lib/shared-utils");
21
23
  const generated_types_1 = require("@vendure/common/lib/generated-types");
22
24
  const extended_fast_importer_service_1 = require("../../services/extended-fast-importer.service");
23
25
  const lodash_1 = require("lodash");
@@ -174,7 +176,7 @@ let ProductImporter = class ProductImporter {
174
176
  const hash = (0, generate_asset_hash_1.generateAssetHash)(asset);
175
177
  if (asset.customFields.hash !== hash) {
176
178
  asset.customFields.hash = hash;
177
- await this.connection.getRepository(ctx, core_1.Asset).save(asset);
179
+ await this.connection.getRepository(ctx, core_2.Asset).save(asset);
178
180
  }
179
181
  }
180
182
  this.allAssets = assets;
@@ -217,7 +219,7 @@ let ProductImporter = class ProductImporter {
217
219
  };
218
220
  }
219
221
  catch (err) {
220
- core_1.Logger.error('Error while importing products:', 'ProductImporter', err?.stack);
222
+ core_2.Logger.error('Error while importing products:', 'ProductImporter', err?.stack);
221
223
  return {
222
224
  errors: [err.message],
223
225
  imported: 0,
@@ -234,8 +236,8 @@ let ProductImporter = class ProductImporter {
234
236
  }
235
237
  }
236
238
  async getRequestContext(ctx, mainLanguage) {
237
- if (ctx instanceof core_1.RequestContext) {
238
- return new core_1.RequestContext({
239
+ if (ctx instanceof core_2.RequestContext) {
240
+ return new core_2.RequestContext({
239
241
  apiType: 'admin',
240
242
  isAuthorized: true,
241
243
  authorizedAsOwnerOnly: false,
@@ -244,7 +246,7 @@ let ProductImporter = class ProductImporter {
244
246
  });
245
247
  }
246
248
  else {
247
- throw new core_1.InternalServerError('No RequestContext provided');
249
+ throw new core_2.InternalServerError('No RequestContext provided');
248
250
  }
249
251
  }
250
252
  async importProducts(ctx, rows, updatingStrategy, onProgress) {
@@ -290,7 +292,7 @@ let ProductImporter = class ProductImporter {
290
292
  }
291
293
  if (!checkExistingProduct) {
292
294
  const variantSkus = variants.map((v) => v.sku);
293
- const foundVariants = await this.connection.getRepository(ctx, core_1.ProductVariant).findBy({
295
+ const foundVariants = await this.connection.getRepository(ctx, core_2.ProductVariant).findBy({
294
296
  sku: (0, typeorm_1.In)(variantSkus),
295
297
  });
296
298
  const variantsWhereDeletedAtUndefined = foundVariants.filter((v) => {
@@ -308,11 +310,11 @@ let ProductImporter = class ProductImporter {
308
310
  if (shouldRestore) {
309
311
  existingProduct.deletedAt = null;
310
312
  try {
311
- await this.connection.getRepository(ctx, core_1.Product).save([existingProduct]);
313
+ await this.connection.getRepository(ctx, core_2.Product).save([existingProduct]);
312
314
  }
313
315
  catch (error) {
314
316
  errors.push(`Error while restoring the product: ${error}`);
315
- core_1.Logger.error('Error while restoring the product:', 'ProductImporter', error?.stack);
317
+ core_2.Logger.error('Error while restoring the product:', 'ProductImporter', error?.stack);
316
318
  }
317
319
  }
318
320
  else {
@@ -322,7 +324,7 @@ let ProductImporter = class ProductImporter {
322
324
  }
323
325
  catch (error) {
324
326
  errors.push(`Error while restoring the product: ${error}`);
325
- core_1.Logger.error('Error while restoring the product:', 'ProductImporter', error?.stack);
327
+ core_2.Logger.error('Error while restoring the product:', 'ProductImporter', error?.stack);
326
328
  }
327
329
  const existingProductName = existingProduct?.translations.find((t) => t.languageCode === languageCode)?.name;
328
330
  const productNameHasChanged = existingProduct && existingProductName !== productMainTranslation.name
@@ -478,7 +480,7 @@ let ProductImporter = class ProductImporter {
478
480
  // }
479
481
  const variantCustomFields = await this.processCustomFieldValues(variantMainTranslation.customFields, this.configService.customFields.ProductVariant, ctx);
480
482
  const optionIds = variantMainTranslation.optionValues.map((v, index) => optionsMap[`${index}_${v}`]);
481
- let existingVariant = await this.connection.getRepository(ctx, core_1.ProductVariant).findOne({
483
+ let existingVariant = await this.connection.getRepository(ctx, core_2.ProductVariant).findOne({
482
484
  where: {
483
485
  sku: variant.sku,
484
486
  deletedAt: shouldRestore ? undefined : (0, typeorm_1.IsNull)(),
@@ -491,11 +493,11 @@ let ProductImporter = class ProductImporter {
491
493
  if (shouldRestore) {
492
494
  existingVariant.deletedAt = null;
493
495
  try {
494
- await this.connection.getRepository(ctx, core_1.ProductVariant).save([existingVariant]);
496
+ await this.connection.getRepository(ctx, core_2.ProductVariant).save([existingVariant]);
495
497
  }
496
498
  catch (error) {
497
499
  errors.push(`Error while restoring the variant: ${error}`);
498
- core_1.Logger.error('Error while restoring the variant:', 'ProductImporter', error?.stack);
500
+ core_2.Logger.error('Error while restoring the variant:', 'ProductImporter', error?.stack);
499
501
  }
500
502
  }
501
503
  else {
@@ -529,7 +531,7 @@ let ProductImporter = class ProductImporter {
529
531
  translations: await Promise.all(variant.translations.map(async (translation) => {
530
532
  const productTranslation = product.translations.find((t) => t.languageCode === translation.languageCode);
531
533
  if (!productTranslation) {
532
- throw new core_1.InternalServerError(`No translation '${translation.languageCode}' for product with slug '${productMainTranslation.slug}'`);
534
+ throw new core_2.InternalServerError(`No translation '${translation.languageCode}' for product with slug '${productMainTranslation.slug}'`);
533
535
  }
534
536
  return {
535
537
  languageCode: translation.languageCode,
@@ -569,7 +571,7 @@ let ProductImporter = class ProductImporter {
569
571
  .digest('hex');
570
572
  // Update product updatedAt to existing product updatedAt
571
573
  if (existingProductHash === productAfterUpdateHash) {
572
- await this.connection.getRepository(ctx, core_1.Product).update(productAfterUpdate.id, {
574
+ await this.connection.getRepository(ctx, core_2.Product).update(productAfterUpdate.id, {
573
575
  updatedAt: existingProduct.updatedAt,
574
576
  });
575
577
  }
@@ -657,6 +659,54 @@ let ProductImporter = class ProductImporter {
657
659
  // }
658
660
  // return facetValueIds
659
661
  // }
662
+ /**
663
+ * Normalizes CSV-style JSON (single quotes, spacing) before JSON.parse, consistent with other custom-field parsing in this importer.
664
+ */
665
+ normalizeCustomFieldJsonInput(raw) {
666
+ return raw.replace(/'/g, '"').replace(/\s+/g, ' ').replace(/,\s*'/g, ", '");
667
+ }
668
+ /**
669
+ * Coerces raw JSON object properties to the scalar types declared on a struct custom field.
670
+ */
671
+ coerceStructRow(structDef, parsed, parseBooleanFn) {
672
+ const out = {};
673
+ for (const subField of structDef.fields) {
674
+ if (!Object.prototype.hasOwnProperty.call(parsed, subField.name)) {
675
+ continue;
676
+ }
677
+ const raw = parsed[subField.name];
678
+ if (raw === null || raw === undefined) {
679
+ continue;
680
+ }
681
+ switch (subField.type) {
682
+ case 'string':
683
+ case 'text':
684
+ out[subField.name] = String(raw);
685
+ break;
686
+ case 'int': {
687
+ const n = typeof raw === 'number' ? raw : parseInt(String(raw), 10);
688
+ if (!Number.isNaN(n)) {
689
+ out[subField.name] = n;
690
+ }
691
+ break;
692
+ }
693
+ case 'float': {
694
+ const n = typeof raw === 'number' ? raw : parseFloat(String(raw));
695
+ if (!Number.isNaN(n)) {
696
+ out[subField.name] = n;
697
+ }
698
+ break;
699
+ }
700
+ case 'boolean':
701
+ out[subField.name] = typeof raw === 'boolean' ? raw : parseBooleanFn(String(raw));
702
+ break;
703
+ case 'datetime':
704
+ out[subField.name] = String(raw);
705
+ break;
706
+ }
707
+ }
708
+ return out;
709
+ }
660
710
  async processCustomFieldValues(customFields, config, ctx) {
661
711
  function parseBoolean(input) {
662
712
  if (input == null) {
@@ -676,7 +726,7 @@ let ProductImporter = class ProductImporter {
676
726
  let foundCustomFieldType = (0, lodash_1.find)(this.customFieldTypes, (_type, key) => key.split(':')[1] === fieldDef.name);
677
727
  if (!foundCustomFieldType) {
678
728
  // Check if the custom field is an asset
679
- if (fieldDef.entity === core_1.Asset) {
729
+ if (fieldDef.entity === core_2.Asset) {
680
730
  foundCustomFieldType = 'asset';
681
731
  }
682
732
  }
@@ -684,39 +734,85 @@ let ProductImporter = class ProductImporter {
684
734
  if (!value || value === '') {
685
735
  continue;
686
736
  }
687
- if (fieldDef.list === true) {
688
- processed[fieldDef.name] = value?.split('|').filter((val) => val.trim() !== '');
689
- }
690
- else if (fieldDef.type === 'boolean') {
691
- processed[fieldDef.name] = parseBoolean(value);
737
+ if (fieldDef.type === 'struct') {
738
+ const structDef = fieldDef;
739
+ try {
740
+ if (fieldDef.list === true) {
741
+ const trimmed = value.trim();
742
+ if (trimmed.startsWith('[')) {
743
+ const parsedList = JSON.parse(this.normalizeCustomFieldJsonInput(trimmed));
744
+ if (!Array.isArray(parsedList)) {
745
+ throw new Error('Struct list must be a JSON array');
746
+ }
747
+ processed[fieldDef.name] = parsedList.map((item, index) => {
748
+ if (item === null || typeof item !== 'object' || Array.isArray(item)) {
749
+ throw new Error(`Invalid struct element at index ${index}`);
750
+ }
751
+ return this.coerceStructRow(structDef, item, parseBoolean);
752
+ });
753
+ }
754
+ else {
755
+ processed[fieldDef.name] = value
756
+ .split('|')
757
+ .map((part) => part.trim())
758
+ .filter((part) => part !== '')
759
+ .map((part) => {
760
+ const obj = JSON.parse(this.normalizeCustomFieldJsonInput(part));
761
+ if (obj === null || typeof obj !== 'object' || Array.isArray(obj)) {
762
+ throw new Error('Each pipe segment must be a JSON object');
763
+ }
764
+ return this.coerceStructRow(structDef, obj, parseBoolean);
765
+ });
766
+ }
767
+ }
768
+ else {
769
+ const obj = JSON.parse(this.normalizeCustomFieldJsonInput(value.trim()));
770
+ if (obj === null || typeof obj !== 'object' || Array.isArray(obj)) {
771
+ throw new Error('Struct must be a JSON object');
772
+ }
773
+ processed[fieldDef.name] = this.coerceStructRow(structDef, obj, parseBoolean);
774
+ }
775
+ }
776
+ catch (e) {
777
+ const message = e instanceof Error ? e.message : String(e);
778
+ core_2.Logger.warn(`Skipping custom field "${fieldDef.name}" (struct): ${message}`, 'ProductImporter');
779
+ }
780
+ continue;
692
781
  }
693
- else if (fieldDef.type === 'relation') {
694
- if (foundCustomFieldType === 'asset') {
782
+ if (fieldDef.type === 'relation') {
783
+ const inputKey = (0, shared_utils_1.getGraphQlInputName)(fieldDef);
784
+ const relDef = fieldDef;
785
+ if (relDef.entity === core_2.Asset) {
695
786
  if ((0, lodash_1.startsWith)(value, '{') || (0, lodash_1.startsWith)(value, '[')) {
696
787
  if (typeof value === 'string') {
697
788
  const assetValue = JSON.parse(value.replace(/'/g, '"').replace(/\s+/g, ' ').replace(/,\s*'/g, ", '"));
698
789
  if (Array.isArray(assetValue)) {
790
+ const createdIds = [];
699
791
  for (const asset of assetValue) {
700
792
  if (asset.url.startsWith('http://') || asset.url.startsWith('https://')) {
701
793
  const createdAssets = await this.assetImporter.getAssets([asset], ctx);
702
- processed[fieldDef.name] = createdAssets.assets[0]?.id;
794
+ const newId = createdAssets.assets[0]?.id;
795
+ if (newId) {
796
+ createdIds.push(newId);
797
+ }
703
798
  }
704
799
  const foundAsset = this.allAssets.find((a) => a.id === asset.id);
705
800
  if (foundAsset && foundAsset.name !== asset.name) {
706
- await this.connection.getRepository(ctx, core_1.Asset).update(foundAsset.id, {
801
+ await this.connection.getRepository(ctx, core_2.Asset).update(foundAsset.id, {
707
802
  name: asset.name,
708
803
  });
709
804
  }
710
805
  }
806
+ processed[inputKey] = fieldDef.list ? createdIds : createdIds[0];
711
807
  }
712
808
  else {
713
809
  if (assetValue.url.startsWith('http://') || assetValue.url.startsWith('https://')) {
714
810
  const createdAssets = await this.assetImporter.getAssets([assetValue], ctx);
715
- processed[fieldDef.name] = createdAssets.assets[0]?.id;
811
+ processed[inputKey] = createdAssets.assets[0]?.id;
716
812
  }
717
813
  const foundAsset = this.allAssets.find((a) => a.id === assetValue.id);
718
814
  if (foundAsset && foundAsset.name !== assetValue.name) {
719
- await this.connection.getRepository(ctx, core_1.Asset).update(foundAsset.id, {
815
+ await this.connection.getRepository(ctx, core_2.Asset).update(foundAsset.id, {
720
816
  name: assetValue.name,
721
817
  });
722
818
  }
@@ -726,13 +822,27 @@ let ProductImporter = class ProductImporter {
726
822
  else {
727
823
  if (value.startsWith('http://') || value.startsWith('https://')) {
728
824
  const createdAssets = await this.assetImporter.getAssets([{ url: value }], ctx);
729
- processed[fieldDef.name] = createdAssets.assets[0]?.id;
825
+ processed[inputKey] = createdAssets.assets[0]?.id;
730
826
  }
731
827
  }
828
+ continue;
829
+ }
830
+ if (fieldDef.list === true) {
831
+ processed[inputKey] = value
832
+ .split('|')
833
+ .map((val) => val.trim())
834
+ .filter((val) => val !== '');
732
835
  }
733
836
  else {
734
- processed[fieldDef.name] = value ? value : undefined;
837
+ processed[inputKey] = value.trim();
735
838
  }
839
+ continue;
840
+ }
841
+ if (fieldDef.list === true) {
842
+ processed[fieldDef.name] = value?.split('|').filter((val) => val.trim() !== '');
843
+ }
844
+ else if (fieldDef.type === 'boolean') {
845
+ processed[fieldDef.name] = parseBoolean(value);
736
846
  }
737
847
  else {
738
848
  if ((0, lodash_1.startsWith)(value, '{') || (0, lodash_1.startsWith)(value, '[')) {
@@ -765,7 +875,7 @@ let ProductImporter = class ProductImporter {
765
875
  const found = taxCategories.find((tc) => !!tc.name.match(regex));
766
876
  const match = found ? found : taxCategories[0];
767
877
  if (!match) {
768
- throw new core_1.InternalServerError(`No TaxCategory found for name '${name}'`);
878
+ throw new core_2.InternalServerError(`No TaxCategory found for name '${name}'`);
769
879
  }
770
880
  this.taxCategoryMatches[name] = match.id;
771
881
  return match.id;
@@ -805,7 +915,7 @@ let ProductImporter = class ProductImporter {
805
915
  if (!id) {
806
916
  return undefined;
807
917
  }
808
- const product = (await this.connection.getRepository(ctx, core_1.Product).findOne({
918
+ const product = (await this.connection.getRepository(ctx, core_2.Product).findOne({
809
919
  where: { id },
810
920
  withDeleted,
811
921
  relations: ['featuredAsset'],
@@ -813,17 +923,17 @@ let ProductImporter = class ProductImporter {
813
923
  if (product) {
814
924
  const [facetValues, optionGroups, variants, assets, featuredAsset] = await Promise.all([
815
925
  this.connection
816
- .getRepository(ctx, core_1.FacetValue)
926
+ .getRepository(ctx, core_2.FacetValue)
817
927
  .find({ where: { products: { id: product.id } }, relations: ['facet'] }),
818
928
  this.connection
819
- .getRepository(ctx, core_1.ProductOptionGroup)
929
+ .getRepository(ctx, core_2.ProductOptionGroup)
820
930
  .find({ where: { product: { id: product.id } }, relations: ['options'] }),
821
931
  this.connection
822
- .getRepository(ctx, core_1.ProductVariant)
932
+ .getRepository(ctx, core_2.ProductVariant)
823
933
  .find({ where: { product: { id: product.id } }, relations: ['facetValues'] }),
824
- this.connection.getRepository(ctx, core_1.ProductAsset).find({ where: { productId: product.id } }),
934
+ this.connection.getRepository(ctx, core_2.ProductAsset).find({ where: { productId: product.id } }),
825
935
  this.connection
826
- .getRepository(ctx, core_1.Asset)
936
+ .getRepository(ctx, core_2.Asset)
827
937
  .findOne({ where: { id: product.featuredAsset?.id } }),
828
938
  ]);
829
939
  product.facetValues = facetValues;