From estimate to signed order in one customer portal
Create a professional pre-quotation, send it with one click, and let customers view, sign, or decline it in a self-service portal — then convert accepted estimates straight into sales orders with zero re-keying.
The problem
Odoo ships one document type: the quotation. Contractors, installers, and agencies that negotiate scoped work need a lighter, pre-commitment stage — but without it, sellers send draft quotations that look final, chase approvals over email, and re-key accepted terms into a new order by hand. Approvals get lost and there is no audit trail of who agreed to what.
The solution
Sale Estimate to Customer adds a true pre-quotation stage with its own approval loop, portal presentation, and signature-to-order path. Customers view, sign, or decline estimates online with a reason; salespeople get notified instantly, and an accepted estimate converts into a sales order in one click — no re-keying, no lost email threads.
Everything the estimate loop needs
Every capability below is implemented in the module.
Line-Item Estimates
Build detailed estimates with sections, notes, per-line discounts, taxes, and estimated delivery dates — everything needed to quote negotiated, variable-scope work.
One-Click Convert to Order
Turn a signed estimate straight into a sale order with matching lines, quantities, discounts, and taxes — no re-keying and a direct link back to the source estimate.
Customer Portal, Built In
Customers view a list and detail page of their own estimates in the standard Odoo portal — no separate app purchase, no extra login step.
In-Portal Signature
Customers accept and sign right in the portal using the reusable signature pad, capturing signer name, timestamp, and method for a defensible acceptance record.
Decline With a Reason
Customers who are not ready to approve can decline with a written reason instead of going silent, so the reason lands on the estimate's chatter for the salesperson to see.
Send That Does Both
One Send action emails a PDF for the customer's records and a live portal link for action — no choosing between the two.
Status at a Glance
Draft, sent, viewed, signed, rejected, expired, and converted states show as color-coded badges in the list, kanban, and portal, so no one has to ask whether an estimate was seen.
Validity, Revisions & Templates
Set expiration dates so prices don't linger indefinitely, supersede an estimate with a tracked new revision when terms change, and start recurring estimate types from reusable templates.
Internal Approval & Notifications
Require a Sales Manager's approval before an estimate reaches the customer, and get notified automatically the moment a customer signs or declines.
How it works
Build the Estimate
Add line items (or start from a template), set validity, and submit for internal approval if your company requires it.
Send It
One click emails the PDF and a portal link to the customer — the estimate moves to Sent automatically.
Customer Signs or Declines
The customer reviews the estimate in their portal, then signs to accept or declines with a reason — you're notified either way.
Convert to Order
A signed estimate converts to a real sale order in one click, carrying over every line, price, and tax.
Frequently asked
No sales fog. If your question isn't here, email us and we'll answer it the same way.
Sale Estimate is its own model, entirely separate from the sales order. It has its own sequence, states, and portal presentation, so your quotations are untouched — estimates exist purely as the pre-quotation stage.
Buy it on the Odoo App Store
Purchase, download and install directly from the official Odoo Apps Store — you'll always get the latest supported build.
Sale Estimate to Customer
Line-item estimates with validity, revisions and templates, sent through a customer portal for in-portal signature or a declined-with-reason answer, then converted to a sales order in one click.
Buy on Odoo App Store