Variants (Partial Update)

Description

Creates or updates a variant identified by the uuid or externalId in the request body. If the identifier matches an existing variant, it is updated. If not, a new variant is created (upsert behavior). Omitted fields are left unchanged on update, or set to their defaults on creation.

Updates a variant of a product

Product support

product can only be provided on new variants. If your variant already exists, this field will be ignored. This field was called productId in previous versions and would only accept an identifier. The new field is now named product and will accept a full product resource on creation.

Attributes

Attributes referenced by name that do not yet exist are automatically created. You do not need to create attribute definitions before assigning them to a variant.

Important note about images

Images can feature a sort order to appear in different order in the client applications. Our current client applications expect the primary image to be at sortOrder: 0 to be shown as the primary image. Not using position 0 will show a placeholder image instead of the first one available.

See the Aerial Spec for more details.

File Naming Convention

TGEN_variants_partialupdate_2026-04_<optionalSuffix>.csv

  • importType: partialupdate
  • apiVersion: 2026-04

Columns

Column HeaderDescriptionKey InformationTypeRequired
uuidUUID of the resource that can be expressed using a value as defined in its types.stringNo
externalIdExternal ID of the resource that can be expressed using “SET_AS_NULL” (to reset the existing value) or a value as defined in its types.stringNo
productUUID, External ID or object representation of a UUID or external ID of a product to assign this variant to. (Creation only)stringNo
product.uuidUUID of the resourcearrayNo
product.uuid[0]Array elementstringNo
product.externalIdExternal ID of the resourcearrayNo
product.externalId[0]Array elementstringNo
upcUPC of the variant that can be expressed using “SET_AS_NULL” (to reset the existing value) or a value as defined in its types.stringNo
statusStatus of the variant that can be expressed using “SET_AS_NULL” (to reset the existing value) or a value as defined in its types.Allowed: available, discontinued, unavailablestringNo
isFinalSaleDeclares this variant is not eligible for returns that can be expressed using a value as defined in its types.booleanNo
isOpenPricePointStates if the price can be customized that can be expressed using a value as defined in its types.booleanNo
minOpenPricePointThe minimum open price point for this variant. that can be expressed using a value as defined in its types.numberNo
maxOpenPricePointThe maximum open price point for this variant. that can be expressed using a value as defined in its types.numberNo
isSerializedIs the variant controlled by serial numbers. that can be expressed using a value as defined in its types.booleanNo
imagesA collection of Images of the product that can be expressed using “SET_AS_NULL” (to reset all existing values) or a value as defined in its types.arrayNo
images[0]Array elementmixedNo
images[0].sourceUrlThe original url of the image. that can be expressed using “SET_AS_NULL” (to reset the existing value) or a value as defined in its types.stringYes
images[0].sortOrderThe ascending sort order value to order images for the same product/variant. To set an image as the primary image, please use sortOrder 0. that can be expressed using “SET_AS_NULL” (to reset the existing value) or a value as defined in its types.integerNo
localizedDataA collection of Localizations of the variant that can be expressed using “SET_AS_NULL” (to reset all existing values) or a value as defined in its types.arrayNo
localizedData[0]Array elementmixedNo
localizedData[0].languageCodeLanguage code of localization that can be expressed using a value as defined in its types.stringYes
localizedData[0].nameLocalized variant name that can be expressed using a value as defined in its types.stringNo
localizedData[0].descriptionLocalized variant description that can be expressed using “SET_AS_NULL” (to reset the existing value) or a value as defined in its types.stringNo
localizedData[0].urlURL to a localized web page giving more details about the variant that can be expressed using “SET_AS_NULL” (to reset the existing value) or a value as defined in its types.stringNo
attributesA collection of attribute that can be expressed using “SET_AS_NULL” (to reset all existing values) or a value as defined in its types.arrayNo
attributes[0]Array elementmixedNo
attributes[0].nameName of the attributestringYes
attributes[0].languageExternalIdLanguage code of the attribute that can be expressed using a value as defined in its types.stringYes
attributes[0].valueValue of the attribute, this will be any type casted to string but supports all basic types that can be expressed using “SET_AS_NULL” (to reset the existing value) or a value as defined in its types.stringNo
optionValuesA collection of option_values that can be expressed using “SET_AS_NULL” (to reset all existing values), uuids or expanded objects of the accepted type.arrayNo
optionValues[0]Array elementmixedNo
optionValues[0].uuidUUID of the resource that can be expressed using a value as defined in its types.stringNo
optionValues[0].externalIdExternal ID of the resource that can be expressed using “SET_AS_NULL” (to reset the existing value) or a value as defined in its types.stringNo
optionValues[0].typeUUID, External ID or object representation of a option typestringNo
optionValues[0].type.uuidUUID of the resourcearrayNo
optionValues[0].type.uuid[0]Array elementstringNo
optionValues[0].type.externalIdExternal ID of the resourcearrayNo
optionValues[0].type.externalId[0]Array elementstringNo
optionValues[0].sortOrderSort order of the value against other values of this type that can be expressed using “SET_AS_NULL” (to reset the existing value) or a value as defined in its types.integerNo
optionValues[0].valueThe value used to render the option, it can be a string or a code that can be expressed using “SET_AS_NULL” (to reset the existing value) or a value as defined in its types.stringNo
optionValues[0].localizedDataA collection of Localizations of the option value that can be expressed using “SET_AS_NULL” (to reset all existing values) or a value as defined in its types.arrayNo
optionValues[0].localizedData[0]Array elementmixedNo
optionValues[0].localizedData[0].languageCodeLanguage code of localization that can be expressed using a value as defined in its types.stringYes
optionValues[0].localizedData[0].nameLocalized option value name that can be expressed using a value as defined in its types.stringNo
optionValues[0].localizedData[0].presentationLocalized option value presentation string that can be expressed using a value as defined in its types.stringNo
optionValues[0].optionValueCategoriesA collection of optionValueCategories that can be expressed using “SET_AS_NULL” (to reset all existing values), uuids or expanded objects of the accepted type.arrayNo
optionValues[0].optionValueCategories[0]Array elementmixedNo
optionValues[0].optionValueCategories[0].uuidUUID of the resource that can be expressed using a value as defined in its types.stringNo
optionValues[0].optionValueCategories[0].externalIdExternal ID of the resource that can be expressed using “SET_AS_NULL” (to reset the existing value) or a value as defined in its types.stringNo
optionValues[0].optionValueCategories[0].localizedDataA collection of Localizations of the option value category that can be expressed using “SET_AS_NULL” (to reset all existing values) or a value as defined in its types.arrayNo
optionValues[0].optionValueCategories[0].localizedData[0]Array elementmixedNo
optionValues[0].optionValueCategories[0].localizedData[0].languageCodeLanguage code of localization that can be expressed using a value as defined in its types.stringYes
optionValues[0].optionValueCategories[0].localizedData[0].nameLocalized option value category name that can be expressed using a value as defined in its types.stringNo
optionValues[0].optionValueCategories[0].parentCategoryUUID or external ID of a parent option value category 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
optionValues[0].optionValueCategories[0].parentCategory.uuidUUID of the resourcearrayNo
optionValues[0].optionValueCategories[0].parentCategory.uuid[0]Array elementstringNo
optionValues[0].optionValueCategories[0].parentCategory.externalIdExternal ID of the resourcearrayNo
optionValues[0].optionValueCategories[0].parentCategory.externalId[0]Array elementstringNo

Sample CSV

See the following variants CSV sample file.

variants 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.