Skip to content

Customer Display

Overview

The Customer Display — branded "Rewardly Concierge" in the app — is the customer-facing second screen you mount toward the shopper. It mirrors the live basket being built on the paired POS register, shows the running totals, lets a shopper join or look up a loyalty membership, and displays payment status (including a PayNow QR).

It's a display with a little input — not a second till. Your cashier still drives the whole sale on the POS; the Customer Display just shows the shopper what's happening and gives them a way to join membership themselves.

The display pairs to a register implicitly. There's no pairing code — you simply log the display in with the merchant-partner account tied to that outlet's register, and the two stay linked over a live connection.

SG-leaning build

This build is Singapore-first: phone entry hard-codes a +65 prefix, the currency symbol is a hard-coded $, and payment options are PayNow and Adyen Tap-to-Pay. It isn't localised for MY or MN out of the box.

Signing in

When the display is logged out, the only screen is the Merchant Partner Login. It shows the Rewardly logo, the labels Merchant Partner Login and Rewardly Concierge, a Username and Password field, and helper text reminding you this is a companion display for the POS.

  1. Enter the outlet's merchant partner credentials — the same account that ties the display to its register and outlet.
  2. Tap Login. A full-screen loading overlay appears while the credentials are checked.
  3. On success you see a green Login Success toast and the display switches to the live Home screen. On failure a red toast shows the server's error message.

The login token is saved on the device, so the display signs itself back in automatically the next time it starts — you only do this once per device.

Mount it and forget it

While the Home screen is showing, the display keeps the screen awake on its own — it never sleeps mid-service, so the pole display stays on all day.

Logging out (hidden gesture)

There's no visible Logout button — by design, so a curious customer can't sign the display out. To log out, press and hold the merchant name (the large store title at the top of the display) for 3 seconds. That disconnects the display and returns it to the login screen.

Pointing it at the right environment

Almost everything is configured in Rewardly admin, not on the device. The one on-device settings surface is a hidden Config modal, meant for installers.

On the login screen, long-press the Rewardly logo to open it. It offers:

ControlWhat it does
Production / DevelopmentThe backend environment. Production points the display at the live rewardly.app hosts; Development points it at the reeward.app staging hosts.
codepush(production) / codepush(development)Force-pulls the latest over-the-air app update from the chosen channel, then toasts the result — "Latest version installed — Please restart the app", "Already up to date", or a failure message.

Installer-only

This is the only in-app settings screen and it's deliberately hidden behind the logo long-press — and only reachable while logged out. There are no other on-device toggles: no brightness, language, currency, sound, or display-customisation settings. Out of the box the display points at Production, so most merchants never need to open this.

Updates otherwise look after themselves. On each launch the app quietly checks for an over-the-air update; if one is downloading you'll briefly see a full-screen "Downloading latest version.." / "Installing.." message, and the update applies the next time the app restarts.

The status bar

A thin bar across the very top of the display reports connectivity:

StateWhat you see
Online and connectedNo bar — everything's working.
No internetA red bar: "You are offline. Check your connection."
Online but disconnectedA grey bar: "Socket disconnected. Tap to reconnect." Tap it to reconnect (it reads "Socket connecting..." while it tries).

While the display is offline or disconnected, the membership Search and Sign Up buttons relabel to Offline and stop working until the connection is back.

What the shopper sees

The idle screen

With no order in progress, the order area shows a centred "Waiting for order..." message and all totals read $0.00. The branding is always present, so even when idle the shopper sees your store name, your store image, and a TAP TO JOIN MEMBERSHIP prompt.

The store name and image come from the logged-in account (the outlet's, falling back to the merchant's). If no image is configured, a grey No Image placeholder shows instead.

The live basket

As your cashier builds the sale, the Current Order list mirrors it line by line. Each line shows:

  • the quantity, the product image (or a No Image tile), the product name, the unit price beneath the name, and the line total on the right;
  • any modifiers / add-ons, listed indented underneath as "- qty name $price";
  • bundles and combos, expanded to show each included product and its own modifiers, nested underneath;
  • a small pickup icon (takeout / dine-in / delivery) on any item whose pickup mode differs from the rest of the order.

