OCA/sale-workflow
OCA community repository with 338 Odoo modules confirmed in the OdooWiki catalogue (versions 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0). Reviewed on 2026-11-03.
Open on GitHubConfirmed modules per version
Modules in the repository
- Sale Credit PointsOdoo 15sale_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 RoundingOdoo 15, 18sale_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 DeliveryOdoo 13sale_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.
- Default Sale UOMOdoo 14sale_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 DateOdoo 14sale_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, 19sale_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, 19sale_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 CheckOdoo 12sale_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, 18sale_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.
- Double validation for SalesOdoo 12sale_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, 19sale_elaboration
Lets you attach elaborations (extra handling or service work) to sales order lines, automatically adding a surcharge line when the delivery is validated.
- Product brand in sale elaboration reportOdoo 15, 18, 19sale_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, 19sale_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.
- Sale Exception Public HolidaysOdoo 16, 17sale_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 TooltipOdoo 19sale_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 Fixed DiscountOdoo 12, 13, 14, 15, 16, 17, 18, 19sale_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 DiscountOdoo 16sale_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, 19sale_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, 19sale_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 InvoiceabilityOdoo 12, 13, 15, 17sale_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, 19sale_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 GeneratorOdoo 12sale_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, 19sale_global_discount
Apply global discounts to sales orders, automatically carried over to invoices and shown on the quotation/sales order report.
- 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, 19sale_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 StateOdoo 14, 18sale_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, 19sale_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 MethodOdoo 12sale_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, 15sale_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, 19sale_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.
- Sales Invoice Plan ReportOdoo 18sale_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, 19sale_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 PaymentOdoo 16, 18sale_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 PartnerOdoo 19sale_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, 16sale_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, 19sale_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.
- Lead Time Range - SaleOdoo 15sale_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 OptionOdoo 18, 19sale_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 CommentOdoo 18sale_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.
- Sale Loyalty Product ExcludeOdoo 16sale_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 Mail AutosubscribeOdoo 14, 18sale_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, 19sale_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 UpdateOdoo 16sale_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 InvoiceOdoo 12sale_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 AmountOdoo 19sale_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 TrackingOdoo 15sale_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, 19sale_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 LinkOdoo 12sale_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 ConfirmOdoo 14sale_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 applicationOdoo 17, 18sale_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 No Portal ButtonOdoo 18sale_no_portal_button
This module removes the button that gives customers access to the sale order in the customer portal from sale order notification emails, except for contacts that have a user account.
- Sale numeric step widgetsOdoo 16sale_numeric_step
Adds (-) and (+) buttons to quantity, packaging quantity and unit price fields on sales orders, making it easier to adjust values on mobile and tablet devices.
- sale_order_action_invoice_create_hook
This module changes how invoices are created from sales orders, allowing invoices to be grouped by customer and currency instead of by sales order, and it adds hooks for developers to customize the grouping and include draft invoices.
- sale_order_add_byproduct
When a Manufacturing Order is finished, any saleable by-products produced are automatically added as invoiceable lines on the related Sales Order, with a configurable note and price from the customer's pricelist.