Product Creation in Odoo 19: Structuring Products in the Inventory App

Matt Richard
March 20, 2026
Product Creation in Odoo 19: Structuring Products in the Inventory App

The Role of Products in Odoo’s Inventory App

In Odoo, products sit at the center of nearly every operational workflow. Sales orders, purchase orders, warehouse movements, manufacturing operations, and accounting entries all rely on the configuration defined at the product level.

Creating products in Odoo is therefore more than simply entering names or prices.. The configuration applied to each product determines how inventory is tracked, how procurement is triggered, and how products move through the warehouse.

Understanding how to properly structure product records ensures that inventory operations remain organized, predictable, and scalable as a business grows.


Where Products Exist in Odoo

Products in Odoo are shared records used across multiple applications including Inventory, Sales, Purchase, Manufacturing, and Website. Rather than belonging to a single module, products act as centralized records that support operational workflows across the entire system.

Because of this structure, a product created once can be used in sales orders, purchase orders, warehouse operations, manufacturing processes, and online storefronts.

In practice, products are most commonly managed through Odoo’s Inventory app, where inventory behavior and logistics settings are configured. However, the same product records remain accessible from other applications depending on the workflow.

Product Templates and Product Variants

When a product is created in Odoo, the system first generates a product template. The template acts as the base record that defines shared information such as the product name, category, pricing, and operational settings.

Screenshot 2026 03 11 154728

If a product includes attributes such as size, color, or material, the template can generate multiple product variants, which represent specific versions of that product.

This structure allows organizations to manage shared product information at the template level while maintaining individual inventory quantities, barcodes, and SKUs at the variant level.

This article focuses on configuring the core product record, while product variants and attributes will be explored in greater detail in a later article.


Defining Product Behavior

When creating a product in Odoo, several configuration fields determine how the product behaves across the system. These settings control how the product is sold, purchased, tracked in inventory, sourced from vendors, priced in transactions, and integrated with accounting and logistics workflows.

Understanding how these settings work together helps ensure that products behave consistently across procurement, warehouse activity, and financial reporting.

Sales and Purchase

At the top of the product form, Odoo includes a group of checkboxes that determine how the product can be used across different applications. These options define the operational role the product plays within the system.

The exact options available may vary depending on the modules installed in the database. For example, additional options such as Point of Sale, Expenses, Subscriptions, or other module-specific behaviors may appear when those applications are enabled.

Screenshot 2026 03 11 210003

In most standard Odoo environments, Sales and Purchase are available by default:

Enabling Sales allows the product to be added to quotations and sales orders. This is typically enabled for any product or service offered to customers.

Enabling Purchase allows the product to be purchased from vendors and included on purchase orders. This is commonly used for raw materials, resale products, or operational supplies.

These options define how the product is used commercially, independent of its physical characteristics.


Product Configuration Tabs

Once the product’s operational role has been defined, the remaining configuration is organized across several tabs on the product form. Each tab controls a different aspect of how the product behaves across inventory operations, procurement workflows, and accounting processes.

Understanding what each tab controls helps ensure products are configured consistently across the system.

General Information

The General Information tab contains the core details that define the product itself. These fields establish the product’s identity, pricing structure, and basic operational configuration.

Product Type

In Odoo, both goods and services are configured as products. When creating a product, selecting the correct Product Type is important because it determines how the item behaves with other applications.

Odoo provides three product types:

  • Goods
  • Service
  • Combo

Screenshot 2026 03 11 213001

Goods represent tangible products that a company buys, sells, stores, or manages within inventory.

Services represent non-material offerings such as consulting, installation, or maintenance.

Combo represents configurable product bundles that combine multiple goods or services into a single commercial package.

1) Goods Product Type

When Goods is selected, the product is treated as a physical item that can move through warehouse operations and supply chains. This enables additional inventory-related configuration options.

Several fields become relevant for managing physical products.

Screenshot 2026 03 11 215047

The Invoicing Policy determines when a customer invoice is generated for the product.

Options include:

  • Ordered Quantities – Regular invoices can be created based on quantities ordered
  • Delivered Quantities – Regular invoices can only be created after products are delivered

Screenshot 2026 03 11 214914

This setting helps align invoicing with fulfillment processes.

The Track Inventory field determines whether Odoo maintains stock quantities for the product.

When enabled, inventory movements update the quantity on hand as products are received, transferred between locations, or delivered to customers. This allows Odoo to maintain accurate stock levels across warehouse operations.

When inventory tracking is not enabled, Odoo does not maintain stock quantities for the product. This approach is commonly used for items that are consumed quickly or used operationally where precise stock counts are unnecessary, such as office supplies, packaging materials, or low-value production items.

Screenshot 2026 03 11 215246

