全体の仕組み
中心に1つの店舗。すべてのレジが同期。
- 必要な設定はプラグイン1つだけ無料プラグインがWooCommerceストアに安全なREST APIを追加します。インストールはそれだけです — デバイスごとにホスティングや設定は不要です。
- すべてのアプリが同じ店舗を読み書きデスクトップで販売し、スマートフォンで返金 — 商品、注文、顧客は1つのセットで、リアルタイムに更新されます。
- オフラインファーストなので、レジは止まりません各デバイスは接続がなくても動作し続け、オンラインに戻った瞬間に再同期します。
同期されるもの
- 商品と価格
- 在庫数
- 注文
- 顧客
- 税金とレシート
はじめに
最初の販売まで3ステップ
最初から最後まで約2分で完了します。
- 1
無料プラグインをインストール
すべてが接続する土台です。ダッシュボードで「プラグイン → 新規追加」を開き、「WCPOS」を検索してください。
WCPOS無料 · GPL
最新 1.10.2 · WordPress 5.6+ · WooCommerce 5.3+ · PHP 7.4+
- 2
デバイスを選択
すべて無料で、すべて同期します。上で検出されたもの、または以下のいずれかを入手してください。
デスクトップアプリ
iOS & iPadBeta
AndroidBeta
ウェブ
- 3
さらに必要ですか?Proへ
同じ土台に端末決済、返金、在庫管理を追加するライセンス付きプラグインです。
リリース履歴
新機能
最近の変更 — すべてのアプリが1つのバージョン系列を共有します。
リリースノートはGitHubから取得されるため、英語で表示される場合があります。
1.10.2最新2026年8月26日
- Fixed a regression in order save speed for CPT orders -- HPOS orders are not affected. (#1727)
1.10.12026年8月25日
このバージョンのリリースノートはありません。
1.10.02026年8月25日
WCPOS 1.10.0
The biggest release since we rebuilt WCPOS in React Native back in 2023. Your store now syncs through a proper change log: the POS asks the server what changed since it last checked, instead of re-downloading your catalogue and hoping it landed. Nearly everything below follows from that.
⚠️ Please don't update lightly. This is a major update — update when your store is quiet and you have time to check everything over, and be ready to roll back if you hit a problem.
Sync and performance
- The sync engine has been rebuilt end to end, on a new server API (
wcpos/v2). Your store now syncs through a change log: the POS asks what changed since it last checked instead of re-downloading the catalogue. This is the foundation the offline queue and Store Health below are built on. - Product search matches inside words, so compound-word languages work correctly — searching "saippua" now finds "Kuorintasaippua".
- Customer search matches every word, so full names like "John Smith" work against the server.
Offline and reliability
- Browsing, cart building and saving orders keep working offline. The sync engine queues the changes you make — customers, coupons, stock and price edits (Pro), and receipt emails — and replays them on reconnect.
- Taking payment still needs a connection. Checkout renders a server-hosted payment page, so the payment step cannot complete offline. Offline checkout, starting with cash, is the focus of 1.11.
- Anything the server rejects lands in a recovery list with the reason, and can be edited and resent.
- Unreadable local storage now blocks checkout with a reload prompt instead of losing the sale; barcode scans fail loudly in that state rather than going quiet.
- The crash screen's "Try again" no longer discards unsent sales.
- Web: cross-tab leader election, so multiple tabs share one writer and can't produce phantom orders.
- Order write conflicts auto-recover once and surface if they can't.
- Store switching is transactional — hydrate, then commit, with errors surfaced.
Prevent overselling (new, off by default)
- Enable in Checkout settings. The cart blocks quantities beyond available stock and shows what's left.
- The server independently refuses the order (
wcpos_insufficient_stock, HTTP 400, every failing line listed), so a stale or bypassed device can't oversell either. - Backorders (
allow/notify) never block. Variation stock aggregates to the parent stock owner. Draft and cart syncs always succeed — only checkout is gated. - Variation stock shown in the picker; out-of-stock variations can be hidden.
Barcode scanning
- Camera scanning on every platform, in a resizable panel below the filters.
- New transports: USB serial and HID-POS (Web Serial / WebHID), Bluetooth SPP, and Bluetooth LE via vendor GATT. Electron gains a device chooser; Android gains a native key interceptor.
- Keyboard-wedge detection now requires a scanner-like burst, so fast typing doesn't register.
- Scanner Setup Wizard and a test panel that measures your scanner and suggests fixes.
- UPC-A barcodes resolve to the digits printed on the package.
- Barcode field defaults to GTIN (
_global_unique_id);_skuand custommeta_data:mappings selectable. Changing the field rebuilds the catalogue's barcode index. - Optional scan sounds with themes. Scans route to the search field on the Orders screen.
- Online fallback with auto-add for barcodes not in the local catalogue.
Store Health (new)
- Database — what's on the device vs. what's on the server, real storage usage, variation totals, server clock-skew detection, per-collection "check for changes now".
- Performance — measured actuals, live tuning dials, trend charts.
- Logs — flat ledger with duration and status columns, level filters, expandable rows, infinite scroll. Every sync warning carries a registry error code with a copyable value and a link to its explanation in the docs.
Money and tax
- Cash change and card cashback render in the order's currency rather than the site default.
- Receipts print the currency symbol rather than the ISO currency code.
Printing and receipts
- Star CloudPRNT negotiates media types properly, with a
text/plainfallback. - Receipts can be rendered server-side as PNG for printers that can't decode StarPRNT.
- Auto-print rules can trigger on order creation or only once paid, and can print multiple copies.
- Offline receipts render in the correct language — the store payload now ships a label dictionary.
- Retried print failures no longer stay stuck in "Needs attention".
- Thermal fixes: mbstring fallback, wider Star width table, shared text layout, preview and print clamp out-of-range attributes identically.
- Templates are labelled "Thermal" rather than "ESC/POS".
Access and permissions
- Cashiers can create and edit products by default. Deleting stays opt-in.
- Catalogue and coupon writes are checked against real WordPress capabilities; a rejected edit reverts locally and shows the server's reason.
- Capability toggles on the Access screen are grouped by task.
Platform
- Expo SDK 57 / React Native 0.86. Desktop app on Electron 43, with the Node stack retired from the main process.
- Native local storage moved to the Expo filesystem engine.
- Fixed dropdowns not opening on iPad.
- Fixed language changes not reaching every part of the app.
- New transport fallbacks for restrictive hosts: query-parameter JWT,
?rest_route=mode, a header echo probe, and an opt-in response-body envelope for hosts that strip headers. - Settings redesigned; Settings and Store Health open as panels rather than modals.
⚠️ Changes that may affect you Only things that differ from released 1.9.17. Internal contracts that changed during 1.10 development are not listed — they were never in a shipped build.
- Legacy
API\Settingscontroller methods are removed (get_general_settings(),update_access_settings(),get_general_endpoint_args(),remove_license_transient()and others). The class alias survives; the methods do not. Third-party code calling or overriding them needs updating. - The StarPRNT fixed-layout output adapter has been removed. Templates using it need switching to another output.
- Default cashier capabilities changed — catalogue create and edit are now granted by default. Deleting stays opt-in.
- The POS product grid now defaults to name ascending, replacing the previous default order.
For integrators
- New
wcpos/v2REST namespace. Syncing lives here, and the shared POS services previously served fromwcpos/v1are nowwcpos/v2pass-throughs. Thewcpos/v1routes still register and still work — they are frozen, and the POS no longer calls them. - New public endpoints:
wcpos/v2/site(discovery),wcpos/v2/ping(reachability),wcpos/v2/echo(header probe). - POS line-item pricing storage is now documented for third-party sync compatibility.
Upgrading Don't update while your store is busy. Pick a time when you have some free time to check everything over, and be ready to roll back if you run into a problem.
Full Changelog: https://github.com/wcpos/woocommerce-pos/compare/v1.9.17...v1.10.0
1.9.172026年8月7日
What's Changed
- Smaller plugin package — the download is around 2.4 MB smaller (optimized template gallery images, removed unused bundled files). This also shrinks the Pro package and resolves installation failures on hosts with restrictive upload or disk limits. (#1538)
- Fixed Pro update downloads using a stale licence key — changing or re-activating a WCPOS Pro licence now clears WordPress's cached update information, so the next update download always uses the current licence key. (#1444, #1480)
- Fixed duplicate cashier identity on multisite — on multisite networks a cashier could be assigned two different internal IDs depending on which endpoint served them, splitting one user into two identities in the POS. All endpoints now serve a single ID per user. (#1465)
- Hardened the orders API against malformed metadata — a malformed metadata entry in a batch create/update could cause a server error partway through the batch, risking duplicate orders on retry. Malformed entries are now safely skipped and invalid IDs rejected up front. (#1473)
- POS audit metadata is now server-authoritative — order metadata recording which cashier and store created an order is now stamped by the server and can no longer be altered by the client. Cash amounts are also validated more strictly. (#1464)
- Internal cloud print improvements — consolidated printer-provider handling; the server now reports which template engines each print provider supports. (#1463)
Full Changelog: https://github.com/wcpos/woocommerce-pos/compare/v1.9.16...v1.9.17
1.9.162026年8月4日
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.152026年8月4日
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