Category Structure
Categories are organized in a tree-like hierarchy with unlimited nesting levels. A top-level (Level 1) category has no parent, while each child category references the category directly above it. This structure keeps your product catalog clean and makes it easy to apply shared settings — such as removal strategies or accounting properties — at a category level that cascades to its children. Here is an example of a three-level hierarchy:→ separator. For example, the Monitors category is displayed as:
Setup Methods
- Import Template
- Odoo UI
The Import Template method is recommended when you are performing an initial implementation or loading a large number of categories at once. It is faster and less error-prone than creating categories one by one through the UI.
Template Worksheets
The Product Category Import Template contains four worksheets — one for each hierarchy level. Each sheet must be completed before importing.| Sheet Name | Purpose |
|---|---|
| Category Level 1 | Top-level parent categories |
| Category Level 2 | Children of Level 1 categories |
| Category Level 3 | Children of Level 2 categories |
| Category Level 4 | Children of Level 3 categories |
Columns
Each worksheet uses the following columns:- Name – The category name as it will appear in Odoo.
- Parent Category – The category directly above this one in the hierarchy. Not used on Level 1 sheets.
- Force Removal Strategy – Optional. Defines how stock is removed from this category (e.g. FIFO, LIFO, FEFO).
Level 1 Example
Level 1 categories have no parent, so only the Name and optional Force Removal Strategy columns are needed.| Name | Force Removal Strategy |
|---|---|
| Products | First In First Out (FIFO) |
Level 2 Example
Level 2 categories reference their Level 1 parent by name in the Parent Category column.| Name | Parent Category | Force Removal Strategy |
|---|---|---|
| Hardware | Products | First In First Out (FIFO) |
| Services | Products | First In First Out (FIFO) |
| Consumables | Products | First In First Out (FIFO) |
Level 3 Example
Level 3 categories reference their parent using the full path inLevel1 / Level2 format.| Name | Parent Category | Force Removal Strategy |
|---|---|---|
| Monitors | Products / Hardware | First In First Out (FIFO) |
| Computers | Products / Hardware | First In First Out (FIFO) |
| Accessories | Products / Hardware | First In First Out (FIFO) |
| Consultancy | Products / Services | First In First Out (FIFO) |
| Maintenance | Products / Services | First In First Out (FIFO) |
| Office Supplies | Products / Consumables | First In First Out (FIFO) |
| Cleaning Products | Products / Consumables | First In First Out (FIFO) |
For Level 3 and Level 4 categories, the Parent Category column must use the full path format:
Level1 / Level2 (e.g. Products / Hardware). Using only the immediate parent name will cause an import error if that name is not unique across the template.Force Removal Strategy
The Force Removal Strategy field controls the order in which stock is picked or removed from inventory for categories that require it. Setting this at the category level applies the strategy to all products in that category unless overridden at the product or lot level.| Strategy | Full Name | How It Works |
|---|---|---|
| FIFO | First In First Out | The oldest stock (earliest receipt date) is removed first. This is the recommended default for most businesses. |
| LIFO | Last In First Out | The newest stock (most recent receipt date) is removed first. Less common; may be restricted depending on your country’s accounting standards. |
| FEFO | First Expiry First Out | Stock closest to its expiration date is removed first. Recommended for perishable goods, pharmaceuticals, and food products. |
FEFO requires expiration date tracking to be enabled on your products. Navigate to Inventory → Configuration → Settings and enable Expiration Dates under the Traceability section before using this strategy.