Skip to main content
Riserva puts three tiles on your Shopify POS smart grid:
  • Reservations — the host stand: who’s arriving, who’s on property, the waitlist, who’s done, one-tap check-in and seating.
  • Book reservation — a step-by-step booking flow for walk-ins and phone bookings, with payment collected through the register.
  • Bill credits — lights up when the cart’s customer holds prepaid credit or has an entry fee still open today, one tap to apply the credit or settle the fee with the sale.
No trip to the admin for any of them.

Add the tiles (one-time, from admin — no walking between registers)

Do this once in Shopify admin and every register gets it:
  1. Shopify admin → Sales channels → Point of Sale, open the POS editor (Customize the in-store experience → Edit Point of Sale).
  2. In the editor’s Apps section, activate Riserva’s extensions — this is what makes the tiles available at all; until it’s done, they won’t appear in any Add tile list.
  3. Still in the editor, add the tiles to the smart grid: Riserva Reservations, Riserva — Book reservation, and Riserva Bill Credits, and save the layout as the default so it applies across all your retail locations.
Prefer doing it at the register? The device path still works: in the Shopify POS app, ≡ More → Settings → Smart grid → ⊕ Add tile → Embedded Apps — but it only covers that device’s location, and the tiles only appear there after step 2’s activation. The Reservations tile shows today’s count for this register’s location — every reservation on today’s book that isn’t cancelled, including parties already completed or marked no-show. The Bill credits tile lights up when the cart’s customer holds credit. If a tile reads Not enabled (and opening it says “POS reservations aren’t enabled for this shop.”), contact support — the POS surface is switched on per shop.

Linking a register to a location

Each register belongs to a store location in Shopify POS, and Riserva shows it the reservations for that location. You don’t link anything by hand: Riserva’s locations are your Shopify locations, copied over whenever you open Settings → Venues & floor maps. So the register finds its location as long as that Shopify location is active and Riserva has seen it. Two things follow:
  • Your venues must sit under the location the register is in. A reservation shows on the register at the location its venue belongs to.
  • Added a location in Shopify recently? Open Settings → Venues & floor maps once, so Riserva picks it up.
When the register’s location isn’t one Riserva knows (a brand-new Shopify location, an inactive one, or an old location listed as Not linked to a Shopify location), you’ll see:
  • “This register isn’t linked to a Riserva location. Link it in the Riserva admin under Venues & floor maps.” on the Reservations tile instead of the day’s list, and no count on the tile.
  • On Book reservation, times from every location — the register can’t tell which one it is at — and no waitlist: a fully booked experience today reads Fully booked instead of offering Join waitlist, because the party would have nowhere to queue. (On a future day with nothing open, the badge reads No times.)

The host tile: Reservations

