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 504 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
125 modules
20.0
1 module

OCA repositories in this area

Other areas

Modules in this area

  • sale_exception_holidays_public

    Adds an optional sales exception that warns or blocks a sales order when its delivery/commitment date falls on a public holiday for the shipping address.

  • sale_exception_line_tooltip

    Adds a warning icon on sale order lines that trigger exception rules, with a tooltip listing the names of the rules that apply.

  • sale_exception_product_sale_manufactured_for

    Adds a blocking sales exception that prevents confirming a sales order when the customer is not allowed to buy the products that are restricted to specific manufacturing partners.

  • sale_exception_stock_prebook

    Prevents the automatic release of stock reservations when a sales order has exceptions, so orders with problems keep their reserved stock until the issues are resolved.

  • Sale Fixed DiscountOdoo 12, 13, 14, 15, 16, 17, 18, 19
    sale_fixed_discount

    Lets sales users enter a fixed money discount on each sales order line instead of only a percentage. The equivalent percentage is calculated automatically, shown on the quotation, portal and invoice, and checked for consistency.

  • sale_fixed_triple_discount

    This module adds a warning on sales orders when a line uses both a fixed discount and a percentage discount, and ensures the fixed discount takes priority in the calculation.

  • Sale Force InvoicedOdoo 12, 13, 14, 15, 16, 17, 18, 19
    sale_force_invoiced

    Lets authorized users mark a confirmed sales order as fully invoiced, even when some ordered or delivered quantities are still pending to invoice.

  • Sale Force Invoiced QuantityOdoo 16, 17, 18, 19
    sale_force_invoiced_quantity

    Adds a "Force Invoiced" quantity field on sales order lines that is subtracted from the quantity and amount still to be invoiced, so users can manually reduce what Odoo proposes to invoice.

  • sale_force_whole_invoiceability

    Sales managers can force all lines of a confirmed sales order to be invoiceable, regardless of the invoice policy or delivered quantities, before any invoice has been created.

  • Sales Fully InvoicedOdoo 15, 16, 19
    sale_fully_invoiced

    Adds a "Posted Invoice Status" field on sales orders that reflects whether the related invoices are actually posted, plus two ready-made filters in the Sales search view to find orders that are fully invoiced and validated, or fully invoiced but not yet…

  • sale_generator

    Create a reusable sale order template and generate one sale order per selected customer in a single batch. Track all generated orders from one generator screen and confirm them all at once.

  • Sale Global DiscountOdoo 12, 13, 14, 15, 16, 17, 18, 19
    sale_global_discount

    Apply global discounts to sales orders, automatically carried over to invoices and shown on the quotation/sales order report.

  • sale_import_base

    This module provides the base to import sale orders into Odoo from JSON data coming from external sales channels. Users can review each import in a 'Sale Import' screen, retry failed imports, and configure how orders, customers and payments are created per…

  • sale_invoice_auto_deliver

    Adds a new option when invoicing a sales order that invoices the whole order and automatically validates the related delivery, so the goods are marked as delivered in one step.

  • Sale Invoice BlockingOdoo 14, 15, 16, 17, 18, 19
    sale_invoice_blocking

    Lets you block invoicing on a sales order by selecting a blocking reason, so no invoice can be created from that order until the block is removed.

  • sale_invoice_delivery_state

    Lets you choose, per customer, whether they should be invoiced after a partial delivery or only after a full delivery, and blocks invoicing until that delivery condition is met.

  • Sale Invoice FrequencyOdoo 15, 16, 17, 18, 19
    sale_invoice_frequency

    Lets you label customers and sales orders with an invoicing frequency (Daily, Weekly, Monthly, etc.) and group or filter sales orders by that frequency, so you can pick the right orders to invoice.

  • sale_invoice_group_method

    Lets you group several sales orders into one single invoice based on rules you define, such as customer, currency, payment terms and other order fields. You can set a default grouping rule per customer so it is proposed automatically on their orders.

  • Sale Invoice No MailOdoo 13, 14, 15
    sale_invoice_no_mail

    Stops Odoo from automatically emailing customers when invoices are created from a sale order using the 'Create Invoice' wizard.

  • Sales Invoice PlanOdoo 12, 13, 14, 15, 16, 17, 18, 19
    sale_invoice_plan

    Plan future customer invoices on a sales order: split the order into installments (optionally with an advance), then create the invoices one by one or all at once from the plan.

  • sale_invoice_plan_report

    Adds an Invoice Plan table to the sales order and quotation PDF, showing each installment's name, due date, percentage and amount when the order uses an invoice plan.

  • Sale invoice PolicyOdoo 12, 13, 14, 15, 16, 17, 18, 19
    sale_invoice_policy

    Lets you choose an invoicing policy for the whole sale order (follow products, invoice ordered quantities, or invoice delivered quantities), instead of relying only on each product's own setting. A company-wide default policy for new orders can also be set.

  • sale_invoice_product_not_alone

    Adds a checkbox on products to prevent them from being invoiced on their own, so sale orders containing such products are not offered for separate invoicing.

  • sale_invoice_split_payment

    When invoicing several sales orders at once, Odoo now creates separate invoices for orders that have different payment terms, instead of merging them into one.

  • sale_invoice_to_partner

    Lets you point a customer to another partner who should receive and pay its invoices. Sales orders for that customer then use the other partner as the invoice address.

  • Sale Isolated QuotationOdoo 12, 13, 14, 15, 16
    sale_isolated_quotation

    Separates quotations and sales orders into two distinct documents with their own numbering. Quotations stay simple (Draft/Done) and a 'Convert to Order' button creates the real sales order.

  • Product Last Price Info - SaleOdoo 12, 13, 14, 15, 16, 17, 18, 19
    sale_last_price_info

    Shows the last confirmed sale of each product directly on the product form: the last customer, the last sale date and the price used. This helps salespeople quote consistent prices without searching old orders.

  • Sale layout category hide detailOdoo 12, 13, 14, 15, 16, 17, 18
    sale_layout_category_hide_detail

    Adds eye-style toggle icons on section lines of sale orders and invoices so you can hide or show the section's detail lines, subtotals and line amounts in the PDF reports and the customer portal.

  • sale_lead_time_range

    This module lets you set customer lead times on products and sales order lines using days, weeks, months, or years instead of only days. Odoo automatically converts your chosen unit into the standard number of days used for delivery scheduling.

  • sale_line_name_option

    Adds a company-level setting that hides product reference codes from the product description shown on sale order lines. When enabled, sale order lines display the product name without its internal reference.

  • sale_line_service_qty_delivered

    Automatically sets the delivered quantity of service order lines (with delivery-based invoicing) to their full ordered quantity once any stock product on the same order is delivered, or if the order has no stock products.

  • sale_line_vendor_comment

    Adds a free-text 'Vendor Comment' field to each sale order line, visible in the order lines list on the sales order form. It is hidden by default and can be shown when needed.

  • Auto Refresh CouponsOdoo 16, 18, 19
    sale_loyalty_auto_refresh

    Automatically applies and refreshes loyalty and promotion rewards on sales orders whenever the order changes, without the user having to click anything. A company-wide setting turns this behaviour on or off.

  • sale_loyalty_criteria_multi_product

    Lets you use multi-product promotion criteria on sales orders, so a promotion only applies when all the required products are actually in the order.

  • sale_loyalty_exclude

    Mark products as excluded from loyalty programs so they do not count towards the minimum amount needed to earn rewards. Excluded products are also hidden from loyalty rule and reward product selections.

  • sale_loyalty_incompatibility

    Adds incompatibility rules between promotions in sales orders, so a promotion that conflicts with one already applied cannot be used together.

  • sale_loyalty_initial_date_validity

    When a sales order is created or edited, Odoo only offers promotions and loyalty programs whose start date has already arrived, so future-dated promotions cannot be applied by mistake.

  • Sale Loyalty LimitOdoo 16, 17, 18
    sale_loyalty_limit

    Limit how many times a promotion or coupon can be applied per customer or per salesperson. When the limit is reached, Odoo blocks the promotion on new sales orders with a clear message.

  • sale_loyalty_multi_gift

    Lets you offer several different free gift products in a single sales promotion, and lets the salesperson choose which gift to give for each gift line when applying the reward on a sale order.

  • sale_loyalty_order_info

    Adds reporting fields to sale orders showing the total reward amount including taxes, the promo codes used, the coupons generated, and the loyalty programs applied.

  • sale_loyalty_order_line_link

    Links each sale order line to the loyalty program and reward lines it is involved with, so you can trace which promotions generated or applied discounts. Adds a button on the loyalty program form to see related sale orders.

  • sale_loyalty_order_suggestion

    Shows a gift icon on sales order lines when the product can trigger an available promotion, and opens the promotion wizard to add the missing quantities needed to claim the reward.

  • sale_loyalty_order_suggestion_multi_gift

    Extends the sale order promotion suggestions to also show multi-gift promotions that require a minimum quantity of products, and adjusts order lines when a multi-gift reward is applied.

  • sale_loyalty_order_suggestion_multi_product

    This module makes Odoo suggest promotions whose rules require multiple products directly on the sale order. It also adds a wizard that shows which products and quantities are needed to qualify for the promotion.

  • sale_loyalty_order_type_applicability

    Lets you choose which sales order types a loyalty program applies to, so promotions and reward points are only given on the order types you select.

  • sale_loyalty_partner

    Lets you assign a partner (contact/company) to a loyalty program and then group sales analysis by that partner.

  • sale_loyalty_partner_applicability

    Lets you restrict loyalty and promotion programs to specific customers, and optionally share coupons between members of the same commercial entity.

  • sale_mail_autosubscribe

    Automatically adds configured partners as followers (in copy) of their company's sales orders. It works together with the Mail Autosubscribe module and is installed automatically when both that module and Sales are present.

  • Sale Manual DeliveryOdoo 12, 13, 14, 16, 17, 18, 19
    sale_manual_delivery

    Lets you decide per sales team or per quotation that deliveries are not created automatically when the order is confirmed. Instead, you create each delivery yourself with a wizard, choosing what to ship, the delivery address, carrier and planned date.

  • sale_margin_update

    Adds a refresh button on sale orders and order lines that opens a small wizard where you enter a margin percentage and Odoo recalculates the unit price of the products accordingly.

  • sale_merge_draft_invoice

    When invoicing sales orders, Odoo can now merge the new invoice with existing draft invoices for the same customer, instead of creating a separate one. A company setting and a checkbox on the invoicing wizard control this behaviour.

  • sale_milestone_profile_invoicing

    Shows, on each sales order line, how much work has been delivered and invoiced from timesheets for milestone products, and adjusts delivered/invoiced quantities accordingly.

  • sale_minimum_amount

    Set a minimum untaxed sale amount per customer; when a sale order falls below it, Odoo automatically applies an approval block reason so the order cannot be confirmed without review.

  • sale_missing_tracking

    Warns salespeople when a customer's order is missing a product they usually buy, and lets them record a reason, request an exception, or postpone the warning.

  • sale_missing_tracking_tier_validation

    Adds an approval workflow to sale missing tracking exceptions, so they must be reviewed and validated by designated people before they can be approved.

  • Sale MRP BOMOdoo 12, 14, 15, 16, 18, 19
    sale_mrp_bom

    Lets users pick a specific Bill of Materials (BoM) on each sale order line, so the right manufacturing or kit recipe is used for that order. It is useful when a product has several alternative BoMs.

  • sale_mrp_link

    This module links manufacturing orders to the sales orders they come from. On a sales order you get a smart button showing how many manufacturing orders exist, and you can jump straight to them.

  • sale_multi_payment_confirm

    Automatically confirms a sales order once the payments linked to it cover the full order total, even when several payment transactions are involved.

  • sale_multi_template_application

    Lets you apply several quotation templates to the same sales order without losing the lines you already added. Each new template's lines are appended after the existing ones, and the template field is cleared afterwards.

  • sale_multicompany_reporting_currency

    Shows each sales order and quotation total converted into your company's multicompany reporting currency, so you can compare the order currency amount with a single group-wide currency.

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.