import { GlobalFlag, LanguageCode } from '@vendure/common/lib/generated-types'; import { Stream } from 'stream'; import { ConfigService } from '../../../config/config.service'; /** * @description * The intermediate representation of an OptionGroup after it has been parsed * by the {@link ImportParser}. * * @docsCategory import-export * @docsPage ImportParser */ export interface ParsedOptionGroup { translations: Array<{ languageCode: LanguageCode; name: string; values: string[]; }>; } /** * @description * The intermediate representation of a Facet after it has been parsed * by the {@link ImportParser}. * * @docsCategory import-export * @docsPage ImportParser */ export interface ParsedFacet { translations: Array<{ languageCode: LanguageCode; facet: string; value: string; }>; } /** * @description * The intermediate representation of a ProductVariant after it has been parsed * by the {@link ImportParser}. * * @docsCategory import-export * @docsPage ImportParser */ export interface ParsedProductVariant { sku: string; price: number; taxCategory: string; stockOnHand: number; trackInventory: GlobalFlag; assetPaths: string[]; facets: ParsedFacet[]; translations: Array<{ languageCode: LanguageCode; optionValues: string[]; customFields: { [name: string]: string; }; }>; } /** * @description * The intermediate representation of a Product after it has been parsed * by the {@link ImportParser}. * * @docsCategory import-export * @docsPage ImportParser */ export interface ParsedProduct { assetPaths: string[]; optionGroups: ParsedOptionGroup[]; facets: ParsedFacet[]; translations: Array<{ languageCode: LanguageCode; name: string; slug: string; description: string; customFields: { [name: string]: string; }; }>; } /** * @description * The data structure into which an import CSV file is parsed by the * {@link ImportParser} `parseProducts()` method. * * @docsCategory import-export * @docsPage ImportParser */ export interface ParsedProductWithVariants { product: ParsedProduct; variants: ParsedProductVariant[]; } /** * @description * The result returned by the {@link ImportParser} `parseProducts()` method. * * @docsCategory import-export * @docsPage ImportParser */ export interface ParseResult { results: T[]; errors: string[]; processed: number; } /** * @description * Validates and parses CSV files into a data structure which can then be used to created new entities. * This is used internally by the {@link Importer}. * * @docsCategory import-export * @docsPage ImportParser * @docsWeight 0 */ export declare class ImportParser { private configService; /** @internal */ constructor(configService: ConfigService); /** * @description * Parses the contents of the [product import CSV file](/developer-guide/importing-data/#product-import-format) and * returns a data structure which can then be used to populate Vendure using the {@link FastImporterService}. */ parseProducts(input: string | Stream, mainLanguage?: LanguageCode): Promise>; private processRawRecords; private validateCustomFields; private isTranslatable; private validateHeaderTranslations; private parseProductFromRecord; private parseVariantFromRecord; }