跳到主内容
版本: 1.x

Customise Your Receipt

If you want to change how your receipt looks, you have three options. Pick the easiest one that does what you need — most stores never have to look past the first.

Three ways to customise

1. Pick a different template

Use one of the ready-made templates in the gallery. No code at all. Best for: a different layout, hiding prices, an A4 invoice, a kitchen ticket.

2. Ask AI to tweak it

Paste the template into ChatGPT or Claude and describe what you want. No coding skills needed — you describe it in plain English. Best for: small tweaks like wording, colours, or moving things around.

3. Edit it by hand

The in-app editor lets you change the template directly. Best for: precise control, or if you already know HTML.

All three start in the same place: WP Admin → POS → Templates. The page has two parts — Your Templates at the top (the ones you're using right now) and the Template Gallery below it (the starter library).

Option 1 — Pick a different template

This is the easiest path and covers most needs.

1

Open the template gallery

In WP Admin go to POS → Templates. Scroll past Your Templates to the Template Gallery section — that's the starter library.

2

Browse and preview

Filter by category (Receipt, Invoice, Gift Receipt, Kitchen Ticket, Quote / Purchase Order), format (HTML for browser print, ESC/POS for thermal printers), or direction (Left-to-right or Right-to-left). Click any card's thumbnail — or the Preview link in its footer — to open a live preview with your store's real data.

3

Use it

Click Use Template on the card. WCPOS makes you an editable copy and adds it to Your Templates at the top of the page. Flip the Active toggle on the row to start using it on receipts; drag the row's grip handle to reorder. You can have several active at once — the cashier picks at the till.

Use Template never replaces anything

Clicking Use Template always creates a fresh copy. The original gallery template is left untouched, so you can come back and pick a different starting point any time. If multiple receipt templates are active, the receipt screen shows a dropdown so the cashier can switch between them on the fly.

The bundled templates

TemplateFormatWhat it's for
Standard ReceiptHTMLDefault — logo, items, totals, payment. Covers most stores
Standard Receipt (RTL)HTMLSame as Standard, mirrored for Arabic / Hebrew / Persian / Urdu
Minimal / ModernHTMLSame info as Standard, packed into less vertical space
Detailed ReceiptHTMLFull tax invoice — SKU column, unit price, per-rate tax breakdown, addresses
Gift ReceiptHTMLItems only — prices hidden. Includes gift message and return policy
InvoiceHTMLFull-page A4/Letter invoice. Adds a "How to pay" panel for unpaid orders
Packing SlipHTMLWarehouse companion — items + quantities, ship-to, no prices
Quote / EstimateHTMLPre-sale document with pricing and terms — no payment section
Narrow ReceiptHTMLMonospace receipt for narrow paper or HTML-capable thermal printers
Simple Thermal Receipt (58mm)ThermalClean 58mm thermal layout
Simple Thermal Receipt (80mm)ThermalClean 80mm thermal layout — most common
Simple Thermal Receipt 80mm (RTL)ThermalRTL counterpart for 80mm. Requires a printer with an Arabic codepage
Detailed Thermal Receipt (58mm / 80mm)ThermalAdds tax breakdown, addresses, refunds, payments, terms, barcode
Kitchen TicketThermalItems only, large font, no prices — for prep stations

Most of the bundled templates adapt to your store's tax settings automatically — tax-inclusive stores see gross prices and a "Tax included" line; tax-exclusive stores see net prices with tax added as a separate line. The Detailed family always shows a full tax breakdown regardless of the setting.

Option 2 — Ask AI to tweak it

If the gallery is close but not quite right, an AI assistant can change it for you in minutes — and you don't need to know HTML.

1

Copy the template

Open the template you want to start from in WP Admin → POS → Templates, click into the editor, and select all of the text on the left side (Ctrl/Cmd + A). Copy it.

2

Paste it into ChatGPT or Claude

Open ChatGPT or Claude. Paste the template, then write what you want, in plain English:

3

Describe what to change

Tell the AI exactly what you want. Examples that work well:

  • "Make the store name bigger and centered."
  • "Add a thank-you message in italic at the bottom."
  • "Hide the customer name. Add the phone number underneath the order number instead."
  • "Change the barcode to a QR code that links to my returns page."
  • "Add a tagline 'Family-owned since 1987' under the store name."

The AI will hand you back a modified template.

4

Paste it back

Copy the AI's response. Back in the WCPOS template editor, select all (Ctrl/Cmd + A), paste the new version, and click Update. The preview on the right refreshes so you can see what happened. If it doesn't look right, ask the AI to fix it — describe what went wrong.

Best practice

Every click of Use Template in the gallery makes a fresh editable copy, so the original stays safe. If you're experimenting, you can use the same gallery template more than once — rename your copies (Receipt v1, Receipt v2) and toggle between them while you decide.

What about variables?

The bits like {{store.name}} and {{order.number}} are placeholders for your real data. The AI understands these — you don't need to. If you want to know every placeholder available, see the Receipt Data Reference.

Option 3 — Edit it by hand

If you know a bit of HTML (or you're working with a developer), you can edit the template directly in the in-app editor. The editor has live preview, syntax highlighting, a searchable field picker, undo/redo, and find-and-replace.

Choose your engine:

  • HTML Templates — Mustache-style {{variable}} placeholders. Renders client-side, works offline. Recommended for most stores.
  • Thermal Templates — XML for ESC/POS thermal printers. Same template produces both the screen preview and the printer output.
  • Receipt Data Reference — Every placeholder you can use, grouped by section.
Legacy PHP templates

If you used to override the receipt with a PHP file in your theme (yourtheme/woocommerce-pos/receipt.php), that still works. It's now labelled Legacy PHP Template in the gallery, and it sits alongside the new logicless and thermal engines. New customisations should use the gallery or the in-app editor instead — they work offline, preview live, and don't need a server round-trip.

Common customisations

Quick answers to the questions we get most often.

How do I add my store logo?

Logos come from your store settings, not the template itself. Go to WP Admin → POS → Settings → Stores, edit your store, and upload a logo there. Every bundled template that shows a logo will use it automatically.

If you want to change where the logo appears in the template, edit the template and move the {{#store.logo}}<img src="{{store.logo}}" ...>{{/store.logo}} block to where you want it.

How do I change the footer text (e.g. 'Thank you for your purchase!')?

Two options:

  1. Easiest — set it once for every receipt at WP Admin → POS → Settings → Stores → Store details → Receipt footer / personal note. Bundled templates pick it up automatically; if no footer is set, they fall back to a friendly default like "Thank you for your purchase!".
  2. In a single template — edit the template and replace the footer text directly. Look for {{store.personal_notes}} or the literal thank-you line.
How do I add a tagline or slogan under the store name?

Edit the template and add a line under {{store.name}}:

<div style="font-style: italic; color: #6b7280;">Family-owned since 1987</div>

In a thermal template:

<align mode="center"><text>Family-owned since 1987</text></align>
How do I hide prices (for a gift receipt)?

Click Use Template on the Gift Receipt card in the gallery — it hides every price and total while still showing items, SKU, attributes, and the gift message. No editing required.

If you'd rather build your own price-free receipt, copy any template and delete the {{...total...}}, {{...price...}} and {{#totals}}...{{/totals}} blocks.

How do I change the barcode to a QR code?

Find the <barcode> element in your template and change the type attribute:

<!-- Default: Code 128 barcode of the order number -->
<barcode type="code128">{{order.number}}</barcode>

<!-- Switch to a QR code -->
<barcode type="qrcode">{{order.number}}</barcode>

<!-- Or encode something else, like a returns URL -->
<barcode type="qrcode">https://example.com/returns?order={{order.number}}</barcode>

The same <barcode> syntax works in both HTML and thermal templates. Other supported types include ean13, ean8, upca, pdf417, and everything bwip-js supports.

How do I send a different template to a specific printer?

In the POS app, go to Settings → Print Routing. You'll see each of your active templates with a printer dropdown next to it. Pick the printer you want, or leave it as Auto.

  • Auto matches templates to printers automatically — thermal templates go to thermal printers, HTML templates go to the system print dialog.
  • A specific printer overrides Auto and always sends that template there.
  • At print time, the cashier can override either of the above with the printer dropdown on the receipt screen.

Routing is stored per-device, so each iPad or computer can have its own setup.

My receipt still shows the old version after I edit it

Click the WordPress Update button on the template edit screen. The editor doesn't auto-save — your changes only persist when you Update.

For Legacy PHP templates, the preview in the editor shows the last saved version, not what you're typing. Save first, then refresh the preview.

The preview is blank or shows 'No POS orders found'

This only happens with Legacy PHP templates, which need a real order to preview against. Process a single POS order — even a $0 test sale — and the preview will start working.

Logicless (HTML) and thermal templates always have sample data to fall back on, so they preview fine even on a brand-new store.

I made a mess — how do I start over?

Three safety nets:

  1. The editor has Undo (Ctrl/Cmd + Z) for in-session changes.
  2. Every save creates a WordPress revision — open Revisions on the edit screen to compare and restore any prior version.
  3. If you started from a gallery template, click Delete on your copy in Your Templates, then click Use Template on the same gallery card again. You get a fresh, untouched copy.

When to ask for help

  • The template editor won't load, or saves don't stick.
  • The receipt prints fine on one device but not another.
  • You need a fiscal/legal layout for a specific country (Italy, Brazil, Spain, etc.) — these are usually handled by WCPOS Pro or a country-specific integration.
  • You're trying to do something custom and AI can't quite get it right.

Open a support ticket and paste the template you're working with — that gives us everything we need to help.