The list scrolls when the order gets long, and it updates live as the cashier adds, edits, or removes items.

The totals summary

Below the items sits a summary card with four rows and a grand total:

RowWhat it shows
Sub TotalThe basket subtotal before charges.
Service FeesAny service charge.
TaxThe tax amount.
DiscountTotal discounts, shown in red as a negative "-$X.XX".
GRAND TOTALThe final amount, large and in red.

All amounts use a $ prefix and two decimals.

No points line

This version doesn't show an explicit "you earned N points" line. Loyalty surfaces in two places only: the membership pill (who the order is attached to) and the Discount row (which rolls up any loyalty or voucher discounts). The cashier confirms points on the POS, and the member sees them in the member app after the sale.

The "PAID" banner

When the order is paid, a green banner with large white PAID text appears at the bottom of the order card. This is the shopper's thank-you / confirmation state — there's no separate receipt screen on the display. Reaching PAID also closes any open payment modal automatically.

Membership

The display lets a shopper join or be matched to a membership on the spot, without a QR code.

The membership pill

A black rounded pill sits near the branding. When no customer is attached it reads MEMBERSHIP with the sub-text TAP TO JOIN MEMBERSHIP. Once a customer is attached — whether the cashier added them on the POS or they signed up here — it shows the member's name and their phone or email. Tapping the pill opens the Membership modal.

Member name shows on tablets only

On a wide tablet layout the pill swaps to show the attached member's name and contact, so staff and shopper can confirm who's linked. On a narrow phone layout the pill always shows the generic MEMBERSHIP / TAP TO JOIN labels.

Looking up an existing member

The Membership modal opens on a phone search: a +65 prefix and a numeric phone field that's focused and ready.

  1. The shopper (or cashier) types the member's phone number.
  2. Tap Search.
  3. If a match is found, a green success toast appears, the modal closes, and that customer is attached to the current order — points and loyalty then apply on the POS.
  4. If no match is found, the modal switches straight to the sign-up form below.

The Search button is disabled (and reads Offline) when the field is empty or the display is disconnected.

Signing up a new member

When the phone isn't found, the modal shows a red Customer not found banner and a Customer Details form to create the member there and then. Possible fields:

FieldNotes
First Name / Last NameThe member's name.
EmailWhitespace is trimmed automatically.
BirthdayA date picker, capped at today, with a Clear option.
GenderMale / Female / Other chips.
Password / Confirm PasswordEach has a show/hide eye toggle; the two must match.

Your sign-up fields drive this form

Which fields appear, and which are required, comes from your merchant signupFields configuration — set in Rewardly admin, not on the device. A required field shows a * and must be filled before sign-up succeeds.

Tap Sign Up to create and attach the member. On success you get a green toast with the new member's name and phone, the modal closes, and they're attached to the order. A Back to search link returns to the phone step. Missing required fields show inline red errors and a "Please fill in required fields" toast, and the button reads Offline while disconnected.

Payments shown to the shopper

When your cashier starts a payment on the POS, the display shows the matching prompt so the shopper knows what to do.

Waiting for payment

For a terminal payment, a Waiting for payment modal appears with the amount, a spinner, and "Please complete the payment on the terminal." The status line reads "Awaiting payment..." while pending and "Payment received" when done. The modal closes itself when the payment completes or the order reaches PAID.

PayNow QR (Singapore)

For a PayNow payment, the same modal instead shows a PayNow title and a QR code for the shopper to scan with their banking app, with the amount above it. While the code is still being prepared it shows a "Generating QR..." placeholder. The QR is generated by Rewardly's backend, not on the device.

Tap-to-Pay (Adyen, Android only)

Android only

For a Tap-to-Pay payment the display takes a contactless card tap on the device itself, via Adyen. This works on Android only — on iOS the Tap-to-Pay view shows nothing, so use a separate terminal or PayNow on iOS displays.

During the tap, the Waiting for payment modal is shown. On a successful tap the payment is recorded against the order and the modal closes; on a failed tap the display records the failure, dismisses the prompt, and shows a red error toast with the reason.