Using variants (colour, size, fit)

Odoo has support for variants such as colour, size and fit.

When creating a product, you can specify multiple attributes (e.g. Size and Colour) and then select a series of values for each one:

Sales Variant Selection is new in Odoo 13, with two options for selecting variants in sales orders:

1. Order Grid Entry

2. Product Configurator


Go to Sales / Configuration / Settings

  1. Select Variants
  2. Select Variant Grid Entry (if required)
  3. Select Product Configurator (if required)
  4. Save
  5. Click on “Attributes” (or can select from the menu)


  1. Display type can be a radio button, select (dropdown) or colours
  2. Variant Creation has three options:
    • Instantly (default, simplest option).
    • Dynamically (variants are only created when needed)
    • Never
  3. In the “Attribute Values” tab, you can add or delete attribute values

Note: in Odoo 12 the variant creation options have different names, but the same functionality:

  • Always
  • On Demand (when the product is ordered)
  • Never

If the “Dynamically” / “On Demand” option is selected for an attribute it will apply to all the variants for products with that attribute.

The “never” option is useful if you want to record an attribute on an order but don’t need to maintain inventory at that level. You must have at least one attribute for which variants can be created, otherwise you will not be able to place orders!

Limit variants that can be sold

It’s possible to limit which variants can be sold (when using the Configurator and on the Website).

Here the black color is not available for Aluminium.

Click on “Configure Variants” in the Product Template:

Black is excluded for Aluminium (and Aluminium is $50.40 extra)


Odoo has two closely linked Models (database tables) for products:

  1. Product Template (product.template)
  2. Product (product.product)

If you don’t use variants, then these two Models (tables) will be the same. The second one [product.product] is what is used for orders, inventory transactions, etc., so it is needed whether or not you have variants.

If you do use variants, then the “parent” item is on product.template and the variants (SKUs) are on product.product

There are several different scenarios:

  1. If a product has no attributes, a single record is created on product.product (dummy variant) 
  2. If a product does have attributes, multiple records can be created on product.product
    • If variants are created instantly / always (which is the default), then there will be one record for each of the combinations of attributes (e.g. 3 colours and 3 sizes = 9 variants).
    • If variants are created on demand / dynamically, then there will be one record for each combination of attributes that has been used.
    • If variants are never created for a particular attribute then there will be no records on product.product for that attribute, but it can be selected on an order.
      • This option should therefore only be used for an attribute that is recorded on an order but not used for recording inventory.

Add attributes to a product

It is possible to add attributes to a product that didn’t previously have them. This can be problematic, so it would be better to create a new product and stop using the old one, but if you do make this change please note:

  • The single (dummy variant) record on product.product will be archived (if there are orders or inventory) or deleted. 
    • This is because (in this scenario, for a product with attributes) you can’t buy or sell “a T-Shirt” – you have to specify that you want a Blue XL T-Shirt.
  • However, if you have orders for the dummy variant, these can be processed through to completion (because the record on product.product was archived rather than deleted).
  • If you have inventory for the dummy variant you will need to make manual adjustments.

3 thoughts on “Using variants (colour, size, fit)

  1. Do you know the way to show only the specific attributes of the selected variant in the specifications part of the ecommerce page, rather than showing a list of all the available attributes?

    For example my site currently shows:
    Colour: Green with Gold Luster or Bordeaux Wine or Dark Gray or Cream with Gold Luster or Silver Gray or Amaranth or Bean Green or Bronze or Brown or Forest Green or Gold or Lilac or Royal Blue or Silver or Violet

    Whereas, if I have the Lilac item selected I’d rather it just showed:
    Colour: Lilac


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s