🧾 Section 7
Selling with POS
The quickest way to bill walk-in customers at the counter.
On this page
- Open the cash register
- The POS screen
- Make a sale
- Taking cash: the cash payment pad
- Receipts and receipt formats
- Cancel a sale
- Redeeming reward points
- Customer display screen
- Keyboard shortcuts
- Selling when the internet is down
- Close the register
- Split a bill
- A new customer at the till
- Faster checkout: quantity keys, PLU codes, age checks
- Scan & go: customers scan with their phone
- Card machines & QR payments
- Card terminals: send the amount from the till
- Payment settlements: match the card machine's report
- Counter controls: PIN, cash drops, blind close
- Selling loose items by weight (weighing scale)
- One-time setup
Open the cash register
The first time you open the POS each shift, ZaleBee asks for the location and the cash in hand to open a register. Every sale until you close it is counted in this register.
The POS screen
Scan or search products. The cart lists each line with large – / + quantity buttons. Clear cart empties it.
Every tile shows the product's price and stock. Tap a tile to add it; tap again to add one more. Filter by Category or Brand. On a tablet the tiles show by default; the Products button hides or shows them.
The customer, discount, order tax, shipping and packing charge, the Total payable, and the payment buttons. They always stay on screen.
Location, date, Price check, Sales return, the register, calculator, full screen and, when switched on, the customer display.
Make a sale
- Pick the customer, or leave Walk-in customer. Use + to add a new customer without leaving the screen.
- Scan a barcode, search by name or SKU, or tap a product tile.
- Change a quantity with – / + if needed. Add an order discount, order tax, shipping or packing charge with the pencil icons on the right.
- Choose how to finish:
- Cash: opens the cash payment pad, which works out the change.
- Card: enter the card details and finalise.
- Multiple Pay: split across methods, or record a partial payment.
- Credit Sale: the full amount stays due on the customer's account.
- Credit Note: spend a credit receipt from an earlier return.
- Draft, Quotation or Suspend: save without finalising.
- With Print receipt ticked (under Total payable), the receipt opens for printing as soon as the sale is saved. See Receipts.
A walk-in customer buys:
| Item | Qty | Price | Total |
|---|---|---|---|
| Basmati Rice 1 kg | 2 | 100 | 200 |
| Sunflower Oil 1 L | 1 | 180 | 180 |
| Biscuits | 4 | 30 | 120 |
| Total payable | ₹500 |
They pay ₹300 in cash and ₹200 by UPI. Click Multiple pay, enter 300 as Cash, click Add payment row, enter 200 as UPI, and Finalise. The invoice shows as Paid and both amounts are recorded in the register.
If the customer had paid only ₹300 and promised the rest later, the invoice would be Partial, with ₹200 due on their account.
Taking cash: the cash payment pad
Tap Cash (or press Shift + E). A pad opens with the total to pay and the cash received, filled in with the exact amount.
- Tap what the customer handed over: Exact, or a quick amount like OMR 5.000 or OMR 10.000. Or type it on the large keypad.
- Read the Change due and give it back. If the cash is too little, the pad shows Short by in red and won't let you complete.
- Tap Complete sale (or press Enter).
The customer hands over a OMR 5 note. Tap OMR 5.000: the pad shows Change due OMR 3.005. Tap Complete sale. The sale is recorded as a cash payment of OMR 1.995, with "Cash received OMR 5.000, change OMR 3.005" saved on the payment.
If your business counts cash denominations at the POS, Cash opens the denomination window instead, as before.
Receipts and receipt formats
The Print receipt switch under Total payable decides whether a receipt opens after Cash, Card, Credit Sale and Multiple Pay. Each till remembers its own setting. You can always reprint from Recent Transactions › Print.
The format comes from the Design of the location's invoice layout (Settings › Invoice Settings › Invoice Layouts):
| Design | Prints |
|---|---|
| Slim | 80 mm thermal receipt |
| Slim 2 | 58 mm thermal receipt |
| English-Arabic | 80 mm thermal receipt with every label in English and Arabic |
| Classic, Elegant, Detailed, Columnize taxes | A4 invoice |
POS sales use the location's POS invoice layout; sales from Add Sale use its sale invoice layout. So a supermarket can print thermal receipts at the till and A4 invoices for business customers.
In the print window, choose your receipt printer and set margins to None. The receipt shows the logo, business and branch details, VAT number, items, VAT breakdown, payments (with the cash received and change) and the footer text from the layout.
Cancel a sale
Tap Cancel sale (or press Shift + C) and confirm. The cart, customer and charges are cleared. If your business requires a manager's approval to remove items, cancelling asks for it too.
Redeeming reward points
With reward points switched on (Business Settings › Reward points), choosing a customer who has points shows a points row in the summary with their available points.
- Type how many points to redeem. Their value comes off the Total payable straight away.
- You can't redeem more than the customer has, more than your business's maximum per sale, or more than the sale is worth.
- Finish the sale as usual. The points come off the customer's balance when the sale is final.
Each point is worth OMR 0.010. Al Noor Trading has 500 points and buys a OMR 1.995 cable. The cashier redeems 100 points: OMR 1.000 comes off, and they pay OMR 0.995. Al Noor now has 400 points.
Customer display screen
A second screen facing the customer shows each item as it's added, the item count, discount, tax and a large Total. With an empty cart it shows a welcome message.
- In Business Settings › POS, tick Customer display screen and, if you like, type a Display screen heading (for example today's offers).
- On the POS, tap the 📺 customer display button in the top bar. A new window opens: drag it to the customer-facing monitor and make it full screen.
- Sell as usual. The display updates live.
The display must be opened from the same computer and browser as the POS it follows.
Keyboard shortcuts
Defaults are below. You can change them under Business Settings › POS. Hover over a button to see its shortcut. Shift + letter shortcuts don't fire while you're typing in a field (so capitals still type), except in an empty product search box.
| Keys | Action |
|---|---|
| Shift + E | Express checkout (cash) |
| Shift + P | Pay & checkout (open payment window) |
| Shift + D | Save as draft |
| Shift + C | Cancel the current sale |
| Shift + I | Edit discount |
| Shift + T | Edit order tax |
| Shift + R | Add a payment row |
| Shift + F | Finalise payment |
| F2 | Edit quantity of the last added product |
| F4 | Add a new product |
| (set your own) | Weighing scale: open the scale window |
Shift + R and Shift + F work inside the Multiple Pay window; the other shortcuts are paused while a window is open.
Selling when the internet is down
The POS keeps working without a connection. The pill at the top of the screen shows Online, or Offline - selling from this device in red.
- Products: the till keeps a copy of the location's products, refreshed every few minutes. When it is offline, search, barcode scanning and the product tiles use that copy.
- Sales: Cash and Card sales still go through. The sale is saved on the device, a receipt marked OFF-… prints, and the cart clears for the next customer. Credit sales, Multiple Pay, drafts and quotations need a connection.
- Sending: when the connection comes back, the saved sales are sent by themselves, oldest first. They keep the time they were rung up, and each gets its normal invoice number. A sale is never recorded twice, even if it is sent again.
The supermarket's internet drops for 40 minutes. The pill turns red, but the cashier keeps scanning and taking cash. 23 sales are saved on the till, each with an OFF- receipt. At 6:40 the line comes back: the pill shows Sending offline sales… and then Online. The 23 sales are in All Sales at the times they were made, and stock and the cash register are up to date.
Click the pill to see sales still on the device. A sale the server refuses (for example, not enough stock while selling out of stock is switched off) shows Needs attention with the reason. Fix it (e.g. record the missing purchase) and press Sync now, or Discard it. The register can't be closed while sales are still on the device. Sales are kept in that browser, so don't clear its data before they are sent.
To reopen the POS screen while offline, it must have been opened on that device once while online. A new customer can't be looked up offline, so offline sales go to the walk-in customer or the customer already chosen. Offline card sales keep only the last 4 digits of the card number.
Close the register
At the end of the shift, use Close register on the POS screen. Count the cash, enter the totals per payment method, add a note and close. The Register report keeps every closing for review.
If the counted cash doesn't match the expected cash, note the reason when closing. It helps the owner reconcile later.
| Cash in hand at opening | ₹2,000 |
| Cash sales during the day | ₹15,500 |
| Cash refund for a return | – ₹300 |
| Expected cash in drawer | ₹17,200 |
Ravi counts ₹17,150. He enters it, writes "₹50 short – change given wrongly" in the note, and closes. The owner sees the ₹50 difference in the Register report.
The Cash box starts at the cash the drawer should hold: opening cash plus cash taken, less cash refunds, cash expenses and cash drops.
Split a bill
Press Split bill on the POS:
- By items: set how much of each item is paid now. The rest is parked as a suspended sale (with a note, e.g. "Table 4 - Ahmed"), and the cart keeps only what is paid now. Take payment, then open Suspended sales to bring back the rest for the next person. It works from any till.
- Equally: enter how many people. Multiple Pay opens with one equal row per person, and each picks how they pay. It's one invoice with several payments. Any rounding goes on the last person.
The bill is ₹900. Split Equally between 3: Multiple Pay shows three rows of ₹300. One pays cash, one by card, one by UPI. Or split By items: Ahmed pays now for his burger and juice, and the other two plates are parked to pay a moment later.
A new customer at the till
Type the customer's mobile number or name in the POS Customer box. If no one is found, press Add as new customer. The Add contact form opens with what you typed: a number goes in Mobile, a name in First / Last name. Fill in the rest and press Save. The new customer is picked for the sale.
With the customer display open, the customer sees Please check your details with the name, mobile, email and tax number as you type them, so they can spot a wrong digit before you save. During the sale the display shows who the sale is for (unless it's the walk-in customer), the customer's mobile and alternate number, each item's offer with the price before it, the bill as on the POS (subtotal, offers, discount, tax, shipping, packing, points redeemed) and You save. A change of customer shows at once. Because the display faces the public, phone numbers are partly hidden by default (+968 99** **05). Change this under Business Settings › Display Screen › Customer's phone on the display: Partly hidden, Full number or Don't show. The same applies to the mobile in Please check your details.
Opening the POS from anywhere: Quick Add (top bar) › POS, for users who can sell from the POS.
Faster checkout: quantity keys, PLU codes, age checks
- Quantity first: type the quantity and * (or x) before scanning or searching. For example, 6* then scan a can: six go in. A small badge next to the search box shows the pending quantity. Decimals work for loose items, e.g. 1.25*.
- PLU / short codes: give fruit, vegetables and other loose items a short code as their SKU (e.g. 4011 for bananas). Type the code and press Enter, and the item whose code is exactly that goes straight into the cart, even when other codes start the same way. A barcode scanner works the same way, because it sends Enter after the code. If only one product matches, Enter adds it too.
- Age-restricted products: on the product form, set Minimum age to buy (e.g. 18 for tobacco or alcohol). The POS asks the cashier to confirm the customer's age before adding it. It asks once per sale: after confirming 18+, other 18+ items don't ask again. If the cashier presses Cancel, the item isn't added.
Type 6*, scan the water: 6 bottles. Type 4011 and press Enter: bananas. Scan cigarettes: "Check the customer is at least 18", then OK. Scan beer (18+): no question this time.
Scan & go: customers scan with their phone
Turn on Customers scan as they shop and choose the shop. Settings then shows a QR code: print it and put it at the entrance.
- The customer scans the poster's QR code. The scan & go page opens on their phone, with nothing to install.
- They press Scan a barcode and point the camera at each item they pick. On phones whose browser can't scan, they type the number under the barcode or part of the name. The page shows the basket, offers and the running total.
- At the till they press Pay at the till. The phone shows a code like SG-482913 with a QR code.
- The cashier scans that QR code with the POS barcode scanner, or types the code into the product search and presses Enter. The basket loads into the POS cart, and the cashier takes payment as usual. Age checks still pop up for age-restricted items.
The POS prices the sale again with the till's own prices, so the phone total is only a guide. Each code works once and lasts 6 hours. Items the shop no longer sells are left out, and the cashier is told. Camera scanning works in Chrome on Android. The page needs the site on https for the camera.
Card machines & QR payments
| QR payments at the till | Adds a QR pay button to the POS. It shows a QR code for the bill amount. For UPI, enter your UPI ID (e.g. shopname@okaxis), and any UPI app (GPay, PhonePe, Paytm, bank apps) opens with the amount filled in. In other countries choose Payment link and enter your provider's link with {amount} where the amount goes. |
| Save QR payments as | One of the custom payment methods. Rename it first under Business Settings › Custom labels, e.g. "UPI", so reports show it by that name. |
| Require the payment reference | The cashier must type the UTR / reference from the customer's app or your bank alert before pressing Payment received. |
| Card machine provider | Network International, Thawani, Paymob, Razorpay POS, or any standalone machine. The cashier keys the amount on the machine as usual, then saves the sale with Card. |
| Require the card machine reference | Card payments can't be saved without the approval code or RRN printed on the machine slip, both on the Card button and in Multiple Pay. This is what lets the settlement match each payment. |
At the till: press QR pay. If the customer display is open (the screen icon on the POS top bar, on a second screen facing the customer), the QR code and amount show there full-screen, and go back to the cart when the QR window closes. Without one, turn the screen to the customer. Once the money has arrived, enter the reference and press Payment received. The sale is saved and the receipt prints as usual.
With a standalone machine the cashier keys the amount on it. To have ZaleBee send the amount itself, connect your provider under Card terminals.
Card terminals: send the amount from the till
Connect your card provider with the merchant API details it gave you. They're stored encrypted, and a saved secret is never shown again; leave it blank when editing to keep it. Start in Test mode with the provider's test keys, then switch to Live. A connection can be for all locations or just one.
| Razorpay POS | The amount appears on the card machine itself (app key, username and the machine's device ID). |
| Network International (N-Genius), Thawani, Paymob | The provider's secure payment page is shown as a QR code on the till and on the customer display. The customer scans it and pays with their card or phone. |
- At the POS press Card, then Send to card terminal.
- The till waits while the customer pays. Cancel stops it.
- Once the provider approves it, the sale saves by itself with the approval code / RRN and the card's last 4 digits. If it's declined, the reason shows and you can try again or take another method.
Every attempt is listed on the Card terminals page with its status and the invoice it went to. An approved payment can only be used once and only for its amount: if the bill changes after the card was charged, cancel and send the new amount.
Payment settlements: match the card machine's report
Download the settlement report (CSV) from your card machine or UPI provider's merchant portal. Choose Card or QR payments and the provider, then import the file. The columns are recognised by their headings (date, amount, RRN / approval code / UTR, fee/MDR). Commas or semicolons and either decimal style work. ZaleBee matches each row:
- by reference: the RRN, approval code or UTR saved with the payment;
- otherwise by amount on the same day, when only one payment fits.
The result shows what matched, the fees charged, In the file, not found at the till (e.g. a sale saved as cash by mistake), and Taken at the till, not in the file (not settled yet, or a failed payment). Matched payments aren't matched again in a later import. Undo import puts them back. Fees aren't posted to the books: record them as an expense (e.g. "Card charges").
The Razorpay POS report has 3 rows: ₹100 (RRN 000A1B2C3), ₹75 and ₹33. The ₹100 matches the sale saved with approval code A1B2C3. The ₹75 matches the only ₹75 card sale that day. The ₹33 is listed as not found: the cashier had saved it as cash. Fees ₹3.74 → add an expense.
Counter controls: PIN, cash drops, blind close
For tills shared by several cashiers:
| Cashiers need a PIN | Opening a register asks for the cashier's register PIN (4–6 digits). They choose it the first time. |
| Lock the POS | The lock button on the POS top bar hides the screen until the cashier types their PIN. Set Lock the POS after idle minutes to lock it by itself, e.g. after 5 minutes. A cashier without a PIN sets one on the lock screen with their account password. Reloading the page doesn't get round the lock. |
| Cash drop | The cash drop button (arrow) records cash taken from the drawer to the safe. It lowers what the drawer should hold at closing. Money doesn't move in the books, because the cash is still the business's. |
| Cash drawer limit | When the drawer should hold more than this, a yellow banner on the POS asks for a cash drop. |
| Blind close | The close screen and Register details hide the totals. The cashier counts and enters what they counted. The expected cash is saved with the register, and the manager sees Cash counted, Cash expected and the Difference when opening it from the Register report. |
Shift handover: when closing, choose Hand the drawer over to and pick the next cashier. The cash counted stays in the drawer. When that cashier opens their register, ZaleBee tells them who handed it over and how much. They count it and enter what they counted as the cash in hand. Both registers record the handover, and any difference shows in the new register's details.
The drawer limit is ₹10,000. At 7 pm the banner shows the drawer holds ₹12,400. The supervisor presses Cash drop and takes ₹10,000 to the safe. At closing, with blind close on, the cashier counts ₹4,180 without seeing a target. The manager later sees ₹4,200 expected: –₹20.
Selling loose items by weight (weighing scale)
For loose items like vegetables, sweets or dry fruits, weigh the item on a label-printing weighing scale. The scale prints a barcode sticker containing the product code and the weight. At the POS you scan the sticker, and ZaleBee adds the right product with the weighed quantity. The price comes from the product's price per kg in ZaleBee.
One-time setup
- Set up the product with unit kg and its price per kg. Give it a short numeric SKU, e.g. 123.
- On the weighing scale, add the same item with the same item code (123), and set the scale to print weight barcodes (not price barcodes). Your scale supplier can help with this.
- Look at a sticker from your scale, or its manual, to see how its barcode is built. Most scales print a 13-digit barcode like the one below.
- In ZaleBee, go to Business Settings › POS, tick Enable Weighing Scale, and fill in Weighing Scale barcode Setting to match your scale.
The customer buys tomatoes. Tomatoes have SKU 123 and cost ₹40 per kg. The scale weighs 1.250 kg and prints this barcode:
So in ZaleBee's settings you enter:
| Setting | Value | Why |
|---|---|---|
| Prefix | 21 | Every weight sticker from this scale starts with 21 |
| Product sku length | 5 | 00123 is 5 digits. Leading zeros are ignored, so it matches SKU 123 |
| Quantity integer part length | 2 | 01 = 1 whole kg |
| Quantity fractional part length | 3 | 250 = 0.250 kg |
At the POS, click the ⚖ weighing scale button next to the product search, scan the sticker into the box and click Submit. ZaleBee adds Tomatoes × 1.250 kg = ₹50.00 to the bill. The last digit (check digit) is ignored. Scanning a second sticker for the same product adds its weight to the same line.
If ZaleBee says the prefix did not match, the sticker doesn't start with the prefix you entered. If it says the SKU did not match, the item code on the scale differs from the product's SKU in ZaleBee. Barcodes that contain the price instead of the weight are not supported.
Not using ZaleBee yet?
Try everything in this guide free for 30 days.