Introduction
Odoo reports such as invoices, quotations, purchase orders, delivery slips, and other business documents often need consistent branding. A standard logo and company address may be enough initially, but growing businesses usually require custom headers, legal information, contact details, tax information, page numbering, brand colors, or region-specific content.
With Odoo 17 report customization, businesses can manage these requirements through document layout settings, Odoo Studio, or advanced QWeb report customization.
For organizations using Odoo across operations in the USA, UK, or multiple international locations, consistent report design also helps maintain a professional brand identity across customer-facing and internal documents. Working with an experienced Odoo software development company can help ensure these changes remain scalable, maintainable, and compatible with future Odoo upgrades.
Quick: To customize headers and footers across Odoo 17 reports, businesses can configure the default Document Layout for basic branding or inherit Odoo's shared QWeb external layout for advanced requirements. Reports using the shared external layout can then display consistent logos, company details, legal text, page numbers, and other customized information.
How Odoo Report Customization Works
Odoo 17 primarily creates reports using QWeb templates, which combine XML and HTML-style structures with dynamic Odoo data. Odoo's official documentation explains that QWeb reports are written in HTML/QWeb and that PDF output is rendered from these templates.
A typical report includes:
- A report action that defines how the report is generated
- A QWeb template containing the report structure
- A shared external layout for common header and footer elements
- CSS for visual formatting
- Dynamic fields connected to company or transaction data
- Paper-format settings for margins, orientation, and dimensions
This architecture is what makes Odoo report customization scalable. Instead of adding the same company header manually to every invoice, quotation, and purchase report, developers can customize a reusable layout.
For organizations with more complex processes, a customized Odoo ERP can also conditionally display information depending on company, customer, country, report type, or business workflow.
Curious How Far Your Odoo Reports Can Be Customized?
From branded invoices to multi-company legal layouts, the same reporting framework can support much more than a standard logo and footer.
Customizing Report Headers Using QWeb Templates
A custom header can use dynamic information instead of fixed text. This makes the same Odoo report template reusable across different records or companies.
Typical dynamic fields include the company name, logo, registration number, tax number, address, telephone number, website, customer reference, document date, or report title.
Conditional QWeb logic can also control what appears.
For example, a UK entity may need one legal footer while a US entity requires different corporate information. Rather than maintaining completely separate reports, developers can apply conditions using company or country data.
This approach makes Odoo 17 QWeb reports especially useful for multi-company ERP environments.
Managing Custom Report Requirements in Odoo
Report requirements often become more complex as an ERP implementation expands.
A company might require different headers by legal entity, localized tax information, multilingual footer content, customer-specific notes, signatures, barcodes, approval information, bank details, or different layouts for different document types.
During an Odoo implementation service, these requirements should be documented before development begins.
A practical requirements checklist should define:
- Which reports need customization
- Whether changes apply globally or only to selected reports
- Which fields are dynamic
- Whether different companies require different layouts
- Which languages and currencies must be supported
- Whether legal content differs between the UK, USA, or other markets
- Whether the layout must remain compatible with future upgrades
Planning these requirements early prevents unnecessary template duplication and reduces long-term maintenance.
Best Practices for Odoo Report Customization
For reliable Odoo QWeb report customization, avoid changing standard Odoo source templates directly whenever possible.
Instead:
- Use template inheritance through a custom module.
- Keep branding logic centralized.
- Use dynamic company information rather than hardcoded details.
- Keep custom CSS organized and minimal.
- Test both HTML and PDF versions.
- Validate multi-page documents.
- Test every company in a multi-company environment.
- Maintain changes in version control.
- Revalidate inherited templates during Odoo upgrades.
- Keep backups and documentation for production changes.
Odoo's newer documentation also recommends duplicating standard reports when working through its report editor rather than unnecessarily altering the original report.
Ongoing Odoo support and maintenance services are especially valuable when report customizations depend on core templates, because upgrades can introduce changes to XML structures, layouts, fields, or styling.
Will Your Odoo Reports Survive the Next Upgrade?
Custom XPath, CSS, and QWeb changes can break when Odoo templates evolve. Get your reports reviewed and customized with
What About Odoo 20 Report Customization?
Odoo 20 should now be part of the planning conversation for businesses starting new ERP projects or preparing upgrades. As of September 2026, Odoo is already publicly presenting Odoo 20 capabilities in official events, including Odoo 20 logistics improvements.
The broader principle for report customization remains important: keep customizations modular and separate from standard code.
Businesses upgrading from Odoo 17 to Odoo 20 should not assume every existing XPath, template identifier, CSS rule, or inherited report structure will continue to work unchanged. The safest approach is to review custom modules, compare report templates, test headers and footers, and validate every important PDF after migration.
This makes upgrade-friendly QWeb development far more valuable than directly modifying core templates.
Conclusion
Customizing headers and footers in Odoo 17 is not simply a visual improvement. A properly structured Odoo report customization strategy gives businesses consistent branding, localized corporate information, easier maintenance, and better control over important ERP documents.
Basic requirements can usually be handled through Document Layout configuration, while advanced needs are better managed through inherited Odoo QWeb report templates and custom modules.
For companies operating across the UK, USA, or multiple legal entities, centralized and upgrade-safe customization is particularly important. With Odoo 20 now entering enterprise planning and adoption, keeping report logic modular today can also reduce migration complexity tomorrow.
FAQ
How do I customize the header and footer in Odoo 17?
For basic changes, use Settings → Companies → Configure Document Layout. Advanced changes can be implemented by inheriting Odoo's QWeb external layout through a custom module.
Can I apply the same header to all Odoo reports?
Yes, reports that use the shared external layout can inherit common header and footer customization. Custom or blank reports may require separate configuration.
What is QWeb report customization in Odoo?
QWeb customization modifies the XML/HTML templates that control the structure and dynamic content of Odoo reports such as invoices, quotations, purchase orders, and delivery documents.
Can Odoo display different report headers for different companies?
Yes. Company-related variables and conditional QWeb logic can be used to display different logos, addresses, legal information, and other content in multi-company environments.
Will Odoo 17 custom reports work automatically in Odoo 20?
Not necessarily. Custom templates, XPath expressions, CSS, and report structures should be checked and regression-tested during an upgrade because standard Odoo templates can change between versions.