All docs

Guides · Updated 2026-09-29

Online Ordering Storefront (Customer Web App)

Watch it (2)

  • Animated walkthrough: Add an item and open the cart

    Add an item and open the cart

  • How to order via Foodops Ordering App

Plain-English summary#

The storefront is what your customers see. It's a mobile-friendly web page at order.foodops.io/your-outlet-code where they browse your live menu, build a cart, choose pickup or delivery, verify their phone with a one-time code, pay (cash or bank transfer with a receipt photo, or by card with BML once the restaurant has accepted the order), and track the order live. No app to install and no password — their phone number is their account.

How orders reach your counter and how you switch the site on are covered in Online Ordering Platform and Online Ordering Setup. This page is the customer's-eye view.

When you'd use this#

  • Explaining to a customer how to order from their phone
  • Working out why a checkout is stuck — which step needs what (sign-in, address, payment method)
  • Explaining why an item shows for dine-in but not for delivery
  • Answering payment questions: what "Bank Transfer" means, when cash is collected, why the card page is BML-branded
  • Helping a customer find an order again from a tracking link

Walkthrough — customer's view#

The main walkthrough covers choosing an outlet, browsing the menu, the cart, guest checkout, order modes, group cart and tracking, with screenshots. This page adds the details: what's available where, phone verification, payments and tracking links.

1. Getting in and what's on the menu#

  • Customers arrive one of three ways: your outlet's direct link, a table QR code, or the outlet picker.
  • The menu only shows items available for how they're ordering. A customer at a table (via QR) sees dine-in items; everyone else sees pickup/delivery items. A delivery customer never sees dine-in-only items.
  • When staff edit the menu, the storefront updates on its own and shows the customer a short notice.
  • When an outlet is not accepting online orders, an amber banner reads "{outlet} is not accepting online orders at this time" on the menu and above the cart button, and orders can't be placed. Dine-in (table QR) and group-cart orders are not affected.

2. Cart and add-on rules#

  • A guest's cart totals (tax and service fees) are always worked out by Foodops, so they match what staff see. Where there are several taxes (e.g. CGST/SGST), each shows on its own line.
  • Add-on (modifier) groups enforce a minimum and maximum per item, and can also cap the total quantity across the whole group. This is checked in the item window and again when the order is placed.
  • The phone's back button closes an open cart, item window or sign-in sheet instead of leaving the site.

3. Checkout — guest until payment, then a phone code#

A guest can browse, build a cart and pick an order type without an account. For delivery orders (or if they choose to sign in), a sign-in sheet appears at the checkout button ("Login to place order").

For dine-in and takeaway, guests also get a "Checkout as guest" option. It asks only for a name (at least 2 characters, no phone or code) and places the order. The cart clears and an order reference is shown. Guest orders don't appear in the customer's order list (that needs sign-in) and skip the feedback survey.

  1. Phone step — the customer enters their phone number and taps WhatsApp or Text message to choose how the code is sent.
  2. Code delivery — WhatsApp codes come from a single Foodops WhatsApp sender. Text messages are sent through a provider chosen by your outlet's country.
  3. OTP step — they enter the 6-digit code. A countdown shows when they can ask for a new one.
  4. Name step — only if we don't already have their name; at least 2 characters. That's the whole sign-up: phone + name.
  5. Cart hand-off — their cart carries over and the order is placed without a second tap.

4. Pickup vs delivery#

  • The cart shows Takeout / Delivery buttons (plus Dine In when ordering from a table).
  • Delivery needs a saved address. Customers must be signed in to choose one and manage addresses from their Profile page. Delivery zones and their charges are set up by you — see Deliveries.
  • Takeout (pickup) needs no address. The customer collects at the outlet when the tracker shows "Ready"/"Picked Up".

5. Payment options#

At checkout, the payment sheet offers up to two options: Cash and Bank Transfer. Which methods are on is set for your whole organisation under Settings → Accounting → Payment Methods, not per outlet.

