A build-to-order Odoo module that consolidates multiple draft invoices or account moves for the same customer into one clean invoice. ECOSIRE scopes, builds, installs, and supports it for your database. Built to order by ECOSIRE for Odoo 17, 18, 19 — indicative price from $299.00 USD; request a quote for a scoped proposal.
App manifest
Built around your workflow
A build-to-order Odoo module that consolidates multiple draft invoices or account moves for the same customer into one clean invoice. ECOSIRE scopes, builds, installs, and supports it for your database.
No DIY setup — a working app, built, installed and supported by ECOSIRE.
Start with a one-time build price. We scope it with you at kickoff.
ECOSIRE builds, configures and installs it on your Odoo.
You go live in about 2–4 weeks, with a post-launch support window.
Finance teams that raise many small invoices for the same customer end up drowning in paperwork: ten deliveries in a month become ten account.move records, ten PDFs, ten payment references, and ten reconciliation lines. Customers ask for one consolidated invoice; your team ends up either credit-noting and re-keying by hand or exporting to a spreadsheet to bolt figures together. Odoo core has no supported way to fold several posted or draft invoices into a single document — the sale/subscription "invoicing policy" batches at generation time, not after the fact, and there is no button that says "combine these five into one." That gap is exactly where manual workarounds creep in and errors follow.
ECOSIRE builds Merge Invoices as a proper Odoo module for your database. At its core it adds a server action and wizard over account.move: select several draft (or, per your policy, cancellable-and-reissuable) customer invoices for the same partner, currency, and company, and generate one consolidated account.move whose lines are the union of the source invoice lines — preserving analytic distribution, taxes, product references, and the source document numbers as a traceable origin. The wizard validates that partners, currencies, fiscal positions, and companies match before it will merge, and it records a clean audit trail (ir.logging plus a message on the chatter of both the merged invoice and the sources) so an auditor can always walk from the single invoice back to what it replaced. Access is governed by ir.model.access.csv and record rules so only accounting users with the right group can run a merge, and multi-company record rules keep the action inside the operating company. We wire the whole thing with a __manifest__.py that depends only on account, ship OWL/XML views and a QWeb-ready consolidated layout, and keep the compute logic in tested @api.depends methods rather than fragile onchange hacks — so it upgrades cleanly across Odoo 17.0, 18.0, and 19.0 and works on both Community and Enterprise.
Because this is a productized service, not a shelf download, the behaviour is shaped to your reality during scoping: whether merges happen on drafts only or reverse-and-reissue posted moves, how source references are stamped on the consolidated lines, whether you group by partner-and-period or by a custom key, how down-payments and existing credit notes are handled, and whether the action is exposed in the list view, on the partner, or triggered by an automated action or the XML-RPC/JSON-RPC API for headless batch runs. You get code built for your version and your chart of accounts, not a generic binary you have to bend to fit.
Delivery is build-to-order. After a short scoping call we confirm exact scope in writing, then build on a staging copy of your database, run UAT with your team, and cut over with a rollback plan. Typical delivery is 2-4 weeks from confirmed scope, depending on edge cases and how many localizations or integrations touch invoicing. Pricing starts from $299 (indicative, single-company base scope); multi-company consolidation, deep localization or e-invoicing hooks, and large historical data migration increase the quoted scope. You receive a fixed quote after the scoping call — never a surprise.
Owns receivables and month-end close. Needs to send customers one consolidated invoice per period instead of dozens of small ones, without re-keying or breaking the audit trail back to source documents.
Runs Odoo internally and fields the 'can we just combine these invoices?' request. Wants a supported, upgrade-safe module scoped to the company's chart of accounts and invoicing policy, not a spreadsheet workaround.
Handles many deliveries or subscriptions per customer per month. Needs batch consolidation by partner-and-period, ideally scheduled or triggered via API, with taxes and analytics preserved.
Delivering an Odoo project for an end client and needs a reliable invoice-merge capability built and warranted by a specialist, with clean code, tests, and a git handover to fold into the wider implementation.
| Criterion | ECOSIRE | Custom Build | Competitor | Odoo Native |
|---|---|---|---|---|
| Fit to your invoicing policy | Built to your exact merge rules and chart of accounts | Fully bespoke but you own all the design decisions | Fixed feature set; you adapt to its assumptions | |
| Merge posted vs draft invoices | Configurable, incl. reverse-and-reissue flow if needed | Whatever you specify and build | Usually drafts only, take it or leave it | |
| Audit trail & traceability | Chatter + source refs + `ir.logging`, both directions | Only if you design and build it in | Varies; often minimal linkage | |
| Security & multi-company scoping | Dedicated group via `ir.model.access.csv` + record rules | Your responsibility to implement | Generic groups, limited control | |
| Odoo 17/18/19 & Community/Enterprise | Built and tested for your version, upgrade-safe | Depends on your team's discipline | Depends on vendor's version coverage | |
| Support & warranty | Post-go-live window + git handover from a specialist | In-house only, no external warranty | Vendor support of variable quality | |
| Time to live | 2-4 weeks from confirmed scope | Weeks to months depending on capacity | Instant install but generic fit | |
| Cost model | From $299 indicative, fixed quote after scoping | High; developer time + maintenance | Low licence, hidden adaptation cost |
This is a build-to-order module, so it is built after you request it. Typical delivery is 2-4 weeks from confirmed scope. Simple single-company drafts-only merges land at the shorter end; multi-company, localization, or historical-data work extends it. We confirm the timeline in writing before we start.
Pricing starts from $299 as an indicative figure for a single-company base scope. After a short scoping call we assess your invoicing policy, company setup, and integrations, then send a fixed written quote. Multi-company consolidation, e-invoicing/localization hooks, and large data migration raise the quoted scope. You approve the fixed price before any build begins.
Every build includes a post-go-live support window for defect fixes and adjustments. We build for your target Odoo version and can extend compatibility to 17.0, 18.0, or 19.0. Because the module keeps logic in tested compute methods and depends only on `account`, it upgrades cleanly; longer-term maintenance or version-upgrade retainers are available on request.
No. The consolidated invoice records the source document references on its lines and in the chatter, and each source invoice logs a message pointing to the merged move, so an auditor can always trace both directions. Taxes and analytics are recomputed through Odoo's native engine so totals reconcile against the original set. We agree the exact posted-vs-draft handling during scoping to fit your compliance rules.
By default merging on drafts is the safest and cleanest path. If your process needs posted invoices consolidated, we implement a reverse-and-reissue flow (credit note plus new consolidated invoice) with a full audit trail, subject to your accounting and tax rules. We define this behaviour precisely at scoping so it matches your fiscal requirements.
The module validates that sources share the same partner, company, and currency before merging, and multi-company record rules keep the action scoped to the active company. Cross-company or multi-currency consolidation is possible but is additional scope we assess and quote after the scoping call.
Yes. Beyond the manual wizard, we can expose the merge as an automated action (for example month-end batch consolidation by partner) and as an XML-RPC/JSON-RPC entry point so external systems can trigger merges headlessly. These options are confirmed and priced during scoping.
A build-to-order Odoo module that consolidates multiple draft invoices or account moves for the same customer into one clean invoice. ECOSIRE scopes, builds, installs, and supports it for your database.