Advanced POS Receipt & Invoice Customizer for Odoo 19 documentation
A guide to choosing the look of invoices, quotations and Point of Sale receipts: the styles, the extras, previewing, per-shop receipts and printing notes.
Documents version 1.0.1Updated Oct 23, 2026
Start here
In plain words: Your invoices and receipts are the part of your business that customers keep. Odoo's standard ones are correct but plain, and changing them normally means editing QWeb templates. This module gives you a choice of looks in the company settings: five styles for invoices and quotations, five for Point of Sale receipts, with an accent colour, the amount in words, signature boxes, a barcode and small print.
Tip: Nothing is changed in your data. Switch the style back to Standard (Odoo) and everything looks like it did before.
What you get
| Where | What you can choose |
|---|---|
| Invoices and credit notes (PDF) | Style: Classic, Modern, Minimal, Bold, Compact or Standard. Accent colour. Amount in words. Signature boxes. Footer note. |
| Quotations and sales orders (PDF) | The same style and extras, if you tick “Also for quotations and sales orders”. |
| Point of Sale receipts | Style: Compact, Classic, Modern, Detailed or Standard. Order barcode. Small print. Items count and savings (Modern, Detailed). |
| One Point of Sale | A style of its own in that Point of Sale's settings; the others use the company's. |
| Settings | A preview button that opens your latest invoice in the chosen style. |
Requirements
| Item | Details |
|---|---|
| Odoo | 19.0 (Community or Enterprise) |
| Apps needed | Invoicing, Sales and Point of Sale (account, sale, point_of_sale) |
| PDF printing | Odoo's normal setup with wkhtmltopdf |
| License | OPL-1 (Odoo Proprietary License v1.0) |
Install
- Unzip the package. Inside is
taqnix_receipt_styles.zip; unzip it to get the foldertaqnix_receipt_styles. - Copy the folder into one of the
addons_pathfolders of your Odoo server and restart Odoo. - Log in as an administrator, activate Developer mode, open Apps and press Update Apps List.
- Remove the “Apps” filter, search Receipt Customizer and press Install.
# or from the command line ./odoo-bin -c odoo.conf -d YOUR_DATABASE -i taqnix_receipt_styles --stop-after-init
Tip: Close and reopen your Point of Sale sessions after installing or changing the receipt style: the POS loads its settings when it starts.
Settings
In plain words: Open Settings → Receipt & Invoice Styles. The settings belong to each company.
| Setting | What it does |
|---|---|
| Style (invoices) | The look of invoices, credit notes and optionally quotations and sales orders. |
| Accent colour | Used by Modern and Bold and for the amount in words. Empty: the primary colour of your document layout. |
| Amount in words | Writes the total in words under the totals, in the language of the document. |
| Signature boxes | Two boxes under the totals: authorised signature and customer signature. |
| Also for quotations and sales orders | Use the same style, words, signatures and note on the sales documents. |
| Footer note | A short text under the document. It can be translated into each language. |
| Style (receipts) | The default for every Point of Sale of the company. |
| Barcode of the order | Prints the order reference as a barcode at the bottom of the receipt. |
| Small print | Under the receipt, for example the return policy. It can be translated. |
The invoice styles
| Style | Look | Good for |
|---|---|---|
| Standard (Odoo) | Odoo's own document, untouched. | Keeping things as they are. |
| Classic | Serif type, boxed tables with grey headers, a ruled title. | Formal businesses, contracts. |
| Modern | Accent-coloured table header, light stripes, a tinted total. | Most companies. |
| Minimal | No borders, thin lines, light small-caps headings. | Consultancies, design studios. |
| Bold | Black table header, strong rules, a big total in the accent colour. | Retail, trade, quick reading. |
| Compact | Smaller type and tighter rows. | Long invoices with many lines. |
In plain words: The header with your logo and address, and the footer, come from Odoo's document layout (Settings → Companies → Configure Document Layout). The styles change the invoice body: the table, the totals and the extras.
Amount in words, signatures and a note
In plain words: Tick what you need. All three appear under the totals, in the language of the document.
| Extra | Notes |
|---|---|
| Amount in words | Uses Odoo's number-to-text with the document's language, including Arabic. The currency's unit names (Dollars, Cents) come from the currency: translate them under Accounting → Configuration → Currencies if you want them in the document's language. |
| Signature boxes | Two empty boxes for hand signatures. Good for printed copies. |
| Footer note | Plain text. It is escaped, so it can never break the page. Translate it for each language. |
Preview before you decide
In plain words: In the settings, Preview with the latest invoice saves your choices and opens your newest invoice as a web page in the chosen style. It is the same document the PDF is made from, so you can try every style in a minute without printing anything.
The Point of Sale receipt styles
| Style | Look |
|---|---|
| Standard (Odoo) | Odoo's own receipt. |
| Compact | Small type, no logo, tight spacing, notes hidden: more orders per metre of paper. |
| Classic | Typewriter type, grey-scaled logo and dashed rules around the total, like a thermal till roll. |
| Modern | Centred header, a big white-on-black total, items count and savings. |
| Detailed | Ruled sections, a stronger total, items count and savings. |
In plain words: These receipts were produced by running real Point of Sale sessions and paying real orders, then photographing the receipt.
Receipt extras and one style per shop
| Extra | What it does |
|---|---|
| Barcode of the order | A Code 128 barcode of the order reference at the bottom, useful for returns. |
| Small print | Your text under the receipt, translated by language. |
| Items | The number of items sold (Modern and Detailed). |
| You saved | The total of the discounts, when there are any (Modern and Detailed). |
In plain words: To give one shop another look, open Settings → Point of Sale, choose the shop at the top and set Receipt style in the Bills & Receipts section. Leave it empty to follow the company.
Printing notes
| Subject | Detail |
|---|---|
| Invoice PDF | Made by Odoo with wkhtmltopdf. The styles use plain CSS that it understands (no grid, no custom properties). |
| POS receipt | Printed as an image of the receipt, so it looks the same on a browser print, a network printer and an ESC/POS printer. |
| Paper width | The receipt keeps Odoo's width. Compact is the best choice for 58 mm rolls. |
| Barcode image | Fetched from your Odoo server when the receipt is shown, so the Point of Sale needs a connection for it. |
Limits
| Limit | Detail |
|---|---|
| Header and footer of documents | They belong to Odoo's document layout, not to the styles. |
| Fonts | The PDF uses fonts available on the server. Classic uses a serif font; if the server has none, a default one is used. |
| Right-to-left documents | Odoo decides the direction; the styles do not change it. |
| A fully custom layout | The styles are looks, not a template editor. For a unique layout, extend the QWeb template (chapter 13). |
| Receipt printers with their own template | Printers that build the receipt themselves, without the image of the receipt, do not use these styles. |
For developers
In plain words: Skip this chapter if you only use the module.
| Item | Details |
|---|---|
| Company fields | tx_invoice_style, tx_invoice_accent, tx_invoice_amount_words, tx_invoice_signatures, tx_invoice_note, tx_apply_sales, tx_receipt_style, tx_receipt_barcode, tx_receipt_note. |
| Invoices | The class tx-inv-<style> is added to the invoice body and the CSS comes from res.company._tx_invoice_css(). Add your own style to STYLE_CSS. |
| POS | pos.config gets taqnix_style_in_use; OrderReceipt gets txReceipt; the receipt has the class tx-style-<style>. |
// your own receipt look: add CSS for a new style class
.pos-receipt.tx-style-shop {
font-family: Georgia, serif;
.pos-receipt-amount.receipt-total { border: 2px solid #000; }
}
# and choose it in Python (selection value 'shop')
env['pos.config'].browse(1).taqnix_receipt_style = 'shop'Troubleshooting
| Problem | What to do |
|---|---|
| The invoice PDF did not change | Check the style in the settings, and the company of the invoice: each company has its own. |
| The receipt did not change | Close and reopen the Point of Sale session so it reloads the setting. |
| A shop shows another style than the company's | That Point of Sale has its own Receipt style. Empty it to follow the company. |
| The amount in words is empty | The number-to-text library does not support the language, or is missing on the server. |
| No barcode on the receipt | Tick “Barcode of the order”. It shows only on the final receipt, not while the order is open. |
| The accent colour is ignored | Use a value such as #1f6feb. Classic, Minimal and Compact do not use the accent colour. |
Updating and removing
Replace the folder with the new version, restart Odoo and run -u taqnix_receipt_styles. Your choices are kept. To remove it, uninstall it from Apps: invoices, quotations and receipts go back to Odoo's standard look.
Support
Installation help and bug fixes are included for 6 months, with lifetime updates. Contact us through the marketplace page where you bought the module or write to support@taqnix.com with your Odoo version and a screenshot.