How RetailPOS Works

Four phases: one-time onboarding, daily use, end-of-day review, and offline recovery. Here is exactly what happens at each stage.

1

Onboarding (one time)

The onboarding wizard runs on first launch and guides you through everything. No external services required to run in offline mode.

  • Choose your platform (Shopify, WooCommerce, BigCommerce, Magento, Sylius, Wix, PrestaShop, Squarespace) or select Offline standalone mode
  • Enter API credentials — tokens stored securely; products, customers, and orders pull automatically from your platform
  • Connect printer, barcode scanner, and payment terminal (Stripe, Square, or Worldpay)
  • Set store name, tax rate, and currency; create admin and cashier accounts; choose authentication methods
2

Daily Use

What happens on every shift, from cashier login to the last sale of the day.

  • Cashier logs in via PIN, biometric, magnetic card swipe, or RFID/NFC badge
  • Browse products or scan barcode — items added to cart with correct variant pricing
  • Apply coupon or gift card if needed — validated live against your platform's API
  • Process payment — receipt prints, cash drawer opens, order syncs to your e-commerce platform in the background
3

End of Day

Manager review, reporting, and sync verification before closing.

  • Manager reviews the daily sales report — total revenue, cashier performance, payment method breakdown
  • Export CSV for external analysis or accounting software if needed
  • Print daily summary report directly to the receipt printer
  • Review the sync queue — retry any failed orders that didn't reach your e-commerce platform
4

Offline Recovery

What happens during an internet outage — and how the POS catches up automatically when connectivity returns.

  • Internet drops — the POS continues operating normally with no interruption to sales
  • Orders are saved locally in SQLite and queued for sync — nothing is lost
  • When internet returns, background sync catches up automatically with exponential backoff retry (up to 15 min between attempts)
  • Sync queue screen shows status of every order: pending, syncing, synced, or failed — retry or discard individually

Who It's For

RetailPOS solves a specific problem for each of these users.

Independent Retailer

Running a physical shop alongside a Shopify or WooCommerce store. Inventory and orders are split between two systems — RetailPOS unifies them.

Multi-Register Store

Café, boutique, or pop-up needing registers to share stock and orders over local Wi-Fi — even when the internet is down.

Developer / Agency

Building a custom retail solution. Open-source TypeScript codebase with a clean pluggable service layer and 198 passing tests.

Offline-First Store

Needs a POS that keeps working during internet outages. SQLite-backed — every sale is saved locally and synced when connectivity returns.

Free and open source. Clone and run in minutes.

Apache 2.0 — self-host it, fork it, customise it. No account required, no monthly fees.