Back
Case Study · B2B · Retail Tech

Cashier POS & Payment Application

Redesigning a high-frequency point-of-sale app for faster, intuitive transactions

My Role
Lead UX/UI Designer
Company
Focalpay AB · 2024–2025
Platform
iOS · Android · Browser
Methods
Research · Usability Testing

Cashier POS — interaction preview

Cashier POS on handheld devices — discount flow and cart with items

Introduction

Speed is the Product

Traditional POS terminals are heavy, expensive, and inflexible. The Focalpay cashier application was built to change that — a lightweight, device-agnostic system that runs on any smartphone, tablet, or touchscreen terminal, with no bulky hardware required.

I joined this project as the lead designer at the redesign phase, with the existing v1 product already in use at several stores. My job was to understand what was slowing cashiers down, redesign the core flows, and ship something that could be validated in a real store environment — not just a usability lab.

The core idea: give small and medium-sized stores a complete point-of-sale solution that is faster, greener, and easier than legacy infrastructure — with everything from product management to daily reports built into a single scrollable interface.

My Role & Responsibilities

End-to-end ownership

My Responsibilities

  • Lead UX/UI Designer — end to end, from research to final screens
  • Stakeholder interviews and workshops with store owners
  • Moderated usability testing sessions in real store environments
  • Designing the scrollable home screen architecture and all core flows
  • Introducing the "Add Product" feature — allowing product management without a back-office
  • WCAG accessibility compliance across all screens
  • Interaction design for barcode scanning, discounts, refunds, and reporting

Company & Platform

Project context

Focalpay is a Swedish retail-tech company building payment and store-management software for independent retailers. The cashier app runs on iOS, Android, and browser — replacing legacy terminals with a lightweight, device-agnostic POS.

One System. Every Device Connected

Connected store hardware

External Devices settings screen — handheld scanner, receipt printer, keyboard, and Cash Guard connection status in the Focalpay POS

The Focalpay cashier app doesn't live in isolation. In a real store environment, the POS terminal sits at the centre of a small ecosystem — a handheld barcode scanner, a receipt printer, a physical keyboard, and a Cash Guard cash management unit all need to talk to it reliably, every single shift.

Designing the External Devices settings screen meant thinking beyond UI. Each peripheral has its own connection type, its own failure mode, and its own impact on the cashier's flow when something goes wrong.

Handheld Scanner

Cashiers can connect via cable, wireless, or fall back to the device camera — or set it to no scanner at all. The active connection type is always visible, so there's no guessing when a scan doesn't register.

Receipt Printer

Print confirmation is a non-negotiable part of every transaction. Connection status shows live on the screen — green means ready, red means act now — so a disconnected printer never becomes a surprise mid-queue.

Keyboard

For stores that rely on manual input — product codes, quantities, amounts — keyboard connectivity is tracked the same way. A disconnected keyboard shows a clear warning before it causes a problem at the till.

Cash Guard

For stores using automated cash management, the Cash Guard integration is handled directly through the Functions panel — alongside deposits, bag charges, and price checks. No separate system, no extra steps.

The result is a single settings screen that gives store managers a real-time picture of everything connected to the till — and the confidence to catch a problem before a customer is standing at the counter.

Methods & Research

Watching Cashiers Work

I combined qualitative and observational research methods, including testing the application in an actual live store environment — one of the most valuable inputs in the entire process.

🏪

Real-world store testing revealed that cashiers rarely look at the screen during a transaction — they rely on muscle memory and peripheral vision.

In-store observation · Live cashier sessions
🗣️

"We need the cart front and centre, always. Everything else is secondary."

Store owner interviews · 3 sessions
🧪

Usability testing showed users wanted to add products, apply discounts, and scan barcodes without ever leaving the home screen.

Moderated usability testing · 5 participants
🤝

Stakeholder workshops revealed that product management was a major blocker — stores needed it built into the POS, not a separate system.

Stakeholder workshops · Product & Engineering teams

Decision moment

