A concrete sellable good for which inventory can be tracked. Product Variants are generally mapped to specific SKUs.

interface ProductVariant {
    assets?: Asset[];
    attributes?: Attribute[];
    availability?: ProductVariantAvailability;
    id: number;
    images?: Image[];
    isMatchingVariant?: boolean;
    key?: string;
    price?: Price;
    prices?: Price[];
    scopedPrice?: ScopedPrice;
    scopedPriceDiscounted?: boolean;
    sku?: string;
}

Properties

assets?: Asset[]

Media assets of the Product Variant.

attributes?: Attribute[]

Attributes of the Product Variant.

availability?: ProductVariantAvailability

Set if the Product Variant is tracked by Inventory. Can be used as an optimization to reduce calls to the Inventory service. May not contain the latest Inventory State (it is eventually consistent).

id: number

A unique, sequential identifier of the Product Variant within the Product.

images?: Image[]

Images of the Product Variant.

isMatchingVariant?: boolean

true if the Product Variant matches the search query. Only available in response to a Product Projection Search request.

key?: string

User-defined unique identifier of the ProductVariant.

This is different from [Product](ctp:api:type:Product) `key`.
price?: Price

Only available when price selection is used. Cannot be used in a Query Predicate.

prices?: Price[]

The Embedded Prices of the Product Variant. Cannot contain two Prices of the same Price scope (with same currency, country, Customer Group, Channel, validFrom and validUntil).

scopedPrice?: ScopedPrice

Only available in response to a Product Projection Search request with Product price selection. Can be used to sort, filter, and facet.

scopedPriceDiscounted?: boolean

Only available in response to a Product Projection Search request with Product price selection.

sku?: string

User-defined unique SKU of the Product Variant.