Prices (Partial Update)

Description

Creates or updates a product price identified by the uuid or externalId in the request body.

If the identifier matches an existing price, it is updated. If not, a new price is created (upsert behavior). Omitted fields are left unchanged on update, or set to their defaults on creation.

Price matching on creation

When creating a new price (no matching identifier), the system first attempts to find an existing price with the same product, variant, currency, country, zone, and store combination. If a match is found, that price is updated instead of creating a duplicate. The amounts.regular field is required when creating a new price.

Duplicate detection

After any update, the system verifies that the resulting price does not duplicate an existing one (same product + variant + currency + country + zone + store).

Update behavior

You cannot update the product or the variant of an existing price. If the payload refers to an existing price either by UUID or external ID, the price's product or variant cannot be updated and as such will not generate errors if invalid.

See the Aerial Spec for more details.

File Naming Convention

TGEN_productPrices_partialupdate_2026-04_<optionalSuffix>.csv

  • importType: partialupdate
  • apiVersion: 2026-04

Columns

Column HeaderDescriptionKey InformationTypeRequired
uuidUUID of the price that can be expressed using a value as defined in its types.stringNo
externalIdExternal ID of the price that can be expressed using “SET_AS_NULL” (to reset the existing value) or a value as defined in its types.stringNo
productUUID or external ID of a ID of the product this price applies to that can be expressed using “SET_AS_NULL” (to reset the existing value) or a structure of {“uuid”: “string”, “externalId”: “string”} (to provide a more expressive identifier) or a value as defined in its types.stringNo
product.uuidUUID of the resourcearrayNo
product.uuid[0]Array elementstringNo
product.externalIdExternal ID of the resourcearrayNo
product.externalId[0]Array elementstringNo
variantUUID or external ID of a ID of the variant this price applies to that can be expressed using “SET_AS_NULL” (to reset the existing value) or a structure of {“uuid”: “string”, “externalId”: “string”} (to provide a more expressive identifier) or a value as defined in its types.stringNo
variant.uuidUUID of the resourcearrayNo
variant.uuid[0]Array elementstringNo
variant.externalIdExternal ID of the resourcearrayNo
variant.externalId[0]Array elementstringNo
storeUUID or external ID of a ID of the store if this price applies to a specific store only that can be expressed using “SET_AS_NULL” (to reset the existing value) or a structure of {“uuid”: “string”, “externalId”: “string”} (to provide a more expressive identifier) or a value as defined in its types.stringNo
store.uuidUUID of the resourcearrayNo
store.uuid[0]Array elementstringNo
store.externalIdExternal ID of the resourcearrayNo
store.externalId[0]Array elementstringNo
countryUUID or external ID of a ID of the country if this price applies to a specific country only that can be expressed using “SET_AS_NULL” (to reset the existing value) or a structure of {“uuid”: “string”, “externalId”: “string”} (to provide a more expressive identifier) or a value as defined in its types.stringNo
country.uuidUUID of the resourcearrayNo
country.uuid[0]Array elementstringNo
country.externalIdExternal ID of the resourcearrayNo
country.externalId[0]Array elementstringNo
zoneUUID or external ID of a ID of the zone if this price applies to a specific zone only that can be expressed using “SET_AS_NULL” (to reset the existing value) or a structure of {“uuid”: “string”, “externalId”: “string”} (to provide a more expressive identifier) or a value as defined in its types.stringNo
zone.uuidUUID of the resourcearrayNo
zone.uuid[0]Array elementstringNo
zone.externalIdExternal ID of the resourcearrayNo
zone.externalId[0]Array elementstringNo
amountsN/AmixedNo
amounts.regularN/AmixedNo
amounts.regular.amountN/AmixedNo
amounts.regular.amount.valueScaled up value of the money amount, refer to the scale to know how to scale this value down to a float. that can be expressed using a value as defined in its types.integerNo
amounts.regular.amount.scaleThe number of decimals to scale the value down with. Divide by 10^scale to scale down and multiply by 10^scale to scale up when sending back a value. that can be expressed using a value as defined in its types.integerNo
amounts.regular.amount.currencyThe 3 character ISO currency code that this amount is in. that can be expressed using a value as defined in its types.Max Length: 3
Min Length: 3
stringNo
amounts.regular.taxInclusiveWhether or not this amount is inclusive of tax that can be expressed using a value as defined in its types.booleanNo
amounts.saleOptional sale price that can be expressed using “SET_AS_NULL” (to reset the existing value) or a value as defined in its types.mixedNo
amounts.sale.amountN/AmixedNo
amounts.sale.amount.valueScaled up value of the money amount, refer to the scale to know how to scale this value down to a float. that can be expressed using a value as defined in its types.integerNo
amounts.sale.amount.scaleThe number of decimals to scale the value down with. Divide by 10^scale to scale down and multiply by 10^scale to scale up when sending back a value. that can be expressed using a value as defined in its types.integerNo
amounts.sale.amount.currencyThe 3 character ISO currency code that this amount is in. that can be expressed using a value as defined in its types.Max Length: 3
Min Length: 3
stringNo
amounts.sale.taxInclusiveWhether or not this amount is inclusive of tax that can be expressed using a value as defined in its types.booleanNo

Sample CSV

See the following productPrices CSV sample file.

productPrices Sample 1

Note: The sample CSV may contain sample ID fields which reference other resources that do not match the data in your environment. You may omit any non-required fields from the sample CSV, reference the table above for required fields.