OdooWiki OCA HUB

Sale Product Catalog Extended

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

This module extends the standard Odoo product catalog available from sale orders with the following additions:

Multi-line product cards

When a product has more than one order line in the current sale order, the catalog renders one card per line instead of a single aggregated card. Each card shows the individual quantity and unit price for that specific line, allowing independent editing without opening the order form.

Per-line actions

Each in-order card exposes three inline actions:

  • New line – adds a new order line for the same product.
  • Edit – opens the specific order line form directly from the catalog.
  • Remove – removes that individual line from the order.

Search panel options

The catalog search panel gets these sections, combinable with each other and with the standard ones:

  • Origin: the cards shown, the products or the ones other modules add (e.g. one card per vendor row with sale_product_catalog_supplierinfo). It is only shown when such a module is installed.
  • Last sales: restricts the cards of the chosen origin to the products previously sold to the customer (last 180 days by default), most frequently sold first, then by delivered quantity.
  • Price: Last sale shows the unit price of the most recent delivered sale to the customer instead of the pricelist price, for the products that have one, and applies it to the lines added from the catalog.
  • History: the partner the sale history is matched against, the customer (commercial partner, including its child contacts) or the order delivery address. It is only shown when enabled in the settings and while the Last sales option or the Last sale price is active, as it has no effect otherwise.

The options preselected when the catalog is opened, the period and the product limit of the last sales are set in the Sales settings (see Configuration).

Exclude from last sales

The card dropdown menu adds an Exclude from last sales entry. It stores the product and the catalog history partner in a dedicated model, so that product is no longer offered by the Last sales option for any order of that partner. The Last sale price is not affected.

The entry is only shown while the Last sales option is active. On the vendor cards of sale_product_catalog_supplierinfo it excludes the product, not the vendor row.

The exclusion is dropped as soon as an order containing that product is confirmed for the same partner, so the product goes back to the Last sales option without any manual clean up. Adding the product to an already confirmed order has the same effect.

The exclusions can be checked and deleted in Sales > Configuration > Catalog Last Sales Exclusions, to offer an excluded product again without selling it.

Image zoom

Clicking on a product image in the catalog opens a full-size zoom dialog.

auto_awesome What this module does

AI-generated from the code · Odoo 18.0

Extends the product catalog of sale orders with extra search-panel filters (origin, last sales, price, history, sort), one card per order line with inline edit/remove actions, and a way to exclude products from a customer's last-sales list.

This module enriches the product catalog that opens from a sale order, without changing the order form itself.

  • When a product already has several lines in the order, the catalog shows one card per line, each with its own quantity and price, plus inline actions to add a new line, open that line in a small editable form, or remove it.
  • The catalog search panel gains new sections: Origin (which products are shown), Last sales (only products already sold to the customer, most frequent first), Price (show the last sale price), History (match history against the customer or the delivery address) and Sort (by name or category).
  • In Settings, under Sales, an "Order catalog options" block preselects these filters, hides the History and Sort sections if wanted, sets how many days of history and how many products the last-sales option uses, and chooses a grid or rows layout.
  • A new menu under Sales > Configuration lists products excluded from a customer's last sales; deleting a row offers the product again. Selling the product to that customer again removes the exclusion automatically when the order is confirmed or a line is added.
  • Lines added from the catalog replay the usual product onchange rules and can take the last sale price.

Depends on

Menus it adds

sale_catalog_product_exclusion_menu
Models and fields (5)
  • sale.order · extends an existing model
  • product.product · extends an existing modelcatalog_sort, catalog_last_sales, catalog_price_mode, catalog_origin_data, catalog_history_partner
  • sale.order.line · extends an existing model
  • res.config.settings · extends an existing modelcatalog_layout (Catalog layout), catalog_show_sort (Show the catalog sort), default_catalog_sort (Catalog sort), catalog_last_order_days (Catalog last sales days), catalog_last_order_limit (Catalog last sales limit), default_catalog_last_sales (Catalog last sales), default_catalog_price_mode (Catalog price), default_catalog_origin_data (Catalog origin), catalog_show_history_partner (Show the catalog history partner), default_catalog_history_partner (Catalog history partner)
  • sale.catalog.product.exclusion · new modelpartner_id, product_id

Text generated by AI (DeepSeek) from reading the Odoo 18.0 code on GitHub; it may contain mistakes, so check the code before deciding. The module is very large and only part of the code was read. 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 18.0

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

terminal Installation and usage

OCA documentation · Odoo 18.0

Go to Sales > Configuration > Settings. The Product Catalog block has the options of the catalog opened from a sale order.

Order catalog options

The options of the catalog search panel preselected when the catalog is opened:

  • Origin: the cards shown. Empty shows the products; other modules add further origins (e.g. Suppliers in sale_product_catalog_supplierinfo).
  • Last sales: only show the products sold to the customer, most frequently sold first.
  • Price: empty shows the pricelist price, Last sale the price of the last sale to the customer.
  • History: the partner the sale history is matched against. Empty matches the customer (commercial partner, including its child contacts), Delivery address the order delivery address. Check Show to show this section in the catalog search panel, hidden by default; the partner chosen here applies either way.
  • Sort: the order of the products. Empty keeps the order of the origin (favorites first, then by internal reference, or the most sold first for the last sales), Name sorts them by product name in the language of the user and Category by category and then by name. With the last sales, the most sold products are kept and then sorted. Check Show to show this section in the catalog search panel, hidden by default; the order chosen here applies either way.

They are saved as the global default value of the catalog fields of product.product (catalog_origin_data, catalog_last_sales, catalog_price_mode, catalog_history_partner and catalog_sort), so they can also be set per user or company in Settings > Technical > User-defined Defaults, as for any other field.

Order catalog last sales

  • Days: days of sale history used by the Last sales option and the Last sale price, 180 by default.
  • Product limit: maximum number of products shown by the Last sales option. 0 shows them all.

Order catalog layout

  • Grid: several product cards per row, as in the standard catalog.
  • Rows: one card per row, with the image, the product data and the quantity buttons side by side. On wide screens the price and the quantity on hand go to a column of their own, so the cards are lower, and on extra wide screens the vendor of the supplier cards too. Every card keeps the same positions in every origin. Everything other modules add to the card is kept. Small screens and grouped views keep the grid cards.

No verified information in OCA: Installation, Usage.

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.