Learn about the headers and values supported for importing Standalone Prices from CSV files.
Standalone Prices let you define Prices for a Product Variant SKU without storing them on the Product itself. They can target specific currencies, countries, distribution Channels, Customer Groups, or time periods. To learn more, see Standalone Price.
Prerequisites
A Standalone Price references an existing Product Variant by sku. The Product Variant does not need to exist when the Standalone Price is imported. The Standalone Price is only used during Price selection once a Variant with the matching SKU exists in the Project.
You can update a Standalone Price only if it has a key. You can assign a key to a Standalone Price either from the Standalone Price list or by using the Standalone Prices API.
When updating Standalone Prices, include only the headers and values for the fields you are updating.
Header
Value
Required/Optional
key
A unique identifier for the Standalone Price that is imported. The key must only include letters, numbers, underscores (_), or dashes (-).
If a Standalone Price with the provided key exists in the Project, it is updated with the provided value—otherwise, a new entry is created.
Required
sku
The SKU of the Product Variant the Standalone Price applies to.
Required, when creating a new Standalone Price.
value.currencyCode
An ISO 4217-compliant currency code such as USD, EUR, or GBP.
Required, when creating a new Standalone Price.
value.centAmount
An amount in the smallest indivisible unit for the provided currency. For example, 500 can be equal to USD 5.00 or JPY 500.
Required, when creating a new Standalone Price.
value.type
centPrecision or highPrecision.
Required, when creating a new Standalone Price.
value.fractionDigits
The number of digits after the decimal separator. For centPrecision, it is equal to the default number of fraction digits for a currency. For highPrecision, it is greater than the default number of fraction digits for a currency and cannot be more than 20.
Required, when creating a new Standalone Price.
value.preciseAmount
An amount that is 1 / (10 ^ fractionDigits) of a currency.
Required, when value.type is highPrecision.
country
The two-digit country code (ISO 3166-1 alpha-2) for which the Standalone Price is valid.
Optional
customerGroup.key
A unique identifier for the Customer Group for which the Standalone Price is valid.
Optional
customerGroup.typeId
customer-group
Required, when customerGroup.key is provided.
channel.key
A unique identifier for the Channel for which the Standalone Price is valid.
Optional
channel.typeId
channel
Required, when channel.key is provided.
validFrom
The date and time from which the Standalone Price is valid. Must be earlier than validUntil.
Optional
validUntil
The date and time until which the Standalone Price is valid. Must be later than validFrom.
Optional
active
If true, the Standalone Price is considered during Product Variant Price selection. If false, it is deactivated.
Optional. If not included, the default value is true.
custom.type.key
A unique identifier for the Type referenced in a Custom Field.
Required, when importing Custom Fields.
custom.type.typeId
type
Required, when custom.type.key is provided.
custom.fields.{nameOfCustomField}
Replace {nameOfCustomField} with the name of the Custom Field, as defined in the respective FieldDefinition. The value must conform to the FieldType of the Custom Field. For more information, see Custom Fields.
Optional
Custom Fields
Replace {nameOfCustomField} with the name of the Custom Field, as defined in the respective FieldDefinition. The name of the Custom Field is case-sensitive.
When importing LocalizedString Custom Fields, provide headers and values for each language. For example, for English and German, provide custom.fields.{nameOfCustomField}.en and custom.fields.{nameOfCustomField}.de respectively.
When importing boolean Custom Fields, the values must be lowercase.
For Money Custom Fields, provide the following additionally:
Header
Value
Required/Optional
custom.fields.{nameOfCustomField}.currencyCode
An ISO 4217-compliant currency code such as USD, EUR, or GBP.
Required
custom.fields.{nameOfCustomField}.centAmount
An amount in the smallest indivisible unit for a currency. For example, 500 can be equal to USD 5.00 or JPY 500.
Required
custom.fields.{nameOfCustomField}.type
centPrecision
Required
custom.fields.{nameOfCustomField}.fractionDigits
The number of digits after the decimal separator. For example, 2 for USD or 0 for JPY.
Required
Sets of Custom Fields
For sets of simple Custom Fields (such as numbers, text, and booleans) the header would contain the Custom Fields name, and value would be a semicolon-separated list. The following example demonstrates how to import sets of text and numbers.
custom.fields.colorCombination
custom.fields.numberSet
red;green;blue
10;5;32
Sets of complex Custom Fields
For sets of complex values (such as localized text, references, and money), you can import single set values by defining the index and the subfields in the header. The following example demonstrates how to update the first entry of a set of Custom Fields called relatedCategories that references Categories.
custom.fields.relatedCategories.1.key
custom.fields.relatedCategories.1.typeId
red-shirts
category
To update the second entry, include the same headers but change 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 Custom Fields called relatedCategories with four entries.
custom.fields.relatedCategories.*.key
custom.fields.relatedCategories.*.typeId
red-shirts
category
summer-collection
category
new-arrivals
category
red-accessories
category
Price tiers
Price tiers require an existing Standalone Price.
Header
Value
Required/Optional
key
A unique identifier for the Standalone Price to add the Price tier to.
Required
tiers.minimumQuantity
The minimum quantity for which the imported Price tier is valid. It must be greater than or equal to 2. A Standalone Price cannot contain more than one tier with the same minimum quantity.
Required
tiers.value.currencyCode
An ISO 4217-compliant currency code such as USD, EUR, or GBP.
Required
tiers.value.centAmount
An amount in the smallest indivisible unit for the provided currency. For example, 500 can be equal to USD 5.00 or JPY 500.
Required
tiers.value.type
centPrecision or highPrecision.
Required
tiers.value.fractionDigits
The number of digits after the decimal separator.
Required
tiers.value.preciseAmount
An amount that is 1 / (10 ^ fractionDigits) of a currency.
Required, when tiers.value.type is highPrecision.
Discounted Price
A discounted Price requires an existing Standalone Price and an existing Product Discount.
Header
Value
Required/Optional
key
A unique identifier for the Standalone Price the discounted Price belongs to.
Required
discounted.value.currencyCode
An ISO 4217-compliant currency code such as USD, EUR, or GBP.
Required
discounted.value.centAmount
An amount in the smallest indivisible unit for the provided currency. For example, 500 can be equal to USD 5.00 or JPY 500.
Required
discounted.value.type
centPrecision or highPrecision.
Required
discounted.value.fractionDigits
The number of digits after the decimal separator.
Required
discounted.value.preciseAmount
An amount that is 1 / (10 ^ fractionDigits) of a currency.
Required, when discounted.value.type is highPrecision.
discounted.discount.key
A unique identifier for the Product Discount that produced the discounted Price.
Required
discounted.discount.typeId
product-discount
Required, when discounted.discount.key is provided.
Staged Price
Staged Price changes require an existing Standalone Price. The staged values represent pending changes that can later be applied to the Standalone Price.
Header
Value
Required/Optional
key
A unique identifier for the Standalone Price the staged Price belongs to.
Required
staged.value.currencyCode
An ISO 4217-compliant currency code such as USD, EUR, or GBP.
Required, when importing a staged Price.
staged.value.centAmount
An amount in the smallest indivisible unit for the provided currency. For example, 500 can be equal to USD 5.00 or JPY 500.
Required, when importing a staged Price.
staged.value.type
centPrecision or highPrecision.
Required, when importing a staged Price.
staged.value.fractionDigits
The number of digits after the decimal separator.
Required, when importing a staged Price.
staged.value.preciseAmount
An amount that is 1 / (10 ^ fractionDigits) of a currency.
Required, when staged.value.type is highPrecision.
staged.discounted.value.currencyCode
An ISO 4217-compliant currency code such as USD, EUR, or GBP.
Required, when importing a staged discounted Price.
staged.discounted.value.centAmount
An amount in the smallest indivisible unit for the provided currency. For example, 500 can be equal to USD 5.00 or JPY 500.
Required, when importing a staged discounted Price.
staged.discounted.value.type
centPrecision or highPrecision.
Required, when importing a staged discounted Price.
staged.discounted.value.fractionDigits
The number of digits after the decimal separator.
Required, when importing a staged discounted Price.
staged.discounted.value.preciseAmount
An amount that is 1 / (10 ^ fractionDigits) of a currency.
Required, when staged.discounted.value.type is highPrecision.
staged.discounted.discount.key
A unique identifier for the Product Discount that produced the staged discounted Price.
Required, when importing a staged discounted Price.
staged.discounted.discount.typeId
product-discount
Required, when staged.discounted.discount.key is provided.
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 delete data for a Custom Field—that is custom.fields.customField1 in the CSV file—add a new column, custom.fields.customField1, with [DELETE] as its value.