If CRM is Odoo 20’s quiet corner, Sales is where the release does its most practical work. Odoo 20 was unveiled on 24 September 2026 in Brussels, and while the keynote belonged to AI, the Sales release notes read like small annoyances removed: lines that forced you to create a product first, margins you could see but not steer, sections rebuilt on every proposal, and prices you could not present the way the customer thinks about tax.
Quotations, sales orders, pricelists and commissions were already mature in Odoo 19 — none of what follows replaces them. This article walks through what is genuinely new in Odoo 20, grouped the way a salesperson works: building the document, pricing it, reusing what worked, and getting paid for it.
Building the order: description-only lines
The headline Sales change removes a long-standing constraint: sales order lines no longer require a linked product by default. A line can be created from a description alone. For one-off charges, site work, bundled services, corrections and the long tail of things a business sells once, the old workflow — create a throwaway product, quote it, forever pollute the catalogue — is no longer mandatory.
Control is not gone. A new “Mandatory Product” setting lets a business enforce product selection where discipline matters, for example where every line must drive stock moves or cost accounting. The sensible default split:
- Leave products optional for services, project and professional-work teams whose lines are genuinely bespoke.
- Enforce mandatory products for stocked goods, where a description-only line would break delivery, valuation and reordering downstream.
Two companion changes tidy the line itself. The sales price of product variants can now be edited directly, and several line fields — “Margin,” “Margin (%),” “Delivered (%),” “Tax Excl.,” and “Tax Incl.” — are now stacked vertically on the line rather than spread across columns, which keeps wide orders readable. Sales order lines are also numbered, consistently on the form, the PDF and the customer portal, so a customer asking about “line 7” and a rep looking at the order are finally pointing at the same thing.
Pricing the order: editable margins and a fuller pricelist engine
Edit the margin, get the price
Margins on quotations are long-standing — Odoo has computed line and order margins from price and cost for years, but as a read-out. In Odoo 20 the direction reverses: edit the margin directly on a sales order line, and the sales price is recomputed automatically. That matches how deals are actually negotiated. A rep defending a margin floor, or a manager approving a discount in margin terms rather than price terms, can type the margin the business can accept and let the customer-facing price follow — instead of nudging the price, checking the margin, and nudging again.
The discipline question is permissions and habits, not the feature: decide who may edit margins, and review margin-edited orders the same way you review discounted ones, because the economic effect is identical.
Tax included or excluded, per document
Odoo 20 lets you switch between “Tax Included” and “Tax Excluded” prices on sales orders — the same switch also applies to purchase orders and invoices, and individual taxes can be configured to override it. A retailer quoting a consumer and a wholesaler quoting a business can now present the same order the way each audience expects, without maintaining parallel pricelists purely for presentation. For Canadian sellers juggling GST/HST-inclusive consumer quotes and tax-exclusive B2B quotes, this is a small switch with an everyday payoff.
Pricelists: periods, packaging and fixed prices
- Periodic pricing: pricelist rules, including surcharges, can be defined for specific periods or days of the week — weekend pricing, seasonal windows and promotional periods without duplicating pricelists.
- Price rules per packaging type: a rule can target a packaging type, so case pricing and unit pricing stop fighting inside one rule set.
- Fixed Price rules: extra prices from attribute values are now applied on top of “Fixed Price” pricelist rules, closing a gap where variant extras could be lost.
- Pricelist reports: reports are now grouped by product category and include additional fields such as “Product Reference” and “Barcode,” and can be filtered by a specific date — useful when a customer disputes which price applied on the day they ordered.
Reusing what worked: sections and templates
Quotation structure gets the biggest cluster of improvements, aimed squarely at teams who write similar proposals repeatedly.
Sections that behave like building blocks
- Save sections as templates and reuse them in future quotations — the standard “implementation,” “training” or “warranty” block becomes a maintained asset instead of a copy-paste from last month’s quote.
- Multi-line section descriptions let a section explain itself properly on the document.
- Update a section’s quantity and unit to quickly update all the products under it — scale a whole work package up or down in one edit.
Templates you can start from — and save back to
- Select a quotation template directly when creating a sales order, rather than creating a blank order and applying structure afterwards.
- Save any quotation or sales order as a quotation template using the “Save as template” action — the deal that worked becomes the starting point for the next one.
- Templates gain subsections and options such as “Hide Price” and “Hide Composition,” so a template can present a package price without exposing its internal build-up.
- Products can be browsed and added using the product catalog while building from a template.
Together, these change the economics of quoting: the first good proposal is the expensive one; every one after it should be assembly, not authorship. Assign ownership of the template library early, or it fills with personal variants.
Seeing the order: dashboard, images, portal and email
- Sales dashboard: a dashboard now sits at the top of the quotations and sales orders list views, with a quick view of sales performance and quick-filter buttons — the list itself becomes the morning check-in, not just a search result.
- Product images: product images can be displayed on sales orders and the related PDFs. Customers identifying items visually — parts, flavours, finishes — make fewer “is this the right one?” calls.
- Portal page: the sales order portal page has been redesigned for better content organisation and clearer positioning.
- Email template: the default sales order email now includes the customer reference in both the subject and the body, so the customer’s own PO number travels with the document they file.
Money after the signature: invoicing edges and commissions
- Charge overages: overages for prepaid services can be charged directly within the invoicing wizard, instead of being handled as a separate manual line exercise.
- Fixed prepayment amounts: a prepayment can be set to a fixed amount, not only a percentage.
- Mark orders as fully invoiced: an order can be marked fully invoiced to prevent any further actions on it — a clean end-state for orders that will never be billed further.
- Services and materials: fixed-price and cost-based services and materials can be used for re-invoicing.
- Single-use discount codes: a discount code can be restricted to one use per customer.
- Loyalty points: an expiration date can now be set for loyalty points.
- Shipping without Inventory: shipping confirmation emails can be sent and order fulfilment managed for sales orders without the Inventory app installed — a real simplification for services-led and dropship-style sellers who never needed full stock management.
Commissions: paid means paid
Two commission changes align pay with cash. Payment-based commissions calculate commissions on the amount actually paid, not merely the amount sold — a rep is no longer fully commissioned on an invoice the customer has not settled. Manager commissions roll up the achievements and targets of individual contributors into another salesperson’s commission, which supports both manager overrides and split-commission structures. Finance and sales leadership should model both changes against last quarter’s real orders before adopting them, because either can move individual pay in ways that need explaining before, not after, the first run.
One quieter item rounds out the picture: sales orders created from purchase orders now use data from previously corrected orders, so a fixed mistake stays fixed.
Adoption checklist for sales teams
- Decide per team whether the “Mandatory Product” setting stays on — stocked goods and services usually deserve different answers.
- Agree who may edit margins on a line, and add margin-edited orders to the existing discount-review habit.
- Pick the default tax display per audience — included for consumer-facing quotes, excluded for B2B — and document the exceptions.
- Convert your three most-reused quotation sections into section templates, and your best recent deal into a quotation template, on upgrade day.
- Rebuild any weekday or seasonal pricing as periodic pricelist rules instead of maintaining duplicate pricelists.
- Model payment-based and manager commissions on last quarter’s orders before switching them on.
Odoo 20 does not reinvent the quotation. It removes the catalogue detour from bespoke lines, turns margin into a steering wheel instead of a speedometer, makes quotation structure reusable in both directions, and ties commissions to money actually received. For a team that lives in quotations all day, those are the changes that will still be saving minutes months after the upgrade — long after the headline features have become background.
Further reading
- Odoo 20 Release Notes — Odoo — the Sales section: description-only lines, editable margins, quotation sections and templates, periodic pricing, and payment-based commissions.
- Sales — Odoo documentation — quotations, quotation and section templates, margins, pricelists and commissions in the Sales app.
- CRM — Odoo 20.0 documentation — the pipeline side of the quotation flow, from lead to sent quotation.
