Learn about the headers and values supported for importing Tailored Products from CSV files.
Prerequisites
key) and an existing Store (by key). Both must exist in the Project before the import runs.If a Tailored Product overrides Variant-level data (images, assets, Attributes), the referenced Variants must also exist on the Product. Variants are matched by SKU.
Supported headers and values
Tailored Products
key.When updating Tailored Products, include only the headers and values for the fields you are updating.
| Header | Value | Required/Optional |
|---|---|---|
productTailoringKey | A unique identifier for the Tailored Product that is imported. The key must only include letters, numbers, underscores (_), or dashes (-). If a Tailored Product with the provided key exists in the Project, it is updated with the provided values—otherwise, a new one is created. | Required |
product.key | A unique identifier for the Product that this tailoring applies to. | Required, when creating a new Tailored Product. |
store.key | A unique identifier for the Store that this tailoring applies to. A Product can have at most one tailoring per Store. | Required, when creating a new Tailored Product. |
name.en | A localized name that overrides the Product name in the referenced Store. You can provide multiple headers to include different language values. For headers ending with .en, you can change en to reference another language. For example, including the header name.de allows you to include a German name, and name.en-US allows you to include an English (American) name. | Optional |
description.en | A localized description that overrides the Product description in the referenced Store. You can provide multiple headers to include different language values. For headers ending with .en, you can change en to reference another language. For example, including the header name.de allows you to include a German name, and name.en-US allows you to include an English (American) name. | Optional |
slug.en | A localized slug that overrides the Product slug in the referenced Store. You can provide multiple headers to include different language values. For headers ending with .en, you can change en to reference another language. For example, including the header name.de allows you to include a German name, and name.en-US allows you to include an English (American) name. | Optional |
metaTitle.en | A localized SEO title that overrides the Product metaTitle in the referenced Store. You can provide multiple headers to include different language values.For headers ending with .en, you can change en to reference another language. For example, including the header name.de allows you to include a German name, and name.en-US allows you to include an English (American) name. | Optional |
metaDescription.en | A localized SEO description that overrides the Product metaDescription in the referenced Store. You can provide multiple headers to include different language values.For headers ending with .en, you can change en to reference another language. For example, including the header name.de allows you to include a German name, and name.en-US allows you to include an English (American) name. | Optional |
metaKeywords.en | Localized SEO keywords that override the Product metaKeywords in the referenced Store. You can provide multiple headers to include different language values.For headers ending with .en, you can change en to reference another language. For example, including the header name.de allows you to include a German name, and name.en-US allows you to include an English (American) name. | Optional |
productAttributes.{nameOfAttribute} | Replace {nameOfAttribute} with the name of a Product-level Attribute to override for this Store. Attribute names are case-sensitive. The value must conform to the type of the Attribute defined on the underlying Product Type. For more information, see Attributes. | Optional |
productAttributes.{nameOfAttribute} prefix for Product-level Attributes, and the attributes.{nameOfAttribute} prefix (under a Variant row) for Variant-level Attributes. This mirrors how Attributes are scoped on the underlying Product.Attributes
All Attribute types, except nested Attributes, are supported.
For boolean Attributes, the values must be lowercase.
{nameOfAttribute} with the name of the Attribute. Attribute names are case-sensitive.-
For Reference Attributes, provide the following additionally:
Header Value Required/Optional productAttributes.{nameOfAttribute}.keyThe keyof the referenced resource.Required productAttributes.{nameOfAttribute}.typeIdThe name of the referenced resource. To know about the supported resources and their values, see AttributeReferenceTypeId. Required -
For Money Attributes, provide the following additionally:
Header Value Required/Optional productAttributes.{nameOfAttribute}.currencyCodeAn ISO 4217-compliant currency code such as USD,EUR, orGBP.Required productAttributes.{nameOfAttribute}.centAmountAn amount in the smallest indivisible unit for a currency. For example, 500would be equal to USD 5.00 or JPY 500.Required productAttributes.{nameOfAttribute}.typecentPrecisionRequired productAttributes.{nameOfAttribute}.fractionDigitsThe number of digits after a decimal separator. For example, 2for USD or0for JPY.Required
Sets of Attributes
For sets of simple Attribute types (such as numbers, text, and booleans), the header contains the Attribute name. The value is a semicolon-separated list. The following example demonstrates how to import a set of text values.
productAttributes.colorCombination | productAttributes.numberSet |
|---|---|
red;green;blue | 10;5;32 |
Sets of complex Attribute types
relatedCategories that references Categories.productAttributes.relatedCategories.1.key | productAttributes.relatedCategories.1.typeId |
|---|---|
red-shirts | category |
1 to 2.* instead of a number. With this approach, the values of set items are entered into sequential rows.relatedCategories with three entries.productAttributes.relatedCategories.*.key | productAttributes.relatedCategories.*.typeId |
|---|---|
red-shirts | category |
summer-collection | category |
new-arrivals | category |
attributes. prefix in place of productAttributes. and include the row's variants.sku so the Variant the Attribute belongs to is identified. For example, attributes.color.key for a Variant-level Reference Attribute.Variants
variants.sku.| Header | Value | Required/Optional |
|---|---|---|
productTailoringKey | A unique identifier for the Tailored Product the Variant data belongs to. | Required |
variants.sku | The SKU of an existing Product Variant on the underlying Product. Used to match the Variant. | Required, when importing Variant data. |
attributes.{nameOfAttribute} | Replace {nameOfAttribute} with the name of a Variant-level Attribute to override for this Store. Attribute names are case-sensitive. The value must conform to the type of the Attribute. For more information, see Attributes. | Optional |
Assets
Assets require an existing Tailored Product that references a Variant by SKU.
key.| Header | Value | Required/Optional |
|---|---|---|
productTailoringKey | A unique identifier for the Tailored Product that the Asset belongs to. | Required |
variants.sku | The SKU of the Variant to add the Asset to. | Required |
variants.assets.key | A unique identifier for the Asset. | Required |
variants.assets.name.en | A localized name for the Asset. You can provide multiple headers to include different language values. For headers ending with .en, you can change en to reference another language. For example, including the header name.de allows you to include a German name, and name.en-US allows you to include an English (American) name. | Required, when creating a new Asset. |
variants.assets.description.en | A localized description for the Asset. You can provide multiple headers to include different language values. For headers ending with .en, you can change en to reference another language. For example, including the header name.de allows you to include a German name, and name.en-US allows you to include an English (American) name. | Optional |
variants.assets.sources.uri | A URI for the Asset. | Required, when creating a new Asset. |
variants.assets.tags | A semicolon-separated list of keywords used for categorizing and organizing Assets. | Optional |
Images
Images require an existing Tailored Product that references a Variant by SKU.
| Header | Value | Required/Optional |
|---|---|---|
productTailoringKey | A unique identifier for the Tailored Product that the image belongs to. | Required |
variants.sku | The SKU of the Variant to add the image to. | Required |
variants.images.url | A URL for the image in its original size, which must be unique within a single Variant. | Required |
variants.images.label | A custom label for the image. | Optional |
variants.images.dimensions.w | The width (in pixels) of the image. | Required, when creating a new image. |
variants.images.dimensions.h | The height (in pixels) of the image. | Required, when creating a new image. |
Importing multiple Variants for a Tailored Product
productTailoringKey, product.key, store.key, and other general fields) empty in the additional rows. The import merges these rows into the Tailored Product identified by the most recent non-empty productTailoringKey.productTailoringKey | product.key | store.key | name.en | variants.sku |
|---|---|---|---|---|
tailoring-store-1 | pillow-cover | store-1 | Tailored pillow | pillow-variant-01 |
pillow-variant-02 | ||||
tailoring-store-2 | pillow-cover | store-2 | Tailored pillow v2 | pillow-variant-01 |
Delete data
[DELETE] as the value for the header (field). When deleting values for reference fields or multi-value fields, you must add a new column with the common prefix as the header, and enter [DELETE] as the value.name.de-DE with [DELETE] as its value.productTailoringKey | name.en-US | name.de-DE |
|---|---|---|
tailoring-store-1 | Tailored Product name | [DELETE] |