Design your model

Variants and family variants

Model one article that exists in several sizes or colours, without duplicating everything that is shared.

A safety glove in five sizes and three colours is one product that varies along two dimensions. Modelling it as fifteen unrelated products is the mistake that turns a one-line description change into fifteen edits, of which somebody will do eleven.

The model

  • Product model: the shared level. Description, manufacturer, certificates, images, marketing copy.
  • Axes: the dimensions along which it varies. size, colour.
  • Variant products: the sellable articles, one per combination. SKU, barcode, and anything that differs per size.

A family variant is the definition: it belongs to a family and declares the axes plus which attributes sit at which level. A product model splits into variants along the axis attributes; everything above a level is inherited. Two levels at most.

Axes must be single-select attributes. A measurement or free-text field cannot be an axis, because the platform has to enumerate the possible values to generate the combinations.

Deciding what lives where

The rule: if the value is the same for every variant, it belongs on the model.

AttributeLevelWhy
descriptionModelSame glove, whatever the size
manufacturerModelSame
certificationModelSame
sizeVariant (axis)This is what varies
colourVariant (axis)This is what varies
skuVariantEach sellable article needs its own
eanVariantPer article
weightVariantA size 11 glove weighs more than a size 7

Weight is the interesting one. It is not an axis, but it does differ per variant, so it lives at the variant level without being part of the combination grid.

Create a family variant

  1. Go to PIM › Data model › Family variants.
  2. Select New family variant.
  3. Choose the Family it belongs to.
  4. Enter a Code and the Labels (i18n).
  5. Under Variation axes, add one entry per level, outermost first. For each level, name the Axis attributes (the single-select attributes along which this level splits, size and colour for the glove) and the Attributes at this level (everything else that is entered per variant, such as sku, ean and weight).
  6. Attributes you do not list on any level stay on the model.
  7. Save.

Create a product model and its variants

  1. Go to PIM › Products and select New product.
  2. Set Kind to Model, choose the Family and the Family variant. Enter the model's SKU.
  3. Fill in the shared attributes. This is the work you now do only once.
  4. For each combination you sell, create another product with Kind set to Variant and Parent (model) pointing at the model. Enter its own SKU and the values of the axis attributes and the variant-level attributes.

You do not have to create every mathematical combination. Five sizes and three colours is fifteen possible variants, but if you only stock nine of them, create nine. The Variants column in the product list shows how many each model has.

When not to use variants

Variants are for products that are the same thing in different executions. They are not for:

  • Accessories and spare parts: those are separate products linked by an association type.
  • Products that merely look similar: two fittings from different manufacturers are two products.
  • Packaging units: 1 piece vs. a box of 100 is usually a pricing and logistics question. Model it as a unit of measure unless the box has its own SKU and stock.

Changing variants later

ChangeWhat it means
Add a value to an existing axis (a sixth size)Routine. Add the option to the attribute, then create the new variant products.
Add an axis to a family variant that already has productsA structural change. Every existing variant now needs a value for the new axis. Plan it.
Move an attribute between the model and the variant levelValues already entered stay where they were entered; the products of that family variant need to be reviewed. Plan it.
Change a variant's Parent (model)The variant inherits the shared values of the other model from then on. Its own values and its SKU stay as they are.

Next