Receipt printing is where a lot of WooCommerce POS projects stall. The register works, the payment goes through, and then the printer produces a page of A4 with a browser header on it, or nothing at all. The problem is almost never the plugin — it is a mismatch between how the printer expects to be spoken to and how it is being spoken to.
There are exactly three ways to get a receipt out of a browser-based POS. Pick the right one for your setup and the rest is configuration.
Method 1: the browser print dialog
The register renders the receipt as a web page and calls the browser’s print function. The printer is installed in the operating system as a normal printer, so Windows or macOS handles the driver.
- Works with: any thermal printer with an OS driver, on a desktop or laptop register.
- Pros: no extra software, no configuration, prints your receipt exactly as designed including logos.
- Cons: a print dialog appears unless you suppress it, and the paper size must be set correctly or you get a receipt on A4.
Two settings make this usable. In the printer’s OS properties, set the paper size to your roll — 80mm or 58mm — and enable “receipt” or “roll paper” mode. Then start Chrome with kiosk printing enabled so the dialog never appears. This is the setup most small shops end up with, and it is fine.
Method 2: ESC/POS direct printing
Rather than rendering a page, the register sends raw ESC/POS commands — the decades-old language thermal printers actually speak. Text, alignment, cut, drawer kick, all as byte sequences.
- Works with: Epson TM series, Star, Bixolon, and the many generic printers that clone Epson’s command set.
- Pros: fast, no dialog, no driver quirks, reliable cash drawer control.
- Cons: a browser cannot open a USB or network socket directly, so you need a small local helper application, and receipt design is constrained to what the printer’s command set supports.
Choose this when speed matters and the counter is busy. A receipt lands in under a second and the drawer pops before the customer has put their wallet away.
Method 3: cloud printing
The register sends the receipt to a cloud service, and the printer collects it. OpenPOS supports both Star CloudPRNT, where a compatible Star printer polls a URL for jobs, and PrintNode, where a small agent on a computer on your network receives jobs and pushes them to any installed printer.
- Works with: tablets and phones, which cannot run a local helper or install drivers.
- Pros: the only practical way to print from an iPad to a counter printer; works across locations.
- Cons: requires an internet connection by definition, and PrintNode is a paid subscription above its free tier.
The connection requirement is the thing to think through. If your register relies on cloud printing and your line goes down, you can still take the sale offline but you cannot print the receipt. Shops that expect outages keep a local printer as the fallback.
Which method for which register
- Windows or Mac at a fixed counter: browser printing, or ESC/POS if you want it faster.
- Android tablet: ESC/POS to a Bluetooth or network printer, or cloud printing.
- iPad: cloud printing, or an AirPrint-capable printer through the browser dialog. iOS gives a web app no other route to hardware.
- Multiple outlets, one head office: cloud printing, so head office can reprint to a store’s printer.
The cash drawer
Almost nobody plugs the cash drawer into the computer. It plugs into the printer, through a port that looks like a phone jack (RJ-11 or RJ-12). The printer opens the drawer when it receives a drawer-kick command, which it can be told to send at the start or end of every receipt.
So the drawer opening is a side effect of printing. If you want the drawer to open automatically when a cash sale prints on Windows, we have written that up step by step in how to set up a cash drawer to open automatically after print.
If the drawer never opens, check in this order: the cable is in the printer’s drawer port and not its network port; the printer’s driver has the drawer-kick option enabled; the drawer’s voltage matches the printer’s (12V and 24V drawers are not interchangeable).
Kitchen tickets and label printers
A restaurant needs the receipt at the till and the ticket in the kitchen, printed on different printers, containing different things. The customer does not need to know the chef was told “no onions”; the chef does not need the tax breakdown. OpenPOS treats these as separate print templates bound to separate printers.
Barcode labels are a third case: a label printer using the same ESC/POS or a vendor-specific language, printing product name, price and a scannable code. Useful for anything you package yourself.
Frequently asked questions
Why does my receipt print on a full A4 page?
The printer’s paper size in the operating system is set to A4. Change it to your roll width in the printer properties, not in the browser.
Can I print a logo on the receipt?
Yes with browser printing, where the receipt is HTML. With ESC/POS the logo has to be uploaded to the printer’s memory first, which most printers support.
Can I email the receipt instead?
Yes. OpenPOS can email the receipt to the customer, which many shops now offer as the default and print only on request.
Do 58mm printers work?
They do, with a narrower template. 80mm is the standard for a reason: 58mm receipts wrap product names badly.
Printer-specific walkthroughs live in the OpenPOS knowledge base. You can ring up a sale and print a test receipt on the live demo, or buy OpenPOS once and use every printing method above at no extra cost.