Downloads
One till, every device.
Version 1.9.9 · Apple Silicon · .dmg
Download for macOSOn an Intel Mac? Get the Intel build
Every app connects to the free WordPress plugin — install it first.
How it fits together
One store at the centre. Every till in sync.
- One plugin is the only setupThe free plugin adds a secure REST API to your WooCommerce store. That’s the whole install — nothing to host or configure per device.
- Every app reads and writes the same storeRing up a sale on the desktop, refund it on your phone — one set of products, orders and customers, updating in real time.
- Offline-first, so the till never stopsEach device keeps working without a connection and re-syncs the moment it’s back online.
What stays in sync
- Products & prices
- Stock levels
- Orders
- Customers
- Tax & receipts
Get started
Three steps to your first sale
It takes about two minutes, start to finish.
- 1
Install the free plugin
The foundation everything connects to. In your dashboard: Plugins → Add New, then search “WCPOS”.
WCPOSFree · GPL
Latest 1.9.16 · WordPress 5.6+ · WooCommerce 5.3+ · PHP 7.4+
- 2
Pick your device
All free, all in sync. Grab the one we detected up top, or any of these.
Desktop app
iOS & iPadBeta
AndroidBeta
- 3
Want more? Go Pro
A licensed plugin that adds terminal payments, refunds and stock control on the same foundation.
Unlock the full till
Payments, refunds, stock & pricing, order management, end-of-day reports, multi-store and priority Discord support.
Release history
What’s new
Recent changes — every app shares one version line.
1.9.16LatestAug 4, 2026
Bug fix
Fixed stale price ranges on variable products. The POS product grid could show an outdated price or price range for a variable product even after variation prices changed — and clearing local data did not help — because the freshly recomputed range was discarded in favour of an old stored value when building the server response. Responses now always serve the current values, so the displayed range matches the live variation prices. The price charged at checkout was always correct; this fixes what the grid displays. Server-side fix — no app update needed.
Full changelog: https://github.com/wcpos/woocommerce-pos/blob/v1.9.16/readme.txt
1.9.15Aug 4, 2026
Security patch
Custom thermal receipt templates can no longer run PHP. A user with POS management access (eg: a shop manager) could embed PHP in a custom thermal receipt template and have it execute when a receipt was rendered, because the thermal engine fell through to the legacy PHP renderer. Thermal templates now render exclusively through the safe Mustache/XML pipeline, which discards embedded PHP; malformed markup fails closed. If you use custom receipt templates, please update.
More reliable thermal receipt rendering. Thermal render failures are now logged so a broken template is diagnosable, and browser-printed HTML receipts are constrained to the configured paper width so wide rows no longer overflow the roll.
Full changelog: https://github.com/wcpos/woocommerce-pos/blob/v1.9.15/readme.txt
1.9.14Jul 31, 2026
Fixed
- Receipt timestamps now respect your WordPress time format. Receipts could force 12-hour AM/PM times even when your site is set to a 24-hour clock. The receipt date formatter now follows the time format configured under Settings → General, while the store locale continues to control the date language.
- Hardened cloud-print job handling. Bulk-cancelling print jobs now verifies it is acting on actual print jobs (a POS-level user could previously trigger status changes on unrelated posts), and cancelling is refused for jobs that are not waiting — so a failed job keeps its payload and stays retryable. Also adds regression coverage proving receipt text cannot inject printer control bytes into thermal output (a protection already shipped in earlier releases).
Changed
- PHP 8.4+ build hardening. The bundled PDF engine now calls PHP 8.4's new functions directly instead of relying on runtime compatibility shims. Installs that loaded the shims were already protected, but a bootstrap that missed them (e.g. a partial plugin update) could fatal when rendering PDF receipts — that failure class is now gone entirely. The same issue broke PDF receipts on WCPOS Pro on PHP 8.4+, fixed separately in Pro 1.9.14.
- Updated translations.
1.9.13Jul 26, 2026
Fixed
- Garbled prints on Star CloudPRNT printers. After 1.9.12, receipts sent to Star CloudPRNT printers (the TSP100 line) could print the plain text lines followed by a metre of garbage characters, because cashier-initiated prints were still rendered as ESC/POS — which no Star CloudPRNT printer can decode. WCPOS now serves these printers native StarPRNT for cashier prints too, and automatically corrects the stored printer language on existing installs on the next settings sync (no reconfiguration needed). Other cloud printers are unaffected.
This is the print-path follow-up to 1.9.12's TSP100 StarPRNT fix.
1.9.12Jul 24, 2026
Patch release fixing Cloud Print on Star TSP100 printers and making customer receipt downloads opt-in.
- Fixed cloud printing to Star TSP100 printers — StarPRNT-native Star printers (the TSP100/TSP100IV line) rejected Cloud Print jobs with a "510 Incompatible Media Type" error and never printed, because WCPOS sent them ESC/POS. WCPOS now serves these printers native StarPRNT, so Cloud Print works on the whole TSP100 family. Other cloud printers are unaffected.
- Customer receipt downloads are now opt-in — the Receipt button on My Account → Orders (added in 1.9.11) is now off by default and turned on under Settings → General → Customers, with an optional picker to choose which template customers get. Stores that want it must enable it; the
[wcpos_receipt]shortcode is unaffected. - Fixed the Cloud Print printer name being squeezed — a long or translated status label (eg: French "En attente de l'imprimante") no longer shrinks the editable printer-name field to a few characters; the status now sits on its own row.
- Fixed receipt template selection for downloaded receipts — gallery templates now resolve correctly for customer receipt links, and the storefront receipt uses the template you selected.
- Updated translations.
1.9.11Jul 24, 2026
✨ New Features
- WCPOS Cloud Print relay — if your hosting or firewall blocks a cloud printer's direct connection (a permanent "Waiting for printer"), WCPOS now routes Star CloudPRNT and Epson Server Direct Print polling through the WCPOS Cloud Print relay automatically, and print jobs start on the printer's next poll instead of waiting for the next heartbeat. Printer cards tell you when a security layer is blocking cloud print. When the relay is used, print jobs (receipt contents) pass through
cloudprint.wcpos.com— see the privacy FAQ. Site owners can opt out in code. - Cloud Print queue — the Cloud Print settings screen now shows a live queue of your print jobs and their status, so you can see what has printed, retry a failed job, and clear the backlog. Completed job payloads are stripped and old jobs are purged automatically.
- Receipts on your online store — customers can download their order receipt as a PDF, rendered with your WCPOS receipt template, from a new Receipt button on My Account → Orders. A
[wcpos_receipt]shortcode is also available for the order-received or custom pages.
🐞 Bug Fixes
- Cloud printers that mangle the poll URL — printer credentials now travel in the URL path, so printer firmware that URL-encodes the query string (eg: Star TSP100IV) can authenticate. Existing configured printer URLs keep working.
- WCPOS Pro license image — the Pro panel now loads its image correctly.
🧰 Maintenance
- Updated translations (
2026.7.6); CI merge-gate hardening and dev-dependency housekeeping.