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:partialupdateapiVersion:2026-04
Columns
| Column Header | Description | Key Information | Type | Required |
|---|---|---|---|---|
uuid | UUID of the price that can be expressed using a value as defined in its types. | string | No | |
externalId | External 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. | string | No | |
product | UUID 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. | string | No | |
product.uuid | UUID of the resource | array | No | |
product.uuid[0] | Array element | string | No | |
product.externalId | External ID of the resource | array | No | |
product.externalId[0] | Array element | string | No | |
variant | UUID 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. | string | No | |
variant.uuid | UUID of the resource | array | No | |
variant.uuid[0] | Array element | string | No | |
variant.externalId | External ID of the resource | array | No | |
variant.externalId[0] | Array element | string | No | |
store | UUID 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. | string | No | |
store.uuid | UUID of the resource | array | No | |
store.uuid[0] | Array element | string | No | |
store.externalId | External ID of the resource | array | No | |
store.externalId[0] | Array element | string | No | |
country | UUID 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. | string | No | |
country.uuid | UUID of the resource | array | No | |
country.uuid[0] | Array element | string | No | |
country.externalId | External ID of the resource | array | No | |
country.externalId[0] | Array element | string | No | |
zone | UUID 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. | string | No | |
zone.uuid | UUID of the resource | array | No | |
zone.uuid[0] | Array element | string | No | |
zone.externalId | External ID of the resource | array | No | |
zone.externalId[0] | Array element | string | No | |
amounts | N/A | mixed | No | |
amounts.regular | N/A | mixed | No | |
amounts.regular.amount | N/A | mixed | No | |
amounts.regular.amount.value | Scaled 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. | integer | No | |
amounts.regular.amount.scale | The 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. | integer | No | |
amounts.regular.amount.currency | The 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 | string | No |
amounts.regular.taxInclusive | Whether or not this amount is inclusive of tax that can be expressed using a value as defined in its types. | boolean | No | |
amounts.sale | Optional sale price that can be expressed using “SET_AS_NULL” (to reset the existing value) or a value as defined in its types. | mixed | No | |
amounts.sale.amount | N/A | mixed | No | |
amounts.sale.amount.value | Scaled 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. | integer | No | |
amounts.sale.amount.scale | The 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. | integer | No | |
amounts.sale.amount.currency | The 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 | string | No |
amounts.sale.taxInclusive | Whether or not this amount is inclusive of tax that can be expressed using a value as defined in its types. | boolean | No |
Sample CSV
See the following productPrices CSV sample file.
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.