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 Stock Cancel RestrictionOdoo 13, 15, 16, 17, 18sale_stock_cancel_restriction
Prevents cancelling sales orders that already have completed stock deliveries, by raising the standard Odoo error when a user tries to cancel such an order.
- Sale Stock Delivery AddressOdoo 12, 13, 14, 15, 18, 19sale_stock_delivery_address
Set a different delivery address on each sales order line, so one order can ship to several addresses. The system then splits the deliveries and uses the stock location linked to each address.
- Sale Stock Delivery StateOdoo 16, 17, 18, 19sale_stock_delivery_state
This glue module changes how the delivery status of a sales order is calculated when stock is installed, and hides the delivery status field from the sales order form and list views.
- Sale Stock Expiry Date on Qty at Date widgetOdoo 16, 18sale_stock_expiry_date_on_qty_at_date_widget
Shows the next expiry date of the stock that will be used to fulfil a sales order line, directly in the Qty at Date popover, and lets users open the related stock quants.
- Sales Stock Invoice PlanOdoo 15sale_stock_invoice_plan
Extends the sales invoice plan so that, when stock is installed, invoices created from a plan can be linked to the related stock pickings. It also grants read access to stock scrap records for users of this module.
- Sale Stock Last DateOdoo 12, 13, 15, 18sale_stock_last_date
Shows the date of the last completed outgoing delivery on each sale order line, and lets you filter and group sales analysis by that date.
- Sale Stock Line Customer ReferenceOdoo 14, 18sale_stock_line_customer_ref
Add a customer reference on sale order lines and carry it through to delivery operations, packages and stock moves, so lines with the same product but different references are not merged.
- Sale Stock Order Line SequenceOdoo 13, 14, 15, 16, 17, 18sale_stock_line_sequence
Keeps the order of products on a sales order and its delivery in sync. When you confirm a sale or change its lines, the related stock moves are automatically renumbered to match the sales order line order.
- sale stock partner wharehouseOdoo 16, 18, 19sale_stock_partner_warehouse
Lets you set a preferred warehouse on a customer or contact, and automatically proposes that warehouse on new draft sales orders for that customer.
- Sale Stock Picking BlockingOdoo 12, 13, 14, 15, 16, 17, 18, 19sale_stock_picking_blocking
Lets you block the creation of deliveries for a sales order and record the reason, so no stock is reserved or moved until someone releases the block.
- Sale Stock Picking NoteOdoo 12, 13, 14, 15, 16, 17, 18, 19sale_stock_picking_note
Adds two note fields to customers, sales orders and delivery orders: an internal picking note and a customer comment that is printed on the delivery slip.
- Sale Stock Picking Validation BlockingOdoo 13, 17, 18sale_stock_picking_validation_blocking
Sales managers can block the validation of delivery orders created from a sale order, so goods stay reserved but cannot be shipped until they unblock it.
- Sale Order Product Recommendation StockOdoo 16, 18sale_stock_product_recommendation
Shows stock availability directly in the product recommendation wizard of a sale order, so you can see whether recommended products can actually be delivered before accepting them.
- sale_stock_qty_at_date_widget_multi_warehouse
The availability icon on sales order lines now considers stock from every warehouse, not just the line's own warehouse. It turns yellow when only all warehouses together can cover the demand and red when even that is not enough.
- sale_stock_reconcile_valuation_kit
When you post a customer invoice for a kit product with automated inventory valuation and Anglo-Saxon accounting, Odoo automatically reconciles the interim stock accounts linked to the invoice lines with those of the kit components' stock moves.
- Sale Stock Reference by LineOdoo 19sale_stock_reference_by_line
Adds a stock reference field on each sale order line so that stock moves generated from a sale order can be grouped per line instead of per order. On its own it changes little; it is a base for other modules.
- sale_stock_reservation_issue_on_qty_at_date_widget
Warns sales users when confirming a quotation or sales order would cause a stock reservation problem, by turning the quantity-at-date icon yellow and highlighting the free quantity today in the popover.
- Sale Stock Return RequestOdoo 12, 13, 14, 15, 18sale_stock_return_request
Create return requests directly from a sales order and link customer returns to their original sales orders. Track which sales are involved in a return and jump back to them from the return request.
- Sale Stock Secondary UnitOdoo 12, 13, 14, 15, 16, 17, 18, 19sale_stock_secondary_unit
When a sale order is confirmed, the secondary unit and quantity chosen on the sale order line are copied onto the related stock moves, so warehouse documents show the same secondary unit information as the sale.
- Sale stock service levelOdoo 14sale_stock_service_level
Lets you set a stock service level on a sales order so that the way stock is reserved and delivered for that order follows the chosen service level.
- Sale Stock Sourcing AddressOdoo 12, 13sale_stock_sourcing_address
Shows, on each sales order line and invoice line, the address of the warehouse that will actually supply the goods. This helps users see where a delivery will be sourced from before confirming the order.
- Sale Stock Warehouse PartnerOdoo 15sale_stock_warehouse_partner
Lets you set a default warehouse on a contact so that new sales orders for that customer automatically use it. The delivery address warehouse takes priority over the customer's warehouse.
- Sale Sub StateOdoo 12, 14, 15, 16, 17, 18, 19sale_substate
Adds a secondary status (substate) to quotations and sales orders, so you can track finer steps like "Waiting for legal documents" or "In delivering" on top of the standard Quotation/Sale status.
- Sale Team Payment TermOdoo 18sale_team_payment_term
Lets you set a default payment term on each sales team, which is automatically applied to sale orders when the customer has no payment term of their own.
- Sale Tier ValidationOdoo 12, 13, 14, 15, 16, 17, 18sale_tier_validation
Adds an approval workflow to sales orders and quotations: orders can require one or more validation tiers before they can be confirmed, and printing can be blocked until approval.
- Sale Timesheet Project ManualOdoo 16, 18sale_timesheet_project_manual
Lets you create the project and tasks for a service quotation before confirming the sales order, so work can start early. A 'Generate Project/Task' button appears on draft or sent quotations that contain services with timesheet generation.
- Sale Transaction Form LinkOdoo 14, 16, 18, 19sale_transaction_form_link
Adds a smart button on the Sale Order form showing how many payment transactions are linked to the order, and lets you open them directly from there.
- Sale Triple DiscountOdoo 12, 14, 15, 16, 17, 18sale_triple_discount
Lets users enter up to three percentage discounts on each sale order line, with the total discount calculated automatically and carried over to the invoice and the printed quotation.
- Sale ValidityOdoo 12, 13, 14sale_validity
Set a default validity delay for quotations and sale orders. Odoo automatically fills the validity date based on the order date plus the configured number of days.
- Sale Validity Auto-CancelOdoo 13, 14, 15, 16, 17, 18, 19sale_validity_auto_cancel
Automatically cancels expired quotations after a configurable grace period. You set the number of days in Sales settings and can exclude specific customers from auto-cancellation.
- Sale Warn OptionOdoo 15, 18sale_warn_option
Lets you pick a ready-made warning message for a customer or a product on sales orders, instead of typing the text each time. The chosen option automatically fills the warning message field.
- Sale WishlistOdoo 12, 13, 14, 15, 16, 18, 19sale_wishlist
Adds a "Wishlist" type to product sets, so you can save lists of products for a customer and see how many wishlists each contact has.
- Sales Team Invoiced Target DomainOdoo 15, 17sales_team_invoiced_target_domain
Lets you define a custom filter (domain) that controls which customer invoices and refunds are counted in the 'Invoiced' amount shown on Sales Teams.
- Sales documents permissions by channels (teams)Odoo 12, 13, 14, 15, 16, 17, 18, 19sales_team_security
Adds a new sales permission group, "User: Team Documents Only", so users only see contacts linked to their sales team or with no salesman, and automatically keeps salespeople as followers on company and invoice/delivery contacts.
- CRM documents permissions by teamsOdoo 14, 15, 17sales_team_security_crm
Adds record-level access rules so sales team managers only see CRM leads, activities and sales teams that belong to their own teams (or are unassigned).
- Sale documents permissions by teamsOdoo 14, 15, 16, 17, 19sales_team_security_sale
Adds record-level access rules so that users with the "Team Documents Only" sales permission can only see quotations, sales orders and their lines that belong to their own sales teams or that they personally own.
- Sell Only By PackagingOdoo 16, 18sell_only_by_packaging
Lets you force products to be sold only in whole packagings on sale orders, blocking or auto-rounding quantities that do not match the packaging.
- web_widget_product_label_section_and_note_full_label_sale
Keeps the custom line label you type on a sale order line when the order is invoiced, and makes that label editable in the sale order line product widget.