One tension that emerged early: store owners wanted product management built into the POS, but the engineering team was concerned about scope and security — product data is sensitive, and they didn't want the cashier-facing app to have write access to the catalogue. I worked with the PM and engineering lead to find a scoped solution: cashiers could create minimal product records (name, EAN, sales account) directly from the till, but full product editing remained in the back-office. This kept the security model clean while solving the real user problem — the dead-end at the barcode scanner when a product wasn't found.

Affinity mapping · Card sorting

Speed & Flow
Every extra tap costs real time when a customer is waiting
Cashiers rarely look at the screen — they rely on muscle memory
Legacy POS needed 4+ taps just to complete one purchase
The cart must always be visible — never hidden behind navigation
Quick actions (scan, bag, discount) must be one gesture away
"We want something that just works — fast. Staff shouldn't need training."
Single scrollable home screen eliminates all secondary navigation for core flows
Product Management
Stores needed a separate back-office just to add products — a real blocker
Unknown barcodes created dead-ends at the till — no recovery path
Staff wanted to create new products directly from the POS camera
Search by EAN or name needed — not all items have scannable codes
"We shouldn't need two systems. Everything should be in one place."
In-app product creation from unknown scan removes back-office dependency entirely
Discounts & Refunds
Discounts must apply to a single product OR the whole receipt
SEK vs % toggle needed — different promo types for different stores
Refundable vs non-refundable distinction causes major cashier confusion
Large keypad keys are critical — cashiers sometimes wear gloves
"Make it simple — 2 choices max. I don't have time to read options."
2 scope × 2 type toggle — maximum flexibility with minimum decisions
Reports & End-of-Day
Store owners need daily totals without switching to another app
Report gaps occur when empty days go unsubmitted — a compliance risk
Register vs control-check view is mandatory for end-of-day audits
Transaction history must be searchable and filterable by payment method
"Done in 2 minutes. No spreadsheet, no second app — finally."
"Coming up" feature prevents gaps; integrated reporting removes the #1 reason to switch tools

Discover

Every Second Counts

Cashiers work fast. Every extra tap, every screen transition, every moment of confusion costs real time — and frustrated customers. The core design challenge was presenting a large amount of functionality on a small screen without slowing down the transaction flow.

01

Too Many Screens

Legacy POS systems required navigating multiple pages to complete a single transaction, breaking the cashier's flow.

02

No Product Management

Stores had to rely on a separate back-office system to add or edit products — a slow, disconnected workflow.

03

Heavy Infrastructure

Traditional terminals were expensive and energy-intensive. Stores wanted a leaner, mobile-first alternative.

"We want something that just works — fast. Our staff shouldn't need training to use a cashier app."

— Store Owner, Usability Research Session

Design Solutions

Fast, Tested, Iterated

Instead of a fragmented multi-page system, I designed the application around a single scrollable home screen. The cart, product list, quick actions, and daily summary all live on one page — reducing taps and keeping cashiers in a continuous flow.

The persistent Purchase button and quick-action row (Scan · Add bag · Add discount) are always visible, no matter how many items are in the cart.

Empty cart with product list

Empty cart — product grid visible below

Cart with items and purchase button

Items in cart — Purchase CTA always visible

Expanded cart list

Expanded cart — all items visible

Design Solution I · One Scrollable Home — Everything in Reach
Scanning mode active

Scanning mode — camera active, product list visible

Product not found modal

"Product not found" — prompt to add it instantly

Add new product form

Add new product — Name, EAN, Sales account

Design Solution II · Scan, Add, Manage — Without Leaving the App

Barcode scanning turns any smartphone camera into a product scanner. When a product is found, it's added to the cart instantly. When it's not found, the app prompts the cashier to add it on the spot — eliminating the need to go to a separate system.

The "Add New Product" flow is a key innovation of this project. It lets store staff create new products directly from the POS — with name, EAN, sales account, and an optional product image — all in two steps.

Add product image step

Step 2 — Upload product image

Product list with search

Product list — search by EAN or name

Design Solution III · Flexible Discounts — Per Product or Entire Cart

Discounts needed to work at two levels: applied to a single product (shown as a badge on that item) or to the entire receipt. Cashiers can choose between SEK amount or percentage, making the flow adaptable to any promotional scenario.

The discount screen uses a large-format numeric keypad — optimised for touchscreen use, even with gloves — with clearly segmented toggle buttons for type and scope.

