Skip to main content
Invoice Format Editor — A build-to-order Odoo module that gives your finance team real control over invoice report layout, br — 1/1Illustrative preview

A build-to-order Odoo module that gives your finance team real control over invoice report layout,

branding, and formatting without hard-coding a new template for every variation.

ECOSIRE designs, builds, installs, and supports it against your exact Odoo version and document standards.

What is Invoice Format Editor?

A build-to-order Odoo module that gives your finance team real control over invoice report layout, branding, and formatting without hard-coding a new template for every variation. ECOSIRE designs, builds, installs, and supports it against your exact Odoo version and document standards. Built to order by ECOSIRE for Odoo 17, 18, 19 — indicative price from $999.00 USD; request a quote for a scoped proposal.

Key Features

QWeb template inherits `account.report_invoice_document` rather than replacing it, so customizations survive `-u` module upgrades
Data-driven `invoice.format.profile` model stores layout options as typed `fields` instead of hard-coded template forks
Per-company branding: distinct logo, header block, and bank-details footer resolved from `company_id` at render time
Configurable line-item columns — toggle visibility, reorder, and set widths for description, quantity, unit price, discount, and taxes
Watermark engine that stamps 'Draft' or 'Proforma' on unposted `account.move` records and clears on posting via state-aware QWeb conditions
Tax-summary presentation options: per-line, grouped by tax, or consolidated totals table for regulator-specific breakdowns
Font, spacing, and color tokens exposed as fields with `@api.depends` computes for consistent typographic scaling across the PDF
Separate `ir.actions.report` variants for Invoice, Credit Note, and Proforma, each bound to its own format profile
Automated profile selection via server/automated actions keyed on journal, company, or partner category
Access governed by `ir.model.access.csv` plus record rules — only Accounting managers edit formats, others print unchanged
Optional OWL preview widget in the settings form for live layout feedback before saving
Multi-currency and multi-language-aware rendering that respects the partner's `lang` and the invoice currency formatting
Resolved format metadata exposed over XML-RPC/JSON-RPC for downstream document-management or e-invoicing pipelines
Clean `__manifest__.py` with pinned `account`/`web` dependencies and no core monkey-patching, built for Odoo 17.0/18.0/19.0, Community or Enterprise

Built to order, done for you

No DIY setup — a working app, built, installed and supported by ECOSIRE.

  1. 1

    You order

    Start with a one-time build price. We scope it with you at kickoff.

  2. 2

    We build & install

    ECOSIRE builds, configures and installs it on your Odoo.

  3. 3

    Go live + support

    You go live in about one working week, with two weeks of go-live support. Defects in the code we deliver are fixed free of charge.

Technical Specifications

Odoo Compatibility
Odoo 17, Odoo 18, Odoo 19
Editions
Enterprise & Community
License
Licence confirmation required
Python Requirement
Python 3.10+
Database
PostgreSQL 12+

About this Product

Odoo ships one default invoice QWeb report, and every finance team eventually hits its ceiling. You need a second logo block for a subsidiary, a bank-details footer that changes per company, an itemized tax breakdown a regulator expects, a "Proforma" watermark on draft documents, or column widths that stop wrapping your product descriptions. Out of the box each of those means editing the account.report_invoice_document template, forking QWeb, or overriding CSS in a way that breaks on the next -u upgrade. Teams end up with brittle low-code tweaks, a developer ticket for every layout change, and inconsistent PDFs across companies. This is where Odoo native runs out of road: it gives you the report engine, but not a governed, reusable way for non-developers to shape what the invoice actually looks like.

The Invoice Format Editor is a build-to-order module ECOSIRE designs around your document standards. Technically it adds a configuration layer on top of Odoo's QWeb reporting rather than replacing it. We introduce a models.Model (for example invoice.format.profile) holding the layout options you care about — header and footer blocks, column visibility and order, font and spacing tokens, tax-summary style, per-company branding, and watermark rules for draft versus posted states — with typed fields, @api.depends compute methods for derived display values, and sane defaults. A thin QWeb template inherits account.report_invoice_document and reads the active profile at render time, so account.move records print through your chosen format with no per-invoice hand-editing. Settings live behind a clean form view (XML, with OWL widgets where an interactive preview helps), and access is scoped with ir.model.access.csv plus record rules so only Accounting managers can change formats while everyone else simply prints.

Because the module is data-driven, format changes become configuration instead of code. A new document type or a subsidiary that needs a different footer is a new profile, not a new fork. We can wire ir.actions.report variants (Invoice, Proforma, Credit Note) to distinct profiles, expose the resolved format over the XML-RPC/JSON-RPC API for downstream document systems, and trigger profile selection automatically via server actions or automated actions based on journal, company, or partner. Everything is built to survive upgrades: inheritance over template replacement, no monkey-patching of core, and a __manifest__.py that pins clean dependencies on account and web. We build for Community or Enterprise and target Odoo 17.0, 18.0, or 19.0 to match your environment.

Delivery is genuinely made-to-order. We start with a short scoping call, confirm your exact layout requirements, sample invoices, company structure, and Odoo version, then send a fixed quotation for the agreed scope. From confirmed scope, typical delivery is one working week: we build on a branch, hand you a staging build for UAT, iterate on the real PDFs, then install to production with a rollback plan. There is no instant download — this is software we write, test, and support for your specific setup. Pricing starts from $999 (indicative, single-company base scope); multi-company branding, regulator-specific tax layouts, additional document types, and localization depth increase the quoted scope.

