SIRAPIX POS for WooCommerce - Complete Description
Category: WordPress Plugins • Platform: PHP
Turn WooCommerce into a single inventory POS for online and in-store sales, works on any device, nonstop offline checkout, multilingual, instant search, and cashier control.
Key benefits
- Sell in‑store and by phone using your existing WooCommerce products, prices and taxes, with no separate inventory to manage.
- Keep orders, customers and stock fully in sync between online and POS sales in real time whenever the site is online.
- Keep selling when the network drops thanks to an offline‑first, PWA‑style POS that syncs queued orders when you go back online.
POS interface
The POS runs on a dedicated WordPress page and is optimized for tablets, touch screens and desktop registers.
- 3‑column layout:
- Top: Header with status, cashier name, and actions (Sync Now, Refunds / Orders)
- Left: product Categories
- Middle: Product Grid, and Instant Autocomplete Search
- Right: Current Order/cart.
- Product browsing by category with images, infinite scroll and press feedback on tap.
- Instant search with autocomplete after a few characters to add items directly from search results.
- Cart view shows items, quantities and total, with actions for payment, total override, purchase origin and receipt printing.
Customer handling
The POS is built around phone‑first customer lookup so repeat buyers are recognized instantly.
- Phone and name are required; email is optional.
- Live lookup by phone finds existing WooCommerce customers by billing phone and auto‑fills name and email when available.
- If an email is provided, the POS links or creates a customer account keyed to that email.
- If email is missing, the POS can generate a lightweight email using the phone digits and site domain so each customer can still be stored and recognized later; these fabricated emails are flagged so customers can be asked to update them.
- New customers created via POS can use the digits‑only phone number as both username and password by default, with billing phone stored in user meta so they can sign in later and update their details.
Order flow
SIRAPIX WooCommerce POS creates standard WooCommerce orders so all existing reports, emails and integrations continue to work.
- Orders include all selected items, taxes and totals, and reduce stock from your WooCommerce inventory as usual.
- Orders are created as Completed with a dedicated “Offline Payment” method label and a zero‑cost “Offline Store” shipping line.
- Optional total override lets the cashier apply an order‑level discount by targeting a final total; the plugin adds an automatic discount line to reach that amount when it is lower than the calculated total.
- An Origin selector (In‑Store Purchase or Phone) marks POS orders and drives WooCommerce Order Attribution so the Orders list clearly shows how each order was created.
- POS orders are tagged with the cashier user ID and name so future reports and custom columns can show who took each sale.
- Double submission is prevented by disabling the Complete Order buttons while an order is being processed.
Receipts
The POS includes a printable receipt view tailored for retail counters and small shops.
- Branded with your site name and logo, and styled for thermal and standard printers.
- Shows full product names with clean typography so staff and customers can recognize items.
- Can include a dynamic order URL with a QR code or printed link so customers can view the order in their My Account area.
- A small “Powered by SIRAPIX” credit is displayed in the POS UI and receipt overlay for consistent branding.
Offline‑first design
SIRAPIX POS is built as an offline‑first experience so your registers remain usable when the connection is slow or down.
Static product snapshot
- From WooCommerce > SIRAPIX POS > General you can generate a products JSON snapshot that includes categories, products and variations.
- The file is stored under
wp-content/uploads/sirapix-pos/with a versioned file name and is used as the primary product source in Offline mode. - An optional nightly WP‑Cron job keeps this snapshot up to date automatically so offline data reflects recent catalog and pricing changes.
Service worker and cache
- When the POS page is visited online, a service worker installs and caches the POS shell (page, core CSS and JS), the latest products snapshot and a settings snapshot.
- Product and variation images requested while online are cached so the same items still show images when working offline later.
- This approach lets the POS open quickly and remain usable even on unstable networks or during short outages.
Products mode
- Offline mode uses the static products JSON for fast, local browsing with no live REST calls.
- Online mode prefers live WooCommerce REST APIs for categories and products while the browser is online, and automatically falls back to the cached snapshot whenever the browser reports an offline state.
- In both modes, the goal is to avoid blank states and keep the grid populated from the latest known data.
Aggressive offline images (optional)
- An optional Aggressive Offline Images setting lets you prefetch product and variation images ahead of time.
- When triggered, the POS walks the products snapshot, requests images and updates a progress indicator while the service worker caches them.
- This can take time on large catalogs but maximizes how many images remain available when registers run fully offline.
Offline order queue
- If an order is completed while offline, or if a network error prevents WooCommerce from accepting the order, the POS saves it to a local queue in the browser.
- Cashiers see a toast explaining that the order was stored offline and will be synced later.
- When connectivity is restored, the POS attempts to sync queued orders automatically; a guarded Sync Now button is only enabled when online and there are queued orders.
- After successful sync, queued entries are removed so the queue length always reflects pending work.
Status and refunds drawer
- The POS header shows the current Online or Offline status with a label and dot, plus a Queued orders count and Sync Now control.
- A dedicated Refunds / Orders button opens a drawer where cashiers can search orders by ID or customer info, list recent orders and initiate partial or full refunds directly from the POS.
Authentication and security
SIRAPIX POS runs behind WordPress authentication and respects WooCommerce‑friendly permission checks.
- Non‑logged‑in visitors see a login form; only users with allowed roles can access the POS.
- Allowed roles are configured from WooCommerce > SIRAPIX POS (administrator and shop manager by default).
- All POS API calls require a logged‑in user, REST nonces and role‑based capability checks.
- Inputs are sanitized and validated server side to protect customer data and orders.
Admin experience and branding
The plugin integrates into WooCommerce and WordPress with a consistent SIRAPIX identity.
- Admin menu entries for POS and POS Settings appear under WooCommerce using a custom SIRAPIX cursor/press icon.
- The SIRAPIX POS settings page uses the same branding in its header and groups configuration into clear tabs.
- The POS page itself loads on a clean canvas that hides theme chrome and non‑essential assets to keep the interface focused and fast.
Multilingual UI
SIRAPIX POS is built to support multilingual cashier teams out of the box.
- Ships with translations for English, French, Spanish and Arabic so cashiers can use the POS in their preferred language without extra configuration.
Settings
All configuration lives under WooCommerce > SIRAPIX POS.
- General tab controls:
- Allowed Roles (checkboxes for which users can access POS)
- Layout options such as items per row
- Color pickers for primary and secondary colors to match your store branding.
- Manual Sync section:
- Generate or regenerate the products JSON snapshot and show the current file name, last generated time and product count.
- Toggle nightly auto‑refresh via WP‑Cron.
- Products mode: choose Online or Offline while still benefiting from offline fallback in Online mode.
- Settings snapshot JSON: a small
settings-<hash>.jsonis written to the uploads directory so the frontend can apply POS configuration immediately without extra REST calls. - Aggressive offline images toggle with a “Run image prefetch now” action for image caching.
- Pro‑only settings (such as SMS API key) are registered but the Pro tab UI is hidden until Pro features are ready.
REST API
The plugin exposes a dedicated REST namespace sirapix-pos/v1 for the POS UI and offline tooling.
- Categories: list product categories with ID, name, count and image.
- Products: fetch paginated products with type, price, stock and variable product price ranges and attributes.
- Variations: retrieve detailed variation data for variable products.
- Customers: upsert customers and look them up by phone for auto‑fill and account linking.
- Static products: trigger regeneration of the products snapshot with categories, products and inline variations.
- Orders: create POS orders, list orders for the refunds drawer, fetch detailed order data for refund calculations and create WooCommerce refunds tagged with POS metadata and cashier identity.
Static JSON files
To support offline‑first behavior, the plugin writes lightweight JSON files into wp-content/uploads/sirapix-pos/.
products-<hash>.jsonfor category and product browsing (including variations).settings-<hash>.jsonfor POS configuration such as items per row, products mode and brand colors.- The service worker pre‑caches these files along with the POS assets so the interface can load and operate without a network connection.
External services
This plugin connects to the following third-party services:
QR Code image generation (goQR.me / QRServer)
The POS receipt can display a QR code that links to the customer’s order page (My Account View Order). This QR code image is generated by loading an image from the QRServer API.
- Service URL:
https://api.qrserver.com/v1/create-qr-code/ - What it is used for: Generating a QR code image for the printed receipt.
- What data is sent and when: The order URL is sent as the
dataquery parameter when the receipt view is opened for an order (so the QR code can link to the order page). - Terms of Service: https://goqr.me/legal/tos-api.html
- Privacy Policy: https://goqr.me/privacy-safety-security/
Requirements
- WordPress 6.0 or higher.
- PHP 7.4 or higher.
- WooCommerce 7.0 or higher (tested up to WooCommerce 10.3.6).