Tap the tile for today at this location, split into four tabs the way a host thinks — Arriving, On property, Waitlist and Done — with a search field on top: guests present themselves by name or reservation code, and typing either filters every tab instantly. Done lists the day’s completed visits and no-shows, newest first, each with a Completed or No-show badge and when it ended (“ended 3:40 PM” / “marked 3:40 PM”) — handy when a guest comes back for a bill credit or a balance. You’re not locked to today: ‹ Prev, Next ›, and the date field walk or jump to any service day (the Today button brings you back), and the search also looks across every day and property. When a guest swears they have a reservation and today’s list disagrees, type their name or code — matches from other days appear below the tabs, labeled plainly (“Yesterday”, “In 3 days”, the other property’s name), including cancelled reservations so you can give a straight answer at the door. Tap one to open it; if they simply came a day late, check-in works from right there. The waitlist tab always shows who’s waiting right now, whatever day is on screen. Each reservation is a card — the guest’s initials, name, badges (a yellow Late when a confirmed or pending-payment party is 10+ minutes past its time, a red payment badge when money is owed — Payment due, Partially paid or Charge failed — a red Booked after its time when the guest paid after the visit had ended, plus Refund due or Credit X** where they apply), and one line of context. **Card on file**, **Charge scheduled** and **Charging** badges appear on the detail page only, not on the list. **Tap the card** to open its detail page — code, time, experience and venue, the table (tap it to change it), any **add-ons the guest already paid for** (your delivery checklist — a refunded add-on says so, so it doesn't get handed over), and the guest's phone and email when they're on file, so a late party is one call away — with exactly the actions that make sense right now pinned at the bottom (see [Ending a visit from the register](#ending-a-visit-from-the-register) for the full list) — and when the reservation still owes money, **Add to cart — collect X to collect the balance through the register, exactly like the booking flow’s payment step. Arrived early? When the party is well ahead of their reservation (more than your early-arrival window before their reservation’s time — however many days away that is), Check in (and Partial check-in…) asks before it acts, naming the slot it would move them to: Booked for Mon, Sep 21 at 8:00 AM — move to today’s next slot, 11:00 AM, and check in? (or move to the 10:30 AM slot (in progress)). Move to 11:00 AM and check in puts the reservation on that slot, releases the later seat, and checks them in; Check in without moving keeps the original date; Cancel goes back. A full slot says so and offers Seat them anyway. The window lives in the admin under Settings → Reservations → Early arrivals. The sale is the guest’s. Adding a reservation to the cart attaches its guest as the cart’s customer, so the order lands on the right profile. If a different customer is already in the cart, the tile asks before switching; a reservation with no customer on file clears the cart’s customer instead. The toast always says who the sale is for. Charge-later reservations. A party who booked online with a saved card has paid nothing yet, and the detail page’s Payment section says so plainly in a blue banner: Charges 120.00fromSun,Sep20,2026,2:00PM⋅collectedwithinthehour⋅Visa••••4242∗,or∗Charges120.00 from Sun, Sep 20, 2026, 2:00 PM · collected within the hour · Visa •••• 4242*, or *Charges 120.00 when you check the party in · Visa •••• 4242. Nothing to do at the register — Riserva collects it — so nobody rings the party up twice. The one exception is an experience charged at the visit: its card waits for close-out so the register can take the fee with the rest of the sale, and the page offers Add to cart — collect X∗∗untilthen.Ifthecardwasdeclined,aredbannercarriesthereasonand∗∗Addtocart—collectX** until then. If the card was declined, a red banner carries the reason and **Add to cart — collect X appears: ring it like any other sale and the reservation settles itself. That works for any reservation that owes money, however it was booked — an online booking whose card failed, a phone booking, or one whose payment link the guest never opened. Checking in a party with a saved card. Confirming the check-in charges the saved card right then — the toast reads “Charge submitted — Shopify is confirming it.” and the reservation turns Paid within seconds. Nothing is rung at the till. If Riserva can’t reach Shopify at that moment it hands the balance to the hourly collector instead and the toast says “collected within the hour.” Honoring a bill credit. When a reservation holds a fee credit (the guest prepaid a tasting fee on an experience with “Credit the fee toward the guest’s bill” turned on), the party’s row carries a Credit X∗∗badgeandthedetailpageshowstheamount.Whenyouringtheirpurchase,openthepartyandtap∗∗Moreactions→ApplyX** badge and the detail page shows the amount. When you ring their purchase, open the party and tap **More actions → Apply X credit to sale (or use the Bill credits tile) — the register cart gets a matching discount named after the reservation code, and the timeline records who put it on the sale. The credit is only spent when that sale completes: the timeline then reads “$X bill credit applied to register sale #1234” and the badge goes away. If the cart is cleared or the sale is abandoned, nothing is lost — the credit stays on the reservation and you can apply it again. Ring at least one item first: with an empty cart the tap is refused (“Add items to the sale first — a credit needs something to come off”). If the discount does not reach the cart, the screen says “Couldn’t add the discount to the sale — try again” and nothing is recorded. Waiting parties get their own actions: Seat party converts them into a seated reservation (pick from today’s open times, their requested experience first) and lands you straight on the new reservation — for a priced experience Add to cart — collect $X is right there, so charging the party is one tap, not a search. Under More actions, Notify marks the party called and emails the table-ready note when an email is on file — collect one when adding them to the waitlist; Riserva doesn’t send text messages — and Remove takes them off the list. If you shrink a paid party with Adjust party size, whatever your cancellation policy grants is recorded as owed: the reservation shows a Refund due badge here, and the admin’s Payment card carries the callout with a Retry to send the money back. Changing the party size. Checking in never changes the reservation. If the party itself has changed — “we’re 6 now, not 4”, or two guests cancelled and want their share back — open the party and tap More actions → Adjust party size (on an arriving party). The page says “This changes the reservation itself. To record that only part of the party came, use Partial check-in instead.”, shows the booked size on a stepper, and Save applies it. When a smaller party means money on a paid reservation, the refund follows your cancellation policy: removing seats is a partial cancellation, so a same-day shrink under a “no refund within 24 hours” policy refunds nothing — the screen says exactly what’s refundable and what stays before you confirm. Whatever the policy grants is queued and handled from the reservation page in the admin; it’s never silently dropped. If your shop allows it (Settings → Policies → Refund overrides), a Refund in full instead button lets the register go beyond the policy — the override lands on the timeline. Everything you do here shows up everywhere else — the admin host view and the reservation’s timeline. Actions are attributed to the staff member whose PIN is signed into the register (“Dana Kim · POS”) once that person has opened the Riserva admin at least once; until then they show as “POS”.

The booking tile: Book reservation

The flow starts the way the admin does — with the day, not a menu:
  1. Day & party — Today is one tap, Tomorrow is another, or pick any future date. A POS device is a perfectly good way to take a phone reservation for next Saturday.
  2. See what’s available — every experience that fits the party, as a card with its photo, duration, and price (“per guest”, or one price “for the venue” on buyouts), in the order you set with Reorder on the Experiences page (alphabetical until you do). A card with open times says Pick time; one with nothing left today offers Join waitlist (name and party, with a phone and an email for the table-ready note if you have them — the party appears on the host tile’s Waitlist tab).
  3. Time — the day’s open times for the card you picked.
  4. Guest — search your Shopify customers (name, email, or phone) and tap the match to fill everything in: fields the customer record knows are locked, a Member badge appears beside recognized members (same recognition as everywhere else in Riserva), and if the register cart already has a customer attached the form pre-fills itself. Or type details directly, or tap Book as guest — no details to book anonymously on purpose. Special requests live here too. With an email in Email (for the confirmation), the guest gets the Reservation confirmed email as soon as you book (unless it’s switched off in Settings → Emails).
For a priced experience the reservation starts as Payment due, and the done screen offers Add to cart to collect payment: the experience lands in the POS cart at the right quantity (a buyout is one line at the room price) with the reservation’s code, date, time, and party printed on the line — they show on the register receipt too — the sale completes like any other, including register discounts (which settle at what you actually charged), and the payment attaches itself to the reservation automatically. If the guest doesn’t pay now, the reservation stays Payment due with all the usual resolutions. If a guest-booked reservation is later paid through the register with a customer attached (or through a payment link online), it fills in its missing name, email, and phone from that order automatically. Details you typed yourself are never overwritten.

The credit tile: Bill credits

Some reservations carry money the register should honor — an entry fee paid online for an experience set to credit that fee toward the guest’s bill. You can always apply it from the reservation’s detail page on the host tile, but the Bill credits tile makes sure nobody has to go looking: it watches the cart, and the moment you attach a customer who holds credit, the tile lights up with the amount (“$40.00 available”). Until then it sits dimmed — “Add a customer to the cart”. Tap it to see the guest’s credited reservations (amount, reservation code, date, experience) and Apply $X credit to sale puts the discount on the register cart. The button stays greyed out until the cart has something in it (“Add items to the sale first — a credit needs something to come off”). Applying only puts the credit on the sale; it is spent when the sale completes, so a cleared cart or an abandoned sale costs the guest nothing and the credit stays listed. The register holds one discount per sale, so if a guest holds two credits, complete the sale before applying the next one — while a credit is on the cart the others are greyed out (“A credit is on this sale — it is used when the sale completes. The register holds one discount per sale.” on the Bill credits tile; the Reservations tile’s button reads “A credit is on this sale — it is used when the sale completes”). On both tiles the lock lifts as soon as the cart is empty again. The same tile also lists the customer’s Entry fees today: a party visiting today whose entry fee is still open — due, or waiting on the saved card until close-out for an experience charged at the visit. Each fee offers **Add Xfeetosale∗∗(completingthesalesettlesit,andthesavedcardisthennevercharged)and∗∗Waivefee∗∗.Whenyouhavesetanamountunder∗∗Settings→Policies→Entryfeesattheregister∗∗(orontheexperience′sPricingcard),apurchaseoveritmakes∗∗Waivefee∗∗thesuggestedbutton("PurchaseoverX fee to sale** (completing the sale settles it, and the saved card is then never charged) and **Waive fee**. When you have set an amount under **Settings → Policies → Entry fees at the register** (or on the experience's Pricing card), a purchase over it makes **Waive fee** the suggested button ("Purchase over 150.00 — waive suggested.”). Before a customer is attached the tile reads “Add a customer to the cart”; with one it shows the credit (“$40.00 available”), “Entry fee due”, “Entry fee — saved card”, or “No credit for this customer”.

Ending a visit from the register

A party’s detail page keeps the one thing you most likely came to do as its big button — Check in for an arriving party (with Partial check-in… under it for a party of two or more), Seat for a checked-in one (with Complete under it), Complete for a seated one — then More actions, and Back always last. The page itself is in sections, like the admin’s party panel: Reservation, Guests (only while part of the party is missing — All here and Edit), Table, Payment and Contact. Everything else for that party sits behind More actions, which swaps the bottom of the page for the rest of the list (and its own Back to return): Adjust party size and No-show for an arriving party; Edit guests here (parties of two or more) and Undo check-in for a checked-in one, plus Complete while Still here has taken its place beside Seat; Edit guests here and Unseat for a seated one; and the bill-credit button when the guest holds one. You rarely need Complete: visits end by themselves when your Ending visits setting says — after the reservation’s end plus the grace period, or at the end of the day (Settings → Reservations → Ending visits). Once the party is past its end the page shows a yellow Running over badge and offers Still here under the big button, which moves that end out by 30 minutes each time you press it — the same as the Host page. Changing a party’s table. On a floor-map experience the Table section shows the table and its state — Suggested (Riserva’s pick, which it may still move), Assigned (a host chose it) or Locked. Tap it to open the table page: Keep makes Riserva’s pick yours, Let Riserva choose hands an assigned table back, Lock / Unlock, and Change table… lists every table at the party’s time — Free, Taken — Maria G. at 2:00 PM, Riserva’s pick for … — they would be moved, or Too small for 4 — with joined tables that seat the party at the end. Tap one to assign it. A taken table asks first: Assign anyway double-books it, Cancel changes nothing. More actions → Change table goes straight to the list. A locked table must be unlocked before it can change. It works the same as the Host page in the admin, and the reservation’s history names who did it. Tapped Check in or Seat by mistake? The detail page walks the party one step back, under More actions: Undo check-in on a checked-in party (“Check-in undone” — it is back among the arrivals) and Unseat on a seated one (“Unseated” — it is checked in again). A seated party goes back one step at a time. If the check-in already charged the guest’s saved card, or marked the reservation’s order fulfilled, the undo is refused and the message says why — edit or cancel the reservation from the admin instead. Only part of the party here? Tap Partial check-in… instead of Check in. The page asks “How many of the party of 4 are here?” with a number you step between 1 and the party size, and Check in / Cancel at the bottom; the toast says, for example, “Checked in — 2 of 4 here”, and the On property list reads “2 of 4 here” instead of “Party of 4”. When the rest arrive, open the party: its Guests section has All here (one tap) and Edit (another number) — or use More actions → Edit guests here. The party size and what was paid do not change — it only records who came, for Reports and the reservation’s history. Marked a no-show and they walked in? Open the party from the Done tab: a no-show’s detail page has Undo no-show in its footer (“No-show undone”). It works for a no-show a host marked and for one your automatic no-show setting marked (Settings → Reservations → No-shows). The reservation goes back to Confirmed (or Pending payment, if that is what it was marked from) and returns to Arriving, ready to check in. Actions taken on the register are recorded against the staff member whose PIN is active, not the account the iPad is signed in with.

Good to know

  • The Reservations tile’s count is a snapshot from when the home screen loaded; the day view is always current.
  • POS needs a network connection for Riserva (the secure tokens it uses can’t be minted offline).
  • A split-tender sale left partially paid keeps the reservation at Payment due until the remainder is collected, then it flips Paid.
  • A reservation whose detail page reads Charging has a payment in flight with Shopify. Don’t collect it again at the register — wait for it to land on Paid or Charge failed.
  • Add to cart rings a whole number of the experience’s own line, so an unusual part-balance (a partly-paid deposit) is collected from admin with a payment link instead of here.

What things mean on this screen: What things mean: Riserva in Shopify POS