In-Store POS

The In-Store POS (/dashboard/instore) is designed for fast, touch-friendly dine-in order management. It's optimized for tablets (768px+) with large buttons and minimal navigation.

The POS is included for every merchant, and orders rung up here are always free — there is no charge on cash or in-store orders. See Pricing.

Managing Tables

Tap Manage Tables above the grid to jump to ManageTables & QR, where you add, rename, or remove tables. Each table has a Name (e.g. Table 1, Booth A) and a Capacity in seats. That page is also where you print each table's QR code — see Table QR Ordering. The grid here picks up your changes within 10 seconds of coming back.

This one table list is shared across the POS, table bookings, and table QR ordering — set it up once. The same dialog is where you generate a table's printable QR code.

Table Grid

The POS opens with a grid showing all your tables and their live status:

StatusMeaning
AvailableTable is free and ready for new guests
OccupiedTable has an active order (shows current order details)
ReservedTable has an upcoming booking

The grid refreshes every 10 seconds, so orders placed elsewhere — including by customers scanning a QR code — appear without reloading.

Tap a table to select it and start building an order.

Building an Order

Browsing the Menu

  • Categories appear as large, touch-friendly tabs at the bottom of the screen.
  • Only available dishes are shown.
  • Each dish displays both its primary name and localized name (if set).
  • Dishes show the in-store price if configured, otherwise the regular price.

Adding Items

  • Without modifiers: Tap a dish to add it directly to the order.
  • With modifiers: Tap opens a modifier selection sheet. Select options (additional prices shown), add per-item comments, and adjust quantity.
  • A running subtotal is visible at all times, including modifier costs.

Order Comments

Add general order notes visible in both the POS order builder and at checkout. Useful for special requests or internal communication.

Placing the Order

After building the order, place it for the selected table:

  • Creates an order with type = dine_in, linked to the table.
  • Payment status starts as unpaid.
  • Order status starts as new.
  • Table status changes to occupied.
  • A kitchen print job is triggered automatically.

Modifying an Active Order

While an order is in new or confirmed status, you can:

  • Add more items to the order.
  • Remove items from the order.
  • Totals are recalculated server-side.

Each modification triggers a new kitchen print job.

Orders From the Table QR Code

Customers can also place their own orders by scanning the QR code on the table. Those arrive on the same grid:

  • The table turns blue with a "New order" badge, and a toast and sound announce it.
  • Opening the table shows a "Customer order" badge, the payment state, and a Confirm Order button that moves the order from new to confirmed.
  • Orders paid online at checkout arrive already marked Paid online.

See Table QR Ordering for the full flow and how to print the codes.

Checkout

When the table is ready to pay, open the Checkout Modal:

  1. Order summary — Review all items and totals.
  2. Quick adjustments — Discount/surcharge buttons: +$1, -$1, +10%, -10%.
  3. Cash payment — Enter the amount the customer gives you. The system calculates change automatically.
  4. Confirm checkout — Finalizes the order:
    • Payment status → paid
    • Payment method → cash
    • Order status → completed
    • Table status → available (freed for next guests)

If the order was already paid online from a QR code, checkout does not record it as a cash sale — it simply closes the order and frees the table, so your takings aren't counted twice. Discounts and surcharges don't apply to an already-paid order.

Once an order is paid, Add Items becomes New Order: a second round is placed as a separate order on the same table.

Deleting an Order

Cancel or remove an in-store order to free the table. The table returns to available status.

Orders that have already been paid cannot be cancelled here — cancel and refund them from the Orders page instead.

Kitchen Printing

Print jobs are created automatically when:

  • A new dine-in order is placed.
  • An existing order is modified (items added/removed).
  • A customer submits an order from the table QR code — the ticket prints on submit, before staff press Confirm Order.

See Printing for printer configuration.