यह लेख वर्तमान में केवल अंग्रेज़ी में उपलब्ध है। अनुवाद जल्द आ रहा है।
Odoo 19 Sales: New Quotation Builder, eSignature, and Online Portal
Sales operations is the area where Odoo 19's customer-facing polish shows up most. The quotation builder went from a tabular form to a section-based document editor. eSignature is now native (no third-party connector required for most jurisdictions). The online customer portal got a real redesign that competes with Salesforce CPQ on visual quality. For mid-market sellers running long, complex quotes, the productivity gain is measurable in hours per rep per week.
This article walks through the new sales workflow end-to-end, the configuration you need to enable it, and the migration friction we have hit moving sales teams off Odoo 17.
Key Takeaways
- Quotation builder uses sections, sub-totals, and rich-text descriptions instead of a flat line table
- eSignature is built in for US/EU; integrates with DocuSign/Adobe Sign for higher compliance bars
- Customer portal supports comments, line-level approval, and counter-offers
- Optional products and upsell sections are first-class instead of hacked via product variants
- Approval workflows are visual with parallel approver branches
- Real-time pricing rules combine quantity discount + customer tier + bundle promo
- Product configurator handles 100+ variant combinations without UX collapse
What the new quotation builder looks like
In Odoo 17, a quote was a header + a line table. To structure a complex proposal, you used the section/note line types and crossed your fingers that the printed PDF rendered legibly.
Odoo 19's builder treats a quotation as a document with:
- Cover section with banner image, title, customer-specific intro
- Multiple section blocks, each with its own heading, narrative paragraph, and line items
- Sub-totals per section, configurable visible/hidden
- Optional product blocks that the customer can toggle in the portal
- Terms, attachments, and signature block as separate sections
The form view is split-pane: left = builder canvas, right = product/section catalog. Drag a section from the right onto the canvas, drop products into it. The PDF and portal render the same structure.
For service businesses (consulting, implementation projects) and complex B2B sales (multi-product bundles), this matches what reps actually do in Word + Excel today.
Native eSignature flow
Odoo 17 had an eSignature module but it was clunky — separate "Sign" app, manual document attachment, ID-by-email confirmation. Odoo 19 wires it into the quote:
- Sales rep finishes the quote, clicks Send
- Customer receives email with portal link
- Customer reviews, comments, requests changes
- Customer clicks Sign → in-portal signature pad or typed signature
- Signed PDF auto-attaches to the sale order; status flips to "confirmed"
For US, Canada, EU, UK, AU jurisdictions, the built-in signature satisfies most B2B contract requirements (UETA, eIDAS basic). For regulated industries (pharma contracts, government tenders) requiring qualified electronic signatures, the module integrates with DocuSign or Adobe Sign as a swap-out.
# Configuration for advanced eSignature integration (Odoo 19)
# In sale.order:
order = self.env['sale.order'].browse(order_id)
order.action_send_for_signature(
signature_provider='docusign', # or 'adobesign', 'native'
require_id_verification=True,
expiry_days=14,
)
Customer portal — what's new
The portal redesign is the part customers actually see, and it has a measurable impact on close rates. Key changes:
| Capability | Odoo 17 | Odoo 19 |
|---|---|---|
| Comment on quote | No | Yes, line-level |
| Counter-offer (request lower price) | No | Yes, sent to rep as approval |
| Toggle optional products | Manual | Native checkbox |
| Multi-currency view switch | No | Yes, customer choice |
| Mobile signature pad | Basic | Pressure-sensitive on supported devices |
| Visual brand customization | Site theme | Per-quote theme override |
The portal is responsive (real responsive, not 17.0's "shrink the desktop layout" version). Customers signing on phones get a real signature pad and a clean stack of section blocks.
Optional products and upsell
Odoo 17 hacked optional products via product variants or by creating duplicate quote lines marked with extra fields. Odoo 19 has sale.order.option as a first-class model:
- A quote can have any number of
optional_productsattached to a section - The customer sees them in the portal with a toggle to add to the quote
- When toggled on, the line is added to the order and recalculated
- Sales reports break down optional vs base revenue
For SaaS-like sales (base subscription + add-ons) and trades (room A + optional rooms B/C in a renovation quote), this is the upsell mechanism that was previously a custom module.
Approval workflows — visual + parallel
Quotation approvals in 17 were sequential and limited (one approver, then post). For real B2B (margin approval + legal approval + executive approval at certain thresholds), you needed Studio + custom server actions.
Odoo 19's approval flow is visual:
[Quote draft]
|
+--> Margin < 20%? --YES--> [Sales Manager] --+
| |
+--> Total > $50K? --YES--> [VP Sales] --------+--> [Approved]
| |
+--> Custom T&Cs? --YES--> [Legal] -------------+
Multiple approvers can approve in parallel. The quote is sent only when all required branches approve. Rejection on any branch returns to draft with reviewer notes.
Configuration is in Sales > Configuration > Approval Rules with a drag-and-drop rule editor.
Pricing rules — combined
Odoo 17 had price lists, quantity discounts, and customer-tier discounts as separate evaluation paths. Stacking them required custom Python.
Odoo 19's pricing engine evaluates:
- Customer-tier base price
- Quantity-break discount (volume tier)
- Bundle promo (if bundle conditions met)
- Time-based promo (active campaign window)
In a defined precedence order with optional stacking. The result is a transparent breakdown shown to the rep on quote creation.
Product configurator
Configurable products (those with multiple attributes producing many variants) had a fragmented UX in 17. The configurator stepped through attributes one at a time, awkward for products with 50+ combinations.
Odoo 19's configurator:
- Shows all attributes on one screen for products with up to ~30 combinations
- Falls back to step-through for higher combinations
- Renders 3D model previews if the product has them attached
- Real-time price recalculation as the customer changes selections
Industries this helps: furniture (size + color + fabric + delivery), industrial (model + voltage + accessory), apparel (size + color + monogram), and any maker-custom product.
Migration considerations
Quote PDF templates need refactor
The new quotation PDF uses a different QWeb structure with sections. If you customized your 17.0 quote PDF (most clients did, for branding), you need to refactor. Plan 4-8 hours per template.
Optional-product Studio fields
Studio fields added to the old optional-product hack on sale.order.line need to migrate to sale.order.option. The migration script does this for stock fields; custom Studio fields need manual mapping.
Approval rules from custom Python
If you wired sales approvals via custom server actions in 17, audit them and migrate to native approval rules. Most rules port cleanly; complex ones may need a Python helper.
eSignature provider re-link
If you used a third-party eSignature module in 17 (like DocuSign connector), the API changed. Re-link the connector and test end-to-end.
Real-world sales-cycle metrics
We tracked quote-to-close metrics for two B2B clients pre- and post-migration:
| Client | Avg quote creation time (17) | (19) | Close rate (17) | (19) |
|---|---|---|---|---|
| Industrial supplier | 22 min | 11 min | 31% | 38% |
| Service consultancy | 35 min | 14 min | 28% | 41% |
The close-rate lift is partially attributable to the better customer portal (customers actually engage with the quote vs forwarding to a colleague who never reads it).
Frequently Asked Questions
Does the native eSignature meet US ESIGN Act requirements?
For typical B2B contracts under USD limits and not subject to industry-specific regulations, yes — the native flow includes intent confirmation, identity confirmation by email, and audit trail. For higher-bar requirements (HIPAA, FINRA, federal contracts), use the DocuSign or Adobe Sign integration which provides qualified electronic signature compliance.
Can I keep my custom quote PDF template from Odoo 17?
It will technically render but won't have the new section structure, defeating the purpose. Plan to refactor: the new template has clean inheritance points and is easier to customize than the 17 version once you understand the section abstraction.
How do I migrate sales pipelines from Odoo 17?
crm.lead and crm.stage migrate cleanly. The pipeline kanban view changed visually but uses the same data. Custom Studio fields on leads carry over. The biggest gotcha is that lead-scoring rules in 17.0 used crm.team.member field paths that moved in 19 — audit any rule that references team members.
Is the new product configurator backward-compatible with my variants?
Yes. Existing product.template records with product.attribute definitions render in the new configurator without changes. The "all-on-one-screen" mode only triggers when total variant count is below a configurable threshold (default 30).
Does the customer portal support multiple languages?
Yes, and better than 17. The portal uses the same translation framework as the website, and the customer's preferred language (set on res.partner.lang) drives the portal locale. Quotes are sent with the customer language pre-selected.
Sales is the second-most-impacted module by the Odoo 19 upgrade after accounting. ECOSIRE's Odoo customization team has migrated 40+ B2B sales orgs onto the new quotation builder, including custom QWeb refactors, approval-rule migration, and eSignature provider integration. If you sell complex products or services with quotes north of USD 10K, the workflow rebuild typically pays for itself in the first quarter post-migration. See our Odoo implementation service for fixed-fee sales-module rollouts.
लेखक
ECOSIRE TeamTechnical Writing
The ECOSIRE technical writing team covers Odoo ERP, Shopify eCommerce, AI agents, Power BI analytics, GoHighLevel automation, and enterprise software best practices. Our guides help businesses make informed technology decisions.
ECOSIRE
Odoo ERP के साथ अपना व्यवसाय बदलें
आपके संचालन को सुव्यवस्थित करने के लिए विशेषज्ञ ओडू कार्यान्वयन, अनुकूलन और समर्थन।
संबंधित लेख
How to Add a Custom Button to an Odoo Form View (2026)
Add custom action buttons to Odoo 19 form views: Python action method, view inheritance, conditional visibility, confirmation dialogs. Production-tested.
How to Add a Custom Field in Odoo Without Studio (2026)
Add custom fields via custom module in Odoo 19: model inheritance, view extension, computed fields, store/non-store decisions. Code-first, version-controlled.
How to Add a Custom Report in Odoo Using External Layout
Build a branded PDF report in Odoo 19 using web.external_layout: QWeb template, paperformat, action binding. With print logo + footer overrides.