Chapter 2 Sales Products And Variants

Every line on a sales order depends on a product. The product decides whether it can be sold, whether inventory is needed, which price, tax, and invoicing policy apply, and how the later fulfillment flow works. If a product has differences such as color, size, capacity, or specification, product variants may also be involved.

This chapter explains product design from the sales perspective: which fields affect quotations and sales orders, when variants are useful, when a normal product is enough, and how to avoid later confusion in pricing, stock, and invoicing because the product structure was not designed clearly.

Product Variant Concept

Product variants are not enabled by default in Odoo. They appear only after enabling variants in Sales -> Configuration -> Settings -> Products.

Enable product variants

After variants are enabled, two menus become important: Product Templates and Product Variants. Technically, they correspond to two different models: product.template and product.product. Their forms look very similar. When a shared field is changed on the template or on a variant, the shared value is reflected on both sides. Only variant-specific fields exist only on variants and do not directly appear as template-level values.

Variant Attributes

Variant attributes describe configurable differences of a product. For example, an iPhone may have color, storage, and version attributes. Their values may be black, 128 GB, or iPhone 15.

Variant attributes

Attribute Display Types

Odoo natively supports several display types for variant attributes.

Radio button:

Radio variant attribute

Pills:

Pills variant attribute

Select:

Select variant attribute

Color:

Color variant attribute

The display type affects how the salesperson or customer chooses variants in the product configurator. It does not change the business meaning of the attribute itself.

Custom Variant Attribute Values

Another variant usage pattern is to allow users to enter a custom attribute value. Attribute values include an "Is custom" option. After it is enabled, users can enter custom content when creating an order.

For example, if the system has only black and white iPhone colors, but sales sometimes needs to enter a special color, you can add a "Custom" value and mark it as custom.

Custom attribute value setting

When creating an order, the user will see an extra custom option.

Custom option on order

The user can enter the required value and create the order.

Custom value entered

One detail is important: although a custom value is entered, Odoo does not necessarily create a real new product variant. In the native behavior, the custom value is generally stored as information on the sales order line, while the product variant still uses the predefined "Custom" variant.

If the business needs to create a real variant in the system, one method is to create it manually. Another method is to use the automatic creation capability in Qingdao Ohm's sales solution. After enabling the sales extension under Settings -> Ohm -> Sales Features, the related feature becomes available.

Enable sales extension

Then grant the user the permission to create variants from custom attributes.

User permission for custom variant creation

The attribute value list will show an additional column.

Create variant option

After selecting the create-variant option, the system can automatically create the custom-attribute variant when the order is confirmed.

Automatically created purple iPhone variant

This kind of enhancement should be used only when the company really needs those custom combinations to become reusable stock, pricing, or reporting objects. If the custom value is only descriptive text for one order, storing it on the order line is usually enough.

Variant Creation Mode

Odoo supports three variant creation modes:

Mode Meaning
Instantly Create variants immediately when the product is saved
Dynamically Do not create all variants at product setup time; create a variant only when it is actually used
Never Do not create variants for this attribute combination

Once the variant creation mode has been used on a product, it can no longer be edited casually. This is why product structure should be designed before large-scale import or go-live.

Variant Configuration Mode

Variant configuration on orders supports two modes:

Mode Meaning
Product Configurator A guided configurator, suitable for selecting one configured product at a time
Order Grid Entry A grid configurator, suitable for entering multiple variant quantities at once

Order grid entry

Grid entry is useful for products such as clothes, shoes, and items with size or color combinations. Product Configurator is more suitable when the salesperson needs to build one configured product with clear options.

Common Product Fields

The product form contains many settings that affect the sales flow. We start with the common fields.

Product Type

A product template can define whether the product can be sold or purchased, and it also stores product type, sales price, cost, taxes, and other information. The first concept to understand is product type.

In recent Odoo versions, product types can be understood as:

Type Meaning
Goods Physical or consumable items. They may or may not be tracked in inventory.
Service Non-stock services such as consulting, support, or implementation work.

For goods, inventory tracking can be configured further. Depending on the product and version, common tracking modes include lots, serial numbers, or quantity-based stock management.

In Odoo 17 and earlier versions, product types were often shown as three categories:

Older Type Meaning
Consumable A product that can be used without strict stock control, such as sand or water
Service A non-physical service, such as consulting
Storable product A physical product with controlled stock in and out

Because product type affects delivery, stock reservation, invoicing, and cost, it should be decided carefully during master data preparation.

Product Category

Product category defines which category the product belongs to. Categories can have parent categories and can store advanced settings such as removal strategies, inventory valuation methods, and accounting accounts.

If a removal strategy is set on the product category, products under that category may follow the category strategy instead of the location-level strategy. Native strategies commonly include FIFO and LIFO. Detailed strategy behavior is explained in the inventory location and putaway/removal chapters.

Internal Reference

Internal Reference, also known as default_code, is usually the SKU used internally by the company. Odoo does not enforce uniqueness by default, but uniqueness can be added through technical control if required by the implementation.

Below Internal Reference is Barcode, which stores the product barcode or unified product code. Barcode also does not necessarily enforce uniqueness by default.

Other common sales-related fields include:

Field Purpose
Sales Price The standard selling price of the product
Customer Taxes The default sales tax used when selling the product
Cost Cost basis used by margin, inventory valuation, or accounting flows
Invoicing Policy Whether to invoice ordered quantities or delivered quantities

If more than one selling price is needed, use pricelists rather than creating duplicate products.

Code

Odoo 18 introduced another field often translated as Code. Unlike Internal Reference, this code is a computed field. It is derived from the vendor product information on the product.

In simple terms: if the current partner is a vendor, the code may use the vendor product code from the vendor pricelist. Otherwise, Odoo falls back to the internal reference.

Product Image

A product can upload a default image. Images are useful for website sales, POS, rental, and product selection. For internal B2B sales, the image is not always required, but it can still help users choose the correct product quickly.

Product Price

The Sales Price or list price is the standard selling price of the product.

In Odoo 18 and earlier versions, the display precision of sales prices was commonly controlled by the Product Price decimal precision setting, with two decimal places by default. After February 2026, the standard sales price supports higher precision, although the minimum precision still defaults to two decimal places in normal usage.

Implementation Advice

Sales product design should serve the downstream process. In the first phase, do not rush to import every historical product and every old specification. Start with active products that are still sold, still stocked, or still invoiced.

Product variants should also be used with restraint. Standard combinations such as color, size, and capacity are good candidates for variants. Highly customized specifications that differ for every customer or every order are usually better handled through descriptions, configurators, secondary units, or custom solution design.

This chapter explained sales products, product templates, product variants, and common product fields. The next chapter moves into quotations and customer confirmation: how these products are placed into a quotation, and how templates, expiration dates, online signatures, and online payments turn a proposal into a real sales opportunity.

results matching ""

    No results matching ""