Skip to main content

Populate

populate

Populates the Vendure server with some initial data and (optionally) product data from a supplied CSV file. The format of the CSV file is described in the section Importing Product Data.

If the channelOrToken argument is provided, all ChannelAware entities (Products, ProductVariants, Assets, ShippingMethods, PaymentMethods etc.) will be assigned to the specified Channel. The argument can be either a Channel object or a valid channel token.

Internally the populate() function does the following:

  1. Uses the Populator to populate the InitialData.
  2. If productsCsvPath is provided, uses Importer to populate Product data.
  3. Uses Populator to populate collections specified in the InitialData.

Example

import { bootstrap } from '@vendure/core';
import { populate } from '@vendure/core/cli';
import { config } from './vendure-config.ts'
import { initialData } from './my-initial-data.ts';

const productsCsvFile = path.join(__dirname, 'path/to/products.csv')

populate(
() => bootstrap(config),
initialData,
productsCsvFile,
)
.then(app => app.close())
.then(
() => process.exit(0),
err => {
console.log(err);
process.exit(1);
},
);
Signature
function populate<T extends INestApplicationContext>(bootstrapFn: () => Promise<T | undefined>, initialDataPathOrObject: string | object, productsCsvPath?: string, channelOrToken?: string | import('@vendure/core').Channel): Promise<T>

Parameters

bootstrapFn

parameter
() => Promise<T | undefined>

initialDataPathOrObject

parameter
string | object

productsCsvPath

parameter
string

channelOrToken

parameter
string | import('@vendure/core').Channel