What you get

  • Installable source code for your Odoo version (17.0, 18.0, or 19.0), Community or Enterprise
  • Installation and configuration on your environment, including format profiles seeded to your document standards
  • Technical documentation: model/field reference, QWeb inheritance points, and upgrade notes
  • End-user guide plus a live training session for your Accounting team
  • UAT on a staging build with sample invoices, sign-off, and a documented rollback plan
  • Post-go-live support window for defect fixes and configuration adjustments
  • Git repository handover with full commit history and branch/tag structure
  • Version-compatibility notes covering behavior differences across Odoo 17/18/19 and Community vs Enterprise

Who this is for

Accounting / Finance Manager

Owns the look and compliance of outgoing invoices. Needs to change layouts, tax breakdowns, and footers without filing a developer ticket every time, and wants consistency across all companies and document types.

Odoo Administrator / Internal IT

Maintains the instance and dreads upgrades breaking a forked report. Wants customizations delivered as an upgrade-safe module with clean dependencies, access controls, and documentation they can support.

Multi-Company / Group Controller

Runs several legal entities in one Odoo database, each needing its own branding, bank details, and regulator-specific invoice format. Needs per-company profiles that resolve automatically at render time.

Operations lead at an Odoo-run SME

Runs the business on Odoo and wants professional, on-brand invoices that match customer and regulator expectations, delivered and supported by a partner rather than pieced together from generic tweaks.

How Invoice Format Editor Compares

CriterionECOSIRECustom BuildCompetitorOdoo Native
Delivery modelBuilt, installed & supported by us in one working week from confirmed scopeIn-house dev time, often months and competing with other prioritiesInstant download, but you install and adapt it yourselfAvailable immediately, but only the single default layout
Upgrade safetyQWeb inheritance, no core patching; upgrade notes providedDepends entirely on your team's disciplineVaries by vendor; forks may break on major versionsSafe, but you lose any manual edits to the default report
Non-developer controlFormat profiles editable from a governed settings formWhatever you choose to build, if scoped that wayUsually a fixed option set you cannot extendLayout changes require editing QWeb/CSS directly
Multi-company brandingPer-company profiles resolved automatically at render timeBuildable, adds significant effortOften single-company or limited overridesOne shared template; per-company nuance is manual
Fit to your standardsDesigned around your exact layouts, taxes & document typesFully bespoke if you have the specification and budgetGeneric feature set; you bend to its assumptionsGeneric default; limited to built-in options
Access control`ir.model.access.csv` + record rules scope who edits formatsOnly if you design and implement itRarely granular beyond standard report accessReport editing gated by technical/admin access only
Support & accountabilityPost-go-live support window, single accountable partnerOwned entirely by your internal teamBest-effort vendor support, variable SLAsCommunity forums / your own admin
Total costIndicative from $999, fixed quote after scopingHighest — full dev, QA & maintenance on youLow sticker price, hidden adaptation & upkeep costNo license cost, but capability gaps remain

Frequently Asked Questions about Invoice Format Editor

How long does delivery take?

This is a build-to-order module, not an instant download. After a scoping call to confirm your layout requirements, Odoo version, and company structure, typical delivery is one working week from confirmed scope. That covers build on a branch, a staging build for your UAT, iteration on the real PDFs, and production install with a rollback plan.

How does pricing and scoping work?

Pricing starts from $999 as an indicative from-price for a single-company base scope. It is not a fixed price: after a short scoping call we send a fixed quotation for your agreed scope. Drivers like multi-company branding, regulator-specific tax layouts, extra document types (proforma, credit notes), and localization depth increase the quote.

What about support and upgrades?

Every build includes a post-go-live support window for defect fixes and configuration adjustments. Because we inherit `account.report_invoice_document` instead of replacing it and avoid core monkey-patching, the module is designed to survive `-u` upgrades. We can also quote a maintenance arrangement or a paid migration when you move to a newer Odoo major version.

Will this break when I upgrade Odoo?

It is specifically engineered not to. We use QWeb template inheritance over template replacement, keep the `__manifest__.py` dependencies clean, and store your layout choices as configuration data on a dedicated model rather than baking them into forked templates. We deliver upgrade notes and can validate against your target Odoo version.

Does it work with Odoo Community and Enterprise, and which versions?

Yes. We build against your exact environment and target Odoo 17.0, 18.0, or 19.0, on Community or Enterprise. Some capabilities differ between editions; we confirm what applies to your edition during scoping and document any version-specific behavior in the handover.

Can each company or document type have a different format?

Yes. The module is built around reusable format profiles. Each legal entity, journal, or document type (invoice, credit note, proforma) can map to its own profile, with per-company logos, footers, and bank details resolved automatically at render time — no per-invoice editing.

Can the formatted output feed other systems?

Yes. The resolved format and invoice data are accessible over Odoo's XML-RPC/JSON-RPC API, so downstream document-management, archiving, or e-invoicing pipelines can consume consistent output. We scope any specific integration during the requirements call.

Request a quote

Invoice Format Editor

A build-to-order Odoo module that gives your finance team real control over invoice report layout, branding, and formatting without hard-coding a new template for every variation. ECOSIRE designs, builds, installs, and supports it against your exact Odoo version and document standards.

  • QWeb template inherits `account.report_invoice_document` rather than replacing it, so customizations survive `-u` module upgrades
  • Data-driven `invoice.format.profile` model stores layout options as typed `fields` instead of hard-coded template forks
  • Per-company branding: distinct logo, header block, and bank-details footer resolved from `company_id` at render time
  • Configurable line-item columns — toggle visibility, reorder, and set widths for description, quantity, unit price, discount, and taxes

Request a Quotation

Tell us about your Invoice Format Editor requirements and we'll send pricing, licensing options and a tailored proposal — usually within one business day.

No payment now. This sends a quote request to our team — we'll follow up by email with pricing and next steps.