Variant products provide an efficient way to model variations of a base product. However, their structure is very static. In the case of a T-shirt in multiple colors and sizes, selecting a style (color) determines the available sizes, but not the other way around. This is due to the hierarchical nature of the underlying data model.
The variant product model is also difficult to update. Adding a new variance (such as the material the product is made of) requires updating the type system, a task that requires not only a developer's intervention but also system downtime.
SAP Commerce Cloud offers an alternative way of creating product variants: Multi-Dimensional Product Variants.
Using this approach, every aspect of the variance configuration can be configured by a business user in Backoffice. A business user could, for example, add another variance criterion for a group of products by setting up a category structure and judiciously assigning new or existing products to these categories.
Multi-Dimensional Variant Products start with a base product, which is a regular product configured to have GenericVariantProducts, each representing a combination of different sizes, colors, materials, and so on.
As shown in the following diagram, there is only one variant product type: GenericVariantProduct. That means every variant product has the same type and lacks any properties indicating its color, size, etc. Instead, GenericVariantProducts are differentiated by the VariantValueCategory they belong to.
As shown in the following diagram, there are two sub-types of the category:
- Variant category, which identifies the nature of the variance (size, color, and so on).
- Variant value category, which identifies the specific variant value (red, blue, large, small, and more).
In a later example, we use the VariantCategory Size with just two values, Small and Large. A variant value category represents each value. The same applies to the VariantCategory color, which has exactly three available values: Red, Blue, and Green.

Multi-Dimensions Product Variants – User Perspective
How do all these work together? Let’s have a look at a video that explains the inner workings of Multi-Dimensional Variant Products.
Multi-Dimensional Product Variants
Let’s review what we just learned:
- In the context of multi-dimensional variants, every variant of the base product is an instance of a GenericVariantProduct. This means for every combination of variants (red + large + cotton, green + small + cotton, and more), a GenericVariantProduct is required.
- The variances (color, size, material, and so on.) are indicated by the VariantCategory.
- The exact variance values (red, green, large…) are determined by a variant product’s parent VariantValueCategories.
- To add multiple values to a product, multiple VariantValueCategory are needed.
In the following diagram, you can see one of the many variants of the base product, Oxford Shirt. The Blue L Cotton Oxford Shirt will be chosen if a customer makes the following selections on the storefront:
- Blue in the Color selector
- Large in the Size selector
- Cotton in the Material selector
The storefront knows to display these selectors on the product page because the Oxford Shirt product has the VariantCategories ColorSize, and Material among its supercategories. The selections displayed in each selector will come from the assigned VariantValueCategories.
When the customer selects from all three selectors, the system finds the GenericVariantProduct with the unique combination of VariantCategories and their specified values.
The matching GenericVariantProduct is the SKU, and is what gets added to the cart when the user clicks the Add to Cart button.

Creating Multi-Dimensional Variant Products in Backoffice
Let’s now turn to the steps necessary to define the product and category structure needed to support multi-dimensional variant products, using Backoffice.