Overview

The Reservations module lets you take advance table bookings from two sources:

  • Admin Reservations — staff create bookings directly from the admin panel (phone calls, walk-ins, etc.).
  • Customer Reservations — customers book their own table through your public restaurant page.

Both flows share the same list, statuses, and notifications. Go to Restaurant → Reservations to manage all bookings.


Configuring Reservations

Before accepting bookings, set up your reservation rules and time slots at Settings → Reservations.

Basic Settings

SettingWhat it does
Enable Admin ReservationsAllows staff to create reservations from the admin panel.
Enable Customer ReservationsShows the booking form on your public restaurant page.
Minimum Party SizeSmallest number of guests allowed per booking (default: 1).
Disable Booking (Mins Before)How many minutes before a slot closes for new bookings. E.g. set to 30 so customers cannot book a 7:00 PM slot after 6:30 PM. Default: 30 min.
Advance Booking (Days)How many days ahead a customer can book. E.g. set to 7 to allow bookings up to one week in the future. Default: 7 days.
Allow CancellationsIf enabled, customers can cancel their own reservations from the customer portal.

Reservation Deposit

You can require a deposit paid via Razorpay at the time of booking. Configure under Settings → Reservations → Reservation Deposit:

Deposit ModeBehaviour
Free (No Deposit)No payment required. Reservation is created immediately.
Fixed Fee Per TableA flat amount (e.g. ₹200) is charged regardless of party size.
Fee Per GuestAmount × number of guests (e.g. ₹50 × 4 guests = ₹200).

Deposits are collected via the Razorpay payment popup. The paid amount is recorded on the reservation and automatically deducted from the bill when the table is checked out in the POS. If the reservation is later cancelled by an admin, the deposit is automatically refunded via Razorpay.

Prerequisite: Razorpay keys must be configured under Settings → Payments before deposits can be collected.

Time Slots

Time slots define when bookings are accepted. Under Settings → Reservations → Time Slots, configure each day of the week (Monday through Sunday) with up to three meal periods:

  • Breakfast, Lunch, Dinner — each with a Start Time, End Time, and Slot Interval (minutes between bookable times).
  • Toggle Available off for any slot to hide it from bookings on that day.

Example: Set Dinner on Friday to Start 7:00 PM, End 10:00 PM, Interval 30 min — customers will see time options 7:00, 7:30, 8:00 … 9:30 PM.

Slots where the start time is empty are ignored. Save settings to publish changes.


Creating a Reservation (Admin)

  1. Go to Restaurant → Reservations → + New Reservation.
  2. Fill in:
    • Customer Name & Phone (required). If the phone number matches an existing customer, their account is linked automatically. If not, a new customer record is created.
    • Customer Email (optional) — used to send the confirmation email.
    • Date — reservation date.
    • Time — shown as a dropdown derived from your time slot settings for that day of the week.
    • Guests — number of people in the party.
    • Table — choose a specific table, or leave as Auto-Assign to let the system pick the best available table for the party size.
    • Notes — any internal notes (dietary requirements, occasion, etc.).
  3. Click Save Reservation. The reservation is created with status Pending.

Auto-Assign and Auto-Merge

When you choose Auto-Assign, the system finds the smallest available table that fits the party size, avoiding tables already booked within 2 hours of the requested slot. If no single table is large enough, enabling Auto Merge on the form causes the system to pair two available tables together automatically.


Reservation Statuses

StatusMeaning
PendingNewly created, awaiting confirmation by staff.
ConfirmedStaff has confirmed the booking. Confirmation email and WhatsApp are sent to the customer.
Checked InGuest has arrived. Table is blocked and the POS opens with this reservation pre-loaded.
CompletedBill was paid and table is cleared.
CancelledReservation was cancelled. Any paid deposit is automatically refunded.

Confirming and Checking In a Guest

Confirm a Reservation

Open the reservation and change status to Confirmed. The system automatically sends:

  • A confirmation email to the customer (if email was provided and email notifications are enabled under Settings → Email).
  • A WhatsApp message to the customer (if WhatsApp notifications are enabled under Settings → WhatsApp).

Check In a Guest

  1. When the guest arrives, find the reservation in the list and click Check In.
  2. If no table was assigned at booking time, a modal appears to let you assign one now.
  3. The reservation moves to Checked In and you are redirected straight to the POS with the table and reservation already loaded.
  4. If a deposit was collected, a banner in the POS reminds staff of the amount — it is deducted from the total at checkout automatically.

Notifications

EventWho receives itHow to enable
New reservation created Restaurant owner/admin (email) Settings → Email → Reservation Received (Admin) toggle
Reservation confirmed Customer (email + WhatsApp) Settings → Email → Reservation Confirmation (Customer) and Settings → WhatsApp → Notify on Reservation

Customer Self-Booking

When Enable Customer Reservations is on, a Book a Table button appears on your public restaurant page. The customer flow:

  1. Customer selects date → sees only the days and times you have configured as available.
  2. Enters party size, name, phone, and email.
  3. If a deposit is required, the Razorpay payment popup opens; the reservation is only saved after successful payment.
  4. Customer receives a confirmation email (if provided) once an admin confirms the booking.
  5. If Allow Cancellations is on, customers can cancel from their customer portal (/customer dashboard).

Reservations on the Table Floor View

On the Tables page, use the date and time filter at the top to see which tables are reserved for a specific slot. Tables with confirmed or checked-in reservations matching the selected time are highlighted as Reserved, making it easy for front-of-house staff to plan seating for walk-ins.


Frequently Asked Questions

Why is a time slot not showing in the booking form?

Check that the slot for that day of week has a Start Time and End Time entered and the Available toggle is on in Settings → Reservations → Time Slots. Also check that the booking is not within the Disable Booking (Mins Before) window.

Can I assign the same table to two reservations at the same time?

The system warns when a table already has an active reservation within 2 hours of the requested slot, but it does not hard-block manual assignment. Staff should use the table floor view reservation overlay to check conflicts before assigning.

The customer paid a deposit but I need to cancel. Will they be refunded?

Yes. When an admin changes reservation status to Cancelled, the system automatically issues a full refund via Razorpay for the deposit amount. A failure message appears if the refund API call fails, in which case you can refund manually from your Razorpay Dashboard.

Where does the deposit show up on the POS bill?

When you check a guest in, the POS loads the reservation and shows the deposit amount. At checkout, the deposit is deducted from the order total before final payment is collected from the guest.

Can I take a reservation without assigning a table?

Yes. Leave the table field as Auto / Not Assigned. You can assign a table later when editing the reservation or at the moment of check-in via the assignment modal.