Tailored Products import

Ask about this Page
Copy for LLM
View as Markdown

Learn about the headers and values supported for importing Tailored Products from CSV files.

Tailored Products let you customize a Product's appearance, such as names, descriptions, SEO fields, images, Assets, and Attributes, for individual Stores. Tailoring applies at both the Product and Variant level. To learn more, see Add tailored data for a Product.
To publish newly imported Tailored Products, select the Publish all tailored products in the file checkbox. If not selected, the import only updates the staged representation of existing Tailored Products, and new ones are not published.

Prerequisites

A Tailored Product references both an existing Product (by 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

When importing the complete Tailored Product data as one large CSV file, you can also include the headers and values from Variants, Assets, and Images.
You can update a Tailored Product only if it has a key.

When updating Tailored Products, include only the headers and values for the fields you are updating.

HeaderValueRequired/Optional
productTailoringKeyA 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.keyA unique identifier for the Product that this tailoring applies to.Required, when creating a new Tailored Product.
store.keyA 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.enA 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.enA 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.enA 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.enA 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.enA 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.enLocalized 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
Attribute prefixes
Use the 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.

Replace {nameOfAttribute} with the name of the Attribute. Attribute names are case-sensitive.
  • For Reference Attributes, provide the following additionally:

    HeaderValueRequired/Optional
    productAttributes.{nameOfAttribute}.keyThe key of 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:

    HeaderValueRequired/Optional
    productAttributes.{nameOfAttribute}.currencyCodeAn ISO 4217-compliant currency code such as USD, EUR, or GBP.Required
    productAttributes.{nameOfAttribute}.centAmountAn amount in the smallest indivisible unit for a currency. For example, 500 would 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, 2 for USD or 0 for 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.colorCombinationproductAttributes.numberSet
red;green;blue10;5;32

Sets of complex Attribute types

For sets of complex values (such as localized text, references, and money), you can import single set values. To do so, define the index and then the subfields in the header. The following example demonstrates how to update the first entry of a set of Attributes called relatedCategories that references Categories.
productAttributes.relatedCategories.1.keyproductAttributes.relatedCategories.1.typeId
red-shirtscategory
To update the second entry, include the same headers but change the 1 to 2.
You can also import multiple set values by using * instead of a number. With this approach, the values of set items are entered into sequential rows.
The following example demonstrates how to create a set of Attributes called relatedCategories with three entries.
productAttributes.relatedCategories.*.keyproductAttributes.relatedCategories.*.typeId
red-shirtscategory
summer-collectioncategory
new-arrivalscategory
The same patterns—Reference Attributes, Money Attributes, and sets of simple or complex Attributes—apply to Variant-level Attributes. Use the 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 of a Tailored Product must already exist on the underlying Product. Variants are matched by variants.sku.
HeaderValueRequired/Optional
productTailoringKeyA unique identifier for the Tailored Product the Variant data belongs to.Required
variants.skuThe 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.

You can update an Asset only if it has a key.
HeaderValueRequired/Optional
productTailoringKeyA unique identifier for the Tailored Product that the Asset belongs to.Required
variants.skuThe SKU of the Variant to add the Asset to.Required
variants.assets.keyA unique identifier for the Asset.Required
variants.assets.name.enA 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.enA 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.uriA URI for the Asset.Required, when creating a new Asset.
variants.assets.tagsA 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.

HeaderValueRequired/Optional
productTailoringKeyA unique identifier for the Tailored Product that the image belongs to.Required
variants.skuThe SKU of the Variant to add the image to.Required
variants.images.urlA URL for the image in its original size, which must be unique within a single Variant.Required
variants.images.labelA custom label for the image.Optional
variants.images.dimensions.wThe width (in pixels) of the image.Required, when creating a new image.
variants.images.dimensions.hThe height (in pixels) of the image.Required, when creating a new image.

Importing multiple Variants for a Tailored Product

To attach more than one Variant, or to attach multiple images or Assets to a single Variant, list each item on its own row. Leave the parent-level columns (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.
productTailoringKeyproduct.keystore.keyname.envariants.sku
tailoring-store-1pillow-coverstore-1Tailored pillowpillow-variant-01
pillow-variant-02
tailoring-store-2pillow-coverstore-2Tailored pillow v2pillow-variant-01

Delete data

When updating resources, you can remove data for optional fields. To remove data, in the CSV file, enter [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.
For example, to clear the localized name override for the German locale on a Tailored Product, add a column for name.de-DE with [DELETE] as its value.
productTailoringKeyname.en-USname.de-DE
tailoring-store-1Tailored Product name[DELETE]