OdooWiki OCA HUB

Sale Product Classification

sale_product_classification folder_open OCA/sale-workflow open_in_new
Sales License: AGPL-3

Classify products according to their sales and seasonality.

auto_awesome What this module does

AI-generated from the code · Odoo 12.0

Classify products automatically as A, B, C or D based on how much they sold in a chosen period, and mark how seasonal each product is. Thresholds and periods are set per company in Sales settings.

This module adds two extra labels on every product: a sales classification (A, B, C or D) and a seasonality classification (Very high, High, Medium, Low). Both appear on the product form and on product variants, right after the product category, and can be used as filters in the product search view (Sales Classification A to D). Only sales managers can edit them; other users see them read-only.

In Sales settings you define, per company, the sales amounts that separate classes A, B and C (D is everything below C), how many past days of sales to look at, and how many days a newly created product should be ignored. Defaults are 10,000 / 5,000 / 2,500, 365 days evaluated and 0 days ignored.

The classification is based on confirmed sales in the chosen period, using delivered quantities to weight the revenue. A scheduled job named "Classify products by sales" can run the calculation automatically (it is delivered inactive, weekly by default), and it processes every company with its own rules. Products created more recently than the "days to ignore" setting are left out of the calculation. The module works on product.product, product.template, res.company and res.config.settings.

Depends on

sale
Models and fields (4)
  • res.company · extends an existing modelsale_classification_a (Sales equal or above this amount), sale_classification_b (Sales equal or above this amount and below A), sale_classification_c (Sales equal or above this amount and below B), sale_classification_days_to_ignore (Ignore products newer than these days), sale_classification_days_to_evaluate (From the date the action is run, evalute these days)
  • product.product · extends an existing modelsale_classification (Sales classification), seasonality_classification (Seasonility)
  • product.template · extends an existing modelsale_classification, seasonality_classification
  • res.config.settings · extends an existing modelsale_classification_a, sale_classification_b, sale_classification_c, sale_classification_days_to_ignore, sale_classification_days_to_evaluate

Text generated by AI (DeepSeek) from reading the Odoo 12.0 code on GitHub; it may contain mistakes, so check the code before deciding. View the code on GitHub

Availability by version

Reviewed: 2026-11-03
Confirmed (verified in repository and branch) Estimated (unverified) No information

Confirmation status: 1 confirmed, 8 with no information of 9 versions.

Sources · Odoo 12.0

Confirmed on 2026-11-03 in branch 12.0 of OCA/sale-workflow.

terminal Installation and usage

OCA documentation · Odoo 12.0

To configure this module, you need to:

  • Go to Sales > Configuration > Settings and Product Catalog group.
  • There you can configure the sales amount ranges that a product has to acomplish to be consider in each sales classification group.
  • By default, a period of 365 days will be evaluated, but it can be set here as well.
  • We can also set a minimum product life in the Sales classification days to ignore setting.

A cron is available to schedule the classification evaluation periodically. Go to Settings > Technical > Automation > Scheduled Actions and set the Classify products by sales cron to your preferred settings.

If you want to configure your products by hand, you can go to any of them and set the Sale Classification and Seasonality Classification on hand.

No verified information in OCA: Installation.

info

Data imported from GitHub: this sheet reflects the latest catalog review, not a live lookup. Always check the module documentation and staging before installing in production.