Beta · version 0.2.0
Point of sale for Medusa
MedusaPOS is an open-source, MIT-licensed till for Medusa v2 stores. It runs in the browser, keeps selling when the connection drops, and records every sale in your Medusa store exactly once.
The demo store resets every night. The web app needs a Medusa 2.21 store with the MedusaPOS plugin installed.

What it does today
Everything listed here is covered by the app's automated tests, which run on every change.
Sells offline
Keep selling from the loaded catalogue when the connection drops. Queued sales sync when you're back online, and each one lands in Medusa exactly once.
Real Medusa orders
Each sale becomes a paid, completed order in your Medusa store with stock deducted, recorded by the MedusaPOS plugin.
Cash and card terminal
Take cash, or take a card on your own terminal and record it as an external payment. Each sale ends with a receipt you can print. MedusaPOS does not charge cards itself.
Registers
Open with a float, record cash paid in and out, then count and close. A large difference needs a manager's approval.
Scan or search
Use a keyboard-wedge barcode scanner, or search by name, SKU or barcode.
Phone and counter
The same app works on a counter screen and on a phone, with the cart a tap away.
Discounts
Take a percentage or a fixed amount off a line or the whole order. The cart and receipt show each discount, and Medusa records it on the order.
Parked sales
Park the current sale, ring up the next one, then resume or discard the parked sale. A resumed sale picks up today's catalogue prices.
Line price edit
Change a line's unit price at the till, with an optional reason. The order reaches Medusa at the price you charged.
Split tender
Split one sale between your card terminal and cash. Change comes from the cash part only, and the Medusa order records both payments.
Customers
Search for a customer or create one at the till, and the Medusa order is linked to them. Searching and creating need a connection.
Live demo and release 0.2.0
The live demo runs the app's latest build. Release 0.2.0 is the version you install in your store today.
| Feature | Live demo | Release 0.2.0 |
|---|---|---|
| Sells offline | Yes | Yes |
| Real Medusa orders | Yes | Yes |
| Cash and card terminal | Yes | Yes |
| Registers | Yes | Yes |
| Scan or search | Yes | Yes |
| Phone and counter | Yes | Yes |
| Discounts | Yes | Yes |
| Parked sales | Yes | Yes |
| Line price edit | Yes | Yes |
| Split tender | Yes | Yes |
| Customers | Yes | Yes |
Try the live demo: one click signs you in to a demo store that resets every night.

In the browser you already have
Open app.medusapos.com in a current Chrome, Edge, Safari or Firefox and sign in with your store's backend URL and an admin account. The catalogue and unsent sales are kept in the browser's own storage, so a page reload or a dropped connection doesn't lose a sale.
Not there yet
MedusaPOS is in beta. Today it does not:
- charge cards, or handle refunds and returns
- sign in with multi-factor authentication
- run as a native iOS, Android or desktop app (it runs in the browser)
- support more than one stock location per sales channel
See the limitations page for the full list.
Try it with your store
Install the plugin, allow the POS origin, and sign in. The quick start walks through it.