A build-to-order Odoo module that lets you fully design POS receipts and invoices — header, body, and footer blocks, logos, multilingual text, QR codes, and per-store templates. ECOSIRE builds, installs, and supports it for Odoo 17, 18, and 19. Built to order by ECOSIRE for Odoo 17, 18, 19 — indicative price from $149.00 USD; request a quote for a scoped proposal.

A build-to-order Odoo module that lets you fully design POS receipts and invoices — header, body, and footer blocks, logos, multilingual text, QR codes, and per-store templates. ECOSIRE builds, installs, and supports it for Odoo 17, 18, and 19.
अभी कोई भुगतान नहीं। यह हमारी टीम को एक कोटेशन अनुरोध भेजता है — हम कीमत और अगले चरणों के साथ ईमेल द्वारा संपर्क करेंगे।
Odoo's Point of Sale ships a fixed receipt layout and a standard account.move invoice report, which is fine until your brand, your tax authority, or your marketing team needs more. Out of the box you can change the logo and a header/footer string in POS settings, but you cannot reorder blocks, add a loyalty or feedback QR code, print a compliant bilingual receipt, or run different footers per store. Restaurants and retailers routinely hit this wall — the ORL (OWL) receipt component and the QWeb invoice report are hard-coded, so any real change means patching core templates, which then breaks on the next upgrade. That is exactly the gap this module closes.
New `pos.receipt.template` model (models.Model) with header/body/footer block fields, linked Many2one to `pos.config` for per-store resolution
Extended OWL `OrderReceipt` component + XSS-safe QWeb template so configured blocks render in your chosen order without patching core
QR code block with `@api.depends` compute generating a base64 image for loyalty URLs, feedback forms, or e-invoice payloads
Logo, social-handle, and promotional footer blocks with per-block visibility toggles
Bilingual and multilingual receipt text using Odoo's translation layer plus per-block language fields (Arabic/English, Chinese/English, etc.)
Inherited `account.move` QWeb invoice report mirroring the same branding, header/footer, and QR for print-consistent invoices
ECOSIRE builds a dedicated pos_receipt_designer module that introduces a configurable template model — a models.Model (e.g. pos.receipt.template) with fields for header, body, and footer blocks, logo, social/promo content, language behavior, and QR payload rules — linked by Many2one to pos.config so each store or POS session resolves its own template. On the receipt side we extend the OWL OrderReceipt component and its XSS-safe QWeb template so your configured blocks render in the exact order you set, with computed fields (@api.depends) generating the QR image (loyalty URL, feedback form, or e-invoice payload) as a base64 field. On the invoice side we inherit the account.move QWeb report to mirror the same branding, headers, and QR. Bilingual and multilingual text uses Odoo's translation layer and per-block language fields so an Arabic/English or Chinese/English receipt prints side by side. Everything is governed by proper ir.model.access.csv entries and record rules, and template data can be read or pushed through the standard XML-RPC/JSON-RPC API for headless configuration.
Because this is build-to-order, we scope to your Odoo edition and version first. The module targets Odoo 17.0, 18.0, and 19.0, and we handle the differences between them (the POS front-end moved substantially across these releases) plus Community vs Enterprise nuances — e-invoice/QR requirements and localization reports differ, and we align the design to whatever l10n_* localization you run. Nothing depends on Enterprise-only apps unless your compliance target requires it, in which case we tell you up front.
Delivery is straightforward and honest: this is not an instant apps.odoo.com download. After a short scoping call we confirm the exact receipt and invoice layouts, QR use-cases, languages, and per-store rules, then build against your version. Typical delivery is 2–4 weeks from confirmed scope. You get the installable source, a UAT pass on a staging database with a rollback plan, install and configuration on your environment, documentation, a training session, and a post-go-live support window. The full git repository is handed over to you at the end — you own the code.
Runs several stores on one Odoo database and needs each `pos.config` to print its own branded footer, promo, and loyalty QR while keeping one consistent invoice layout across all outlets.
Wants a clean branded thermal receipt with a feedback or review QR, order/table details, and a social-handle footer — plus a matching A4 invoice for corporate customers.
Operates in a region requiring bilingual receipts (e.g. Arabic/English) and QR-based e-invoice or tax data, and needs the receipt and invoice to satisfy the local `l10n_*` and tax-authority format.
Manages templates centrally, wants clean access rights via record rules, and needs to push template configuration to many databases through the XML-RPC/JSON-RPC API rather than editing each store by hand.
Buy the license on ecosire.com and download the POS Receipt & Invoice Designer module ZIP from your account dashboard.
Extract the ZIP into your Odoo custom addons folder on the server (or upload via Apps > Install from file on Odoo.sh / runbot).
Activate Developer Mode, open Apps, click Update Apps List, search for POS Receipt & Invoice Designer, and press Install.
Open the new menu, paste your ECOSIRE license key, connect any external credentials (Shopify, Amazon, Stripe, etc.), and save.
Run the built-in connection test, sync your first 10 records, and schedule the recurring cron. Contact support if anything fails.
| Criterion | ECOSIRE | Custom Build | Competitor | Odoo Native |
|---|---|---|---|---|
| Receipt layout control | Full drag/configure of header, body, footer blocks per store | Whatever you build; depends on your team's OWL/QWeb skill | A few preset layouts, limited reordering | |
| QR codes (loyalty/feedback/e-invoice) | Compute-generated QR block with configurable payload | Possible but you design the payload logic yourself | Often single fixed QR type, if any | |
| Bilingual / multilingual receipts | Per-block language fields + Odoo translation layer, RTL-aware | Achievable with effort; RTL often missed | Rarely true side-by-side bilingual | |
| Per-store templates | Template linked Many2one to each `pos.config` | You build the resolution logic | Usually one global template | |
| Invoice consistency | Inherited `account.move` QWeb report matches receipt branding | You maintain both templates separately | POS-only; invoice untouched | |
| Upgrade safety (17/18/19) | Inheritance-based, targeted to your version, support window | Risk depends on how core was patched | Depends on vendor's version cadence | |
| Ownership & code handover | Full git repository handed to you | You own it, and you built it | Licensed binary/obfuscated; no repo | |
| Fit to your compliance / branding | Scoped to your `l10n_*`, tax format, and brand | Exact fit but full cost and timeline on you | Generic; may not match local rules |
This is a build-to-order module, not an instant download. After a short scoping call to confirm your receipt/invoice layouts, QR use-cases, languages, and per-store rules, typical delivery is 2–4 weeks from confirmed scope. Tighter or larger scopes shift that estimate, and we tell you honestly before you commit.
We build for Odoo 17.0, 18.0, and 19.0, on both Community and Enterprise. The POS front-end changed significantly across these releases, so we target the module to your exact version. If your compliance goal needs an Enterprise-only or localization app, we flag that up front.
Every build includes a post-go-live support window for defects and configuration questions. Because you receive the full git repository, you own the code and can maintain it yourself, or engage ECOSIRE for version upgrades and enhancements as your needs grow.
Yes. Bilingual and multilingual text uses Odoo's translation layer plus per-block language fields, and the QR block can encode a loyalty URL, a feedback form, or an e-invoice/tax payload as required by your local `l10n_*` localization. We confirm the exact format your tax authority expects during scoping.
We avoid patching core files. The module extends the OWL receipt component and inherits the `account.move` QWeb report through Odoo's standard inheritance mechanisms, which is the upgrade-safe approach. A major-version jump can still need a review, and that is exactly the kind of work the support window and git handover cover.
Yes. Templates are linked by `Many2one` to `pos.config`, so each store or POS session resolves its own header, footer, promo, and QR blocks while you keep a single consistent invoice layout across the business.
Yes. The template model is exposed through Odoo's standard XML-RPC and JSON-RPC API, so a franchise or multi-database operator can read and push template configuration headlessly instead of editing each store's settings by hand.
A build-to-order Odoo module that lets you fully design POS receipts and invoices — header, body, and footer blocks, logos, multilingual text, QR codes, and per-store templates. ECOSIRE builds, installs, and supports it for Odoo 17, 18, and 19.