# Standalone Price import 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](/api/projects/standalone-prices.md#standaloneprice). ## Prerequisites A Standalone Price references an existing [Product Variant](/api/projects/products.md#productvariant) 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. When referencing a [Customer Group](/api/projects/customerGroups.md#customergroup), [Channel](/api/projects/channels.md#channel), [Product Discount](/api/projects/productDiscounts.md#productdiscount), or [Type](/api/projects/types.md#type), the referenced resource must already exist in the Project. ## Supported headers and values ### Standalone Prices 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](/api/projects/standalone-prices.md#set-key). 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](https://en.wikipedia.org/wiki/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](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)) for which the Standalone Price is valid. | Optional | | `customerGroup.key` | A unique identifier for the [Customer Group](/api/projects/customerGroups.md#customergroup) 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](/api/projects/channels.md#channel) for which the Standalone Price is valid. | Optional | | `channel.typeId` | `channel` | Required, when `channel.key` is provided. | | `validFrom` | The [date and time](/api/types.md#datetime) from which the Standalone Price is valid. Must be earlier than `validUntil`. | Optional | | `validUntil` | The [date and time](/api/types.md#datetime) 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](/api/projects/types.md#fielddefinition). The value must conform to the [FieldType](/api/projects/types.md#fieldtype) of the Custom Field. For more information, see [Custom Fields](/merchant-center/import-standalone-prices.md#custom-fields). | Optional | #### Custom Fields Replace `{nameOfCustomField}` with the name of the Custom Field, as defined in the respective [FieldDefinition](/api/projects/types#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](https://en.wikipedia.org/wiki/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](https://en.wikipedia.org/wiki/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](/api/projects/productDiscounts.md#productdiscount). | Header | Value | Required/Optional | | --- | --- | --- | | `key` | A unique identifier for the Standalone Price the discounted Price belongs to. | Required | | `discounted.value.currencyCode` | An [ISO 4217](https://en.wikipedia.org/wiki/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](/api/projects/productDiscounts.md#productdiscount) 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](https://en.wikipedia.org/wiki/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](https://en.wikipedia.org/wiki/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](/api/projects/productDiscounts.md#productdiscount) 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. | `key` | `custom.fields.customField1` | | --- | --- | | `standalone-price-key-1` | `[DELETE]` | ## Related pages - [Area overview page with navigation](/merchant-center.md) - [Previous page: Product Types](/merchant-center/import-product-types.md) - [Next page: Tailored Products](/merchant-center/import-tailored-products.md) - [Search documentation and API specs](/search.md)