OdooWiki OCA HUB

OCA sales modules for Odoo

Sales order workflow, quotations, pricelists, promotions, agent commissions and sales reports: building blocks to adapt the Odoo sales cycle to the way each company works. The catalogue has 503 modules in this area, 1 of them confirmed in Odoo 20.0 (reviewed on 2026-11-03).

Confirmed modules per version

12.0
111 modules
13.0
151 modules
14.0
205 modules
15.0
176 modules
16.0
232 modules
17.0
123 modules
18.0
245 modules
19.0
122 modules
20.0
1 module

OCA repositories in this area

Other areas

Modules in this area

  • Account commissionsOdoo 15, 16, 17
    account_commission

    Calculate and settle commissions on customer invoices, then create vendor bills to pay the agents. Adds commission analysis reports and a dedicated settlements menu.

  • account_commission_oca

    Adds commission tracking to customer invoices and lets you pay agents by creating vendor bills from commission settlements. Includes a commission analysis report.

  • account_invoice_pricelist_technical

    Prevents technical pricelists from being chosen on customer invoice forms, so only real, usable pricelists appear in the pricelist field.

  • account_multicompany_reporting_currency

    Adds a reporting-currency amount to invoices, bills and journal entries, so you can see and total each document in one shared company reporting currency.

  • base_multicompany_reporting_currency

    Lets you set one shared reporting currency for all companies in Odoo, directly from General Settings. Any model built on the provided mixin automatically stores and updates that reporting currency on its records.

  • CommissionsOdoo 15, 16, 17
    commission

    Define commission rules for agents, assign agents to customers and products, and generate commission settlements with printable reports.

  • commission_delegated_partner

    Lets you assign a delegate partner to a sales agent so commission invoices are issued to that delegate instead of the agent, while still showing the original agent on the invoice line.

  • Commission FormulaOdoo 15, 16, 17
    commission_formula

    Adds a new 'Formula' commission type so you can calculate agent commissions with a custom formula instead of fixed percentages. The formula is written on the commission record and is applied to sales order lines and invoice lines.

  • commission_formula_oca

    Adds a new 'Formula' commission type so you can calculate agent commissions with a custom formula instead of fixed percentages.

  • Commissions OCAOdoo 18, 19
    commission_oca

    Lets you define commission rules and agents, assign agents to customers and products, and generate commission settlements for chosen periods, with a printable settlement report.

  • contract_commission

    When recurring invoices are created from contracts, the commission agents configured for the contract's customer are automatically added to each invoice line.

  • Coupon ChatterOdoo 15, 16, 17
    coupon_chatter

    Adds a chatter (messages, followers and scheduled activities) to loyalty and coupon programs, so teams can log notes and plan follow-ups directly on each program.

  • coupon_commercial_partner_applicability

    Coupons generated for one contact can be redeemed by any other contact belonging to the same commercial entity (same company group).

  • coupon_copy_product

    When you duplicate a coupon reward, the copy keeps the same reward product as the original instead of losing it.

  • coupon_criteria_multi_product

    Adds a 'Multi Product' coupon criteria option to promotion programs, letting you set different minimum quantities for different product groups, all of which must be met for the coupon to apply.

  • coupon_domain_free_product

    Adds a new coupon reward type called Product Domain, letting you give free products chosen by a product domain instead of a single fixed product, with an optional maximum quantity.

  • coupon_domain_product_discount

    Lets you apply a coupon promotion discount only to the products that match a product domain, instead of listing each product manually. You also get a description of the eligible products on the coupon report.

  • coupon_incompatibility

    Lets you mark promotions as incompatible with each other, so that two conflicting promotions cannot be applied together. The link is automatically kept two-way between the promotions.

  • Coupon LimitOdoo 14, 15
    coupon_limit

    Adds limits to promotion programs so a coupon can only be applied a certain number of times per customer or per salesman. It is a technical base meant to be extended by sales and POS modules.

  • coupon_mass_mailing

    Link mass mailings to promotion programs. A 'Mailings' smart button on the promotion form shows how many mailings are linked and creates one automatically using the promotion's contact domain if none exist yet.

  • coupon_multi_gift

    Lets you configure several gift products (with quantities) as the reward of a single promotion, instead of only one free product.

  • coupon_multiplier_free_product

    Adds a new promotion reward type called "Multiple of" so you can set up 3x2-style offers or "buy this, get that free" deals that repeat as many times as the customer qualifies. You can also force the free product to be added and cap how many free units are…

  • coupon_portal

    Customers can see and manage their own coupons in the Odoo customer portal, with a dedicated Coupons page showing code, program, dates and status.

  • coupon_portal_commercial_partner_applicability

    Lets portal users see coupons that belong to their company (commercial partner) and its contacts, not only coupons linked to their own user contact.

  • coupon_promotion_generate_coupon

    Lets you link a coupon program to a second coupon program so the coupons it generates follow the rules of that other program. A button on the program form shows and opens the coupons of the linked program.

  • HR commissionsOdoo 12, 13, 14, 15, 16, 17
    hr_commission

    Adds a "Salesman (employee)" agent type so employees can earn commissions, and lets you mark their commission settlements as invoiced without creating an invoice.

  • hr_commission_oca

    Adds a new commission agent type called "Salesman (employee)" that links a partner to an HR employee, and lets you mark their settlements as invoiced without creating an invoice.

  • loyalty_card_fixed_expiration_date

    Lets you set a number of days on a gift card loyalty program so that each new card automatically gets a fixed expiration date counted from the day it is created.

  • loyalty_coupon_no_mail

    Adds a 'Never' option to the communication trigger of loyalty programs, so coupons can be generated without sending any email. It is the new default for coupon programs.

  • loyalty_criteria_multi_product

    Adds a "Multi Product" criteria option to loyalty program rules, letting you require several different products (each with its own minimum quantity) before a promotion or loyalty reward applies.

  • Loyalty incompatibilitiesOdoo 16, 17, 18, 19
    loyalty_incompatibility

    Lets you mark loyalty programs and promotions as incompatible with each other, so you can control which offers should not be combined.

  • loyalty_initial_date_validity

    Adds a Start Date field to loyalty programs and promotions, so you can define when a promotion becomes valid. It also checks that the start date is not later than the end date.

  • Loyalty LimitOdoo 16, 17, 18
    loyalty_limit

    Adds limits to loyalty programs: a maximum number of times a program can be applied per customer, and per-salesman limits with a strict mode. It is a technical base meant to be extended by sales and POS modules.

  • loyalty_mass_mailing

    Adds a "Mailings" button on loyalty programs so you can create or open email campaigns linked to a promotion, pre-filled with the promotion's contact filter.

  • loyalty_multi_gift

    Adds a new "Multi Gift" reward type to loyalty programs, letting you offer several gift products with quantities in a single promotion instead of just one.

  • loyalty_partner_applicability

    Restrict loyalty promotions to a chosen group of customers by selecting specific contacts or defining a customer filter on the promotion itself.

  • loyalty_program_chatter

    Adds a chatter (messages and activities) to loyalty programs, so you can log notes, schedule activities and follow up on each program directly from its form.

  • Partner contact sale info propagationOdoo 12, 13, 15, 16, 17, 19
    partner_contact_sale_info_propagation

    When a company's Salesperson is changed, this module automatically updates the same Salesperson on its contacts that have no Salesperson or still have the company's previous one.

  • Partner ProspectOdoo 12, 13, 14, 18
    partner_prospect

    This module marks each contact as a Prospect or an Actual Customer based on whether any confirmed sales or customer invoices exist. It adds the Prospect flag to contact forms, lists and filters, and hides prospects from the standard Customers menu by default.

  • Partner Sale PivotOdoo 12, 13, 15, 16, 17, 18, 19
    partner_sale_pivot

    Adds a "Sales Analysis" button on the customer form that opens a pivot table of that customer's sales, with products as rows and months as columns.

  • portal_sale_accept_terms

    Adds a free-text terms field on sales orders and shows it as a mandatory checkbox in the customer portal before the order can be confirmed or signed.

  • portal_sale_confirm_require_login

    Adds an option to force customers to log in before opening a quotation or sale order from a portal link, and blocks signing, accepting or paying until their contact details (phone, VAT, address, country) are complete.

  • portal_sale_list_extra_info

    Adds two extra columns, Client Order Ref. and Amount Untaxed, to the customer portal lists of sale orders and quotations, so customers see the reference they gave and the untaxed total directly in the list.

  • portal_sale_order_search

    Customers can now search their own sales orders and quotations in the customer portal by order reference, customer reference or customer name.

  • Portal Sale Personal Data OnlyOdoo 12, 13, 14, 15, 16, 17, 18, 19
    portal_sale_personal_data_only

    Restricts portal users so they only see their own quotations, sales orders, invoices and invoice lines, instead of all documents of their organization.

  • pricelist_by_category_qty

    Adds a 'Compute global discount' button on quotations and sales orders that recalculates line prices using the total quantity of each product category in the order, so volume discounts apply across products of the same category.

  • Pricelist CacheOdoo 14, 15, 16, 18
    pricelist_cache

    Stores precomputed product prices for every pricelist so customer price lists can be displayed quickly. Adds buttons on pricelists and customers to view cached prices, plus a daily job that rebuilds the cache.

  • pricelist_cache_rest

    Adds a secure web address that external systems can call to download the cached prices of a customer, using an API key. Administrators choose which API keys are allowed in the company settings.

  • pricelist_price_base_custom

    Adds a new "Custom Value" option to the base price choices of pricelist rules, letting the price be calculated from a value supplied by other code instead of the product's normal cost or sales price.

  • product_customerinfo_elaboration

    Lets you set default elaborations and an elaboration note per customer and product, and automatically fills them on sales order lines for that customer.

  • product_customerinfo_sale

    Shows each customer's own product code on sales order lines and uses the customer's minimum quantity when the product is selected. It also adds a 'Prices for customers' menu under Sales settings.

  • Product Form Sale LinkOdoo 12, 13, 14, 15, 16, 17, 18, 19
    product_form_sale_link

    Adds a "Sales" smart button on product and product variant forms showing how many confirmed sale order lines exist, and opens the matching sale order lines when clicked.

  • Product Price CategoryOdoo 16, 18, 19
    product_price_category

    Adds a Price Category field to products and lets you create pricelist rules that apply only to products in a chosen price category. This gives you a flexible way to group products for pricing without using product categories.

  • product_set_sell_only_by_packaging

    When a product can only be sold by packaging, this module warns you if product set lines for that product have no packaging, and a scheduled job automatically assigns the first valid packaging to those lines.

  • Product weekly sales hintOdoo 13, 15, 16, 18
    product_sold_by_delivery_week

    Shows a small weekly sales history for each product, so salespeople can see at a glance in which of the last weeks a product was actually sold and delivered to customers.

  • product_supplierinfo_for_customer_elaboration

    Lets you set default elaborations and an elaboration note for each customer and product, and automatically fills them in on sales order lines for that customer.

  • Product Supplierinfo for Customer SaleOdoo 12, 13, 14, 15, 16, 17
    product_supplierinfo_for_customer_sale

    Shows the customer-specific product code on every sale order line and uses it in the line description, and proposes the minimum quantity defined for that customer when a product is selected.

  • product_supplierinfo_for_customer_sale_blanket_order

    Shows the customer's own product code and name on blanket order lines and carries that reference into the sales orders created from them.

  • product_supplierinfo_for_customer_sale_quick

    When you add products to a sales order through the quick product picker, the customer's own product code and product name are shown automatically, just like on a normal sales order line.

  • Sale Advance PaymentOdoo 12, 13, 14, 15, 16, 17, 18, 19
    sale_advance_payment

    Lets you register advance payments received from a customer directly on a sales order and track how much is still due. The order shows a payment status badge and the remaining amount, and advances are automatically applied when the invoice is posted.

Data imported from GitHub: “confirmed” means branch, module directory and installable manifest checked on the review date. A module that is not confirmed in a version may still exist: it may be in another repository or pending the next review. Active support and OCA certification are not assessed.