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_commission_settlement_partial_invoice

    Lets you invoice a commission settlement in several partial invoices instead of one, and tracks how much of the settlement has already been invoiced.

  • sale_commission_settlement_report

    Adds two company-wide settings that change how sales commission settlements and their printed report look: you can show the customer on each settlement line and hide lines whose settled amount is zero.

  • sale_commitment_date_mandatory

    Lets you make the Delivery commitment date mandatory on sales orders. When enabled, the date is pre-filled with the current date and order lines stay locked until a commitment date is set.

  • sale_commitment_lead_time

    Lets you set a daily order cut-off hour and timezone per company, then automatically flags each sales order as delivered on time when it was confirmed before that hour and shipped within one day.

  • sale_company_currency

    Adds a "Total (Company Currency)" column to sale order and quotation lists, and shows the same total on the sale order form, so orders in different currencies can be summed in your company's currency.

  • sale_confirm_group

    Restrict who can confirm sale orders by choosing specific user groups per company. Users outside those groups no longer see the Confirm button and get an error if they try to confirm.

  • Sale Contact TypeOdoo 12, 13, 14
    sale_contact_type

    Adds an 'Ordering contact' type to contacts so a company can mark the person to address on sales orders. On a sales order, the customer field only suggests ordering contacts or companies without one.

  • Auto Refresh CouponsOdoo 13, 14, 15
    sale_coupon_auto_refresh

    Automatically re-applies promotion programs marked as auto-apply on sales orders whenever the order or its lines change, without the user having to click anything.

  • sale_coupon_chatter

    Adds a chatter to coupon and promotion programs so users can log notes, send messages and schedule activities directly on each program record.

  • sale_coupon_commercial_partner_applicability

    Coupons generated for one contact can also be used by other contacts that belong to the same commercial entity, instead of being rejected as belonging to an invalid partner.

  • sale_coupon_criteria_multi_product

    Lets you use multi-product promotion criteria (from the coupon_criteria_multi_product module) when applying coupons and promotions on sale orders. Odoo checks each order's products and quantities against those criteria before granting the reward.

  • sale_coupon_criteria_order_based

    Adds an extra condition to coupon and promotion programs so they only apply to sales orders that match a chosen order filter, for example a specific sales team or customer.

  • sale_coupon_delivery_auto_refresh

    Keeps automatic coupon and free-shipping behaviour working together on sales orders: when a delivery line is added automatically, coupons are still applied, and when coupons are recomputed, delivery lines are not refreshed again.

  • sale_coupon_domain_free_product

    This module lets you create coupon programs that give free products based on a product domain, automatically adding 100% discounted reward lines to sales orders when the domain conditions are met.

  • sale_coupon_domain_product_discount

    Lets you apply a coupon promotion discount only to the products that match a product domain, instead of the whole order. It also supports a strict per-product limit so each product must individually meet the minimum quantity and amount rules.

  • sale_coupon_domain_product_discount_in_field

    This bridge module makes a coupon promotion apply its discount only to the products that match the promotion's product domain, instead of to all order lines. It installs automatically when both related promotion modules are present.

  • sale_coupon_domain_product_reward_fixed_price

    This bridge module makes two promotion features work together: fixed-price rewards and product-specific discount rules. It lets a fixed price be applied only to the products that match the promotion's product filter.

  • sale_coupon_financial_risk

    Prevents reward coupons from being emailed to customers when their sales order exceeds the allowed financial risk. It links coupon promotions with credit risk checks on confirmation.

  • sale_coupon_free_shipping_default_product

    Lets you choose one default service product that is automatically used as the reward product whenever a promotion is set to free shipping, so you don't have to create a new product for every free shipping promotion.

  • sale_coupon_incompatibility

    Lets you mark promotions as incompatible so that two conflicting promotions cannot be applied to the same sales order. When a customer tries to add a promotion or coupon that clashes with one already on the order, Odoo blocks it with an error message.

  • Coupon LimitOdoo 13, 14, 15
    sale_coupon_limit

    Limit how many times a promotion or coupon can be used per customer or per salesperson. When a limit is reached, Odoo blocks the promotion and shows an error message.

  • sale_coupon_mass_mailing

    Link mass mailings to promotion programs and launch them from a smart button on the promotion form. The mailing audience is pre-filled with the promotion's contact domain.

  • sale_coupon_most_expensive

    Adds a new discount option to coupon programs: apply the reward discount to the most expensive product line of the order instead of the whole order or the cheapest product.

  • sale_coupon_most_expensive_delivery

    This bridge module makes the 'most expensive product' coupon program ignore delivery charges when picking the eligible product, so shipping costs never win the discount.

  • sale_coupon_multi_currency

    Lets you set a custom currency on coupon and promotion programs instead of always using the company currency, so discounts can be defined in a different currency.

  • sale_coupon_multi_gift

    This module lets you set up promotions that give several different free products as a reward on a sales order. When a promotion with multiple gift rewards applies, Odoo automatically adds the free products as separate order lines with a 100% discount.

  • sale_coupon_multi_use

    Lets a single fixed-amount coupon be used on several sale orders until its value is fully consumed. It adds a 'Multi Use Coupons' option on coupon programs and tracks each use.

  • sale_coupon_multi_use_currency

    Prevents changing the currency of a coupon program once multi-use coupons have already been generated from it.

  • sale_coupon_multiple_code_program

    Allows a single sales order to use more than one coupon code promotion program, instead of Odoo's default limit of one code program per order.

  • sale_coupon_multiplier_free_product

    This module lets you set up 'buy X, get Y free' promotions that repeat automatically, such as 3x2 offers, and ensures the free product lines are correctly added, updated, or removed on sales orders.

  • sale_coupon_order_discount_fast_change_ui

    Adds a "Skip reward lines" checkbox to the fast discount change wizard, so users can apply a new discount only to paid product lines and leave coupon/promotion reward lines untouched.

  • sale_coupon_order_line_link

    Links each sale order line to the coupon or promotion program that produced it, and shows which lines generated a reward and which lines received it. Adds promotion tracking fields and filters to sales orders and the sales analysis report.

  • Pending CouponsOdoo 13, 15
    sale_coupon_order_pending

    Shows salespeople how many coupons a customer still has available and lets them apply one directly from the sales order.

  • sale_coupon_order_pending_commercial_partner

    Automatically installed glue module that widens the search for pending coupons on a sales order so coupons belonging to the whole commercial entity (parent company and its contacts) are shown, not just those of the order's contact.

  • sale_coupon_order_suggestion

    Shows a gift icon on sales order lines when a promotion is available for the product, letting the salesperson open the promotion wizard directly from the line.

  • Sale Coupon PartnerOdoo 13, 14, 15
    sale_coupon_partner

    Lets you link a coupon or promotion program to a specific customer, and then analyse sales by that customer in the Sales Analysis report.

  • sale_coupon_portal

    Customers can see and manage their own sale coupons from the customer portal, with filters, sorting and search by coupon code or program.

  • sale_coupon_portal_commercial_partner_applicability

    Lets customers see on the portal the coupons that belong to their company, not only the ones linked to their own contact.

  • sale_coupon_product_exclude

    Lets you set a product filter on a promotion so that matching products are left out when Odoo calculates the discount. The excluded products are ignored for the reward, both for whole-order and per-line discounts.

  • sale_coupon_product_management

    Lets you control the reward product of a sale coupon or promotion program through a dedicated product category, so the discount product is created and kept in sync automatically.

  • sale_coupon_promotion_generate_coupon

    When a promotion is set to hand out its reward coupon through a different promotion, this module makes the coupon be created in that other promotion instead, and keeps the sales counters and coupon expiry consistent.

  • sale_coupon_reward_add_product

    Lets you configure a promotion so the free reward product is added automatically to the sales order when it is missing, instead of requiring the customer to add it first.

  • sale_coupon_reward_fixed_price

    Adds a new "Fixed Price" reward type to coupon and promotion programs, letting you set a specific unit price for the products that match the program's rules instead of giving a percentage or amount discount.

  • sale_coupon_reward_fixed_price_order_line_link

    Bridge module that links fixed-price coupon rewards to the sales order lines they discount, so each discounted line records which promotion program applied it.

  • sale_coupon_selection_wizard

    Salespeople can open a wizard from a sales order to see all promotions that fit the order, preview the required products and rewards, and apply the chosen promotion in one click.

  • sale_coupon_validity_notification

    When a coupon linked to a sales order expires, Odoo automatically posts a note on that order and schedules a warning activity for the salesperson, so they know the coupon must be removed.

  • sale_credit_point

    Give customers a credit point balance and block sales orders that exceed it. Points are automatically deducted when an order is confirmed and refunded when it is cancelled.

  • sale_custom_rounding

    Lets you choose a specific tax rounding method on each sale order, overriding the company default, and carries that choice through to the generated invoice.

  • sale_cutoff_time_delivery

    Define cut-off times on warehouses or customers so that confirmed sales orders are scheduled for delivery at the next cut-off moment, and filter delivery orders by whether they fall before, inside or after today's cut-off.

  • sale_default_uom

    Lets you set a separate default sales unit of measure on each product, so sales order lines automatically use that unit instead of the inventory unit.

  • sale_delivery_date

    Postpones delivery dates on sales orders and delivery orders based on customer delivery preferences and warehouse cut-off times, and shows the expected delivery date on reports.

  • Sale Delivery Split DateOdoo 12, 14, 15, 16, 17, 18, 19
    sale_delivery_split_date

    When a sale order is confirmed, deliveries are grouped and split by the requested date on each line, so each date gets its own delivery order. The scheduled date is also shown and searchable in the delivery list.

  • Sale delivery StateOdoo 12, 13, 14, 15, 16, 17, 18, 19
    sale_delivery_state

    Adds a delivery status to sale orders (Not Delivered, Started, Partially Delivered, Fully Delivered) based on delivered quantities, with a button to force an order as fully delivered.

  • sale_disable_inventory_check

    Removes the 'Not enough inventory' warning that normally appears on sales order lines when the ordered quantity exceeds available stock.

  • Sale Discount Display AmountOdoo 12, 13, 14, 15, 16, 17, 18
    sale_discount_display_amount

    Shows the discount amount (not just the percentage) on sale orders and quotations, both on screen and on the printed/PDF quotation. You can choose whether the discount is shown with or without taxes and whether the report shows the total before discount.

  • sale_double_validation

    Adds a company-level option to require a second approval for large sales orders. Sales orders above a set amount created by non-managers go to a 'To Approve' state until a sales manager approves them.

  • sale_down_payment_wizard_taxes

    When creating a down payment invoice from a sale order, you can now choose the taxes to apply to the down payment. The tax field is shown and required in the down payment wizard unless you invoice what has already been delivered.

  • Sale ElaborationOdoo 12, 13, 14, 15, 16, 17, 18, 19
    sale_elaboration

    Lets you attach elaborations (extra handling or service work) to sales order lines, automatically adding a surcharge line when the delivery is validated.

  • sale_elaboration_brand

    Adds the product brand to the sale elaboration report, so users can see which brand each elaborated product belongs to directly in the report list.

  • Sale ExceptionOdoo 12, 13, 14, 15, 16, 17, 18, 19
    sale_exception

    Lets you define custom exception rules on sales orders and order lines, so orders that break your rules are flagged and blocked from confirmation until someone reviews or ignores them.

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.