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 Order Amount to InvoiceOdoo 14, 15, 16, 18, 19sale_order_amount_to_invoice
Adds an "Amount To Invoice" figure to quotations and sales orders, showing the untaxed total still waiting to be invoiced. It appears on the order form and as an optional column in the quotation and order lists.
- Sale Order Approval BlockOdoo 19sale_order_approval_block
Lets you block a sale order with a chosen approval reason so it cannot be confirmed until someone with the right permission releases the block.
- Sale Order ArchiveOdoo 12, 13, 14, 15, 16, 17, 18, 19sale_order_archive
Lets you archive sale orders that are Locked or Cancelled so they disappear from the normal sales order list, while still being searchable through a dedicated Archived filter.
- sale_order_cancel_optional_email
Cancel a confirmed sales order in one click without any email wizard, or use the new 'Send Email and Cancel' button when you do want to notify the customer.
- Sale Order Carrier Auto AssignOdoo 13, 14, 15, 16, 17, 18, 19sale_order_carrier_auto_assign
Automatically fills in the delivery carrier (shipping method) on sales orders, either when the quotation is created or when it is confirmed, based on company settings.
- sale_order_change_analytic_account
Lets sales users replace the analytic account on a confirmed sale order and on its related invoice lines, through a small pop-up wizard opened from the sale order.
- sale_order_country_allowed_product
Restrict which products can be sold based on the shipping address country. Products can be limited to specific countries, and sales orders with unavailable products cannot be confirmed.
- Currency Rate in Sale OrderOdoo 16sale_order_currency_rate
Lets you choose whether sale orders display the exchange rate between the order currency and the company currency, and in which direction (normal, inverse, both or none).
- Sale Order Digitized SignatureOdoo 12, 14sale_order_digitized_signature
Capture and store a customer's handwritten signature directly on a sales order, and print it on the sales order PDF report as proof of acceptance.
- Sale Order Disable User AutosubscribeOdoo 13, 14, 18, 19sale_order_disable_user_autosubscribe
Stops the salesperson from being automatically added as a follower of a sale order. When a salesperson is set on an order, they no longer receive its messages by default.
- sale_order_discount_fast_change_ui
Adds an 'Apply Global Discount' button on sales orders that opens a quick pop-up to set one discount percentage on order lines, replacing the slower standard discount wizard.
- Sale Discount InvoicingOdoo 15sale_order_discount_invoicing
Lets you post the discount on a sale line to a dedicated discount account by splitting the invoice line in two: one line at the original price and one line for the discount.
- Sale Order End UserOdoo 16sale_order_end_user
Adds an "End User" field to sale orders, so you can record the final customer who will actually use the goods, separately from the delivery address.
- Sale Order Finish ServiceOdoo 18sale_order_finish_service
Adds a "finished" flag to confirmed sales orders so you can mark a service order as delivered or done, and filter orders by finished or unfinished.
- Sale Order General DiscountOdoo 12, 13, 14, 15, 16, 17, 18, 19sale_order_general_discount
Adds a general discount field on sales orders that automatically fills the discount on every order line, with a default discount per customer and an opt-out flag per product.
- sale_order_general_discount_payment_term
Lets you store a default general discount on each payment term, which is automatically applied to the general discount of any sale order using that payment term.
- Sale Order General Discount TripleOdoo 14, 16, 18sale_order_general_discount_triple
Lets you choose which of the three discount fields on a sale order line receives the order's general discount and which receives the pricelist discount, so both discounts can coexist on the same line.
- Sale Order Incoterm PlaceOdoo 12, 13sale_order_incoterm_place
Adds an "Incoterm Place" text field to sales orders, shown next to the Incoterm on the order form and printed on the sales order / pro-forma report.
- Sale Order Invoice AmountOdoo 13, 14, 15, 16, 17, 18, 19sale_order_invoice_amount
Shows how much of a sales order has already been invoiced and how much is still left to invoice, both in the order's tax totals summary and as optional columns in the sales order and quotation lists.
- Sale Order Invoicing Finished TaskOdoo 12, 13, 14, 15, 16, 17, 18sale_order_invoicing_finished_task
Adds an "Invoiceable" control on tasks so that service order lines linked to tasks can only be invoiced once the task is marked as invoiceable. It can also be automated through project stages.
- Sale Order Invoicing Picking FilterOdoo 16, 18sale_order_invoicing_picking_filter
Lets you invoice a sale order based on the specific deliveries or receipts you choose, instead of invoicing everything at once. You pick the pickings in the invoice wizard and Odoo creates the invoice from those products.
- Sale Order Line CancelOdoo 14, 16, 17, 18sale_order_line_cancel
Adds a 'Cancel remaining qty' button on sale order lines to stop delivering what is left, and tracks canceled and remaining-to-deliver quantities. A company setting decides whether canceling also reduces the ordered quantity.
- Sale Order Line Cancel Sale StockOdoo 16, 18sale_order_line_cancel_sale_stock
Cancel only the remaining stock to deliver on a sale order line, without touching quantities already delivered. The cancelled quantity is tracked on the sale order line.
- Sale Order Line Chained MoveOdoo 13, 14, 15, 18sale_order_line_chained_move
Adds a setting on stock rules to keep one stock move per sale order line instead of merging moves of the same product, and lets you see all chained stock moves directly from a sale order line.
- sale_order_line_client_order_ref
Adds a Customer Order Reference field to sales order lines and invoice lines, so each line can carry its own customer reference. It can be shown on sale and invoice PDF reports and copied onto invoices.
- Sale Order Line DateOdoo 12, 13, 14, 15, 16, 17, 18, 19sale_order_line_date
Adds a per-line Delivery Date (commitment date) on sale order lines, which flows to the order's stock moves and appears on the quotation/sale order form, list and printed report.
- sale_order_line_date_next_reception
Shows the next expected reception date of a product directly on the sale order line, so salespeople can see when out-of-stock items will be available again.
- Sale Order Line Delivery StateOdoo 13, 14, 15, 16, 18, 19sale_order_line_delivery_state
Shows a delivery state on each sale order line (No delivery, Unprocessed, Partially processed, Done) and lets you force a line to Done when remaining quantities were cancelled.
- Sale order line descriptionOdoo 12, 13, 14, 15, 16, 17, 18, 19sale_order_line_description
Adds a Sales setting that makes sale order lines show only the product's sale description as the line text, instead of the usual reference, product name and description combination.
- sale_order_line_description_single_attribute
When a product has attributes with only one possible value, this module includes that value's name in the description of the sale order line, instead of hiding it.
- sale_order_line_discount_validation
Sales managers can review and approve quotations that contain discounts above a company-defined limit before they are sent, printed or confirmed.
- sale_order_line_display_stock_per_warehouse
Shows the stock available in each warehouse directly on sale order lines, so salespeople can see quantities without leaving the order. You choose which stock figure is shown and which warehouses appear.
- Sale Order Line Effective DatesOdoo 16, 18sale_order_line_effective_date
Adds three date columns to sale order lines: the completion date of the first delivery, the completion date of the last delivery, and the commitment date taken from the order.
- sale_order_line_field_from_product_attribute
Lets you choose a sales order line field where a product attribute value is automatically copied, so attribute values become available for reporting and analysis.
- Sale Order Line Final PriceOdoo 18sale_order_line_final_price
Adds a Final Price field to sale order lines: salespeople type the price agreed with the customer and Odoo works out the discount, while the unit price and discount stay locked for non sales managers.
- sale_order_line_initial_quantity
Shows the original ordered quantity on each sale order line once the order is confirmed, so you can compare it with the current quantity and see what was changed.
- Sale Order Line InputOdoo 12, 13, 14, 15, 16, 17, 18, 19sale_order_line_input
Lets salespeople work directly with sale order lines in a dedicated list view, where they can search, create and edit lines without opening each sales order.
- Sale Order Line MenuOdoo 13, 14, 15, 16, 17, 18, 19sale_order_line_menu
Adds an "Order Lines" menu under Sales so users can browse, filter and analyse every sale order line in one list, with a pivot view for totals.
- Sale Order Line move to OptionalOdoo 16, 18sale_order_line_move_to_optional
Adds a button on each sale order line that moves the line into the optional products section, removing it from the main order lines. It only works while the quotation is still a draft or sent.
- Sale Order Line Multi WarehouseOdoo 16, 17sale_order_line_multi_warehouse
Split a sale order line across several warehouses so the delivery is created as separate pickings per warehouse. A company setting enables the feature, and each line shows how much quantity is assigned to each warehouse.
- Sale order line hidden in reportOdoo 16, 18, 19sale_order_line_no_print
Lets you hide individual quotation, sale order and invoice lines from the documents your customer receives, while keeping those lines in Odoo for internal use.
- Sale Order Line Not BillableOdoo 15sale_order_line_not_billable
Adds a 'Billable' checkbox on products so you can mark items that should never be invoiced. Non-billable products are automatically excluded when creating invoices from a sales order.
- sale_order_line_noteOdoo 14, 15, 17, 18, 19sale_order_line_note
Adds a free-text Note field to each sales order line, so users can record extra comments per product line directly on the quotation or sales order.
- Sale Order Line Packaging QuantityOdoo 13, 14sale_order_line_packaging_qty
Adds a "Package quantity" field on sale order lines so users can order products by packaging (e.g. boxes, pallets) instead of individual units. The ordered quantity is automatically recalculated from the number of packages.
- Sale order line price historyOdoo 12, 13, 14, 15, 16, 17, 18, 19sale_order_line_price_history
Adds a history button on each sale order line that shows the prices previously given to the same product for that customer, and lets you copy an old price and discount back onto the current line.
- Sale line locking by pricelistOdoo 16, 18sale_order_line_price_lock_by_pricelist
Lets you lock the unit price and discount on sales order lines based on the pricelist rule scope, so salespeople cannot change prices that come from a pricelist rule you want to protect.
- sale_order_line_price_source
Shows where each sale order line price comes from: a pricelist rule, the product's sales price, or a manual override. Adds read-only columns on sale order lines so you can see the source and the pricelist rule used.
- Sale Order Line all Product Attribute ValuesOdoo 16, 18sale_order_line_product_attribute_values
This module adds stored fields on sale order lines that collect every product attribute value used by the line, so you can see them on the line form and filter or group sale order lines by attribute values.
- Sale Order Line RemoveOdoo 13, 15, 16, 18sale_order_line_remove
Lets you delete sale order lines from confirmed orders when they have not been invoiced or delivered, after enabling the option in Sales settings.
- sale_order_line_route_visible
Shows the Routes column by default on the sale order line list in quotations and sales orders, so users no longer have to turn it on manually.
- sale_order_line_sectionOdoo 19sale_order_line_section
Adds a stored "Section" field on each sale order line, automatically linking every product line to the section line above it. This makes it easy to group, filter and report sale order lines by section.
- Sale Order Line SequenceOdoo 12, 13, 14, 15, 16, 17, 18, 19sale_order_line_sequence
Shows a sequential line number (#) on each sale order line, in the sale order form, the printed quotation/order, the customer portal, and on related customer invoices. New lines automatically get the next number.
- sale_order_line_serial_unique
Prevents selling more than one unit of a serial-tracked product on a single sale order line. If a product is managed by serial number, the quantity on the line must be exactly 1.
- sale_order_line_stock_move_history
Adds a history button on each sale order line that opens the list of stock movements linked to that product and line, so users can trace deliveries and receipts without leaving the sales order.
- Sale Order Line TagOdoo 16, 17, 18, 19sale_order_line_tag
Lets you add tags to individual sales order lines so you can classify them (for example by reason or category). Tags are managed from a new menu under Sales settings.
- Sale Order Lot GeneratorOdoo 12, 14, 16, 17, 18sale_order_lot_generator
Automatically creates a lot/serial number for sale order lines when the order is confirmed, for products flagged with 'Auto Generate Lot'. The lot number follows the pattern 'SO name-001'.
- Sale Order Lot SelectionOdoo 12, 13, 14, 15, 16, 17, 18, 19sale_order_lot_selection
Lets salespeople pick a specific lot or serial number on a sale order line, so that exact lot is the one reserved and delivered to the customer. It also adds lot information to the sales analysis report.
- sale_order_lot_selection_by_quant
Adds a search button next to the Lot field on sale order lines so users can pick a lot from a popup list of available stock quants instead of typing it.
- sale_order_lot_selection_price
When a lot or serial number is chosen on a sales order line, Odoo uses the price defined on that lot instead of the product's normal sales price.
- Sale Order Manual LockOdoo 19sale_order_manual_lock
Adds manual lock and unlock buttons to sale orders, so users can lock or unlock an order themselves regardless of the automatic locking setting.