Discount keypad screen

Discount input — SEK or %, receipt or product

Cart with discount applied

Discount applied — shown as banner in cart

Design Solution IV · Refunds — Refundable vs. Non-Refundable

The refund flow separates items into two clear tabs: Refundable and Non-refundable — helping cashiers quickly identify what can be returned. Items are selected with a single tap, the total updates in real time, and a "Do refund" button finalises the process.

Refund screen - refundable tab

Refundable items — tap + to select

Non-refundable tab

Non-refundable — clearly separated

Refund confirmation

Selected items — total & "Do refund" CTA

Design Solution V · Transactions & Daily Reports — No Back-Office Needed

One of the biggest differentiators of this application is that reporting is built directly into the POS. Cashiers can view the day's transactions, fetch the daily report, review register vs. control check data, and submit — all without switching to a separate system.

The "Coming up" feature shows upcoming report deadlines, allowing store managers to submit empty reports for days with no transactions — preventing gaps in the reporting chain.

Transactions list with filter

Transactions — filter by method or date

Daily report with summary table

Daily report — register vs. control check

Daily report fetch screen

Fetch today's transactions before submitting

The Transformation: From Friction to Flow

Home · Products · Refunds

Redesigned POS home screen — cart, quick actions, and product list on one scrollable view
Redesigned product management flow — scan, add, and search without leaving the register
Redesigned refund flow — refundable and non-refundable items clearly separated

Interactive Prototype

Click through the real flow

The screens above come to life here. Launch the embedded prototype to ring up items, take a payment, and move through the POS exactly as a cashier would — no Figma account needed. It loads on tap to keep the page fast.

Open in Figma ↗

Opens the full prototype in a new tab.

User Journey

Emotion curve across a full transaction day

User journey map

Design System

Foundations Before Flows

Before detailing individual journeys, I defined a shared Focalpay POS design system — colour, typography, spacing, radii, and component states — so design and engineering could scale the interface consistently. The cashier experience is built for light mode only in this release: there is no dark theme, which kept contrast, legibility, and peripheral scanning predictable under bright store lighting and varied devices.

Sheet 01 · Foundations — Colour, Typography, Spacing & States
Focalpay POS design system sheet 01: brand colours, neutrals, semantic tokens, typography scale, spacing, border radius, and button state matrix

Brand palette, type scale, spacing, radii, and scalable button states

Sheet 02 · Core Components — Buttons, Inputs, Cards & Patterns
Focalpay POS design system sheet 02: primary and outline buttons, refund flow pattern, inputs, segmented controls, and search with scan

Buttons, refund flow pattern, inputs, segmented controls, and search + scanning

Results

Measurable Impact

Beyond lab-based usability sessions, the application was tested in a live store — the most demanding environment possible. This revealed issues that no prototype test could surface: how cashiers behave under time pressure, with real customers waiting.

Before Redesign
4+ taps

Average taps to complete a basic transaction. Multiple page navigations required.

✓ After Redesign
1–2 taps

Cart, product list, Purchase and quick actions all on one scrollable screen.

"The scroll feels natural. I don't have to think about where anything is."

— Cashier, In-Store Usability Test
0

Extra systems needed — product management built into the POS

WCAG

AA compliant — accessible on all screen sizes and devices

Cashier using a handheld mobile POS to scan a QR code on a fabric sample in a retail showroom, with cart and purchase actions on screen.

Live store validation — handheld POS in use during in-store usability testing

Reflection

What This Project Taught Me

01

Speed is a UX requirement, not a feature

In a cashier context, every extra second matters. Designing for speed means eliminating navigation, reducing cognitive load, and making the most frequent actions zero-effort.

02

Real-world testing is irreplaceable

Testing in a live store revealed behaviours that no usability lab could simulate. Cashiers under real pressure interact with interfaces very differently than they do in controlled sessions.

03

Reducing systems reduces errors, and reduces the conversation about scope.

Integrating product management and reporting into the POS was resisted early on as "scope creep." But the data from usability testing made the case clearly: the most common cashier errors happened not within the app, but at the seams between the app and the external tools they had to use alongside it. Reducing the number of systems in play wasn't a feature — it was the fix.

Back