Saltar al contenido principal

Ventas de Odoo 19: nuevo generador de cotizaciones, firma electrónica y portal en línea

Tutorial del rediseño de ventas de Odoo 19: generador de cotizaciones de arrastrar y soltar, firma electrónica nativa, portal del cliente, productos opcionales, flujos de trabajo de aprobación.

E
ECOSIRE Research and Development Team
|4 de mayo de 20268 min de lectura1.6k Palabras|

Este artículo actualmente está disponible solo en inglés. La traducción estará disponible próximamente.

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).

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:

  1. Sales rep finishes the quote, clicks Send
  2. Customer receives email with portal link
  3. Customer reviews, comments, requests changes
  4. Customer clicks Sign → in-portal signature pad or typed signature
  5. 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:

CapabilityOdoo 17Odoo 19
Comment on quoteNoYes, line-level
Counter-offer (request lower price)NoYes, sent to rep as approval
Toggle optional productsManualNative checkbox
Multi-currency view switchNoYes, customer choice
Mobile signature padBasicPressure-sensitive on supported devices
Visual brand customizationSite themePer-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_products attached 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:

  1. Customer-tier base price
  2. Quantity-break discount (volume tier)
  3. Bundle promo (if bundle conditions met)
  4. 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.

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:

ClientAvg quote creation time (17)(19)Close rate (17)(19)
Industrial supplier22 min11 min31%38%
Service consultancy35 min14 min28%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.

E

Escrito por

ECOSIRE Team

Technical 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

Transforme su negocio con Odoo ERP

Implementación, personalización y soporte experto de Odoo para optimizar sus operaciones.