Managing product variants in Odoo is a core part of inventory and product management, especially if your products come in multiple sizes, colors, models, or configurations.
What are Product Variants?
In Odoo:
A product template is the base product (e.g., “T-shirt”)
A variant is a specific combination of attributes (e.g., T-shirt, Red, Size M)
This allows you to manage inventory, pricing, and sales for each variant without creating separate products manually.
Enable Product Variants
Go to: Inventory → Configuration → Settings
Enable: Product catalog> Variants
Save
📌 Optional: enable Lots & Serial Numbers if you also track batches or serials per variant.
Create Attributes
Attributes define the differentiators of variants (size, color, etc.):
Go to: Inventory → Products → Attributes
Click Create
Example:
Name: Size
Values: S, M, L, XL
Add other attributes (e.g., Color → Red, Blue, Green)
Create Product Template
Go to: Inventory → Products → Products → Create
Enter Product Name (e.g., T-shirt)
In the Variants tab:
Add the relevant Attributes (e.g., Size, Color)
Set Can be Sold, Can be Purchased, Can be Inventoried
Configure Variant-specific Details
Extra Price: Add extra cost if a variant costs more
Barcode / SKU: Optional unique identifiers
Weight, Volume, Image: You can override template defaults per variant
Odoo Auto-generates Variants
When you save the product template, Odoo automatically generates all possible combinations.
Example:
| Product Template | Size | Color | Variant Name |
|---|---|---|---|
| T-shirt | S | Red | T-shirt (S, Red) |
| T-shirt | M | Red | T-shirt (M, Red) |
| T-shirt | L | Blue | T-shirt (L, Blue) |
Manage Inventory Per Variant
Go to Inventory → Products → Product Variants
Check Quantity on Hand, locations, and lot/serial numbers per variant
You can track stock, reorder, and perform inventory adjustments per variant
Sales & Purchase of Variants
When creating a Quotation / Sales Order / Purchase Order:
Select the product template
Odoo will show all variants for selection
Pricing can be variant-specific if configured
BITS Team