Method What the customer sees How it works
Cash "Cash" — "Pay cash on pickup/delivery" The order is marked cash-due. Cash is collected at pickup or by the rider (see Rider App).
Bank transfer "Bank Transfer" — "Transfer and upload receipt" The customer transfers the money, then photographs and uploads the slip from the order page once the restaurant has accepted the order. Staff verify the slip at the counter.

Card with BML. Card payment is not offered at checkout. Once the restaurant has accepted an order that still has a balance to pay, the order page shows a Pay with BML button, and the customer is taken to the BML payment page. It only appears if BML is connected under Settings → Integrations.

Slip check for bank transfers. When a slip is uploaded, an automatic AI check compares its amount, currency and date with the order (amount within 0.01, date within 1 day; the reference number is not compared).

  • If something looks off, the customer sees a prompt titled "Send this slip for approval?" that reads "⚠ Our system couldn't match this file to your order. You can still send it — the restaurant will review it, and your order stays unpaid until they approve it. If they don't, you'll get an SMS asking for a new slip." The buttons are Send for Approval and Choose Another. After sending, the customer sees "Slip sent for approval — the restaurant will verify it before your payment is confirmed." Staff see the slip flagged for review at the counter.
  • If the file clearly isn't a transfer slip, it's refused: there's no Send for Approval, and the customer is asked to choose a different file. If the order was already placed, it's kept and the customer can retry the slip from the order page.
  • Staff checking the slip by hand is always the final say.

If no payment method is switched on, the sheet says so and checkout can't finish. A per-outlet setting decides whether customers can pay before staff accept the order — so the button reads "Make Payment", "Place Order", or both.

  • After ordering, the customer sees their orders (Ongoing/Completed) with a live progress bar for each: Delivery goes Placed → Accepted → Preparing → Ready → Enroute → Delivered; Takeout ends at Picked Up; Dine-in ends at Served.
  • Tracking link: if someone opens an order's tracking link while not signed in, they're asked for their phone number and code. Once verified, the order opens with its outlet and table details. This is how a customer on a new phone or cleared browser finds their order again — same phone number, same order.
  • After ordering, a short rating survey may pop up. Repeat customers aren't asked every time.

Key concepts#

  • Phone is the account — no email or password. A verified phone number plus a display name is the customer's whole identity. Orders belong to the customer, not the device.
  • Per-channel availability — each item can be set for Dine-in, Takeout and Delivery separately. Items not offered for a channel can't be ordered through it.
  • Country-based text messages — a text-message code is sent through a provider chosen by your outlet's country, which is what lets non-Maldives phone numbers work.
  • Totals you can trust — a guest's cart totals are always calculated by Foodops. When they sign in, the cart moves to their account.
  • Pay before or after acceptance — per outlet: customers either pay straight away, or "Place Order" and pay once staff accept.
  • Tracking link works anywhere — it opens on any device once the customer verifies with the phone number used to order.

Common questions#

Q: Does the customer need to install an app? A: No — it's a web app. They can add it to their home screen from the browser prompt, but ordering works straight from the link or QR scan.

Q: Does the customer need an account or password? A: No password, ever. They can browse and build a cart as a guest. At checkout they verify their phone with a one-time code (sent by WhatsApp or text message) and give a name. That's the whole sign-up.

Q: My customer in India isn't receiving the code — why does my Maldives number work? A: SMS codes are sent through a route chosen by the outlet's country (India uses one provider, all other countries another). A problem on one route doesn't affect the other.

Q: What payment methods can customers use? A: At checkout, cash (on pickup/delivery) and bank transfer with a receipt-photo upload. Card payment with BML is offered as a Pay with BML button on the order page once the restaurant has accepted the order, if BML is connected. Methods are switched on for your whole organisation under Settings → Accounting → Payment Methods. If you see fewer on the site, the missing ones are switched off.

Q: What does "Bank Transfer" actually do? A: The customer transfers to your bank account and uploads a photo of the slip from the order page once the restaurant has accepted the order. The slip is attached to the order for staff to verify before treating it as paid.

Keep reading