Skip to Content

Sales app for Odoo

Sales Quotation Versioning

Keep one quotation number, snapshot every revision, and compare any two versions line by line.

Price$79
LicenseOPL-1
Odoov19 · v18 · v17
CategorySales

Overview

Sales Quotation Versioning.

Sales Quotation Versioning stores every revision of a quotation as an immutable snapshot instead of duplicating the order, so the customer keeps one quotation number and you keep the full history behind it. Compare any two versions line by line, or any version against the order as it stands right now, and see exactly which lines were added, removed, repriced, rediscounted or re-taxed with the delta on each one. A discount and margin guard measures the real giveaway against catalogue value and fires before the quotation is sent or confirmed, naming the lines responsible. Customers can see their own version history on the portal quote page.

New to Odoo Sales? Read our practical guide to how it works

Also included

Everything else in the box.

Every revision stored as an immutable snapshot, with the reason for the change recorded against itOne quotation, one number, one thread with the customer, instead of a new order per revisionLine by line comparison of any two versions: added, removed, quantity, price, discount, unit of measure, taxes and descriptionCompare any version against the order exactly as it stands right nowDelta totals per line and for the whole quotation, so the money difference is never in doubtOptional duplicate order mode for teams that would rather have a separate record per revisionEffective discount measured against catalogue value, so a direct unit price edit cannot hide itThe guard names the lines giving away the most value, instead of reporting a bare percentageThree guard modes: warn in the chatter, block outright, or require an approverAn approval covers the discount it was granted for, and a deeper cut re-arms the guard by itselfThe guard fires before a quotation is sent AND before it is confirmedRestore an earlier version back onto the live quotation, with the current state captured firstRestore refuses a signed quotation, so lines can never change underneath a customer signatureCustomer facing version history on the portal quote page, switchable per companyRecords which version was in force when the customer acceptedCost and margin data kept on a separate model with no portal access at all

What it does

Sales Quotation Versioning solves the argument that starts with "but you quoted me a different price". Instead of duplicating a sales order every time the price moves, it stores each revision as an immutable snapshot behind the same quotation number, together with the reason it was raised. The customer keeps one number and one email thread. You keep every version that ever existed, and you can put any two of them side by side and read exactly which lines changed and what each change was worth.

The second half of the module is about the money leaking out before anyone notices. The discount guard measures what a quotation actually sells for against what the same lines are worth at catalogue price, converted through each line's own unit of measure. That catches the salesperson who edits the unit price directly and never touches the discount column, which is how discount creep really happens. When a quotation crosses the line, the guard names the lines responsible rather than reporting a bare percentage nobody can act on.

Who it's for

Sales teams that renegotiate. Distributors, manufacturers, project and engineering businesses, agencies, and anyone whose quotations go through several rounds before they are signed, where the price that was agreed matters and the margin on the way there is worth protecting.

Questions

About Sales Quotation Versioning.

How do I keep a history of quotation revisions in Odoo?

Capture a version whenever the quotation changes. The module stores the header, every line, the totals and the reason for the revision as an immutable snapshot linked to the same sales order. The customer keeps one quotation number and one email thread, and you keep the full history behind it.

Can I see exactly what changed between two versions of a quote?

Yes. Pick any two versions and the comparison lists every line that moved: added, removed, quantity, unit price, discount, unit of measure, taxes and description, with the money delta on each line and on the quotation as a whole. You can also compare any saved version against the order exactly as it stands right now.

Does this duplicate my sales order for each revision?

Not by default. The snapshot approach keeps one order record, which is why the customer never receives a second quotation number. If your team prefers a separate record per revision, duplicate order mode does that instead, and it is a per company setting.

How does the discount guard decide a quotation has gone too far?

It measures the effective discount: what the quotation actually sells for against what the same lines are worth at catalogue price, in the line's own unit of measure. That is deliberately not the average of the discount column, because the most common way margin leaks is a salesperson editing the unit price directly and leaving the discount field at zero.

What happens when the guard fires?

That depends on the mode you choose. Warn posts a note in the chatter and lets the quotation through. Block refuses to send or confirm it. Approve requires a Quotation Version Approver to sign off, and the approval only covers the discount it was granted for, so a deeper cut afterwards re-arms the guard on its own.

Can I put an earlier version back onto the quotation?

Yes. Restoring rebuilds the lines from the snapshot and captures the current state first, so nothing is lost either way. Restoring is refused on a confirmed order and on a signed quotation, because the lines a customer signed for must not change underneath that signature.

Can the customer see the revision history?

Yes, if you want them to. The portal quote page can show the customer their own version history, which ends the argument about which price was agreed. It is a per company switch and it is off for cost and margin data entirely, which lives on a separate model the portal cannot reach.

Which Odoo versions and editions are supported?

Use the version selector at the top of the Odoo Apps Store page to pick your Odoo release. It works on both Community and Enterprise.

On the Odoo Store

Get Sales Quotation Versioning on the Odoo Store.

Pick your Odoo version and install it in a click, with free updates and real support behind it.

Get it on the Odoo Store