OdooWiki OCA HUB

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 GitHub

Confirmed modules per version

12.0
98 modules
13.0
107 modules
14.0
152 modules
15.0
117 modules
16.0
154 modules
17.0
100 modules
18.0
178 modules
19.0
106 modules
20.0
1 module

Modules in the repository

  • Sale Order Amount to InvoiceOdoo 14, 15, 16, 18, 19
    sale_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_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, 19
    sale_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, 19
    sale_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.

  • sale_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_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_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_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_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_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, 19
    sale_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_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_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, 19
    sale_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, 18
    sale_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_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, 18
    sale_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_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, 18
    sale_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, 19
    sale_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, 19
    sale_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, 19
    sale_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_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_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, 19
    sale_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, 19
    sale_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_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_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_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_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, 19
    sale_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_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, 19
    sale_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_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_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, 18
    sale_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_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, 19
    sale_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, 19
    sale_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, 18
    sale_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, 19
    sale_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_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.

Data imported from GitHub: every listed version is confirmed (branch, module directory and installable manifest checked on the review date). Active support and OCA certification are not assessed.