In Odoo 17 a product is a template plus the variants generated from its attributes, and its type decides the rest: storable products track stock, consumables do not, and services are billed by quantity, timesheet or milestone. Pricelists sit above the catalogue and rewrite the price by customer, currency, quantity or date. Both are shared by Sales, Purchase, Inventory, eCommerce and Point of Sale.
Odoo supports several product types, each with different behaviors:
- Storable Product: Tracks inventory levels and stock moves
- Consumable: Doesn't track stock levels; always available
- Service: Used for tasks, consulting, labor, etc.
- Digital Product: Ideal for downloadable files or subscriptions
You'll choose the type during product setup, and it determines how Odoo handles inventory, sales, and delivery.
Setting Up Products and Variants
To create a new product:
Sales or Inventory โ Products โ Create
Key fields to configure:
- ๐ค Product Name
- ๐ Internal Reference (SKU)
- ๐งพ Description (for sales quotes or websites)
- ๐ฐ Sales Price and Cost
- ๐ Route (Buy, Make to Order, Dropship, etc.)
- ๐ท๏ธ Barcode and Units of Measure
Enable product variants to allow combinations like size, color, or material โ managed under the same product template.
Organizing with Product Categories and Attributes
Use categories to keep your catalog structured and filterable:
- ๐๏ธ Assign each product to a product category (e.g., Apparel โ Shoes)
- ๐งฌ Define attributes (e.g., Color, Size) for product variants
- ๐ Categories help with reporting, analytics, and inventory planning
Pro Tip: You can also assign fiscal positions, income accounts, and tax settings per category.
Creating and Applying Pricelists
Pricelists let you offer different prices to different customer groups, countries, or sales channels. Odoo supports:
- Fixed pricing: Set a specific price for each product
- Discounted pricing: Apply % discounts based on customer or order volume
- Cost-plus pricing: Add a margin over cost
To create one:
Sales โ Products โ Pricelists โ Create
You can assign pricelists manually or automatically based on customer profile, country, or website.
Using Pricing Rules and Discounts
Each pricelist can have detailed pricing rules:
- ๐๏ธ Set prices per product or category
- ๐ฆ Volume-based discounts (e.g., buy 10+, get 10% off)
- ๐ Date-specific promotions
- ๐ Currency and regional price support
Salespeople can also apply additional discounts on the quotation level (if permitted).
Connecting with Sales, Inventory, and eCommerce
Product data flows through all your Odoo apps:
- Sales: Products appear in quotes and sales orders
- Inventory: Track stock levels, locations, and reordering rules
- Accounting: Automate revenue and COGS entries
- eCommerce: Display catalog with variants, prices, and availability
This centralized setup ensures consistency across every department and touchpoint.
Conclusion
With Odoo 17, managing products and pricing is both powerful and user-friendly. Whether you're selling services, physical goods, or digital downloads โ your catalog can scale effortlessly and stay aligned with inventory and sales teams.
Need help structuring your catalog or configuring complex pricing rules? Our Odoo team can do it for you.
Questions we get asked
What product types does Odoo 17 have?
Three: Storable Product, Consumable and Service. Storable tracks quantities on hand and needs the Inventory app installed; consumable is a physical item Odoo does not count; service is non-material work, which Sales can invoice on ordered quantity, delivered quantity, timesheets or project milestones. The type is chosen on the product template and can be changed afterwards.
How does a pricelist set a price in Odoo 17?
A pricelist is a list of rules. Each rule applies to all products, a product category, a product or a single variant, and computes a fixed price, a percentage discount, or a formula based on the sales price, the cost or another pricelist. Rules can also carry a minimum quantity and a start and end date, so volume breaks and dated promotions are simply rules.
Can I show different prices per country or currency in Odoo 17?
Yes. A pricelist has its own currency, and you can attach it to country groups so a customer or website visitor from that region is served it automatically. A pricelist set directly on a contact wins over the automatic choice, and a salesperson can still change it on the quotation. With eCommerce installed, the website applies the same logic to visitors.
What is the difference between a product template and a variant in Odoo 17?
The template holds what every version shares: name, description, category, type, taxes and accounting. Variants are the sellable combinations produced from attributes such as size or colour, and they carry the barcode, internal reference, extra price and stock. A product with no attributes still has exactly one variant behind the scenes, and that is what stock moves and order lines point at.
