Cashier Module
Process payments, manage cashier turns, handle table operations, apply discounts, split checks, and oversee daily cash flow from one central interface.
The Cashier module is the financial hub of your restaurant. It handles everything from opening a cashier turn and processing multi-currency payments, to splitting checks, applying discounts, and closing out at the end of a shift. All actions update in real time via WebSocket, so you always see the latest order status.
On this page
Real-Time Updates
The Cashier module uses WebSocket connections to stay in sync with your restaurant in real time. Table statuses, order changes, and payment updates refresh automatically every 2 seconds. You never need to manually reload the page to see the latest information.
Admin Authorization
Several cashier actions require admin (manager) authorization for security. When prompted, a manager must enter their credentials to approve the action. Protected actions include: cash withdrawals, closing turns, editing or removing discounts, item cancellations, moving tables, and applying protected discount types.
Table Management
The Table Management panel is the left sidebar of the Cashier module and serves as your real-time operational radar. It displays every table in your restaurant -- physical, temporary, and quick-order -- as individual cards arranged in a scrollable list. Each card surfaces the most critical information a cashier needs at a glance: the table number, its current status, the waiter assigned to it, when the session was opened, how many guests are seated, and a granular breakdown of order-item statuses. This means you never have to click into a table just to figure out whether it needs attention; the sidebar itself tells you.
In a busy restaurant environment, the sidebar acts as your triage tool. Imagine it is a Friday night dinner rush: you have 24 active tables, three waiters on shift, and the kitchen is running behind on a few tickets. Without leaving the cashier station, you can scan the sidebar and immediately see which tables have items stuck in “preparing” status for too long, which tables have all items delivered and are likely ready to pay, and which tables were just opened and are still placing orders. The colored status indicators and item-count badges give you this picture instantly.
The sidebar also supports filtering. At the top of the table list, a waiter filter dropdown lets you narrow the view to only the tables assigned to a specific staff member. This is particularly useful during shift handoffs or when a manager needs to check on a specific waiter's section. The filter applies immediately and persists until you clear it or select a different waiter.
Important points to keep in mind
- --Table data refreshes automatically via WebSocket every 2 seconds. You never need to manually reload or pull-to-refresh. If a waiter opens a new table or the kitchen marks an item as ready, the change appears on the corresponding card within moments.
- --You must select a table from the sidebar before performing any cashier action (payment, discount, cancellation, split check, move, or print). The main panel remains empty until a table is selected.
- --Temporary tables appear with a purple badge and quick-order tables appear with a blue badge. Regular physical tables have no special badge. These visual cues help you distinguish table types at a glance during busy service.
- --The item status breakdown on each card counts items in each lifecycle stage: pending (just placed), preparing (in kitchen), ready (waiting for pickup), delivered (at the table), picked up, and cancelled. This helps you spot bottlenecks -- for example, a table with 5 items in “ready” status means the waiter needs to deliver food.
- --The waiter filter at the top of the sidebar is optional. When no filter is applied, all tables across all waiters are visible. When a filter is active, only that waiter's assigned tables appear.
- --Tables are configured in the Admin Panel under Floor Map. If a table is missing from the sidebar, it either has not been created in the floor map or belongs to a zone that is not active for the current service.
Table card information reference
| Field | Description | Example |
|---|---|---|
| Table Number / Name | The identifier assigned to this table in the floor map or the name given to a temporary table | Table 12, Terraza 5, Takeout - Maria |
| Status | Whether the table session is currently active (open with orders) or closed (available for new guests) | Active / Closed |
| Waiter | The name of the waiter currently assigned to this table | Carlos M. |
| Opened At | The timestamp when the current table session was started by the waiter | 7:32 PM |
| Guest Count | The number of guests seated at the table, as entered by the waiter when opening the session | 4 guests |
| Item Breakdown | A count of order items by status: pending, preparing, ready, delivered, picked up, cancelled | 2 pending, 1 preparing, 3 delivered |
| Table Type Badge | A colored badge indicating whether this is a temporary table (purple) or quick-order table (blue) | Purple: Temp, Blue: Quick |
How to use
- 1Open the Cashier module. The left sidebar loads automatically and begins displaying all tables with their current status. The sidebar connects to the WebSocket service on load, so it will start receiving real-time updates immediately. If you have just opened your cashier turn, you will see all tables that are currently in use across the restaurant.
- 2Scan the table cards. Each card displays the table number at the top, followed by the waiter name, the time the session was opened, the guest count, and a row of small status indicators showing how many items are in each stage (pending, preparing, ready, delivered, picked up, cancelled). Look for cards with a high count of “ready” items -- these tables likely have food waiting to be delivered. Look for cards with all items in “delivered” status -- these tables are probably ready to pay.
- 3Identify special table types. Look for colored badges on the table cards. A purple badge labeled “Temp” indicates a temporary table (used for takeout or delivery orders). A blue badge labeled “Quick” indicates a quick-order table. Regular physical tables do not have a badge. These visual markers help you prioritize -- for example, a temporary takeout table with all items delivered means the order is ready for customer pickup.
- 4Select a table. Click any table card to select it. The main panel on the right side of the screen will load the full order details for that table, including the In-Cart section, the Current Order section, and the Order History section (see Order Viewing for details). The selected table card will be visually highlighted in the sidebar so you can always see which table you are currently working with.
- 5Filter by waiter (optional). At the top of the sidebar, locate the waiter filter dropdown. Click it and select a waiter's name from the list. The sidebar will immediately narrow to show only the tables assigned to that waiter. This is especially useful when a manager asks “how are Carlos's tables doing?” -- you can filter to Carlos and see all his active tables at once. To clear the filter, select the “All” option in the dropdown to return to the full table list.
- 6Monitor updates passively. Once the sidebar is loaded, you do not need to take any further action to keep it current. As waiters open new tables, place orders, and the kitchen updates item statuses, the sidebar reflects those changes automatically. Keep the Cashier module open on your screen and use the sidebar as a continuous monitoring dashboard throughout your shift.
Order Viewing
When you select a table from the sidebar, the main panel becomes your detailed view into everything that has happened at that table during its current session. The Order Viewing panel organizes all items into three distinct sections -- In-Cart, Current Order, and Order History -- giving you a chronological, status-aware picture of the table's activity. This is the foundation for every cashier action: before you process a payment, apply a discount, cancel an item, or split a check, you will always start by reviewing the order in this panel.
The three-section layout reflects the lifecycle of an order at a restaurant table. Think of a typical dining scenario: a group of four arrives and the waiter adds drinks to the cart (In-Cart). The waiter sends the drink order to the bar (Current Order -- items now show as “pending” or “preparing”). The drinks arrive, and the waiter takes a food order, sends it to the kitchen. The food items appear in Current Order while the delivered drinks automatically move into Order History once a new round begins. By the time the guests are ready to pay, you can see every item that was ever ordered -- from the first cocktail to the last dessert -- organized by when it was ordered and what stage it reached.
Each individual item in the order view displays rich detail: the item name, a thumbnail image (if one was uploaded in the Menu Management section of the Admin Panel), the quantity ordered, the unit price, any modifiers or special instructions attached to the item, a color-coded status badge, and a discount indicator if a discount has been applied. This level of detail means you can answer any customer question about their order directly from the cashier screen without needing to call the waiter over.
Important points to keep in mind
- --The In-Cart section only appears when the assigned waiter has items in their cart that have not yet been sent to the kitchen. These items can still be modified or removed by the waiter without requiring a formal cancellation. As a cashier, you can see them but cannot edit them directly -- only the waiter can modify in-cart items from their device.
- --The Current Order section shows items that have been submitted to the kitchen or bar. Each item carries a status badge: pending (just sent), preparing (kitchen acknowledged), ready (finished cooking, awaiting delivery), or delivered (at the table). Items in this section can be cancelled by the cashier, but cancellation requires a reason and manager authorization (see Item Cancellation).
- --The Order History section contains previously completed rounds of orders. When the waiter sends a new round to the kitchen, the previous round's delivered items roll into Order History. This section is read-only and serves as an audit trail for the table session.
- --Cancelled items remain visible in the order with a strikethrough style and a red “cancelled” badge. They are not removed from the display because they serve as an audit record. Their cost is excluded from the order total.
- --If a discount has been applied to the table or to specific items, a discount indicator (typically a small tag icon or percentage badge) appears next to the affected items. The order total at the bottom reflects the discounted price.
- --Order data updates in real time. If the waiter adds a new item while you are viewing the table, it will appear in the In-Cart or Current Order section automatically without requiring you to re-select the table.
Order item status reference
| Status Badge | Meaning | Visible In |
|---|---|---|
| Pending | Item has been sent to the kitchen or bar but has not been acknowledged yet | Current Order |
| Preparing | Kitchen or bar staff have acknowledged the item and are actively working on it | Current Order |
| Ready | Item is finished and waiting at the pass for a waiter to pick it up and deliver it | Current Order |
| Delivered | Item has been delivered to the table by the waiter | Current Order / Order History |
| Picked Up | Item has been picked up by the customer (used for takeout or quick-order tables) | Current Order / Order History |
| Cancelled | Item was cancelled after being sent to the kitchen. Shows with strikethrough styling | Current Order (with cancel badge) |
How to use
- 1Select a table from the sidebar. Click any table card in the left sidebar. The main panel on the right will load and display the full order details for that table. If the table has no orders yet (it was just opened by the waiter), the panel will show an empty state indicating no items have been ordered.
- 2Review the In-Cart section. This section appears at the top of the order panel and is labeled “In-Cart.” It lists items that the waiter has added to the table's cart but has not yet submitted to the kitchen. For each item you will see the item name, quantity, unit price, and any modifiers. These items have not been committed yet -- the waiter can still change quantities, remove items, or add modifiers without any cashier intervention. If the section is empty or not visible, it means the waiter has no uncommitted items in the cart.
- 3Review the Current Order section. Below the In-Cart section, the Current Order section lists all items that have been sent to the kitchen or bar for the current round. Each item shows a color-coded status badge: “pending” (yellow/orange), “preparing” (blue), “ready” (green), or “delivered” (gray). You will also see the item image thumbnail, the item name, the quantity (e.g., “x2”), the unit price, and any modifiers such as “no onions” or “extra spicy.” If an item has been cancelled, it appears with a red “cancelled” badge and its text is struck through.
- 4Review the Order History section. At the bottom of the order panel, the Order History section shows all previous rounds of orders for this table session. Each round is grouped together and labeled with the time it was placed. This is a read-only archive: you cannot modify or cancel items that have moved into the history. Use this section when a customer asks “what did I order earlier?” or when you need to verify what was served during a long multi-round session.
- 5Check item details. For any item in the Current Order or Order History, examine the following details: the item name and image, the quantity ordered, the unit price, any modifiers or special instructions (displayed below the item name in smaller text), the status badge, and a discount tag if a table-level or item-level discount has been applied. The running subtotal is displayed at the bottom of each section, and the grand total for the entire table appears at the bottom of the panel.
- 6Take action on the order. From the order viewing panel, you can initiate any table-level action using the action buttons displayed alongside the order details. These include: process payment (see Payment Processing), apply a discount (see Discounts), cancel an item (see Item Cancellation), split the check (see Split Checks), move the table (see Move Table), or print a receipt (see Printing).
Payment Processing
Payment Processing is the core financial function of the Cashier module. It handles the complete checkout flow for a table, from the moment a customer signals they are ready to pay through to the final confirmation receipt. The system supports two payment methods (cash and card), two currencies (MXN and USD), optional tip entry, automatic change calculation for cash payments, and multi-currency conversion using the exchange rate set during your cashier turn. Every payment is recorded against your active turn and contributes to your running totals for end-of-shift reconciliation.
The payment flow is designed to handle the common scenarios you encounter in a restaurant environment. Consider a tourist destination restaurant in a Mexican beach town: a table of four American tourists orders $875 MXN worth of food. When they ask to pay, the cashier needs to accept USD. The system converts the $875 MXN total to $50 USD using the exchange rate of 17.5 MXN per 1 USD that was set when the cashier opened their turn. The tourist hands over $60 USD in cash, the system calculates $10 USD in change, and the cashier records a $5 USD tip. All of this is captured in a single payment record with full currency traceability.
For tables with split checks, payment is processed per sub-check rather than for the entire table at once. Each sub-check behaves as an independent payment target: you select the sub-check, choose the method and currency, process the payment, and move to the next sub-check. The table is only fully settled once all sub-checks have been paid. See the Split Checks section for details on setting up and managing split payments.
Important points to keep in mind
- --You must have an active cashier turn to process any payment. If your turn has not been opened or has been closed, the payment button will be disabled. See Cashier Turns for how to open a turn.
- --The exchange rate used for all USD-to-MXN conversions is the rate you entered when opening your cashier turn. This rate is fixed for the duration of your turn. If the rate needs to change mid-shift, a manager must coordinate a turn close and reopen with the updated rate.
- --For cash payments, the system requires that the amount received is greater than or equal to the bill total. You cannot confirm a cash payment if the tendered amount is insufficient. The system automatically calculates the change to return.
- --Tips are recorded as a separate field and are not included in the bill total. Tips are tracked independently for reporting purposes and appear in the turn summary and close-turn reconciliation.
- --Card payments do not require entering a received amount or calculating change. The system records the exact bill total as the payment amount. Tips for card payments are still entered manually in the tip field.
- --Once a payment is confirmed, it cannot be reversed from the Cashier module. If a payment error occurs, it must be addressed through a manager using the Admin Panel reporting tools.
Supported payment methods
| Method | Currency Options | Requires Amount Entry | Change Calculated | Use Case |
|---|---|---|---|---|
| Cash | MXN, USD | Yes -- enter amount received | Yes -- system shows change due | Customer pays with physical bills and coins |
| Card | MXN, USD | No -- exact total is charged | No -- no change applies | Customer pays with credit or debit card via terminal |
Multi-currency exchange rate example
| Field | Value | Calculation |
|---|---|---|
| Bill Total (MXN) | $875.00 MXN | Sum of all delivered items minus discounts |
| Exchange Rate | 17.5 MXN / 1 USD | Set when cashier turn was opened |
| Bill Total (USD) | $50.00 USD | $875.00 / 17.5 = $50.00 |
| Amount Received (USD) | $60.00 USD | Customer hands over $60 in US bills |
| Change Due (USD) | $10.00 USD | $60.00 - $50.00 = $10.00 |
| Tip (USD) | $5.00 USD | Customer declares a $5 tip |
How to use
- 1Select the table. Click the table you want to check out from the sidebar. The main panel will display the full order details. Review the items and the total to make sure everything is correct before initiating payment. Verify that there are no items still in “In-Cart” status that the waiter forgot to send -- those items would not be included in the total.
- 2Click the payment button. The payment button is located in the action bar of the order panel. Clicking it opens the payment dialog, which displays the bill total and provides options for payment method, currency, tip, and (for cash payments) the amount received.
- 3Choose the payment method. Select either Cash or Card. If Cash is selected, additional fields for entering the amount received will appear. If Card is selected, the amount received field is hidden because the exact total is charged to the card.
- 4Select the currency. Choose MXN (Mexican Pesos) or USD (US Dollars). When USD is selected, the system instantly recalculates the bill total by dividing the MXN total by the exchange rate that was set when you opened your cashier turn. For example, if the MXN total is $875.00 and your exchange rate is 17.5, the USD total displayed will be $50.00. The original MXN total is still shown for reference.
- 5Enter the amount received (cash only). For cash payments, type the amount the customer hands you into the “Amount Received” field. The system immediately calculates the change due and displays it below the field. If the entered amount is less than the bill total, the confirm button remains disabled. Make sure to enter the amount in the selected currency (MXN or USD).
- 6Enter the tip (optional). If the customer wishes to leave a tip, enter the tip amount in the “Tip” field. The tip is recorded separately from the bill total and does not affect the change calculation for cash payments. Tips are tracked in your turn summary and appear in the end-of-shift reports.
- 7Confirm the payment. Click the confirm button to finalize the payment. The system records the transaction against your active cashier turn, updates your turn totals (total sales, cash on hand, tips collected), and closes the table session. A success screen appears showing a payment confirmation receipt with the payment method, currency, amount paid, change given, tip amount, and a timestamp. From this screen you can choose to print the receipt (see Printing).
Split payment workflow
When a table has been split into multiple sub-checks (see Split Checks), the payment process applies to each sub-check individually. Instead of a single payment button for the whole table, you will see a payment button next to each sub-check. Click the payment button for the sub-check you want to process, then follow the same steps above (choose method, currency, enter amount, tip, confirm). Repeat for each remaining sub-check. The table is fully settled only when all sub-checks have been paid. You can use different payment methods and currencies for different sub-checks -- for example, one guest might pay their sub-check in cash MXN while another pays by card in USD.
Cashier Turns
A cashier turn is the fundamental accounting unit for your shift at the register. It represents the period during which you -- as an individual cashier -- are responsible for handling payments and managing the cash drawer. Before you can process a single payment, you must open a turn by declaring the physical cash in your register (both MXN and USD) and setting the exchange rate for the shift. Once the turn is open, the system begins tracking every financial transaction against your name: every cash payment, every card payment, every tip, every cash withdrawal, and every expected balance. At the end of your shift, you close the turn by counting your actual cash and reconciling it against the system's expected totals (see Close Turn).
Think of the cashier turn as your personal financial envelope for the shift. Everything that happens at the register during your turn is attributed to you and tracked to the penny. If two cashiers work overlapping shifts (for example, a morning cashier from 10 AM to 4 PM and an afternoon cashier from 2 PM to 10 PM), each has their own turn with its own starting balances, exchange rate, and running totals. This separation ensures clear accountability -- if there is a discrepancy at close-out, it is immediately attributable to a specific cashier and a specific time window.
The turn also serves as the anchor for your exchange rate. Restaurants in tourist areas often need to accept USD payments and convert them to the local currency. The exchange rate you enter when opening your turn is the rate used for every USD transaction during that turn. For example, if you set 17.5 MXN per 1 USD, a $50 USD payment will be recorded as $875 MXN equivalent. This rate is locked for the duration of the turn to ensure consistency across all transactions.
Important points to keep in mind
- --A business day must be open before you can open a cashier turn. The business day is managed by an administrator in the Admin Panel (see Close Day / Business Day). If no business day is active, the system will block you from opening a turn.
- --You can only have one active turn at a time. If you already have an open turn, you cannot open a second one. You must close your current turn before opening a new one.
- --The starting MXN and USD amounts must accurately reflect the physical cash in your register. These amounts form the baseline for all subsequent calculations. If you enter an incorrect starting amount, your expected totals will be off for the entire turn.
- --The exchange rate is fixed for the duration of the turn. It cannot be changed mid-turn. If the exchange rate needs to be updated, you must close the current turn and open a new one with the updated rate.
- --All payments processed while your turn is active are attributed to your turn in reports and the close-out summary. This includes payments from any table in the restaurant, not just a specific section.
- --The turn summary panel updates in real time via WebSocket. You do not need to refresh or re-open the Cashier module to see updated totals after processing a payment.
Turn opening fields
| Field | Required | Description | Example |
|---|---|---|---|
| Starting MXN | Yes | The total amount of Mexican Pesos physically present in the cash register at the start of your shift | $5,000.00 MXN |
| Starting USD | Yes | The total amount of US Dollars physically present in the cash register at the start of your shift (enter 0 if none) | $200.00 USD |
| Exchange Rate | Yes | The conversion rate expressed as MXN per 1 USD. This rate will be used for all USD transactions during the turn | 17.50 |
Turn summary metrics (visible during your shift)
| Metric | Description | Updates |
|---|---|---|
| Total Sales (MXN) | Sum of all payment totals processed during the turn, converted to MXN | Real-time after each payment |
| Total Sales (USD) | Sum of all payments received in USD during the turn | Real-time after each payment |
| Total Tips (MXN) | Sum of all tips recorded in MXN during the turn | Real-time after each payment |
| Total Tips (USD) | Sum of all tips recorded in USD during the turn | Real-time after each payment |
| Cash Payments (MXN) | Total cash received in MXN across all cash transactions | Real-time after each cash payment |
| Cash Payments (USD) | Total cash received in USD across all cash transactions | Real-time after each cash payment |
| Card Payments (MXN) | Total card charges in MXN across all card transactions | Real-time after each card payment |
| Card Payments (USD) | Total card charges in USD across all card transactions | Real-time after each card payment |
| Cash Withdrawals | Total amount withdrawn from the register during the turn | After each withdrawal |
| Expected Cash (MXN) | Starting MXN + cash received in MXN - withdrawals - change given | Real-time |
| Expected Cash (USD) | Starting USD + cash received in USD - change given in USD | Real-time |
How to use
- 1Navigate to the Cashier module. When you open the Cashier module and there is no active turn for your user account, the system automatically presents the “Open Turn” dialog. This dialog blocks access to all other cashier functions until you either open a turn or navigate away. If a previous turn was left open (for example, the system crashed), you may see an option to resume it instead.
- 2Enter your starting MXN cash amount. Count the physical Mexican Peso bills and coins in your cash register. Enter the total in the “Starting MXN” field. Be precise -- this number is the baseline for all MXN cash calculations during your turn. If your manager handed you a float of $5,000 MXN, enter $5,000.00. Do not include any non-cash items like vouchers or IOUs.
- 3Enter your starting USD cash amount. Count any US Dollar bills in your register and enter the total in the “Starting USD” field. If your register has no USD cash, enter 0. Even if your restaurant does not commonly accept USD, this field is required (just enter 0).
- 4Enter the exchange rate. In the “Exchange Rate” field, enter the number of MXN per 1 USD. For example, if 1 USD equals 17.50 MXN, enter 17.50. This rate will be used for all USD payment conversions during your turn. Check with your manager for the correct rate to use -- many restaurants update this rate daily based on local exchange house rates.
- 5Confirm and open the turn. Review all three values one more time, then click the confirm button. The system creates the turn record, timestamps the start time, and begins tracking all transactions against your name. The Cashier module now loads fully with the table sidebar, the order panel, and the action buttons all enabled. Your turn summary panel becomes visible, showing starting balances and all metrics initialized to zero.
- 6Monitor your turn summary during the shift. Throughout your shift, the turn summary panel is accessible from the Cashier module. It displays all the running metrics listed in the table above -- total sales, tips, cash and card breakdowns, withdrawals, and expected cash on hand. These values update in real time as you process payments and record withdrawals. Use this panel periodically to verify that your register balance roughly matches the expected amount.
Cash Withdrawal
The Cash Withdrawal feature allows you to formally record the removal of physical cash from your register during an active shift. In any restaurant operation, there are legitimate reasons to take money out of the register before closing: a manager may request a mid-shift bank deposit to reduce the amount of cash on premises, the bar register may need change that your main register can provide, or petty cash may be needed for a delivery or supply purchase. Each of these removals must be documented so that when you close your turn at the end of the shift, the system can accurately calculate what your register should contain.
Without the withdrawal feature, any cash removed from the register would appear as a discrepancy during the close-turn reconciliation. For example, imagine you start your turn with $5,000 MXN, process $3,000 MXN in cash sales (after returning change), and then hand $2,000 MXN to a manager for a bank deposit. At close-out, the system would expect $8,000 MXN in your register ($5,000 starting + $3,000 net cash sales), but you would only have $6,000 MXN. By recording the $2,000 withdrawal, the system adjusts the expected amount to $6,000, and your close-out reconciles cleanly.
Every withdrawal requires manager authorization. This security measure ensures that no cash leaves the register without supervisory approval. The withdrawal is recorded with the amount, the cashier who initiated it, the manager who authorized it, a timestamp, and an optional comment describing the reason. All withdrawal records are included in the turn close-out summary and in the business day reports.
Important points to keep in mind
- --You must have an active cashier turn to record a withdrawal. If your turn is not open, the withdrawal option is not available.
- --The withdrawal amount is validated against your current cash on hand. The system will not allow you to withdraw more MXN than the expected MXN cash balance in your register. This prevents recording a withdrawal that would result in a negative expected balance.
- --Withdrawals are MXN only. If you need to remove USD from the register, the amount should be converted to MXN equivalent and recorded as an MXN withdrawal, with a comment noting the USD amount removed.
- --Manager authorization is mandatory. A manager must be physically present to enter their admin credentials and approve the withdrawal. This cannot be bypassed.
- --The comment field is optional but strongly recommended. A clear comment such as “Bank deposit - Banamex” or “Change for bar register” makes the close-turn review and end-of-day auditing much smoother.
- --Withdrawals cannot be reversed or edited after submission. If a withdrawal was recorded in error, the only way to correct it is to note the error during the close-turn process and include an explanation in the discrepancy comment.
Withdrawal record fields
| Field | Required | Description | Example |
|---|---|---|---|
| Amount (MXN) | Yes | The amount of Mexican Pesos being physically removed from the register | $2,000.00 |
| Comment | No (recommended) | A text description of why the cash is being removed from the register | Bank deposit - mid-shift |
| Authorized By | Yes (auto-filled) | The manager who approved the withdrawal by entering their admin credentials | Maria G. (Manager) |
| Timestamp | Auto-generated | The date and time the withdrawal was recorded | 2025-03-15 2:45 PM |
| Cashier | Auto-filled | The cashier whose turn the withdrawal is recorded against | Carlos R. |
Validation rules
| Rule | Description | What Happens If Violated |
|---|---|---|
| Amount > 0 | The withdrawal amount must be a positive number greater than zero | The confirm button is disabled; an error message appears |
| Amount <= Current Cash on Hand | The withdrawal amount cannot exceed the expected MXN cash balance in the register | The confirm button is disabled; an error shows the maximum available amount |
| Active Turn Required | A cashier turn must be open for the current user | The withdrawal option is not visible or is disabled |
| Manager Authorization | A manager must enter valid admin credentials to approve | The withdrawal is not processed; the authorization dialog remains open |
How to use
- 1Open the withdrawal dialog. In the Cashier module, locate the turn controls area (typically near the turn summary panel or in the action toolbar). Click the “Cash Withdrawal” or “Withdraw” button. The withdrawal dialog opens, showing the amount field, the comment field, and your current cash on hand for reference.
- 2Enter the withdrawal amount. Type the amount in MXN that you are removing from the register. The system displays your current expected cash on hand so you can verify the withdrawal is within bounds. If you enter an amount that exceeds the available cash, the confirm button will be disabled and an error message will indicate the maximum amount you can withdraw.
- 3Add a comment (recommended). In the comment field, type a brief description of why the cash is being removed. Examples include: “Bank deposit - Banamex branch”, “Change for bar register”, “Petty cash - ice delivery”, or “Manager safe transfer.” While this field is optional, a clear comment makes the close-turn review and end-of-day auditing significantly easier.
- 4Request manager authorization. Click the confirm button. The system presents the admin authorization dialog, prompting a manager to enter their username and password. A manager must be physically present to approve the withdrawal. Once the manager enters valid credentials, the authorization is recorded alongside the withdrawal.
- 5Withdrawal is recorded. After manager authorization, the system records the withdrawal and immediately adjusts your turn totals. Your “Expected Cash on Hand (MXN)” metric decreases by the withdrawal amount. The withdrawal appears in your turn summary under a “Withdrawals” section and will be included in the close-turn reconciliation summary. Physically remove the cash from the register and hand it to the manager or store it as appropriate.
Close Turn
Closing your turn is the final act of your shift as a cashier. It is a structured, multi-step wizard that guides you through the process of reconciling your physical cash register against the system's expected totals. The goal is to verify that the money in your drawer matches what the system calculated based on your starting balance, all payments received, all change given, and all withdrawals recorded. Any discrepancy -- whether a surplus or a shortage -- is flagged and documented before the turn record is finalized.
Think of the close-turn process as your shift's final exam. Throughout the shift, the system has been keeping a perfect mathematical record of every transaction. Now it is asking you: “Does the physical reality of your cash drawer match the digital record?” If it does, you close cleanly. If it does not, the system asks you to explain the difference. This process is critical for financial integrity -- it catches counting errors, missed transactions, and unauthorized removals. It also creates an auditable record that managers can review in the Reports section of the Admin Panel.
For example, suppose you started your turn with $5,000 MXN and $200 USD. During the shift you processed $8,500 MXN in cash sales (net of change returned), received $150 USD in cash payments, made a $2,000 MXN withdrawal for a bank deposit, and gave no USD change. The system expects you to have $11,500 MXN ($5,000 + $8,500 - $2,000) and $350 USD ($200 + $150). When you count your drawer and enter $11,480 MXN and $350 USD, the system flags a -$20 MXN discrepancy and asks you to explain it. You might note “$20 MXN short -- possible miscounted change on table 7.” The manager reviews and authorizes the close-out.
Important points to keep in mind
- --Close-turn is irreversible. Once submitted and authorized, the turn record is finalized. You cannot reopen a closed turn or modify its data. Make sure all payments are processed and all tables are settled before starting the close-out wizard.
- --The system does not prevent you from closing with a discrepancy. However, discrepancies are permanently recorded on the turn and visible in reports. Managers can see which cashier had which discrepancies over time.
- --Manager authorization is required to finalize the close-out. A manager must be physically present during the final step to enter their admin credentials and approve the submission.
- --If there are still active tables with open orders when you attempt to close your turn, the system will warn you. It is best practice to ensure all tables are either paid or transferred to another cashier before closing.
- --The close-out wizard has four sequential steps. You must complete each step before advancing to the next. You can go back to a previous step to correct values, but once you submit in the final step, the data is locked.
Expected vs. actual cash example
| Metric | MXN | USD |
|---|---|---|
| Starting Cash | $5,000.00 | $200.00 |
| + Cash Sales (net of change) | $8,500.00 | $150.00 |
| - Withdrawals | -$2,000.00 | $0.00 |
| = Expected Cash | $11,500.00 | $350.00 |
| Actual Cash (counted) | $11,480.00 | $350.00 |
| Discrepancy | -$20.00 (short) | $0.00 (exact) |
How to use
- 1Step 1 -- Confirmation. Locate the “Close Turn” button in the cashier turn controls area. Click it. The system presents a confirmation dialog asking if you are sure you want to begin the close-out process. This is your last chance to go back and process any remaining payments before closing. The dialog may also display a warning if there are still active tables with unpaid orders. Review the warning, and if you are satisfied that all business is complete, click “Continue” to proceed to the next step. If you are not ready, click “Cancel” to return to the normal cashier view.
- 2Step 2 -- Cash Count. The wizard advances to the cash counting screen. Physically count all the cash in your register. Separate the Mexican Pesos from the US Dollars. Count each denomination carefully: bills first, then coins. Enter the total MXN amount in the “Actual MXN Cash” field and the total USD amount in the “Actual USD Cash” field. Take your time with this step -- accuracy here determines whether your close-out will show a clean reconciliation or a discrepancy. Double-count if you are unsure. Once both amounts are entered, click “Continue” to proceed.
- 3Step 3 -- Summary Review. The wizard presents a side-by-side comparison of the system's expected cash amounts versus the actual amounts you entered in Step 2. For each currency (MXN and USD), you will see: the starting amount, total cash sales, total withdrawals, expected total, your actual count, and the discrepancy (positive for surplus, negative for shortage). If there is any discrepancy, a text field appears asking you to enter an explanation -- for example, “$20 MXN short, possible miscounted change on table 7 during dinner rush.” You can also add general comments about the turn in a separate comment field (for example, “Smooth shift, one USD payment had a complex change situation”). Review all figures carefully. If you realize you miscounted in Step 2, you can click “Back” to return and correct your cash count values.
- 4Step 4 -- Submission and Authorization. Once you are satisfied with the summary and have added any necessary discrepancy notes and comments, click the “Submit” button. The admin authorization dialog appears, prompting a manager to enter their credentials. A manager must be physically present -- they should review the summary (especially any discrepancies) before approving. Once the manager enters valid admin credentials and confirms, the turn is officially closed. The system records the close-out timestamp, locks the turn data, and updates the business day records. You are returned to the Cashier module's initial state, which will prompt you to open a new turn if you continue working, or you can simply log out.
Discounts
The Discounts feature allows you to apply price reductions to a table's order before processing payment. Discounts are a standard part of restaurant operations -- they are used for loyalty rewards, promotional offers, complaint resolution, employee meals, VIP treatment, and dozens of other scenarios. The system supports two categories of discounts: preset discounts (configured by your administrator in the Admin Panel > Discounts section) and custom discounts (free-form amounts entered by the cashier). Both types can be either a fixed MXN amount or a percentage of the order total.
The discount system is designed with financial controls in mind. Certain discount types can be marked as “protected” by the administrator, meaning they require manager authorization before they can be applied. This prevents cashiers from applying high-value discounts without supervisory oversight. For example, an administrator might configure a “10% Loyalty” discount as unprotected (any cashier can apply it) while a “50% Complaint Resolution” discount is protected (requires a manager to enter their credentials). This tiered authorization model gives restaurants the flexibility to empower cashiers for routine discounts while maintaining controls over large reductions.
Consider a practical scenario: a group of regular customers visits your restaurant every Friday. The manager wants to give them a 15% loyalty discount. The cashier opens the discount dialog, selects the “15% Loyalty” preset, and the system automatically calculates the discount based on the order total. If the order is $1,200 MXN, the discount is $180 MXN, bringing the new total to $1,020 MXN. Because this discount type is configured as unprotected, no manager authorization is needed. However, if the same cashier tries to apply a “Free Meal” discount that is marked as protected, the system will prompt for manager credentials before the discount is applied.
Important points to keep in mind
- --Preset discount types are configured in the Admin Panel under Discounts. If the discount type you need is not available, ask your administrator to create it. Cashiers cannot create new discount types -- only select from existing presets or enter a custom amount.
- --Protected discounts require manager authorization. The manager must be physically present to enter their credentials. The authorization is recorded alongside the discount for audit purposes.
- --A discount applies to the entire table order, not to individual items. The discount amount or percentage is calculated based on the order subtotal. If the table has a split check, the discount is distributed proportionally across sub-checks (see Split Checks for details).
- --Only one discount can be active on a table at a time. If you need to change the discount, you must edit or remove the existing one before applying a new one.
- --Editing or removing an existing discount always requires manager authorization, regardless of whether the original discount type was protected or not. This prevents cashiers from silently removing discounts after they have been applied.
- --Discounts are reflected in the order total immediately after being applied. A discount indicator (tag icon or percentage badge) appears on the order view to signal that a discount is active on the table.
Discount types
| Type | How It Works | Example | Authorization |
|---|---|---|---|
| Preset -- Fixed Amount | Reduces the order total by a specific MXN amount configured in the Admin Panel | "$100 MXN Off" removes $100 from a $750 total = $650 | Depends on preset config (protected or unprotected) |
| Preset -- Percentage | Reduces the order total by a percentage configured in the Admin Panel | "15% Loyalty" on a $1,200 order = $180 off = $1,020 total | Depends on preset config (protected or unprotected) |
| Custom -- Fixed Amount | Cashier enters a specific MXN amount to deduct from the order total | Cashier types $50 = $50 off the current total | Always requires manager authorization |
| Custom -- Percentage | Cashier enters a percentage to deduct from the order total | Cashier types 10% on a $900 order = $90 off = $810 total | Always requires manager authorization |
How to use
- 1Select the table. Click the table from the sidebar to load its order details in the main panel. Review the order to confirm that all items are correct and the subtotal is accurate before applying a discount.
- 2Open the discount dialog. Click the discount button in the table actions bar. The discount dialog opens, displaying a list of all available preset discount types along with a “Custom Discount” option at the bottom. Each preset shows its name, type (fixed or percentage), value, and whether it is protected (indicated by a lock icon or shield badge).
- 3Browse or search discount types. If your restaurant has many preset discounts, use the search field at the top of the dialog to filter by name. For example, typing “loyalty” would narrow the list to discount types containing that word. Scroll through the list to find the appropriate discount for the situation.
- 4Select a preset discount or create a custom discount. To apply a preset, click on it. The system immediately calculates the discount amount based on the order subtotal and shows you a preview (for example, “15% of $1,200 = $180 discount”). To create a custom discount, click the “Custom Discount” option, then choose whether it is a fixed amount or percentage, and enter the value. The system previews the calculated discount amount.
- 5Authorize if required. If the selected discount type is marked as protected (or if you chose a custom discount), the admin authorization dialog appears after you confirm your selection. A manager must enter their credentials to approve the discount. If the discount type is unprotected, authorization is skipped and the discount is applied immediately.
- 6Discount is applied. The order total is updated to reflect the discount. A discount indicator appears on the order view, showing the discount type and amount. The table card in the sidebar may also show a visual indicator that a discount is active. The discounted total is the amount that will be charged when you process payment.
Editing or removing discounts
To edit or remove an existing discount, open the discount dialog for the table. The dialog will show the currently active discount with its type, value, and calculated amount. You will see two options: Edit (to change the discount type or value) and Remove (to delete the discount entirely and restore the original order total). Both actions require manager authorization, regardless of whether the original discount was protected. This security measure prevents unauthorized modifications to applied discounts.
When editing, you can switch from one preset to another or change a custom discount amount. The system recalculates the order total based on the new discount. When removing, the order total reverts to the full pre-discount amount. Both actions are logged in the system with the cashier name, the authorizing manager, and a timestamp.
Item Cancellation
Item Cancellation allows you to remove specific items from an active order after they have been sent to the kitchen or bar. This is distinct from removing items from the waiter's cart (which can be done freely before submission) -- once an order has been submitted and the kitchen has received it, the only way to remove an item is through the formal cancellation process. This process requires a cancellation reason and manager authorization, creating an auditable record of why the item was removed and who approved it.
Cancellations happen for a variety of reasons in a restaurant. A customer may change their mind after ordering (“Actually, I don't want the soup”). An item may have been ordered by mistake (the waiter tapped the wrong menu item). The kitchen may be unable to fulfill an order (ingredient ran out, equipment broke down). A dish may have been prepared incorrectly and cannot be salvaged. In every case, the cancellation record captures the reason so that management can analyze cancellation patterns over time -- for example, if a particular dish is cancelled frequently due to stock-outs, that signals an inventory management issue.
The system supports both full and partial cancellations. A full cancellation removes the entire quantity of an item (for example, all 3 tacos are cancelled). A partial cancellation removes only some of the quantity (for example, cancel 1 of 3 tacos, leaving 2 tacos on the order). This flexibility is important because customers often want to reduce their order rather than eliminate it entirely. In a partial cancellation, the order total is reduced only by the cost of the cancelled quantity, and the remaining quantity stays active in the order.
Important points to keep in mind
- --Cancellation is only for submitted items. Items that are still in the waiter's cart (In-Cart section) can be removed or modified by the waiter without a formal cancellation. The cancellation feature applies only to items that have already been sent to the kitchen or bar.
- --A cancellation reason is mandatory. You cannot submit a cancellation without entering a reason. Common reasons include: “Customer changed mind,” “Ordered by mistake,” “Item out of stock,” “Dish prepared incorrectly,” or “Customer allergy.” The reason is stored in the cancellation record and available in reports.
- --Manager authorization is always required. Every cancellation, regardless of the item value or quantity, requires a manager to enter their admin credentials. This prevents unauthorized removal of items from orders.
- --Cancelled items are never deleted. They remain visible in the order view with a red “cancelled” badge and strikethrough styling. This creates a permanent audit trail. The cost of cancelled items is excluded from the order total.
- --Partial cancellations split the original order line into two parts: the cancelled quantity (shown with cancel badge) and the remaining active quantity (shown normally). For example, cancelling 1 of 3 tacos at $45 each results in a cancelled line for 1 taco ($45, struck through) and an active line for 2 tacos ($90).
- --Cancellations are reported in the business day summary and are visible in the Admin Panel > Reports section. Managers can track total cancellation value, frequency, and reasons over time.
Cancellation record fields
| Field | Required | Description | Example |
|---|---|---|---|
| Item Name | Auto-filled | The name of the menu item being cancelled | Tacos al Pastor |
| Original Quantity | Auto-filled | The total quantity originally ordered | 3 |
| Quantity to Cancel | Yes | How many units of the item to cancel (1 to full quantity) | 1 |
| Remaining Quantity | Auto-calculated | How many units remain active after the cancellation | 2 |
| Cancellation Reason | Yes | A text description of why the item is being cancelled | Customer changed mind |
| Cancelled Amount | Auto-calculated | The monetary value being removed from the order total (unit price x cancelled qty) | $45.00 MXN |
| Authorized By | Yes (auto-filled) | The manager who approved the cancellation | Maria G. (Manager) |
| Timestamp | Auto-generated | The date and time the cancellation was recorded | 2025-03-15 8:22 PM |
| Cashier | Auto-filled | The cashier who initiated the cancellation | Carlos R. |
How to use
- 1Select the table and locate the item. Click the table from the sidebar to load its order details. In the Current Order section, find the item you need to cancel. Only items in the Current Order section (items that have been sent to the kitchen or bar) are eligible for cancellation. Items in the In-Cart section should be removed by the waiter directly.
- 2Click the cancel action. On the item you want to cancel, click the cancel button (typically an X icon or a “Cancel” link). The cancellation dialog opens, showing the item name, the current quantity, the unit price, and fields for selecting the cancellation quantity and entering the reason.
- 3Select the quantity to cancel. Use the quantity selector to choose how many units to cancel. If the item has a quantity of 1, the selector defaults to 1 (full cancellation). If the item has a quantity greater than 1, you can choose any amount from 1 up to the full quantity. For example, if 3 tacos were ordered and the customer only wants to cancel 1, select 1. The dialog shows a preview of the remaining quantity and the amount that will be deducted from the order total.
- 4Enter the cancellation reason. Type a clear, descriptive reason for the cancellation in the reason field. This field is mandatory -- the confirm button remains disabled until a reason is entered. Be specific: “Customer allergic to shellfish” is more useful for reporting than just “customer request.” The reason is permanently stored in the cancellation record.
- 5Request manager authorization. Click the confirm button. The admin authorization dialog appears, prompting a manager to enter their credentials. The manager should review the cancellation details (item, quantity, reason) before approving. Once valid admin credentials are entered, the cancellation is processed.
- 6Item is marked as cancelled. After authorization, the cancelled item (or partial quantity) appears in the order with a red “cancelled” badge and strikethrough text. The order total is updated to exclude the cancelled amount. If it was a partial cancellation, the remaining quantity continues to display normally with its original status badge. The cancellation is also sent to the kitchen display so kitchen staff know to stop preparing the item (if it has not been completed already).
Partial cancellation detail
When you perform a partial cancellation, the system splits the original order line into two separate entries. For example, if a customer ordered 3 Tacos al Pastor at $45 MXN each (total $135 MXN) and you cancel 1, the order view will show:
| Item | Quantity | Unit Price | Line Total | Status |
|---|---|---|---|---|
| Tacos al Pastor | 2 | $45.00 | $90.00 | Active (original status badge) |
| Tacos al Pastor | 1 | $45.00 | $45.00 | Cancelled (red badge, strikethrough) |
The order total is reduced by $45.00 (the cancelled quantity's value). The remaining 2 tacos continue through the normal order lifecycle. The kitchen is notified of the partial cancellation.
Split Checks
Split Checks allows you to divide a table's bill among multiple people, each paying for their own items separately. Instead of one single payment for the entire table, you create multiple “sub-checks” and assign specific order items to each one. Each sub-check becomes an independent payment target: it has its own item list, its own subtotal, its own proportional share of any table-level discount, and it can be paid independently using any payment method and currency. The table is fully settled only once every sub-check has been paid.
This is one of the most commonly requested features in restaurant service. Consider a table of four coworkers having a business lunch. Two of them have corporate cards, one wants to pay cash in MXN, and one wants to pay cash in USD. Without split checks, you would have to process a single payment and the guests would need to settle up among themselves. With split checks, you create four sub-checks, assign each person's items to their sub-check, and process four independent payments -- one card MXN, one card MXN, one cash MXN, one cash USD. Each person gets exactly the items they ordered on their receipt, and the table is closed cleanly.
The split check feature also handles discounts intelligently. If a 10% discount has been applied to the table before the check is split, that discount is distributed proportionally across all sub-checks based on the value of items in each one. This ensures that a guest whose sub-check is $800 receives a larger share of the discount than a guest whose sub-check is $200, maintaining fairness. The system handles this calculation automatically -- you do not need to manually divide the discount.
Important points to keep in mind
- --Every item must be assigned to a sub-check before payments can be processed. The system will not allow you to process payment on any sub-check if there are unassigned items remaining. Make sure all items from the order are distributed across the sub-checks.
- --Sub-checks can be paid in any order. You do not need to pay sub-check 1 before sub-check 2. Process them in whatever order the guests are ready.
- --Each sub-check can use a different payment method and currency. One guest can pay by card in MXN, another by cash in USD, and so on. The payment processing flow for each sub-check is identical to the standard payment flow (see Payment Processing).
- --If a table-level discount is active, it is automatically distributed proportionally across sub-checks based on each sub-check's share of the total order value. You cannot apply different discounts to different sub-checks -- the discount is always at the table level.
- --The table is not closed until all sub-checks are paid. If three of four sub-checks are paid and one is outstanding, the table remains open. You can see the payment status of each sub-check at a glance.
- --You can split items with a quantity greater than 1 across multiple sub-checks. For example, if 4 beers were ordered, you can assign 2 to sub-check A and 2 to sub-check B.
How to use
- 1Select the table. Click the table from the sidebar to load its order details. Review the order to make sure all items are present and correct. If there are items in the In-Cart section, ask the waiter to either submit or remove them before splitting.
- 2Open the split checks dialog. Click the “Split Check” button in the table actions bar. The split check interface opens, showing the full list of order items on one side and empty sub-check panels on the other.
- 3Create sub-checks. Specify the number of sub-checks you need (one per person or group paying separately). The system creates that number of empty sub-check panels, each labeled with a number (Sub-check 1, Sub-check 2, etc.). You can typically add more sub-checks later if needed.
- 4Assign items to sub-checks. For each item in the order, select it and assign it to the appropriate sub-check. You can typically do this by clicking the item and then clicking the target sub-check, or by using a drag-and-drop gesture. If an item has a quantity greater than 1 (for example, 4 beers), you can split the quantity across sub-checks -- assign 2 beers to sub-check A and 2 beers to sub-check B. The interface shows a running total for each sub-check as you assign items, so you can see the balance in real time.
- 5Review sub-check totals. Once all items are assigned, review each sub-check panel. Each panel shows the items assigned to it, the subtotal, any proportional discount applied, and the final total. Verify that the items match what each guest ordered. If a discount is active on the table, you will see the proportional share of the discount applied to each sub-check (see the discount distribution example below).
- 6Confirm the split. Once you are satisfied that all items are assigned and the sub-check totals are correct, confirm the split. The order view now shows the sub-checks instead of a single combined order. Each sub-check has its own payment button.
- 7Process payment for each sub-check. Click the payment button on a sub-check to process its payment. The payment flow is identical to the standard payment process (choose method, currency, enter amount for cash, tip, confirm). After payment, the sub-check shows a “Paid” badge. Repeat for each remaining sub-check. The table is fully settled once all sub-checks show “Paid.”
Proportional discount distribution example
Suppose a table has a total order of $1,000 MXN with a 10% discount ($100 off), and the check is split into two sub-checks:
| Sub-Check | Items Total | Share of Order | Discount Share | Final Total |
|---|---|---|---|---|
| Sub-check A | $800.00 MXN | 80% ($800 / $1,000) | $80.00 (80% of $100) | $720.00 MXN |
| Sub-check B | $200.00 MXN | 20% ($200 / $1,000) | $20.00 (20% of $100) | $180.00 MXN |
| Total | $1,000.00 MXN | 100% | $100.00 | $900.00 MXN |
The guest with the $800 sub-check receives $80 of the $100 discount, while the guest with the $200 sub-check receives $20. This proportional distribution ensures that each guest benefits from the discount in proportion to their share of the total bill.
Move Table
The Move Table feature transfers an entire table session -- including all orders, item statuses, applied discounts, and any other table-level data -- from one table to another. This is a complete migration: the source table is closed and freed up, and the target table becomes the new home for the session as if the guests had been sitting there all along. The transfer preserves everything about the order, so there is no disruption to the kitchen workflow or the billing process.
Table moves are a common occurrence in restaurant operations. Guests may want to move from an indoor table to the patio because the weather cleared up. A large party may arrive and need a bigger table, so the host asks a smaller group to relocate. A temporary takeout table (see Temporary Tables) may need to be consolidated to a physical table when a customer decides to dine in instead. A reserved table may become available and a VIP guest is relocated to a preferred spot. In all these cases, the move feature ensures that the order history travels with the guests seamlessly.
The move operation has strict validation rules to prevent data conflicts. The most important rule is that the target table must be closed (not currently in use). You cannot merge two active table sessions -- if the target table has its own orders, they would conflict with the incoming orders. If you need to combine two active tables, one must be paid and closed first, and then the other can be moved. The move also requires manager authorization to prevent accidental or unauthorized transfers.
Important points to keep in mind
- --The target table must be closed (no active session). Tables with open sessions do not appear in the target selection list. This prevents accidental merging of two active orders.
- --Everything transfers. All orders (current and historical), item statuses, applied discounts, guest count, and the assigned waiter are moved to the target table. The source table reverts to a clean, closed state.
- --Manager authorization is required. A manager must enter their admin credentials to approve the move. The authorization record includes the source table, target table, and authorizing manager.
- --The move operation is atomic -- it either completes fully or not at all. If an error occurs during the transfer (for example, a network issue), the system rolls back and the orders remain on the source table.
- --Kitchen displays are updated automatically after a table move. If the kitchen has active tickets for the source table, those tickets are reassigned to the new table number so kitchen staff know where to send the food.
- --You can move between any table types: physical to physical, temporary to physical, physical to temporary, or temporary to temporary. The only requirement is that the target table is closed.
Target table validation rules
| Rule | Description | If Not Met |
|---|---|---|
| Target Must Be Closed | The target table cannot have an active session with open orders | Table does not appear in the available targets list |
| Target Must Exist | The target table must be configured in the floor map or be an existing temporary table | Table is not listed |
| Source Must Be Active | The source table must have an active session with orders to transfer | Move option is disabled or not available |
| Different Tables | The source and target must be different tables | Move is not allowed (cannot move a table to itself) |
| Manager Authorization | A manager must approve the move with valid admin credentials | Move is blocked at the authorization step |
How to use
- 1Select the source table. Click the table that the guests are currently sitting at from the sidebar. This is the table whose orders will be moved. The main panel will load the order details so you can verify that this is the correct table.
- 2Open the move table dialog. Click the “Move Table” button in the table actions bar. The move dialog opens, displaying a list of all available target tables. Only tables that are currently closed (no active session) appear in this list. The list shows each table's number, name, and zone.
- 3Select the target table. Click the table where you want to move the orders. If the desired table is not in the list, it likely has an active session that needs to be closed first (check the sidebar for its status). You may also need to scroll through the list or search if your restaurant has many tables.
- 4Review the transfer summary. Before confirming, the dialog displays a transfer summary showing: the source table number and name, the target table number and name, the number of orders being transferred, the total number of items, and the current order total. Review this summary to make sure you selected the correct target table and that the orders being moved are correct.
- 5Request manager authorization. Click the confirm button. The admin authorization dialog appears, prompting a manager to enter their credentials. The manager should review the transfer summary (source, target, order details) before approving. Once valid credentials are entered, the move is executed.
- 6Transfer completes. All orders, items, statuses, discounts, and session data are migrated to the target table. The source table is closed and freed up -- it will appear as available in the sidebar. The target table now shows as active with all the transferred orders. The sidebar updates automatically to reflect the changes. Kitchen displays are also updated so kitchen staff see the new table number on any active tickets.
Transfer summary reference
| Field | Description | Example |
|---|---|---|
| Source Table | The table being vacated (orders move FROM here) | Table 5 - Patio |
| Target Table | The table being occupied (orders move TO here) | Table 12 - Main Floor |
| Orders Count | Number of order rounds being transferred | 3 orders |
| Items Count | Total number of individual items across all orders | 14 items |
| Order Total | The current bill total including any active discounts | $1,250.00 MXN |
| Discount Active | Whether a discount is applied (transfers with the orders) | Yes - 10% Loyalty ($125.00) |
Temporary Tables
Temporary Tables are virtual tables created on-the-fly for orders that do not correspond to a physical table in your restaurant. They exist to handle a common operational gap: not every order comes from a seated guest at a numbered table. A customer calls in for takeout. A delivery driver arrives to pick up a batch of orders. A walk-in customer wants to order at the counter and take their food to go. A catering order needs to be tracked through the kitchen. In all of these cases, you need a “table” in the system to place the order against, but there is no physical table involved. Temporary tables fill this role.
Once created, a temporary table behaves exactly like a regular physical table in every functional way. Waiters can place orders on it from their device (or you can coordinate with a waiter to do so). The kitchen receives tickets for it just like any other table. You can apply discounts, cancel items, split checks, process payments, and print receipts -- all the standard cashier operations work. The only differences are visual: temporary tables display a colored badge in the sidebar to distinguish them from physical tables, and each temporary table receives a unique QR code that can be used for customer-facing purposes.
For example, a popular taco restaurant handles 30-40 takeout orders during the lunch rush. The cashier creates a temporary table for each takeout order, naming it with the customer's name (e.g., “Takeout - Rodriguez”). The waiter places the order on the temporary table, the kitchen prepares it, and when the customer arrives to pick up, the cashier selects the temporary table, processes payment, and the order is complete. The temporary table can then be closed and reused or left as a record for the day's activity.
Important points to keep in mind
- --Temporary tables are not pre-configured in the floor map. They are created on demand by the cashier and exist only for the duration of the order. Physical tables are defined in the Admin Panel under Floor Map; temporary tables are created here in the Cashier module.
- --Each temporary table is assigned a unique QR code upon creation. This QR code links to the table in the system and can be used for various purposes: printed on a pickup receipt so the customer can scan it, displayed on a screen for digital ordering, or used internally for tracking.
- --Temporary tables appear in the sidebar with a purple badgelabeled “Temp.” Quick-order tables appear with a blue badge labeled “Quick.” These badges help you visually distinguish them from regular physical tables during busy service.
- --The table name is the primary identifier for temporary tables (since they do not have a fixed table number from the floor map). Use descriptive names that include the order type and customer identifier to avoid confusion during busy periods.
- --Temporary tables support all standard cashier operations: payment processing, discounts, item cancellation, split checks, move table, and printing. They are functionally identical to physical tables.
- --You can move orders from a temporary table to a physical table (and vice versa) using the Move Table feature. This is useful when a takeout customer decides to dine in -- you can move their order from the temporary table to a physical table.
Badge color meanings
| Badge Color | Label | Table Type | Typical Use Case |
|---|---|---|---|
| Purple | Temp | Temporary Table | Takeout orders, delivery orders, catering orders, event orders, any order not tied to a physical table |
| Blue | Quick | Quick-Order Table | Walk-in counter orders, bar quick-service orders, fast-casual orders where the customer is not seated |
| None (no badge) | — | Physical Table | Regular dine-in tables configured in the floor map |
How to use
- 1Click the create temporary table button. In the Cashier module sidebar or table controls area, look for a button labeled “New Temp Table,” “Create Temporary Table,” or a “+” icon. Click it to open the creation dialog.
- 2Enter a table name. In the “Table Name” field, type a descriptive name for the temporary table. Best practices for naming: include the order type and a customer identifier. Examples: “Takeout - Rodriguez,” “Delivery #45 - UberEats,” “Catering - Martinez Wedding,” “Counter - Walk-in.” The name appears on the table card in the sidebar and on any printed receipts, so clarity matters.
- 3Enter a table number (optional). If you want to assign a numeric reference to the temporary table, enter it in the “Table Number” field. This is optional -- temporary tables are primarily identified by their name rather than a number. However, a number can be useful if your kitchen uses numeric references on tickets.
- 4Confirm creation. Click the confirm button. The system creates the temporary table and generates a unique QR code for it. A confirmation dialog appears showing the table name, the generated QR code, and a success message. You can optionally print the QR code at this point or dismiss the dialog.
- 5Table appears in the sidebar. The newly created temporary table immediately appears in the sidebar table list with a purple “Temp” badge (or a blue “Quick” badge for quick-order tables). You can now select it just like any physical table. From this point, coordinate with a waiter to place orders on the temporary table, or use any other cashier function (payment, discount, etc.) as needed.
- 6Use the QR code (optional). The generated QR code can serve multiple purposes. For takeout orders, print it and attach it to the bag so the customer can scan it upon pickup for order verification. For digital ordering, the QR code can link to the table's ordering page if your restaurant uses customer-facing QR ordering. The QR code is accessible any time by selecting the temporary table and viewing its details.
QR code generation detail
Every temporary table receives a unique QR code at the moment of creation. This QR code encodes a link that identifies the specific table in the system. The QR code is displayed in the creation confirmation dialog and can also be accessed later from the table details view. You can print the QR code directly from the Cashier module using your configured receipt printer (see Printing). The QR code remains valid for the lifetime of the temporary table. If the temporary table is closed and a new one is created, a new QR code is generated for the new table.
Printing
The Printing feature allows you to send receipts and check summaries to a physical receipt printer directly from the Cashier module. Receipts are one of the most tangible touchpoints in restaurant service -- they serve as the customer's record of what they paid, and they double as an internal record for your financial tracking. The Cashier module integrates with the Printer Service configured in the Admin Panel > Printer Service section, allowing you to send print jobs to any of your restaurant's configured receipt printers with a few clicks.
The printing system is designed for speed and convenience during service. The first time you print during a session, the system asks you to select which printer to use from the list of available devices. Once selected, that printer becomes your default for the remainder of the session -- every subsequent print job goes to the same printer automatically without asking you to select again. This “select once, print many” pattern eliminates repetitive clicks during a busy shift. If you need to switch printers mid-shift (for example, your primary printer runs out of paper or jams), you can change the selection from within the print dialog.
Consider a typical evening service: you process 40-50 payments, and roughly half of those customers request a printed receipt. With the printer selection persisting, you simply click “Print” and confirm -- the receipt goes to your printer in seconds. If you moved to a different workstation with a different printer nearby, you select the new printer once and all subsequent prints route there automatically.
Important points to keep in mind
- --Printers must be configured in the Admin Panel before they appear in the Cashier module. The Printer Service section in the Admin Panel is where your administrator defines the available printers, their connection details, and their assigned names. See Admin Panel > Printer Service for setup instructions.
- --Your printer selection persists for the entire session. Once you select a printer for your first print job, all subsequent prints during that session go to the same printer. The selection is stored in your browser session and resets when you close the browser or log out.
- --You can change your printer selection at any time. In the print dialog, there is an option to select a different printer. This is useful if your current printer runs out of paper, has a jam, or if you move to a different workstation.
- --Print jobs are sent asynchronously. The system sends the receipt data to the Printer Service, which queues the job for the selected printer. In most cases the receipt prints within 1-2 seconds. If there is a delay, the Printer Service may be processing other jobs or the printer may be offline.
- --You can print a receipt before or after payment. Printing before payment produces a pre-payment check (useful when the customer asks to see the bill before paying). Printing after payment produces a payment confirmation receipt with the payment details included.
- --If no printers are listed in the print dialog, it means no printers have been configured in the Admin Panel's Printer Service. Contact your administrator to set up printers.
Receipt content description
| Section | Content | Included When |
|---|---|---|
| Header | Restaurant name, address, tax ID (RFC), receipt number, date and time | Always |
| Table Info | Table number or name, waiter name, number of guests, session open time | Always |
| Item List | Each item ordered: name, quantity, unit price, line total. Includes modifiers and special instructions | Always |
| Cancelled Items | Cancelled items shown with strikethrough or "CANCELLED" label, excluded from totals | If any items were cancelled |
| Discount | Discount type name, discount value (amount or percentage), discount total deducted from subtotal | If a discount is applied |
| Subtotal | Sum of all active item line totals before discount | Always |
| Discount Total | The total amount deducted by the discount | If a discount is applied |
| Grand Total | Final amount due (subtotal minus discount) | Always |
| Payment Details | Payment method (cash/card), currency, amount paid, change given, tip amount | After payment only |
| Footer | Thank-you message, configurable footer text, QR code (if applicable) | Always |
How to use
- 1Select the table. Click the table whose receipt you want to print from the sidebar. The order details load in the main panel. Verify that the order is correct and, if applicable, that payment has been processed before printing a final receipt.
- 2Click the print button. In the table actions bar, click the print button (typically a printer icon). This opens the print dialog. If you have already selected a printer during this session, the dialog will show your current printer and a confirmation button. If this is your first print of the session, the dialog will display a list of available printers.
- 3Select a printer (first time only). If this is your first print during the session, the dialog shows a list of all printers configured in the Admin Panel's Printer Service. Each printer is listed with its assigned name (for example, “Front Counter Printer,” “Bar Printer,” “Kitchen Printer 1”). Click the printer you want to use. This selection is saved for the rest of your session, so you will not need to select it again for subsequent prints.
- 4Confirm the print. Click the confirm button in the print dialog. The system sends the receipt data to the Printer Service, which queues the job for your selected printer. The receipt typically prints within 1-2 seconds. A brief success notification confirms that the print job was sent. If the print fails (printer offline, paper out, connection error), an error notification is displayed.
- 5Change printer (if needed). If your current printer is unavailable (out of paper, jammed, offline), open the print dialog and look for a “Change Printer” or “Select Different Printer” option. This returns you to the printer selection list where you can choose a different device. The new selection persists for the rest of the session, replacing the previous one.
Printer selection persistence
The printer selection is stored in your browser session and persists for as long as your session is active. This means:
- --Within a session: Select a printer once, and all subsequent print jobs go to the same printer without re-selection.
- --New session or logout: The selection resets. You will need to select a printer again on your first print.
- --Different browser or device: Printer selection is per-browser, so switching to a different device requires a new selection.
- --Manual override: You can change the selected printer at any time from the print dialog, and the new selection replaces the old one for the rest of the session.