The terminal is the screen where you sell. It fills the whole window, with the shelf on the left and the ticket on the right. This page is for a cashier, and it follows a day at the counter:
- Open Point of Sale → Terminal, and pick the register that you are standing at.
- Press Open session, key the Opening float (DA), and press Open. The float is the cash that you put in the drawer to give change.
- Tap products on the shelf, or scan them, to fill the ticket.
- Press Pay, key what the customer hands over, and press Confirm sale. Give the customer the receipt, then press New sale.
- If another customer is waiting, park the ticket and start a new one.
- If a customer brings goods back, type the ticket’s number into the search box and press Enter.
- At the end of the day, press ⋮, then Close session. Count everything in the drawer, key the figure, and press Close & settle.
A session is the time that a register is open, and the day’s takings belong to it. That page explains the float, the count and the close in full.
When you close, the dialog shows what the drawer should hold. If your count differs, the button first reads Review the shortage or Review the overage. Press it, check your count, and then press Close & settle. You cannot change the difference later.
The terminal can open on another screen first:
- No register to sell on means that the shop has no register yet. A register is where you record a sale. It sets the warehouse that the goods leave and the prices that the customer pays. If your account can create a register, New register takes you to the form (Registers). If it cannot, the screen tells you to ask the owner of your organization.
- Every register is deactivated means that the registers are set up but switched off. Press Open the register list, and reactivate the one that you are standing at. The Cashier role cannot change a register, so a cashier asks the owner of your organization to do it. If the button does not appear, the screen tells you to ask the owner too.
- Finish settling means that a session was counted but its paperwork did not finish. Nothing is lost, and you do not count again. Press Finish settling, and the paperwork continues from where it stopped. This register cannot open a new session until then.
The register list shows whether a session is open on each register. If one is open, pick that register and carry on with it.
The ⋮ button in the top bar holds About the terminal. It explains parked tickets, the opening float, tax-included prices, cash rounding, voids, refunds and the keyboard shortcuts. You read it without leaving the screen.
To fill the ticket, tap a product’s tile, or scan its code into the search box. The search box looks first at a variant’s barcode or code. It then looks at the product’s own barcode, its code and its name. If one product matches, it goes straight on the ticket. If nothing matches, or if several products match, a message says so.
If you scan just after the register opens, the shelf may still be loading. A message tells you to scan again.
Every item in the shop can be scanned after it has a barcode. A simple product holds its barcode on the product page. A product sold in several variants holds one barcode per variant instead, and the terminal cannot sell it yet. The Cashier role cannot change a product, so ask the owner of your organization to add a missing barcode.
If your products are filed into categories, a row of chips above the shelf shows one group at a time. All brings the whole shelf back. The row appears only after at least one product has a category.
When the ticket is ready, press Pay. Beelocity works out what the ticket comes to, and the panel becomes the payment screen, with no window on top. Cash is already selected and holds the exact total. So an exact-change sale is Pay, then Confirm sale.
Read the customer the total on the payment screen. Beelocity works it out when you press Pay, and the sale records exactly that figure, down to the centime. Before that, the ticket shows an estimate.
Key what the customer really hands over. The first digit replaces the total, so you have nothing to clear. The Change row then appears under the total. For example, a ticket of 1,190.00 DA paid with 2,000 DA shows 810.00 DA.
The payment methods are keys on the keypad, and each key shows the name that your shop gave the method. To split a ticket, press a key such as Carte CIB, then key the amount that goes on it. Cash follows with the rest by itself. The ← arrow returns to the ticket exactly as it was.
What is left on the shelf
Each tile shows how many the register’s warehouse still holds, such as 7 left. It says None left, in a warning colour, when nothing is left. You can still tap that tile.
The figure takes off what your open tickets already hold, so it falls as you fill a basket. A product that comes in sizes shows the total of its sizes on its tile.
The register refuses a sale at Confirm sale if its stock cannot cover it, unless the register is set to Sell without stock. So read the figure before you count out the cash.
Goods reserved for something else still count on the tile, such as a customer order or a work order that has been released. Only a register set to Sell without stock sells them. Any other register refuses, and its message names the product and says how many it can sell.
The figure follows each sale, refund and void on this terminal as it happens. A sale on another register can still empty the shelf after your tile was drawn. See When someone else got there first.
On a register set to Sell without stock, the figure stops at zero and does not go below it. The sale still records everything that crossed the counter. To put the difference right later, count the stock and post an inventory adjustment. If you void or refund such a sale, the stock gets back only what it really gave. For example, a shelf of 3 that sold 10 goes back to 3 after a void, and not to 10.
If your account cannot see stock levels, the tiles show no figure. They never show a zero instead.
The price on a tile is the price that the register charges. Beelocity works it out from the register’s own price list. If the register has no list, Beelocity uses your organization’s default list. If that list does not price a product, the product’s own price applies. The product’s own price also applies if the list is inactive.
If the register has no price for a product, its tile is greyed out and reads No price. You see this on the shelf, so you do not find out at payment with the cash already counted.
A tile can be greyed out for other reasons too, and it always says which. You cannot tap a greyed-out tile. The Cashier role cannot change a product, so ask the owner of your organization to make each fix below.
- No unit means that the product has no unit of measure yet. Every ticket line records what was sold and in what, such as pieces, kilos or litres. So a product without a unit cannot be sold. The fix is on the product’s Units tab. Add the unit that the shop sells it in, usually “Each” for goods sold by the piece. The tile then comes back with its price.
- No variants means that the product comes in several variants, such as sizes or colours, and the register can sell none of them. No screen can fix this today, so read Products that come in sizes and colours.
- Bundle means a product that is sold as a set, and a set is not something on a shelf. Sell each of its products on its own, or ask the owner of your organization to turn it into a simple product.
- Not sellable means a service or another product that is not physical. It has no goods to hand across the counter.
A greyed-out tile is faded and has a dashed border, so the goods on sale stand out at a glance.
A deactivated product does not reach the shelf at all.
The shelf draws up to 200 products at a time. If there are more, it says how many it shows out of the total. Type in the search box to narrow the tiles to what the customer is buying, or scan the product. A shop with a large catalogue works by scanning or searching anyway.
Products that come in sizes and colours
You cannot sell a product with variants at the terminal today. The customer buys the XL and not “the shirt”, so the register sells a variant and not the product. It sells a variant only if a unit of measure names that variant. The product’s Units tab names units on the product alone, and no other screen can name one on a variant.
Here is what you see:
- The product’s tile is greyed out and reads No variants, and you cannot tap it.
- If you scan a variant’s barcode, a message says that the variant has no unit of measure. Nothing goes on the ticket.
To sell sizes or colours at a register, ask the owner of your organization to create each one as a simple product (A line’s unit). Each one then has its own tile, price and barcode.
The keypad
Most registers are a touch panel with no keyboard, so the terminal has a keypad that stays under the ticket. It changes the selected line. Tap a line on the ticket to select it, and the line lights up. Then key the figure. To clear the selection, tap the line again.
When you tap a product on the shelf, its line is selected at once. So tap, key 1, key 2, and the line reads twelve. If the product is already on the ticket, each tap adds one more.
The first digit replaces what the line held, so selecting a line and keying 3 means 3, not 13. Use ⌫ to take off the last digit.
Pay is the keypad’s own bottom key, and it says only “Pay”. The total reads above the keypad, so it appears once. On the payment screen, the same key becomes Confirm sale. So you finish every sale at the same spot, under the same finger.
The keys beside the digits say what the digits mean:
- Quantity means how many, or how much for goods sold by weight. The keypad returns to this mode each time you add a product.
- Discount % is the line’s discount, in percent. This key appears only on a register that allows discounts. It stops at the register’s maximum, so a register set to 10% holds you at 10 and says so. Anything above it would be refused at payment, which is the worst moment to find out. The line shows the discount and the money that it takes off.
- Price is greyed out. You cannot change a price at the counter yet, so the register charges the price that it shows.
The bin beside these keys takes the selected line off the ticket, and it does not ask first. Nothing has been charged at this point. If you remove a line by mistake, tap the product again.
The dialogs for opening and closing a session carry the same keypad. There, it types into the box that you tapped, such as Counted cash (DA) or the box for one note or coin.
The payment screen has no boxes at all. Each method in the split is a row above the total. You select a row and type over it, as you do with a ticket line. The cash row reads Tendered, and any other row reads Amount.
The cash row opens selected with the exact total in it, and the first digit replaces that total. So if a customer hands over 2,000 DA for a ticket of 1,190.00 DA, you key 2, 0, 0, 0. The row reads 2,000, and not 11902000. If the register has no cash method, the first method opens in its place.
On the payment screen, the method keys sit above the digits. Each key shows the name that the method has in Treasury. The keys that are pressed form the split, with one row per key. A new row arrives filled with what is still due at that moment. So while the cash row holds the whole total, a new row arrives at zero.
Pressing a key selects its row, and the keypad types over that row. So you key only what Beelocity cannot know: what the customer handed over, or how they want to split the ticket. If you key an amount on a card row, the cash row follows with the rest by itself.
To put the whole ticket on a card, key the whole total on the card row. The cash row falls to zero and stays out of the sale. You can also press the cash key first, which empties the split. Then press the card key, and its row arrives with the whole total.
Press a method’s key again to take it out of the split. Its money moves back to the cash row by itself.
On a narrow screen, the method keys stack, and they keep the size of the digit keys. The keys share their row, so a long name is cut with a … and the row does not scroll. Hover over a key to read the whole name.
What is still due shows in a Remaining row under the total, and the change shows in a Change row. If a row that is not cash goes past the total, an Over row appears. Confirm sale stays grey until the split covers the total exactly.
When the customer pays in cash, a Stamp duty row appears under the total, and the cash row includes it. If a card pays part of the ticket, the stamp duty is counted on the cash part only. The terminal then asks Beelocity for the new figure (Stamp duty).
The terminal also refuses a cash amount if the change would reach the largest note (2,000 DA). Change of that size means that one of the notes could simply stay with the customer. So a mistyped amount stops at the keypad with a message, such as 52,222 keyed for a ticket of 2,936 DA. The terminal does not show a change figure that would empty the drawer.
Sometimes the amount is real, such as 5,000 DA in mixed notes for a ticket of 2,900 DA. For that case, the message carries a Record it anyway button. It accepts the figure and stops asking for the rest of that payment. So you can always record what really happened.
The register takes payment that settles on the spot, such as cash and cards. The terminal does not offer cheques, bills of exchange or other paper that Treasury follows to the bank. They carry a number and a due date, and the money arrives only when the paper clears. A counter sale cannot record any of that. If a customer wants to pay by cheque, ask the owner of your organization to handle it through Sales and Treasury. There, an invoice records the sale and Treasury follows the cheque to the bank.
Card money goes to the bank and not into the drawer. So the terminal offers a card, or any other method that is not cash, only if the payment method names a bank account in Treasury. Beelocity books its takings there when the session closes. The owner of your organization gives each card method its bank account before the first sale.
If a cash total ends in centimes, such as 99.99 DA, a coins icon appears beside the word Payment. Press it to round the total to the nearest whole dinar, because no coin exists for the centimes. Press it again to undo the rounding. Beelocity records the rounding on the ticket and reports it on the session’s Z-report. So the drawer does not end the day over or short with nothing to explain it. The icon appears only while the split has a cash row, because a card charges the exact amount.
A discount can take a line down to nothing, as with a giveaway or a sample. The ticket can then be worth zero, and it takes no payment at all. The goods still leave stock, and the ticket still records who gave what away. A register allows a discount only up to the Maximum discount set on it.
The lines on the ticket
Each line shows the product, how many, what one of them costs (2 × 119.00 DA), and what the
line comes to. If the line has a discount, it also shows the discount and what it takes off. Goods
sold by weight read in their own unit: 0.250 kg × 1,200.00 DA/kg.
You do not edit the line itself. Select it and use the keypad, as described above.
A sale is anonymous by default, and the customer button reads Walk-in customer. If a customer wants the purchase in their name, tap that button and pick them. The list narrows as you type. Their tickets get their own invoice when the session closes.
The tax line above the total reads Tax included or Tax added, as the register is set up. So it always describes the amount that you are about to collect.
Every amount at the terminal names its currency: the tiles, the ticket, the total and the printed receipt. So you read 125.00 DA, and not a bare 125.00. The rest of Beelocity leaves the code off your own currency. That suits a screen full of figures, but not a price quoted across a counter.
Beelocity works out each line total to the centime and no further. This holds even when a price and a tax rate multiply out to a longer number. So the screen never shows a fraction of a centime.
Selling by weight
The unit of measure decides whether a product sells by the piece or by the fraction. A unit with 0 decimals, such as “Each”, steps in whole units. A unit that allows decimals sells fractions at exactly that precision, such as kilograms at 3, litres or metres.
Tapping a weight product’s tile does not add one kilo. The line lands on the ticket reading Weight?, already selected, and the keypad is ready. Put the goods on the scale and key what it reads. For 250 grams, key ., 2, 5, 0. Beelocity has no link to the scale, so you always key the weight yourself.
The line then reads as a weight: 0.250 kg × 1,200.00 DA/kg. So does the receipt that the customer
keeps, and so does the refund screen if some of it comes back. The keypad accepts the decimal point
only on lines whose unit allows it. It accepts no more decimals than the unit carries. If you tap
the tile again, the line is selected and nothing is added.
If you forget to key a weight, Pay stops and names the line. The terminal never charges for a kilo that nobody weighed, and it never drops the line without saying so.
Several customers at once
A counter is not a queue. A customer remembers the bread they forgot and walks back for it, while the next one is already waiting with two items and exact change.
The terminal holds up to six tickets at a time, shown as tabs along the top bar. Tap +, or press Ctrl+Enter or F2, to park what is on the screen and start a new ticket for the next customer. Tap a tab to come back to it.
Ctrl+Enter and F2 do the same thing. F2 is the shorter reach. But many compact and gaming keyboards keep their top row on volume and brightness instead of F1–F12. On those keyboards, no function key reaches the terminal. So Ctrl+Enter is the one to teach.
Ctrl+1 to Ctrl+6 jump straight to a ticket, so your hand stays on the keyboard. They are safe in the middle of a scan, because a barcode scanner types plain digits. Only the combinations with Ctrl are shortcuts. The left and right arrow keys walk the tabs when the keyboard is on one of them.
The bar also holds the arrow back to the rest of Beelocity and the register’s name. Behind the ⋮ button are the things that you reach for less often:
- About the terminal says what this screen does.
- Recall ticket points you to the search box, where you type the ticket’s number.
- Move cash records cash that enters or leaves the drawer outside a sale.
- Switch register takes you back to the register list.
- Close session starts the close.
Closing a session discards every ticket still parked on it. That is why Close session does not sit beside the buttons that you press all day. The browser tab names the register and the session, so you can tell it apart from the taskbar.
Each ticket tab shows what is waiting in it: how many items and what they come to. If you attach a customer, the tab takes their name, which is usually the fastest way to find the right basket. When a ticket is paid for, its tab closes and the next ticket takes the counter. At least one ticket is always open, ready for the next tap.
Only one browser tab can run the terminal at a time. If you open the terminal in a second tab, the register moves there with its parked tickets. The first tab stops and says so, and its Use the terminal here button takes the register back. Parked tickets always follow the tab that is running. A return that is open does not follow, so look its ticket up again. You do not need a second tab to serve two customers, because the ticket tabs do that.
A parked ticket is a basket on the counter, not a reservation. Nothing is charged, nothing goes in the ticket list, and no stock is held back. If another ticket sells the last unit first, the parked one finds out when you take payment for it, as a second cashier would.
Parked tickets belong to the register that rang them up and to the session open on it:
- They survive a refresh of the terminal, so a reload costs nobody their basket. A return does not survive one, so look its ticket up again.
- They do not follow a change of register, because prices belong to the register that quoted them. Switch register discards every ticket open on this register. So the terminal first says how many hold goods and asks Leave this register?. Press Switch anyway to go on. A return is not counted, so the terminal drops it without asking.
- They do not survive the session’s close. The closing dialog says how many are still open. So you can take payment for them or discard them on purpose. The count leaves out a return.
To discard a ticket, tap the × on its tab. A ticket with goods on it asks first, and Discard ticket confirms it. A return with quantities picked asks in the same way, and Discard return confirms it. An empty ticket just goes. Nothing has been charged either way. The last open ticket has no ×, so empty it with the bin.
Returns at the terminal
A return works the way a sale does, with the same panel, the same selectable lines and the same
keypad. Type the ticket’s whole number as printed, such as POS-2026-000123, into the same search
box that the scanner uses. Then press Enter. The ticket opens on a tab of its own, in its own
colour, so you do not mistake a return for a sale. If the queue needs serving first, it parks there
like any other ticket. Back to the sale takes you back to the sale tickets.
A refund ticket or a voided ticket does not open, and a message says why.
The refund tab lists what the ticket sold and how much of each line is still returnable. Units already returned are not on offer. Tap a line and key the quantity coming back. A weight line keys back at the gram, exactly as it sold.
The Pay out figure follows. Beelocity works it out to the centime, and the terminal never estimates it. So the figure on the screen is the figure that you pay. If you key more than is left, the line stops at what is left and a message says so.
Refund opens the payout screen. It is the twin of the payment screen, with two differences on purpose. There is no change, because nothing comes back across the counter when money goes out. Every row is an exact amount, so the split must cover the payout exactly before Confirm refund lights up.
The method keys offer cash and the methods that paid the original ticket, and nothing else. Those are the only ways that the register pays money out. A split works as it does on a sale: put part on the card, and cash follows with the rest. If the return covers the whole ticket, the payout also gives back the ticket’s cash rounding.
Void ticket sits on the refund tab, as its own marked button with a confirmation. The terminal offers it only for tickets sold in the current session. A void cancels the whole sale, while a refund works on a ticket from any earlier day. The goods go back into stock, and the ticket’s number stays on record. A ticket with returns on it cannot be voided, so refund what is left instead.
The Cashier role holds both rights by default, and each is a right of its own. So the owner of your organization can take either one away. If your account cannot refund, the refund tab says so and tells you to ask the owner to take the return. The Refund key then stays grey. If your account cannot void, Void ticket does not appear.
The receipt
When you press Confirm sale, the receipt appears on the screen, ready to hand over. It shows the shop’s name, the ticket number, the register’s name and the time of the sale, then each line in its own unit.
Beelocity writes it in the register’s Receipt language (Registers). It is the customer’s paper, and not the cashier’s screen. So changing the language of the terminal changes nothing that the customer holds.
A discounted line says so underneath, with the percentage and the money that it took off. Above the tax line, Total before discount and Total discount show what came off the ticket. So a bargained price never reads as a wrong charge. Each payment prints what was handed over, and any change sits on its own line under that payment. A sale paid in cash also prints its Stamp duty and the Net to pay under the total.
Print sends the receipt to the printer, and New sale clears the screen for the next customer. The cursor then returns to the search box, so the next customer starts with a scan.
When someone else got there first
The terminal is rarely the only screen at work in a shop. Another register sells the last loaf. A colleague closes the session on another screen, or refunds the same ticket at the next counter. If that happens between the moment you start and the moment you confirm, the register refuses and says what changed. It says so in your language, with the product, the amounts and the session number. It never shows a technical code.
- The session was closed on another screen. The message says that the session is no longer open and that nothing was recorded. Open a new session and enter the sale again.
- The drawer holds less than the payout. Move cash refuses a payout above what the drawer holds, and the message gives both amounts. Key an amount that the drawer can cover.
- A line was already returned. A return that asks for more than is left names the product and how much can still come back. The refund screen stops at that figure.
- The shelf ran out. The sale names the product and how much this register can still sell. Lower the quantity, or remove the line.
- A price changed. If a product’s price changed after it went on the ticket, Pay names the product. Remove the line and add the product again.
When the register refuses, it charges nothing, pays nothing out and takes nothing from stock. So do what the message says, and then try again.
If the terminal loses the connection
The terminal needs a connection to sell. If the network drops while you confirm a sale, the terminal says so. It does not say that the sale failed, because it cannot know. Press Confirm sale again. The register recognizes the retry and does not record the sale twice. So pressing again cannot charge a customer twice or take the same goods out of stock twice.
The register recognizes the retry only while the ticket stays the same. If you change a line or the customer, the next confirmation is a new sale. So if it keeps failing, look for the sale on the Tickets page before you change the ticket or sell again.
The retry belongs to the ticket that you entered the sale on, and not to the register. So you can leave a sale in that state, serve the next customer on another ticket, and come back to it. The second customer pays for their own basket. Confirm sale on the first ticket still gives the one sale that it always was.
The other buttons answer a dropped connection in their own way:
- Pay has charged nothing. Check the connection and press Pay again.
- Confirm refund is safe to press again, because the register does not pay the same refund twice.
- Move cash asks you to press the same button again and change nothing. The register does not record the same movement twice.
- Close & settle is safe to press again, or Finish settling if the terminal shows it. Beelocity records the count once, and the paperwork continues from where it stopped.
- Void ticket may or may not have gone through. Look the ticket up again, and the terminal says if it is voided.
- Open may or may not have opened the session. Press Cancel and refresh the page. If the register shows an open session, carry on with it. If it does not, open the session again.
While payment is on the screen, the rest of the terminal goes quiet. The shelf and the ticket tabs fade and stop responding, and the keyboard shortcuts stop working. This matters most with a barcode scanner, which types like a keyboard. A stray scan during payment lands nowhere, and not in the product search or on another customer’s basket.
Only the ← arrow leaves the payment screen, and it keeps the basket. So a stray tap cannot discard what you entered. The closing dialog keeps your typing inside it in the same way. The refund tab quiets the shelf as payment does.
Every button that writes something disables itself while it works, such as opening and closing a session, confirming a sale, refunding and voiding. So a nervous double-tap cannot send the same instruction twice.
If someone closes your session on another screen in the middle of a sale, the terminal says so and tells you that nothing was charged. Confirm sale does not simply do nothing with the customer waiting. If the terminal cannot reach Beelocity at all, it says that too. It does not claim that you have no registers or no open session only because a request failed.