Point of Sale (POS)

Accept orders and payments at the counter with the built-in POS system

Point of Sale (POS)

The Point of Sale (POS) system lets cashiers and waiters take orders and accept payments directly at the counter or tableside. It runs in the browser — no extra hardware or installed app required — and shares the same menu, pricing, and inventory as your storefront and Kitchen Display.

Who Uses POS

POS access is granted by role. Only staff with the pos_access permission can log in.

RolePOS Access
Owner✅ Yes
Manager✅ Yes
Cashier✅ Yes
Waiter✅ Yes
Kitchen❌ No

Accessing POS

  1. Open your browser and go to pos.yourstore.hayyaeats.sy (replace yourstore with your store's subdomain)
  2. Log in with your staff email and password
  3. After login, the menu, categories, and product grid load automatically

POS works on any device with a modern browser — desktop, tablet, or phone. For shared counters, log in once and leave the tab open.

Key Features

The left sidebar lists your menu categories. Tap a category to load its products in the grid. A search bar at the top filters products by name across all categories. Each product card shows the price, dietary icons, and allergen badges.

Cart Management

Tap a product to add it to the cart drawer on the right. From the cart you can:

  • Adjust quantity with + / controls
  • Open a product sheet to select variants and special instructions
  • Remove items or clear the whole cart
  • View a running subtotal before submitting

The cart drawer stays visible on desktop and slides in on mobile.

Table Selection (Dine-In)

For dine-in orders, a button grid shows every active table in your store. Each button displays:

  • Table number (e.g. A3, 12)
  • Capacity (e.g. 4 seats) if set
  • Status dot — green (free), yellow (ordering), red (order placed / serving)

Tap a free or ordering table to assign the order to it. If no tables have been created in admin yet, a text input appears instead so you can enter a table number manually.

Payment Methods

POS supports the payment methods configured in your store settings. Pick one at order submission:

  • Cash
  • Card
  • Wallet
  • Transfer

The selected method is recorded on the order for end-of-day settlement.

Order Settlement

Each submitted order creates a record visible in the POS history screen. Settlement groups orders by shift or day so a cashier can reconcile totals against cash in the drawer before closing out.

Discounts

Apply a discount to an order from the cart drawer before submitting. Discounts can be a fixed amount or a percentage, and appear as a separate line item on the receipt.

Void Orders

Mistakes happen. From the order history screen, a manager can void an order — it is marked as cancelled for audit purposes but stays in the ledger for reporting.

Order Types

TypeBehavior
Dine-inRequires a table selection (button grid or manual entry)
DeliveryCaptures the customer address and driver assignment
PickupCustomer collects at the counter; no table or driver

The order type determines which fields are required at submission and where the order shows up downstream (KDS, driver app, pickup queue).

Table Integration Details

The POS reads tables from GET /api/eats/pos/tables, which returns only id, table_number, capacity, and status — the QR token is never exposed to POS. This keeps the secure QR session system intact while letting cashiers see which tables are busy at a glance.

When an order is submitted against a table, the KDS and table session system pick it up automatically — no double entry.

FAQ

Can two cashiers use POS at the same time? Yes. Each cashier logs in on their own device or browser tab. Orders are scoped to the store, so they all land in the same KDS queue.

Do POS orders appear on the Kitchen Display? Yes. POS orders flow into the same KDS pipeline as customer-placed orders, with the same status lifecycle (New → Preparing → Ready → Completed).

Can I take an order while the internet is down? No. POS is a live web app and needs a connection to submit orders, deduct inventory, and reach the KDS.

How do I refund or void an order? Open the order in POS history and use the void action. Full refunds are handled from the admin dashboard under Orders.

Next Steps

  • Set up your tables in Admin → Tables so the button grid populates
  • Configure payment methods in Admin → Settings
  • Train cashiers on the cart drawer and table grid before going live