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
OCA repositories in this area
Other areas
- Accounting and finance
- CRM and marketing
- Purchases
- Inventory and logistics
- Manufacturing and maintenance
- Products and catalogue
- Human resources
- Projects and timesheets
- Field service and customer support
- Point of sale
- Website and e-commerce
- Country localisations
- Contracts and documents
- Integrations, EDI and connectors
- Industries and verticals
- Technical tools and administration
Modules in this area
- Account commissionsOdoo 15, 16, 17account_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 commissions OCAOdoo 18, 19account_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.
- Technical Pricelists For Account InvoicesOdoo 12, 16account_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 CurrencyOdoo 15, 16, 19base_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, 17commission
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, 17commission_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 OCAOdoo 18commission_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, 19commission_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, 17coupon_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.
- Coupons on Commercial EntityOdoo 15coupon_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 Reward copy ProductOdoo 14coupon_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.
- Coupons Rewards from domainOdoo 15coupon_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 incompatibilitiesOdoo 15coupon_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, 15coupon_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 Mas MailingOdoo 15coupon_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.
- Coupons multi giftOdoo 15coupon_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 PortalOdoo 15coupon_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, 17hr_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 commissions OCAOdoo 18, 19hr_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 MailOdoo 18loyalty_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 multi product criteriaOdoo 16, 18loyalty_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, 19loyalty_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, 18loyalty_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 MailingOdoo 16, 18loyalty_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 giftOdoo 16, 18loyalty_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 ApplicabilityOdoo 16, 17, 18loyalty_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 ChatterOdoo 18loyalty_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, 19partner_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, 18partner_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, 19partner_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 TermsOdoo 16portal_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 LoginOdoo 17, 19portal_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 InfoOdoo 18, 19portal_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 SearchOdoo 16, 18, 19portal_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, 19portal_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, 18pricelist_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 RestOdoo 14, 18pricelist_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 customer info elaborationOdoo 18, 19product_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 customer info saleOdoo 18, 19product_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, 19product_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, 19product_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, 18product_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 Customers ElaborationOdoo 13, 14, 15product_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, 17product_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, 19sale_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.