Inventory tracking can be configured in different ways, including:

  • By Quantity
  • By Lots
  • By Unique Serial Number

Enabling inventory tracking also activates other inventory features such as stock valuation, warehouse routes, and reordering rules.

The Quantity on Hand field displays the current stock level of the product across all inventory locations.

This value updates automatically as inventory moves through the system.

2) Service Product Type

When Service is selected, the product represents an intangible offering rather than a physical item.

Because services are not stored in inventory, warehouse operations and stock tracking fields are not required. Instead, service products focus on how work is created, delivered, and billed after the sale occurs.

In many implementations, selling a service automatically triggers operational work such as projects, tasks, or field service activities, linking the sales process directly to service delivery.

While service configuration can become quite detailed depending on installed modules, the fields below represent the core options typically used when setting up service products.

Screenshot 2026 03 11 220009

The Create on Order field determines what operational activity should be generated when the service is sold.

Screenshot 2026 03 12 122450

Available options typically include:

  • Nothing – no operational record is created when the service is sold.
  • Task – creates a task in a specified project to track the work performed.
  • Project & Task – creates a new project and an initial task for the service.
  • Project – creates a new project associated with the service.

These options allow organizations to automatically initiate operational work when a sales order containing the service is confirmed, linking the sales process directly to project or task management.

The Invoicing Policy determines when the service is billed to the customer. Because services are often delivered over time rather than shipped as physical items, Odoo provides several billing models to match different service delivery structures.

Screenshot 2026 03 12 122607

Available options include:

  • Prepaid / Fixed Price – the service is invoiced as soon as it is sold. This is commonly used for fixed-price service agreements.
  • Based on Timesheets – invoices are generated based on the time tracked against the service. This option is often used for hourly consulting or time-based service work.
  • Based on Milestones – invoices are generated when predefined project milestones are reached. This is commonly used for project-based services with staged payments.
  • Based on Delivered Quantity (Manual) – the service is invoiced according to manually entered delivered quantities. This option allows organizations to invoice work after it has been completed without relying on timesheets.

These options allow organizations to align billing with how services are delivered and tracked operationally.

A deeper exploration of service configuration, project integration, and service billing models will be covered in a later article in this series.

3) Combo Product Type

The Combo Choices field defines the groups of products that make up the combo offering. Each combo choice represents a defined group of selectable products that will be available when the combo is added to an order.

Screenshot 2026 03 12 123355

Rather than representing a single predefined bundle, combo products allow customers or sales users to choose from a set of options within each group.

Screenshot 2026 03 12 123645

This structure allows organizations to offer flexible bundles while maintaining control over the available product options.

Combo choices are typically configured separately within the system and then assigned to the combo product through the Combo Choices field.

Screenshot 2026 03 12 123600

It is important to distinguish combo products from manufacturing kits or product bundles. Combo products should not be confused with manufacturing kits or product bundles. Combos are designed for configurable sales scenarios, most commonly in Point of Sale environments, where customers choose items from predefined options.

Product Pricing and Identification

The right side of the General Information tab contains fields related to product pricing, taxation, and identification.

These fields help determine how the product is priced in sales transactions, how taxes are applied, and how the product is categorized and identified within the system.

Screenshot 2026 03 12 124453

The Sales Price defines the default price used when the product is added to quotations or sales orders. This value can later be adjusted through price lists or customer-specific pricing rules.

The price is defined per unit of measure, shown next to the price field. This unit defines the quantity the entered sales price applies to.

The Sales Taxes field determines which taxes are applied when the product is sold. These taxes are automatically added to sales orders and invoices unless overridden by fiscal positions or other tax configurations.

The Cost field represents the internal cost of the product. Depending on the configured costing method, this value may be manually entered or automatically updated through purchase orders or inventory valuation.

The Purchase Taxes field defines the taxes applied when the product is purchased from a vendor. These taxes are automatically included on purchase orders and vendor bills.

The Category field assigns the product to a product category. Product categories act as configuration containers that control how groups of products behave across accounting, costing, inventory valuation, and warehouse operations.

For a deeper explanation of how categories structure these behaviors, see our article on Odoo 19 Product Categories: Structuring Inventory and Accounting.

The Reference field is typically used to store an internal SKU or product code that uniquely identifies the product within the organization.

The Barcode field allows the product to be scanned during warehouse operations, enabling faster receiving, picking, and inventory counting.

The Company field controls whether the product is shared across companies or restricted to a specific company in multi-company environments.

Attributes and Variants

The Attributes & Variants tab is used when a product has multiple variations such as size, color, or material. Instead of creating separate product records for each variation, Odoo allows a single product template to generate multiple product variants.

Product variants maintain separate inventory quantities, barcodes, and references while still inheriting shared configuration from the template.

Screenshot 2026 03 12 134405

