4.2 Quotations & sales orders (order-to-cash)
Key Takeaways
- The Odoo 19 order-to-cash flow is quotation, then sales order, then delivery, then invoice, with document states of Quotation, Quotation Sent, Sales Order, and Cancelled.
- Quotation templates predefine product lines, terms, an expiration date, and optional products to speed up recurring quotes and enforce consistent pricing.
- The invoicing policy per product controls billing timing: 'Ordered quantities' invoices the full order at confirmation, while 'Delivered quantities' invoices only what has shipped.
- Confirming a quotation creates a sales order and, for storable products, a delivery order in Inventory, with partial shipments producing a backorder.
- Customers can confirm a sent quotation from the online portal via online signature and/or online payment, while optional products cross-sell and delivered-quantity overages trigger upselling.
The Sales app and the order-to-cash flow
The Sales app in Odoo 19 turns a commercial agreement into revenue. The end-to-end path — often called order-to-cash — runs quotation → sales order → delivery → invoice. A salesperson drafts a quotation, the customer accepts it (which confirms it into a sales order), goods or services are delivered, and the customer is invoiced and pays. Each step is a distinct document state, and Odoo links them so a payment can be traced back to the original quote and vice versa.
Quotation states
A sales document moves through clearly labeled states shown as a status bar at the top of the form:
| State | Meaning |
|---|---|
| Quotation | Draft; fully editable, not yet a commitment |
| Quotation Sent | Emailed to the customer and visible in the online portal |
| Sales Order | Confirmed; the basis for delivery and invoicing |
| Cancelled | Voided |
Confirming a quotation — via the Confirm button, or through customer acceptance in the portal — changes it into a Sales Order and assigns the order reference (for example, S00023). A confirmed order can be locked to prevent further edits.
Quotation templates and order lines
Quotation templates let you predefine a reusable quote: default product lines, quantities, terms and conditions, an expiration date, a required online signature or payment, and optional products offered as add-ons. Templates dramatically speed up repetitive selling and enforce consistent terms and pricing across the team.
On the quotation itself, each order line carries a product, a description, a quantity, a unit of measure, a unit price, taxes, and an optional discount. Selecting a product auto-fills its price, description, and taxes from the product record, all of which you can override per line. To organize long quotes you can insert section headers and free-text notes, which print on the customer document but carry no price.
Confirming, delivery, and invoicing policies
Confirming the order can trigger a delivery. For storable products, Odoo creates a delivery order (a transfer) in the Inventory app so the warehouse can pick, pack, and ship; service products have nothing to deliver. Partial shipments create a backorder for the remainder.
The invoicing policy, set on each product, governs when you may invoice — a favorite exam topic:
- Ordered quantities — you may invoice the full ordered amount immediately at confirmation, before anything ships. Typical for services and made-to-order work.
- Delivered quantities — you may invoice only what has actually been delivered. Typical for physical goods, and the mechanism that enables upselling when the delivered quantity exceeds the order.
From the sales order, Create Invoice generates a customer invoice in Accounting. You can bill the whole order, a percentage or fixed down payment (advance), or the delivered portion. A down payment posts a partial invoice now and deducts that amount from the final invoice later, which is common for large custom orders. The resulting invoice then follows the normal accounting workflow to registration of payment, and a single order can be invoiced in several installments as delivery progresses. Product type matters here: only storable (and consumable) goods create deliveries, while service products invoice without any warehouse step.
Sending quotations: portal, signature, and payment
Clicking Send by Email delivers the quotation with a link to the online portal. There the customer can review the quote, download the PDF, comment, and — if enabled — confirm it themselves through online signature and/or online payment. A signed or paid quotation is automatically converted into a confirmed sales order, eliminating back-and-forth. You can require a signature, a payment, or both, and set the document to confirm automatically once the condition is met. Configured payment providers (such as a card gateway) collect the money at this step.
Upselling and optional products
Odoo supports two distinct cross-sell mechanics that the exam contrasts:
- Optional products appear as suggested add-ons on the quotation and in the portal, letting the customer opt in to complementary items before confirming — a classic cross-sell. They are defined on the product or quotation template.
- Upselling happens after the sale, when the delivered quantity on a "delivered quantities" product exceeds the ordered quantity; Odoo flags the order for upsell so you can invoice the extra amount.
Behind the scenes, the Sales app also drives reporting and teamwork. Each order belongs to a Sales Team and salesperson, so the Sales Analysis report can slice revenue, margin, and quantities by team, product, or customer. Order lines can display a margin (price minus cost) when that setting is enabled, helping reps protect profitability while they negotiate. The expected delivery date on the order communicates lead time to the customer, and confirmed orders feed directly into Inventory scheduling.
A compact map of the flow:
| Step | Document | Trigger |
|---|---|---|
| 1. Quote | Quotation / Quotation Sent | Draft, then Send by Email |
| 2. Confirm | Sales Order | Confirm button or portal signature/payment |
| 3. Deliver | Delivery order (Inventory) | Automatic for storable products |
| 4. Invoice | Customer invoice (Accounting) | Create Invoice; timing set by invoicing policy |
For the certification, be able to recite the state sequence, explain the two invoicing policies and exactly how they change when you can bill, describe how online signature and payment auto-confirm a quotation into a sales order, and distinguish optional-product cross-selling from delivered-quantity upselling.
What is the correct order-to-cash sequence in the Odoo 19 Sales app?
A product's invoicing policy is set to 'Delivered quantities.' What does this mean for billing?
Which capability lets a customer confirm a sent quotation themselves from the online portal, converting it into a sales order?