M masamenu.tr
🏨 Hotels & Booking

🏨 Hotel & PMS

Rooms and rates, check-in, folios, in-room QR ordering and guest requests

Documentation

Hotel: Rooms, PMS and Guest Service

The hotel vertical turns masamenu.tr into a mini-PMS on top of the same order, floor-plan and reservation engine restaurants use: floors instead of halls, rooms and beds instead of tables, a folio instead of a one-off receipt. It's not a separate product — it's a location profile setting. Once the venue type is set to "hotel," the admin panel switches its own terminology and unlocks the relevant sections.

Open: Admin Panel → Rooms (the same section restaurants see as "Floor Plan" — admin.masamenu.tr/tables, renamed for hotels).


Floors and rooms

The floor-plan editor works the same way as for restaurants (Floor Plan), except halls are called floors, and instead of tables you place "Room" and "Bed" elements (beds are for hostels and shared dorms). Each room has a label (numbering starts at 101) and, just like a table, can be bound to a QR code by camera scan.

You don't have to add rooms one by one — the "+ Add rooms" button opens a bulk-creation form: a range (say, 201–230), an optional prefix, a live preview ("N rooms across M floors will be created"), and a line listing numbers that already exist and will be skipped. The same step is available right inside the onboarding wizard when you pick the "hotel" vertical.

QR codes are bound per room with the "Create QR & bind" button on the room card (or in bulk — one button for the whole floor), which also lets you download the SVG for printing.


Room types and rates

The "Room types" button opens a catalog: name (Standard/Deluxe/…), rate per night, capacity, description. A type is assigned to a room or bed in the properties panel on the floor plan — its rate is then pre-filled automatically in the check-in form (front desk can still override it for a specific stay).

Rates support seasonality: you can set date ranges with a different price for a specific room type or for all rooms at once. At check-in the system applies the most specific rule (a season on that type → a season on "all rooms" → the rate snapshotted at check-in → the type's base rate), while a rate entered by hand at the desk always wins.

Location settings let you enable a tourist tax — a percentage of the rate with a minimum per-night amount, or a flat per-night fee; the tax is posted to the folio as its own line item.


Check-in and check-out

The rooms panel is a housekeeping board: a card per room showing status, folio balance and nights stayed. A room's status moves through this chain:

Status Meaning
Available ready for check-in
Reserved guest hasn't arrived yet, the slot is held
Occupied a guest is staying
Dirty after check-out, awaiting cleaning
Cleaning housekeeping is in progress
Inspected cleaned and checked, waiting to flip to "Available"
Out of order taken out of service (maintenance, etc.)

Check-in opens a form: rate (pre-filled from the room type), check-out date, and a guest card — phone, e-mail, ID document, nationality, date of birth. If the guest has stayed before (matched by normalized phone/e-mail), the system shows a "returning guest" badge and bumps the visit counter. Checking in opens a folio and makes the room's QR order path available.

Check-out closes the folio: every charge is rolled into a single fiscal receipt, and the room flips to "Dirty."

Besides the daily board there's a calendar view (a 21-day window) — a view toggle on the same page: bars showing bookings and current stays across rooms, so you can see ahead what's free and when the next guest arrives.


Folio and charges

A folio is a room's running bill, opened at check-in and kept until check-out:

  • every night, a nightly cron (around 03:00 in the location's timezone) automatically posts the room charge — a multi-night stay accumulates on its own, no manual entry needed;
  • the tourist tax, if enabled, is posted the same way;
  • orders a guest places from the room (room service) are attached to the folio automatically — the link happens server-side the moment the order moves to "placed," so no staff member has to attach it by hand;
  • the folio balance is visible at the till in the folio tab of POS and on the room's card on the board.

At check-out, the folio closes with a single settle signal — the consolidated fiscal receipt is generated automatically.


Room service — guest ordering by QR

A guest scans the QR code in the room and orders from the menu exactly like from a restaurant table. Two server-side rules protect against orders going nowhere:

  • an order from an unoccupied room is blocked — if the room's QR has no open stay behind it, the order is automatically cancelled with the reason "room not occupied," and the guest sees a warning in checkout before the order is even sent;
  • when placing an order in an occupied room, the "Charge to room" payment method is available — the amount is added to the folio and paid at check-out together with the whole stay; the guest sees a consent line with the exact amount and room number before confirming.

Guest service requests and the housekeeping panel

Besides ordering food, the guest has a separate service-request button (in the cart/menu of the room's QR code): towels, cleaning, do not disturb, wake-up call (with a time picker), maintenance issue, other. A request is gated by check-in status the same way — it can't be filed from an unoccupied room.

On the staff side there's a "Guest requests" panel on the rooms board: an active-request counter on each room's card, a list with type/note/wake-up time, and "Start" / "Done" actions. Updates arrive live.


"My Bill" for the guest

The guest's menu (a settings item next to booking and calling staff) has "My Bill" — the guest sees a list of charges (newest first) and payments on their folio, and the running balance, with no staff involvement needed. Before check-in it shows an empty state ("your bill will appear after check-in"); after settlement, a "Paid" badge.


Bookings and iCal export to OTAs

Beyond instant check-in, the hotel also supports full bookings with check-in/check-out dates — they show up on the calendar as separate bars and turn into a stay with one action on arrival day.

From the venue's website a guest can leave a room booking request: pick a room type and dates, leave a contact — the request appears on the calendar as a regular booking awaiting staff confirmation; no prepayment is collected at this step.

To sync with booking channels, every room has an iCal feed (ical-*.ics) — the link can be added as a calendar in Booking.com, Airbnb, or any other service that supports iCal import, so the room's occupancy is visible externally. The reverse sync (importing other calendars into the hotel's own calendar) isn't supported yet — that's a separate channel manager topic, outside current functionality.

The rooms board has a reports tab with Occupancy, Average Daily Rate (ADR) and Revenue per Available Room (RevPAR) for a period — a quick read on how full the hotel is running.


Related sections


FAQ

What happens if a guest orders from a room no one has checked into?

The order is automatically cancelled and marked "room not occupied" — the server checks check-in status for every order coming from a room QR code, regardless of what the client shows.

Does a guest pay for room service right away or at check-out?

Either — a regular payment (cash/card on the spot) or "Charge to room," in which case the amount lands on the folio and is settled with one receipt at check-out along with the whole stay.

Can a room's calendar sync with Booking.com?

Yes, via the room's iCal link — its occupancy is visible externally. Importing bookings from external services back into the hotel's own calendar isn't implemented yet.

What does the nightly cron do, and do I need to wait for it?

It automatically posts the night's room charge to every occupied room's folio — there's nothing to trigger manually, and it runs on the location's own timezone.