A build-to-order Odoo module that captures a full revision history for every website page, letting your team compare versions, roll back mistakes, and restore any prior state with one click. ECOSIRE designs, builds, installs, and supports it after a scoping call — it is not an instant download. Built to order by ECOSIRE for Odoo 17, 18, 19 — indicative price from $249.00 USD; request a quote for a scoped proposal.
Uygulama manifestosu
İş akışınıza göre tasarlandı
A build-to-order Odoo module that captures a full revision history for every website page, letting your team compare versions, roll back mistakes, and restore any prior state with one click. ECOSIRE designs, builds, installs, and supports it after a scoping call — it is not an instant download.
Kendiniz kurmanıza gerek yok — ECOSIRE tarafından geliştirilen, kurulan ve desteklenen çalışır bir uygulama.
Tek seferlik geliştirme fiyatıyla başlayın. Kapsamı başlangıçta sizinle birlikte belirleriz.
ECOSIRE, Odoo ortamınızda geliştirir, yapılandırır ve kurar.
Yaklaşık 2–4 haftada yayına alırsınız; lansman sonrası bir destek süresi de dahildir.
Anyone who edits Odoo website pages knows the cold-sweat moment: an editor drags a snippet into the wrong place, someone overwrites a carefully-tuned hero section, or a bulk find-and-replace mangles copy across a landing page — and the native website builder has no meaningful undo once the record is saved. Out of the box, website.page and its backing ir.ui.view store only the current arch_db; earlier states vanish the moment you save. There is no per-page timeline, no diff, no "who changed what and when," and no safe rollback. Teams end up keeping shadow copies in documents or restoring an entire database from a nightly backup just to recover one paragraph — an expensive, disruptive sledgehammer for a small mistake.
This is exactly where Odoo native runs out of road, and the gap we build to fill. ECOSIRE builds a made-to-order module that snapshots the arch_db of a website page (and, where in scope, its associated ir.ui.view records, menu entries and SEO metadata) on every save, storing each snapshot as an immutable row on a dedicated website.page.revision model. Each revision captures the author (create_uid), a timestamp, an optional change note, and a stored diff so a non-technical editor sees a human-readable before/after without reading XML. A one-click Restore action writes the chosen snapshot back into the live view inside a single transaction, and — because Restore is itself a save — the pre-restore state is snapshotted first, so a restore can always be undone.
Technically, the module hooks the write path with a write() override (and an @api.model create hook) on ir.ui.view/website.page, computing a content hash so identical saves do not create noise revisions. A @api.depends-driven compute field surfaces the current revision number and last editor on the page form. Access is governed by ir.model.access.csv plus record rules so that viewing history, and the more sensitive Restore action, can be granted to distinct groups (e.g. an editor can view but only a website manager can roll back); every restore writes to the audit trail. Optional configuration — exposed through res.config.settings — controls retention (keep last N revisions, or prune by age via a scheduled ir.cron automated action), whether snapshots also cover attachments and translations (ir.translation / field translations), and whether the timeline is reachable from the frontend editor toolbar via an OWL component or only from the backend. All read/restore operations are available over the standard XML-RPC/JSON-RPC API for integration with your release or governance tooling. It is built and tested against Odoo 17.0, 18.0 and 19.0, works on Community and Enterprise (the website app is Community-grade, so no Enterprise dependency is imposed), and ships as clean, upgrade-safe source.
Because this is build-to-order, delivery follows a short, predictable path: a scoping call to lock exactly which records and metadata are versioned and who may restore, a fixed written quotation, then build and unit testing, UAT on a staging copy of your database, and go-live with a rollback plan. Typical delivery is 2–4 weeks from confirmed scope. Pricing starts from $249 (indicative, single-company base scope); wider snapshot coverage (translations, attachments, multi-website or multi-company record rules), deeper diff/rendering work, or migration of an existing edit-history dataset increases the quoted scope. You receive a firm fixed price after the scoping call — never a surprise.
Owns the public Odoo website and runs frequent landing-page and campaign edits. Needs a safety net so a bad edit or a departing contractor's mistake can be reverted in seconds instead of restoring a whole database backup.
Responsible for database integrity and change governance. Wants an auditable trail of who changed which page and when, retention controls to keep the table lean, and record rules so only trusted roles can perform a restore.
Edits many pages across client instances and hands work between team members. Needs per-page version history and diffs to review changes, plus one-click rollback to recover from editor errors without escalating to the client's IT.
Needs demonstrable change control over public-facing content for regulatory or brand-governance reasons. Values the immutable revision log, author attribution, and the ability to prove and reverse any published change.
| Kriter | ECOSIRE | Özel Yapı | Rakip | Odoo Yerlisi |
|---|---|---|---|---|
| Page-level revision history | Full timeline per page, built to your scope | Possible but you design the model from scratch | Fixed feature set, take-it-or-leave-it | |
| One-click restore | Transactional restore, itself reversible | Depends entirely on your build effort | Usually present but not tailored | |
| Change diff / before-after | Human-readable stored diff for editors | You implement and maintain the diff logic | May show raw XML or none at all | |
| Permissions & audit | Separate view/restore groups + full audit log | Your responsibility to design securely | Generic, rarely group-separated | |
| Retention control | Keep-N or prune-by-age via `ir.cron` | Build and test the cron yourself | Fixed or missing retention options | |
| Fit to your Odoo setup | Scoped to your records, versions & workflow | Fully bespoke but slow and costly to reach | Generic; you adapt to its assumptions | |
| Support & ownership | Support window + git repo handover | In-house team must own it long-term | Vendor support, no source ownership | |
| Odoo 17/18/19 + edition | Built & tested per your version, CE or EE | You port and retest across versions | Varies; may lag new releases |
No. This is a build-to-order module. ECOSIRE designs, builds, installs and supports it for your specific Odoo environment after a scoping call. It is not an existing apps.odoo.com download, and we never claim an instant install.
Typical delivery is 2–4 weeks from confirmed scope. The timeline starts once we have agreed in writing exactly which records and metadata are versioned, who may restore, and your target Odoo version(s). Larger scope — extra coverage, migrations, multi-company rules — can extend it, and we state the timeline in your fixed quote.
Pricing starts from $249 (indicative, single-company base scope). We hold a short scoping call to confirm requirements, then send a firm fixed-price quotation — no open-ended hourly billing. Drivers such as translation/attachment coverage, multi-website or multi-company record rules, deeper diff rendering, or migrating an existing edit-history dataset increase the quoted scope.
We build and test against Odoo 17.0, 18.0 and 19.0. The module targets the website app, which is Community-grade, so it runs on both Community and Enterprise and imposes no Enterprise dependency. You tell us your version(s) at scoping and we deliver source built for them.
Every engagement includes a post-go-live support window for bug fixes and adjustments, agreed in the quote. You also receive the git repository so your team owns the code. Beyond the included window, we offer optional ongoing support and version-upgrade work (for example when you move to a newer Odoo release) under a separate agreement.
Snapshots are lightweight `arch_db` rows with content-hash de-duplication, so identical saves create no revision. Retention is configurable — keep the last N revisions or prune by age via a scheduled `ir.cron` job — so the history table stays bounded. We tune both during scoping to match your edit volume.
Yes. A Restore is treated as a save, so the current state is snapshotted before the chosen revision is written back. If you restore the wrong version, the immediately-prior state is still in the timeline and one click away, all inside audited transactions.

A build-to-order Business Central AL extension that maps your 3PL warehouses into native sales and purchase flows — sending fulfillment orders, ingesting ASN and shipment confirmations, and reconciling on-hand quantities against each 3PL's stock balances.

A build-to-order ERPNext app that lets 3PL operators bill each client for storage, handling, and value-added services with strict multi-owner inventory segregation and automated periodic invoicing. ECOSIRE builds, installs, and supports it for your warehouse.

A build-to-order Magento 2 extension that automates data exchange with your third-party logistics provider — exporting orders, syncing warehouse inventory and importing shipment tracking on a cron schedule.

A custom-built, two-way integration between your Shopify store and your 3PL or WMS. ECOSIRE builds, installs, and supports it — pushing orders, syncing inventory, writing back tracking, and routing by warehouse automatically.
A build-to-order Odoo module that captures a full revision history for every website page, letting your team compare versions, roll back mistakes, and restore any prior state with one click. ECOSIRE designs, builds, installs, and supports it after a scoping call — it is not an instant download.