Attributes define the characteristics of the product, while variants represent the specific combinations of those attributes.

Sales 

The Sales tab contains settings that control how the product appears and behaves during the sales process. These fields help enhance the customer purchasing experience and support upselling opportunities.

Screenshot 2026 03 12 135207

The Packagings field allows different sales packaging options to be defined for the product. These packaging configurations represent alternative quantities in which the product can be sold, such as boxes, cases, or packs.

The Tags field allows products to be categorized using custom labels. Tags can help organize products for internal management or reporting purposes.

The Optional Products field allows related products to be suggested when the main product is added to a quotation or cart. These recommendations appear as optional add-ons that sales teams or customers can include in the order.

Screenshot 2026 03 12 135106

Prices

The Prices tab allows product-specific pricing rules to be defined through pricelists. These rules override the default Sales Price when the product is sold under a specific pricing configuration.

Each entry links the product to a pricelist and defines the price that should apply when that pricelist is used.

Screenshot 2026 03 12 140921

The Pricelist column shows which pricing structure the rule belongs to. Pricelists are typically used to define different pricing strategies for specific customer groups, sales channels, or regions.

The Applied On column indicates the scope of the pricing rule. In this case, the rule applies specifically to the selected product.

The Price field defines the product price when the associated pricelist is used.

The Min. Quantity field allows quantity-based pricing to be configured. This enables price breaks when customers purchase larger quantities.

Purchase

The Purchase tab defines how the product is sourced from vendors and how purchasing transactions should behave. These settings help automate procurement workflows and ensure vendor-specific purchasing information is available when creating purchase orders.

Screenshot 2026 03 12 141113

The Vendor section allows suppliers to be associated with the product. Multiple vendors can be configured, each with their own purchasing conditions.

The Quantity field defines the minimum quantity required for the specified vendor pricing rule. Vendor pricing can vary depending on purchase quantities, allowing organizations to configure volume-based supplier pricing.

The Unit field defines the unit of measure used when purchasing the product from the vendor. This allows the purchasing unit to differ from the product’s default unit of measure when necessary.

The Unit Price represents the cost charged by the vendor for the specified quantity and unit. This price is automatically applied when the vendor is selected on a purchase order.

The Currency field defines the currency used by the vendor for the product price. This allows Odoo to correctly manage purchasing transactions with international suppliers.

The Lead Time field defines the expected number of days it takes for the vendor to deliver the product after a purchase order is confirmed.

This information helps Odoo estimate delivery dates and supports procurement planning.

Vendor Bills Control Policy

The Control Policy determines how vendor bills are validated against purchase orders.

Screenshot 2026 03 12 142238

Two options are available:

  • On ordered quantities
    Vendor bills are controlled based on the quantities specified in the purchase order.
  • On received quantities
    Vendor bills are controlled based on the quantities actually received into inventory.

This setting helps ensure purchasing invoices align with the company’s receiving and billing processes.

Inventory

The Inventory tab contains configuration related to logistics, traceability, and warehouse operations. These fields help define how the product moves through inventory workflows and how it is handled during receiving, manufacturing, and delivery processes.

Screenshot 2026 03 12 142335

The Responsible field identifies the user responsible for managing any activities associated with the product. This is primarily used for internal organization and product ownership.

The Customer Lead Time defines the number of days between the confirmation of a sales order and the expected delivery of the product. Odoo uses this value to calculate the promised delivery date shown on sales orders.

The HS Code (Harmonized System Code) is an international classification used for customs declarations when products are shipped across borders.

The Origin of Goods field identifies the country where the product was manufactured or produced. This information is often required for international shipping and trade documentation.

The Production Location defines the default location where components are consumed during manufacturing operations.

The Inventory Location is used during inventory adjustments to record stock differences when quantities are manually corrected.

Accounting

The Accounting tab defines how financial transactions involving the product are recorded in the company’s accounts.

In most implementations, these accounts are inherited from the product category to ensure financial consistency across similar products.. The fields in this tab allow those defaults to be overridden at the individual product level when necessary.

Screenshot 2026 03 12 143802

The Income Account defines the revenue account used when the product is sold.

The Expense Account defines the account used to record costs associated with the product.

If the fields are left empty, Odoo uses the default accounts configured on the product’s category.


Final Thoughts

Products sit at the center of many workflows within Odoo. Sales orders, purchase orders, inventory movements, and management all rely on the configuration defined at the product level.

While creating a product may appear straightforward, many operational issues organizations encounter in Odoo can be traced back to how products were initially configured. When product records are structured correctly from the beginning, downstream processes such as purchasing, warehouse operations, and reporting tend to function far more predictably.

Taking the time to properly configure products helps ensure that inventory operations remain organized, scalable, and aligned with the broader system architecture.