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_packaging_default

    Makes selling by packaging easier: the packaging fields are shown before the quantity, a default sales packaging is filled in automatically, and you can make packaging mandatory before confirming an order.

  • sale_packaging_report

    Adds packaging information to sale order reports and to the Sales analysis report, so users can see which packaging was used and how many packages were sold or delivered.

  • sale_partner_address_restrict

    Adds a company setting that limits the invoice and delivery addresses selectable on a sales order to contacts belonging to the chosen customer, and adds a 'Dropship Address' flag on delivery contacts.

  • sale_partner_approval

    Adds a 'Can Sell To' flag on contacts and a 'Approved for Sales' flag on partner stages, so only approved customers can be selected on sales orders. Two optional blocking rules can stop sales orders that use non-approved customers or invoice addresses.

  • sale_partner_delay

    Adds a customer-specific delivery lead time on contacts, which is automatically added to the product's delivery lead time on sale order lines.

  • sale_partner_delivery_window

    This module lets you set preferred delivery time windows for customers and automatically schedules their delivery orders within those windows. It also warns you when a manually entered delivery date falls outside the customer's preferred windows.

  • Default sales incoterm per partnerOdoo 12, 13, 14, 15, 16, 17, 18, 19
    sale_partner_incoterm

    Lets you save a preferred incoterm (and incoterm address) on each customer, so new quotations automatically pick it up instead of being filled in by hand.

  • sale_partner_order_template

    Lets you set a default quotation template on a customer, so new quotations for that customer automatically start from that template.

  • sale_partner_pricelist

    Lets you define which pricelists a customer is allowed to use, and restricts the pricelist choice on their sales orders to that list. The feature is switched on per company in Sales settings.

  • sale_partner_primeship

    Sell time-limited "primeship" memberships to customers: confirming a sale order with a primeship product automatically creates a membership period for the customer, and Odoo tracks when it is active or expired.

  • sale_partner_sale_contact

    Adds a 'Sale Contact' field to quotations, sale orders and invoices so you can name the person who handles the deal while the company stays the customer. The contact can also be shown on the PDF reports and gives that person portal access to the documents.

  • sale_partner_sale_contact_on_project

    When a sale order creates a project through a service product, the sale contact person recorded on the order is automatically copied onto the new project, and that contact is shown on the project form.

  • sale_partner_sale_contact_website_sale

    When a contact person of a company confirms a website order, the order is automatically reassigned to the company, while the person who ordered is kept as the sale contact and the chosen addresses, fiscal position and payment terms are preserved.

  • Sale Partner Selectable OptionOdoo 13, 15, 16, 17, 18, 19
    sale_partner_selectable_option

    Adds a "Selectable in sale orders" checkbox on contacts so you can control which customers appear when choosing a partner on a sales order.

  • sale_partner_shipping_default_partner_invoice

    Lets you set a default invoice address on a contact, so that when that contact is used as the shipping address on a sales order, Odoo automatically fills in the matching invoice address.

  • sale_partner_shipping_invoice_domain

    On a sales order, the shipping and invoicing address fields now only offer contacts that belong to the customer's company, instead of every contact in the database.

  • sale_partner_utm_source

    Automatically fills the UTM Source on new quotations from the customer's source, and lets you see and group sales orders and invoices by UTM Source.

  • sale_partner_version

    When a sales order is confirmed, this module freezes the customer's invoice and delivery addresses by making private copies for that order, so later changes to the customer record do not alter past orders.

  • Sale payment sheetOdoo 13, 15, 16, 17, 18
    sale_payment_sheet

    Salespeople can record customer payments on a simple 'payment sheet' without needing accounting rights. Confirming a sheet automatically creates a bank statement with the matching lines.

  • Sale planner calendarOdoo 15, 16, 18
    sale_planner_calendar

    Plan recurring commercial visits to customers directly from the partner form and track them in a dedicated sale planner calendar. Salespeople can create sale orders, invoices and payment sheets from each visit and review daily summaries.

  • sale_price_compliance

    Shows a colour-coded price compliance tier on each sale order line, based on discount thresholds set per product, product category or company. Orders containing non-compliant prices cannot be confirmed unless the user is a Sales Administrator.

  • sale_pricelist_discount_decimal_precision

    Makes pricelist percentage prices and price discounts follow Odoo's Discount decimal precision, so users can enter and see more than the default two decimals on pricelist items.

  • sale_pricelist_display_surcharge

    Lets you always show a price surcharge (negative discount) to customers on sales orders, instead of hiding it as standard Odoo does. You enable it per pricelist rule with a new checkbox.

  • sale_pricelist_from_commitment_date

    Use the sales order Delivery Date (commitment date) instead of the order date when the pricelist calculates unit prices. Also lets you show the Delivery Date in the order header and make it mandatory.

  • sale_pricelist_global_rule

    Lets you create pricelist rules that apply based on the total quantity of a product or product category across all lines of a sales order, not just per line. A button on the sales order recalculates prices and discounts using these global rules.

  • sale_pricelist_item_advanced

    Adds a dedicated "Pricelist Items" menu under Sales > Catalog so users can browse, search and edit all pricelist rules in one list, with an improved form and extra columns.

  • sale_pricelist_packaging

    Lets you set a price rule in a pricelist that only applies when a specific packaging is chosen on a sales order line, so the same product can be sold at different prices depending on the pack size.

  • sale_pricelist_technical

    Mark pricelists as "technical" so they can only be used to compute other pricelists and cannot be chosen on sale orders or customer forms.

  • sale_pricelist_triple_discount

    Lets you set up to three successive discounts on a pricelist rule, so quotations and sale order lines automatically receive the combined triple discount from the pricelist.

  • sale_probability_amount

    Adds a win probability percentage to quotations and sales orders, and shows the expected amount (total multiplied by that percentage) in the company currency.

  • sale_procurement_amendment

    When you reduce quantities on a confirmed sale order line, this module automatically updates the related stock moves and pickings, as long as no warehouse work has started yet.

  • sale_procurement_customer

    When a sales order is confirmed, the customer of the order is now copied onto the procurement group created for its stock moves, so the customer is visible on the related procurement/stock documents.

  • sale_procurement_group_by_commitment_date

    When a sale order line has a commitment date, confirming the order creates a separate procurement group (and therefore a separate delivery) for each different commitment date, and the planned date of the delivery follows that commitment date.

  • Sale Procurement Group by LineOdoo 12, 13, 14, 15, 16, 17, 18
    sale_procurement_group_by_line

    This is a base module that lets each sale order line get its own procurement group, so stock moves can be grouped per line instead of per whole order. It does not add menus or buttons by itself.

  • sale_product_brand_exception

    Adds a per-brand option to allow or forbid mixing products from different brands in one sale order, and blocks such orders through the sale exception mechanism.

  • sale_product_catalog_extended

    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.

  • Sale Product Category MenuOdoo 12, 13, 14, 15, 16
    sale_product_category_menu

    Adds a 'Product Categories' menu item under Sales > Configuration > Products, giving quick access to the product category list from the Sales app.

  • sale_product_classification

    Classify products automatically as A, B, C or D based on how much they sold in a chosen period, and mark how seasonal each product is. Thresholds and periods are set per company in Sales settings.

  • sale_product_configurator_widget_product_label

    This module makes the product label and note widget work together with the sale product configurator, so users can add free-text labels or notes to sale order lines while still using the configurator.

  • sale_product_email

    Lets you attach a specific email template to a product so that, when a sale order containing that product is confirmed, the buyer automatically receives that email.

  • sale_product_identification

    Require customer identification documents (authorizations, IDs) before confirming sales orders that contain certain products. Configure which identification categories are needed per product and whether they are mandatory or optional.

  • Sale Product Multi AddOdoo 12, 13, 14, 15, 16, 17, 18, 19
    sale_product_multi_add

    Adds an "Add multiple products" button on draft or sent quotations so salespeople can pick several products at once, set a quantity for each, and create all the order lines in one go.

  • sale_product_packaging_container_deposit

    Automatically adds container deposit lines to sales orders based on the packaging used, and updates them when products are delivered.

  • sale_product_rating_verified

    Adds a "purchase verified" flag to product ratings, automatically set when the customer who left the rating has a paid invoice for that product.

  • sale_product_returnable

    Mark products as returnable and choose the product customers should get back. When a sales order is confirmed, Odoo automatically creates a draft return transfer for those products.

  • sale_product_seasonality

    Adds seasonal availability rules to sales orders: only products allowed for the order's commitment date can be selected, based on a seasonal configuration.

  • Sales product setOdoo 12, 13, 14, 15, 16, 17, 18, 19
    sale_product_set

    Lets sales users insert a predefined product set (list of products and quantities) into a quotation through a wizard, creating separate order lines. Adds a discount per set line and an option to sync product set archiving with the partner.

  • sale_product_set_layout

    Lets you add section titles and notes inside product sets, so when a product set is added to a sale order the sections and notes are carried over into the order lines.

  • sale_product_set_packaging_qty

    When a product set is added to a sales order, the packaging chosen on each set line is now carried over to the generated sales order line.

  • sale_product_set_sale_by_packaging

    Warns you on the product form when a product that can only be sold by packaging is used in product set lines without a packaging, and lets you review or auto-fix those lines.

  • sale_product_set_variant

    Lets you build product sets (kits) using product templates and specific variants, then add them to a sale order with the exact variants chosen.

  • sale_production_state

    Adds a 'Manufacturing state' field to sales orders and sales order lines, showing whether the linked manufacturing orders are unprocessed, partially processed, done, or not applicable.

  • sale_promotion_discount_in_field

    Adds a new promotion reward type called "Discount in Line" that writes the promotion percentage directly into the Discount field of the sales order lines instead of creating a separate reward line.

  • sale_promotion_discount_in_field_order_line_link

    Bridge module that links coupon promotions to sales order lines when the discount is stored in a field, so the promotion program is recorded on the affected lines.

  • Sale Promotion RuleOdoo 12, 14, 17
    sale_promotion_rule

    Create promotion rules (automatic or coupon) and apply them to sales orders to give discounts. Users can apply, add a coupon code, or remove discounts directly from the quotation form.

  • sale_promotion_rule_assortment

    Limit a sales promotion rule so it only applies to a chosen set of products. On the promotion rule form you pick a product assortment filter, and only matching products count for the promotion.

  • sale_promotion_rule_delivery

    When delivery charges are used on sales orders, promotion rules no longer apply to delivery lines, so discounts and promotions are calculated only on the actual products.

  • sale_promotion_rule_display_discount_amount

    This module makes the discount amount and total without discount on a sale order include discounts created automatically by sale promotion rules, so the figures shown match the real promotion applied.

  • sale_purchase_procurement_group_by_line

    This hidden glue module makes the purchase order count on a sales order work correctly when both the 'MTO Sale <-> Purchase' and 'Sale Procurement Group by Line' features are installed.

  • sale_purchase_requisition

    Link a sales quotation to a purchase agreement (requisition) so the salesperson can create it directly from the quotation and keep product quantities in sync.

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.