Skip to content

Self-Checkout

Hyvä POS is in closed beta

Hyvä POS is currently in a closed beta (pilot phase) with a small group of merchants. It is not yet generally available: the App Store release follows the pilot, and features and configuration may still change, possibly in backwards-incompatible ways, before the general release. Want to take part? Sign up at hyva.io/pos.

Kiosk mode turns a device into a customer-facing register: customers scan their own items and pay, without a cashier. It is currently experimental: enable it per device under Settings → Advanced before the kiosk settings appear.

What the Kiosk Locks Down

In kiosk mode the register replaces its interface with a locked customer-facing shell. By default customers can scan products, pick options, pay by card and choose a receipt; anything beyond that is a toggle you enable:

  • Allow coupon codes: shows a "Have a coupon?" entry.
  • Allow customer sign-in: account attach for store credit and loyalty points (below).
  • Allow customer to decrease quantity: without it, quantities only go up; mis-scans wait for staff.
  • Allow customer to cancel session: a cancel button that clears the cart, with confirmation.

All four are off by default. Anything that needs judgement (discounts, price overrides, refunds, negative-stock decisions) does not exist in the kiosk interface; those stay with staff on a staffed register.

Payment is card-only at the attached terminal, regardless of which tenders the staffed register offers: an unattended device does not handle cash. The receipt auto-prints on every kiosk sale and cannot be switched off, with an optional email offer and the QR receipt page.

The Flow the Customer Walks Through

  1. The idle screen prompts them to scan an item or tap start; language flags (below) sit in the corner.
  2. Scanning builds the cart on screen: product, options, running total. Scanning works with the same hardware as a staffed register (a fixed Bluetooth or USB scanner is the usual kiosk setup) or the device camera.
  3. Pay by Card hands over to the terminal: "follow the prompts on the card reader", with retry on failure.
  4. The done screen prints the receipt, offers email if enabled, shows the receipt QR, and returns to idle.

An abandoned cart resets: after the configured idle timeout (30 seconds to 5 minutes, default 90 seconds) with no interaction, the cart clears and the kiosk returns to the idle screen.

Customer Sign-In with a One-Time Code

With sign-in enabled, a customer can attach their account to earn points or spend store credit without typing a password on a shared screen. They enter their email, receive a short code, and type (or scan) it from the email. On success their name appears, credit and points balances show, and balances apply with one tap.

The code parameters are configured under Stores → Configuration → Hyvä POS → Advanced → Self-Checkout:

Setting Default
OTP Length 6 digits
Code TTL (seconds) 180
Max Verify Attempts 5
Resend Cooldown (seconds) 30
Per-Email Rate Limit (per hour) 5
Per-Terminal Rate Limit (per hour) 20

Two further properties: the kiosk's response is identical whether an email has an account or not, so the screen cannot be used to probe which of your customers exist; and only a hash of the code is stored. Expired codes are purged by a scheduled job.

Configuring the Kiosk

Everything else is per device, under Settings → Self-Checkout on the register:

  • Exit PIN: required before the kiosk can start, and entered to leave it.
  • Idle timeout: 30 seconds to 5 minutes, or disabled.
  • Languages: which languages customers may pick on the idle screen (English, Dutch, German and French) and which one the kiosk starts in. A customer's language choice lasts for their session and reverts on the next idle screen, so the kiosk can run in a different language than the staff side.
  • The permission toggles and the email-receipt offer described above.

The kiosk PIN protects the app, not the device: without a device-level lock, the home gesture bypasses it and gives access to Safari, Photos and iOS Settings. Locking the device is not optional for a kiosk. See locking the device for the Guided Access steps and, for an unattended kiosk, the MDM Single App Mode setup that survives a restart. The app reminds you of this in the kiosk settings.

Entering and Leaving Kiosk Mode

Staff start the kiosk from Settings → Self-Checkout → Enter Self-Checkout Now; the app spells out what is about to happen before switching. To leave, long-press the bottom-left corner of the screen (an invisible target, held for a moment), then enter the exit PIN on the keypad. A wrong PIN stays on screen and can be retried; there is no way out without it. Exiting ends the staff session and returns to the login screen.

The Sale It Produces

A kiosk sale is a normal sale: a local receipt on the device, a Magento order, receipt sync, the same audit trail as a staffed register. It is stamped with the terminal it happened on and carries no cashier name, so kiosk revenue can be reported per terminal.

Offline

The kiosk needs a connection. Its only tender is the card terminal, and account sign-in is a live exchange with Magento, so run kiosks where the network is reliable. A brief Magento outage behaves like on any register (the finished sale queues and syncs); without internet at all, the kiosk cannot take payment, and a staffed register with a cash drawer is the fallback.