A build-to-order Odoo module that captures a complete, versioned revision history for every quotation — snapshotting each change to lines, pricing, and terms so your team can see exactly what changed, when, and by whom. ECOSIRE scopes, builds, installs, and supports it for your Odoo 17, 18, or 19 instance. Built to order by ECOSIRE for Odoo 17, 18, 19 — indicative price from $249.00 USD; request a quote for a scoped proposal.
Manifesto do app
Feito em torno do seu fluxo de trabalho
A build-to-order Odoo module that captures a complete, versioned revision history for every quotation — snapshotting each change to lines, pricing, and terms so your team can see exactly what changed, when, and by whom. ECOSIRE scopes, builds, installs, and supports it for your Odoo 17, 18, or 19 instance.
Sem configuração por conta própria — um app funcional criado, instalado e com suporte da ECOSIRE.
Comece com um preço único de desenvolvimento. Definimos o escopo com você no início.
A ECOSIRE cria, configura e instala no seu Odoo.
Você entra no ar em cerca de 2–4 semanas, com um período de suporte pós-lançamento.
Sales teams renegotiate constantly. A customer asks for a discount, a longer payment term, a swapped product, a different quantity — and the salesperson simply edits the quotation in place. Odoo's native sale.order keeps only the latest state of the document; once a line is edited or deleted, the prior figure is gone. The chatter (mail.thread) logs that "a change was made" but not a structured before-and-after of the whole quote. When a deal closes weeks later and finance, the customer, or an auditor asks "what did version 2 actually say?", there is no clean answer. Managers lose the ability to review how a margin eroded across rounds of negotiation, and disputes over "what we agreed" become he-said-she-said.
This is where Odoo core runs out of road. The standard product gives you order-line tracking on a handful of fields and the chatter feed, but no first-class concept of a quotation revision — an immutable, numbered snapshot of the entire document at a point in time that you can reopen, compare, and print. Rebuilding this from Studio or manual chatter notes is brittle and unenforceable. What ECOSIRE builds for you is a dedicated revision engine: a new sale.order.revision model (models.Model) that stores a deep, serialized snapshot of the order header and every order line each time a revision is cut. Snapshots capture partner, pricelist, payment terms, validity date, notes, and the full line grid (product, description, quantity, unit price, discount, taxes, subtotal), stamped with revision_number, create_uid, and create_date. A revision_count computed field (@api.depends) surfaces on the quotation, and a smart button opens the version list.
Technically, revisions are cut through a controlled action rather than silent edits. We add a "Create Revision" button in the quotation form (XML/OWL view inheritance) that freezes the current state into a snapshot before the user begins the next round of changes — or, where you prefer, an automated action / model override that auto-snapshots on defined triggers (e.g. sending the quote, or any change after it was sent). A side-by-side comparison view renders two selected revisions and highlights field-level and line-level deltas — added lines, removed lines, quantity and price changes, discount movements, and the resulting margin swing. Each revision is printable via a dedicated QWeb report so you can hand the customer, or attach to the deal, the exact document as it stood at any round. Everything is reachable over the standard XML-RPC / JSON-RPC API for downstream reporting or integration, and access is governed by ir.model.access.csv plus record rules so revisions are read-only to salespeople and manageable only by sales managers, with multi-company record rules keeping each company's history isolated.
Because this is built to order, we start from your actual negotiation process rather than a generic template. During scoping we confirm which fields must be snapshotted, what triggers a new revision (manual, on-send, or on-confirm), whether revisions should carry approval, how comparisons and reports should look, and which roles can create versus view them. We then build against your target Odoo line — 17.0, 18.0, or 19.0, Community or Enterprise (Enterprise adds tighter Studio/approvals interplay we account for) — deliver on a staging instance for UAT, and only then install on production with a rollback plan. Typical delivery is 2–4 weeks from confirmed scope. Pricing starts from $249 (indicative, single-company base scope); multi-company revision isolation, approval workflows on revisions, migration of historical quotes into snapshots, and deeper reporting or API integrations increase the quoted scope.
Owns quote quality and margin discipline. Needs a defensible, version-by-version record of how each deal evolved so they can review discounting behavior, coach reps, and settle 'what did we agree' questions without archaeology in the chatter.
Reviews closed deals against what was quoted. Wants an immutable, printable snapshot of each revision to reconcile the confirmed order against earlier offers and to satisfy audit and internal-control requirements.
Runs a team that renegotiates frequently across multiple companies or regions. Needs revision history isolated per company, role-restricted, and reportable so leadership can spot margin erosion patterns across the pipeline.
Maintains the Odoo instance and must keep customizations upgrade-safe. Wants a cleanly inherited module with proper access rules, API exposure, and a git handover rather than fragile Studio tweaks.
| Critério | ECOSIRE | Construção personalizada | Concorrente | Odoo nativo |
|---|---|---|---|---|
| Fit to your negotiation process | Built from your scoping call — your fields, triggers, and approvals | Fully bespoke but you carry all design decisions | Fixed feature set; you adapt to its assumptions | |
| Snapshot depth | Full header + line grid captured per revision | Whatever you specify and can maintain | Often header or limited-line snapshots only | |
| Version comparison | Side-by-side view with field and line-level deltas + margin swing | Possible, at additional build cost | Basic list or single-version view typically | |
| Security & multi-company | Role-based access rules + per-company isolation from day one | Must be designed and tested by you | Generic access; multi-company varies | |
| Odoo version coverage | Built for your 17.0 / 18.0 / 19.0, Community or Enterprise | Depends on your developer | Only versions the publisher chose to support | |
| Support & handover | Post-go-live support window + full git repo handover | You own and maintain it entirely | Vendor-dependent; source often closed | |
| Delivery model | 2–4 weeks, UAT on staging + rollback plan | Timeline and QA depend on your team | Instant install but no fit guarantee | |
| Total cost of ownership | From $249 indicative; fixed quote after scoping | Higher — full dev + ongoing maintenance | Low upfront, but customization and lock-in costs |
No. This is a build-to-order module that ECOSIRE scopes, builds, installs, and supports specifically for your Odoo instance and negotiation workflow. There is no instant download — we start from a scoping call and deliver a module tailored to how your team actually revises quotations.
Typical delivery is 2–4 weeks from confirmed scope. The exact timeline depends on how many fields you snapshot, which revision triggers and approval steps you need, whether historical quotes must be migrated, and your target Odoo version. We confirm dates in the fixed quote after the scoping call.
Pricing starts from $249 as an indicative from-price for a single-company base scope. After a short scoping call we send a fixed quote. Drivers such as multi-company revision isolation, approval workflows, migrating historical quotes into snapshots, and deeper reporting or API integrations increase the quoted scope. You approve the fixed price before we build.
We build for Odoo 17.0, 18.0, and 19.0, on both Community and Enterprise. The module uses standard view inheritance and the ORM so it layers onto core `sale.order` without replacing it. Enterprise-specific interplay with Studio and approvals is accounted for during scoping.
Every build includes a post-go-live support window for defect fixes and minor configuration changes. Because we hand over the full git repository, you own the code. Migrating the module to a future Odoo major version (e.g. 19 to 20) is a separate scoped engagement we're happy to quote when you upgrade.
No. Snapshots are written to a separate `sale.order.revision` model and its lines — we don't overwrite or delete core `sale.order` data. Revision creation is a controlled action, and access is governed by `ir.model.access.csv` and record rules. We validate everything on a staging instance during UAT before touching production.
Yes. Security is part of the base build: salespeople typically get read-only access to revisions while sales managers can create and manage them, all enforced via record rules. Multi-company record rules keep each company's revision history isolated within a single database — the depth of that isolation is one of the scope drivers we confirm up front.
A build-to-order Odoo module that captures a complete, versioned revision history for every quotation — snapshotting each change to lines, pricing, and terms so your team can see exactly what changed, when, and by whom. ECOSIRE scopes, builds, installs, and supports it for your Odoo 17, 18, or 19 instance.