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
- Select Variants
- Select Variant Grid Entry (if required)
- Select Product Configurator (if required)
- Click on “Attributes” (or can select from the menu)
- Display type can be a radio button, select (dropdown) or colours
- Variant Creation has three options:
- Instantly (default, simplest option).
- Dynamically (variants are only created when needed)
- 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:
- On Demand (when the product is ordered)
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:
- Product Template (product.template)
- 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
There are several different scenarios:
- If a product has no attributes, a single record is created on
- If a product does have attributes, multiple records can be created on
- 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.productfor 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.productwill 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.productwas archived rather than deleted).
- If you have inventory for the dummy variant you will need to make manual adjustments.