OCA/sale-workflow
OCA community repository with 337 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
- Technical Pricelists For Account InvoicesOdoo 12, 16account_invoice_pricelist_technical
Prevents technical pricelists from being chosen on customer invoice forms, so only real, usable pricelists appear in the pricelist field.
- Partner contact sale info propagationOdoo 12, 13, 15, 16, 17, 19partner_contact_sale_info_propagation
When a company's Salesperson is changed, this module automatically updates the same Salesperson on its contacts that have no Salesperson or still have the company's previous one.
- Partner ProspectOdoo 12, 13, 14, 18partner_prospect
This module marks each contact as a Prospect or an Actual Customer based on whether any confirmed sales or customer invoices exist. It adds the Prospect flag to contact forms, lists and filters, and hides prospects from the standard Customers menu by default.
- Partner Sale PivotOdoo 12, 13, 15, 16, 17, 18, 19partner_sale_pivot
Adds a "Sales Analysis" button on the customer form that opens a pivot table of that customer's sales, with products as rows and months as columns.
- Portal Sale accept TermsOdoo 16portal_sale_accept_terms
Adds a free-text terms field on sales orders and shows it as a mandatory checkbox in the customer portal before the order can be confirmed or signed.
- Portal Sale Confirm Require LoginOdoo 17, 19portal_sale_confirm_require_login
Adds an option to force customers to log in before opening a quotation or sale order from a portal link, and blocks signing, accepting or paying until their contact details (phone, VAT, address, country) are complete.
- Portal Sale List Extra InfoOdoo 18, 19portal_sale_list_extra_info
Adds two extra columns, Client Order Ref. and Amount Untaxed, to the customer portal lists of sale orders and quotations, so customers see the reference they gave and the untaxed total directly in the list.
- Portal Sale Order SearchOdoo 16, 18, 19portal_sale_order_search
Customers can now search their own sales orders and quotations in the customer portal by order reference, customer reference or customer name.
- Portal Sale Personal Data OnlyOdoo 12, 13, 14, 15, 16, 17, 18, 19portal_sale_personal_data_only
Restricts portal users so they only see their own quotations, sales orders, invoices and invoice lines, instead of all documents of their organization.
- pricelist_by_category_qty
Adds a 'Compute global discount' button on quotations and sales orders that recalculates line prices using the total quantity of each product category in the order, so volume discounts apply across products of the same category.
- Pricelist CacheOdoo 14, 15, 16, 18pricelist_cache
Stores precomputed product prices for every pricelist so customer price lists can be displayed quickly. Adds buttons on pricelists and customers to view cached prices, plus a daily job that rebuilds the cache.
- Pricelist Cache RestOdoo 14, 18pricelist_cache_rest
Adds a secure web address that external systems can call to download the cached prices of a customer, using an API key. Administrators choose which API keys are allowed in the company settings.
- pricelist_price_base_custom
Adds a new "Custom Value" option to the base price choices of pricelist rules, letting the price be calculated from a value supplied by other code instead of the product's normal cost or sales price.
- Product customer info elaborationOdoo 18, 19product_customerinfo_elaboration
Lets you set default elaborations and an elaboration note per customer and product, and automatically fills them on sales order lines for that customer.
- Product customer info saleOdoo 18, 19product_customerinfo_sale
Shows each customer's own product code on sales order lines and uses the customer's minimum quantity when the product is selected. It also adds a 'Prices for customers' menu under Sales settings.
- Product Form Sale LinkOdoo 12, 13, 14, 15, 16, 17, 18, 19product_form_sale_link
Adds a "Sales" smart button on product and product variant forms showing how many confirmed sale order lines exist, and opens the matching sale order lines when clicked.
- Product Price CategoryOdoo 16, 18, 19product_price_category
Adds a Price Category field to products and lets you create pricelist rules that apply only to products in a chosen price category. This gives you a flexible way to group products for pricing without using product categories.
- product_set_sell_only_by_packaging
When a product can only be sold by packaging, this module warns you if product set lines for that product have no packaging, and a scheduled job automatically assigns the first valid packaging to those lines.
- Product Supplierinfo for Customers ElaborationOdoo 13, 14, 15product_supplierinfo_for_customer_elaboration
Lets you set default elaborations and an elaboration note for each customer and product, and automatically fills them in on sales order lines for that customer.
- Product Supplierinfo for Customer SaleOdoo 12, 13, 14, 15, 16, 17product_supplierinfo_for_customer_sale
Shows the customer-specific product code on every sale order line and uses it in the line description, and proposes the minimum quantity defined for that customer when a product is selected.
- product_supplierinfo_for_customer_sale_blanket_order
Shows the customer's own product code and name on blanket order lines and carries that reference into the sales orders created from them.
- product_supplierinfo_for_customer_sale_quick
When you add products to a sales order through the quick product picker, the customer's own product code and product name are shown automatically, just like on a normal sales order line.
- Sale Advance PaymentOdoo 12, 13, 14, 15, 16, 17, 18, 19sale_advance_payment
Lets you register advance payments received from a customer directly on a sales order and track how much is still due. The order shows a payment status badge and the remaining amount, and advances are automatically applied when the invoice is posted.
- Sale Amount Payment LinkOdoo 14sale_amount_payment_link
When you generate a payment link from a sale order, this module automatically reduces the amount to pay by the value of payments already completed on that order.
- Attached products in salesOdoo 13, 15, 16, 17, 18sale_attached_product
Define attached products on a product so they are added automatically to sales orders when the main product is present. Attached lines follow the main line quantity and are removed when the main product is removed.
- Sale auto remove zero quantity linesOdoo 16, 17, 18sale_auto_remove_zero_quantity_lines
Adds a company-level setting that automatically deletes sales order lines with zero quantity (and empty note lines) when a sales order is confirmed, leaving a message in the order's chatter.
- Sale Automatic WorkflowOdoo 12, 13, 14, 15, 16, 17, 18, 19sale_automatic_workflow
Lets you define automatic workflows that Odoo applies to sales orders on a scheduled job: confirm orders, send confirmation emails, create and post invoices, lock orders and register payments, each limited by a saved filter.
- sale_automatic_workflow_auto_assign
Automatically assigns a sales workflow to new sale orders based on rules you define, and adds a new duplication option to control how workflows are copied when orders are duplicated.
- Sale Automatic Workflow Delivery StateOdoo 13, 14sale_automatic_workflow_delivery_state
This glue module makes the sales order flag that says everything has been delivered rely on the delivery status field, so the two modules work together without recalculating the same information twice.
- sale_automatic_workflow_force_invoiced
Adds a "Force Invoice" option to sale automatic workflows, so confirmed orders matching a chosen filter are automatically marked as force invoiced.
- sale_automatic_workflow_ignore_exception
Adds a checkbox on sale workflow processes so that orders confirmed automatically by the workflow can bypass sale exceptions, instead of being blocked by them.
- sale_automatic_workflow_invoice_default_value
Lets you set default values for invoices created automatically by a sale workflow process, either as fixed text or copied from a field on the sale order.
- Sale Automatic Workflow JobOdoo 12, 13, 14, 15, 16, 18, 19sale_automatic_workflow_job
Runs the automatic sales workflow actions (confirm orders, send confirmation emails, create and validate invoices, mark orders as done) as background queue jobs instead of doing everything at once, so large volumes of orders are processed reliably.
- sale_automatic_workflow_payment
Lets you attach an automatic sales workflow to a payment provider, so that when a payment transaction is created for a sale order, that order automatically receives the provider's workflow.
- Sale Automatic Workflow - Payment ModeOdoo 12, 13, 14, 15, 16, 18, 19sale_automatic_workflow_payment_mode
Links payment modes to automatic sales workflows, so the right workflow is chosen automatically on sales orders. It also makes automatic invoice payment use the payment mode's type, method and journal.
- Sale Automatic Workflow PeriodicityOdoo 14, 18sale_automatic_workflow_periodicity
Lets you set how often an automatic sales workflow runs, in seconds, and shows when it will run next. You can also limit processing to sales created before the last run.
- Sale Automatic Workflow StockOdoo 17, 18sale_automatic_workflow_stock
Extend automatic sales workflows with stock options: choose the shipping policy and let Odoo automatically confirm and transfer the delivery pickings for sales orders handled by a workflow.
- sale_automatic_workflow_stock_job
Automatically validates stock transfers (deliveries) for sales orders as background jobs, so the automatic sales workflow does not slow down or block the user's screen.
- sale_automatic_workflow_stock_location_route
Lets you define a stock route on a sales workflow so that, when an order is confirmed, the route is automatically applied to its sale order lines.
- Sale Blanket OrdersOdoo 12, 13, 14, 15, 16, 17sale_blanket_order
Create blanket orders (pre-agreements to sell quantities of products at fixed prices) and generate sale orders from them at the agreed price until the validity period ends or quantities run out.
- Sale Blanket Order RevisionsOdoo 14sale_blanket_order_revision
Adds revision tracking to blanket orders, letting users create new revisions of a blanket order and view previous revisions from the form.
- Sale Block no StockOdoo 16, 17, 18sale_block_no_stock
Blocks confirming a sales order when storable products are not sufficiently available, showing a wizard to adjust quantities, move lines to a new order, or confirm anyway if allowed.
- Sale By PackagingOdoo 13, 14sale_by_packaging
Control how products are sold by packaging on sale orders: mark packagings as sellable, force quantities to round up to a packaging multiple, and require a packaging for products flagged 'Only sell by packaging'.
- Sales Cancel ConfirmOdoo 14, 18sale_cancel_confirm
Lets companies ask for an optional free-text reason when cancelling a sales order, and stores that reason, the user and the date on the cancelled order.
- sale_cancel_confirmed_invoice
When enabled, cancelling a sale order also cancels its posted but unpaid invoices. The option is turned on per company in the Sales settings.
- Sale Cancel ReasonOdoo 12, 13, 14, 15, 16, 17, 18, 19sale_cancel_reason
When cancelling a sale order, users must pick a reason from a configurable list. The chosen reason is stored on the order and shown on cancelled orders.
- Sale Cancel RestrictOdoo 19sale_cancel_restrict
Adds an option in Sales settings that blocks cancelling a sales order when a delivery has already been completed or when invoices are still draft or posted.
- Sale Commercial PartnerOdoo 12, 13, 14, 15, 16, 17, 18, 19sale_commercial_partner
Adds two stored fields on sales orders: Customer Entity and Invoice Entity, and lets you group sales orders and sales analysis by Customer Entity.
- sale_commitment_date_mandatory
Lets you make the Delivery commitment date mandatory on sales orders. When enabled, the date is pre-filled with the current date and order lines stay locked until a commitment date is set.
- Sale Commitment Lead TimeOdoo 12sale_commitment_lead_time
Lets you set a daily order cut-off hour and timezone per company, then automatically flags each sales order as delivered on time when it was confirmed before that hour and shipped within one day.
- Company Currency in Sale OrdersOdoo 14, 16, 18, 19sale_company_currency
Adds a "Total (Company Currency)" column to sale order and quotation lists, and shows the same total on the sale order form, so orders in different currencies can be summed in your company's currency.
- Sale Confirmation GroupOdoo 18, 19sale_confirm_group
Restrict who can confirm sale orders by choosing specific user groups per company. Users outside those groups no longer see the Confirm button and get an error if they try to confirm.
- Sale Contact TypeOdoo 12, 13, 14sale_contact_type
Adds an 'Ordering contact' type to contacts so a company can mark the person to address on sales orders. On a sales order, the customer field only suggests ordering contacts or companies without one.
- Sale Coupon Most ExpensiveOdoo 13sale_coupon_most_expensive
Adds a new discount option to coupon programs: apply the reward discount to the most expensive product line of the order instead of the whole order or the cheapest product.
- sale_coupon_most_expensive_delivery
This bridge module makes the 'most expensive product' coupon program ignore delivery charges when picking the eligible product, so shipping costs never win the discount.
- Sale Coupon Multi CurrencyOdoo 13sale_coupon_multi_currency
Lets you set a custom currency on coupon and promotion programs instead of always using the company currency, so discounts can be defined in a different currency.
- Sale Coupon Multi UseOdoo 13sale_coupon_multi_use
Lets a single fixed-amount coupon be used on several sale orders until its value is fully consumed. It adds a 'Multi Use Coupons' option on coupon programs and tracks each use.
- sale_coupon_multi_use_currency
Prevents changing the currency of a coupon program once multi-use coupons have already been generated from it.
- sale_coupon_order_discount_fast_change_ui
Adds a "Skip reward lines" checkbox to the fast discount change wizard, so users can apply a new discount only to paid product lines and leave coupon/promotion reward lines untouched.
- sale_coupon_product_management
Lets you control the reward product of a sale coupon or promotion program through a dedicated product category, so the discount product is created and kept in sync automatically.