SSABSUSAcademy
POS

POS System in SABSUS

Use the real SABSUS POS entry screen at /logkass, enter the employee PIN, then work in the cashier terminal for shifts, orders, products, customers, payments, receipts, and order statuses.

POS System in SABSUS visual guide
DifficultyAdvanced
Time20 minutes
ModeInteractive walkthrough
Fields66 explained

Voice explanation

Audio source: pos-system-en.mp3

Listen to a short explanation of what this section is for, what to fill in, and why the data matters.

Step-by-step instructions

A cashier or manager can open Login to POS, enter the correct employee PIN, reach the Kassa workspace, start the correct work and cash shift, find or create orders, add products and customer context, accept payment, print receipts, and keep every order traceable to the employee, establishment, cash register, and shift.

Use the interactive screenshot walkthrough first. Switch steps with the step dots, then read what to fill and why it matters.

Fields on this screen

Open Login to POS

How to fill: Open https://sabsus.flutterflow.app/logkass. This is the real cashier entry screen, not the manager order editor.

Why: The PIN screen selects the employee and prevents the terminal from starting under the wrong person.

Enter employee PIN

How to fill: Enter the employee PIN on the Logkass PIN block. After a valid PIN, SABSUS opens the Kassa workspace.

Why: The order, shift, payments, and protected actions must belong to the correct employee.

Initial loading

How to fill: After PIN login, wait until products, categories, payment methods, taxes, employees, accounts, and realtime orders are loaded.

Why: Starting work before data loads can make lists look empty or incomplete.

Employee work shift modal

How to fill: If SABSUS says the employee has no active shift, click Start shift before taking orders.

Why: The terminal records staff time separately from the cash register shift.

PIN lock

How to fill: Click the lock icon, enter the four-digit PIN on the keypad, use clear/backspace if needed, and confirm.

Why: PIN protects quick employee switching and protected POS actions while preserving accountability.

Cash shift indicator

How to fill: Click the green/red shift indicator in the top bar to open Cash shift management.

Why: Green means a cash register shift is open; red means it must be opened before cash work is reliable.

Open cash shift

How to fill: Enter the starting cash amount in Cash at opening and click Open shift.

Why: This amount becomes the baseline for closing reconciliation.

Close cash shift

How to fill: Enter the actual drawer amount, compare expected balance and cash difference, add a comment if there is a discrepancy, then click Close shift.

Why: Closing without checking differences hides cash errors.

Cash calculator

How to fill: Use coins and bills denomination fields when counting a physical drawer.

Why: Counting by denomination reduces manual arithmetic mistakes.

Employee responsible

How to fill: Check the Cash responsible block before closing.

Why: The person opening or closing the shift should be traceable.

Top employee card

How to fill: Click the employee card to open the profile, or use refresh to return through Logkass and reload streams.

Why: The cashier must know which employee is currently operating the terminal.

List/tile toggle

How to fill: Click the view icon to switch between order list and tile mode; double click or long press changes tile column count.

Why: Busy counters often need tiles, while managers often need table-style order details.

Main tabs

How to fill: Use Active, Service Calendar, Bookings, Table map, Archive, Available Slots, and Routes for the correct workspace.

Why: Each tab changes the operational context instead of only filtering text.

Status filters

How to fill: Use Unpaid, In Progress, Done, Canceled, or All Statuses before searching manually.

Why: Status filters prevent missed unpaid orders and reduce noise.

Order type filters

How to fill: Use All, Dine-in, Pickup, Delivery, and Catering to focus the list.

Why: Order type controls required fields such as table, address, courier, or event details.

Date filter

How to fill: Open the calendar icon and choose a period when reviewing old orders or deliveries.

Why: Orders are often found by delivery date or creation date.

Order table headers

How to fill: Click Type and channel, Date, Delivery date, Status, or Amount and payment to sort.

Why: Sorting gives the fastest way to find urgent, unpaid, late, or high-value orders.

Open existing order

How to fill: Click an order row or tile to open Orderkassa / Sale.

Why: The modal keeps the cashier in the POS flow while editing the order.

New order

How to fill: Click New order only after the correct shift and employee are active.

Why: New orders inherit employee, establishment, cash register, cash shift, currency, and POS integration.

Choose order type

How to fill: If the type dialog opens, choose Dine-in, Pickup, Delivery, or Catering. If fast-food mode is enabled, SABSUS creates Dine-in directly.

Why: The order type decides which products and fields are available.

Dine-in or table

How to fill: For dine-in, select table, hall, guest count, or reservation data when the business uses tables.

Why: Table context keeps service, seating, and payment tied to the right guests.

Pickup

How to fill: Use Pickup when the customer collects the order without delivery routing.

Why: Pickup does not need courier routing but still needs customer and ready time when applicable.

Delivery

How to fill: Use Delivery when address, route, courier, delivery status, or delivery fee are required.

Why: Delivery orders have extra scheduling, address, and accountability fields.

Catering

How to fill: Use Catering for event-style orders with special date, amount, or logistics requirements.

Why: Catering should not be mixed into normal dine-in or pickup reporting.

Catalog

How to fill: Open Catalog, choose a category, search by product name/code, or scan a barcode/QR code.

Why: Product selection is the source for basket, totals, tax, and production.

Scanner

How to fill: Click Scanner and point the camera at a barcode or QR code; the code can match product ID, QR code, or excise code.

Why: Scanning is faster and less error-prone than manual search.

Services

How to fill: Open Services for appointment/service items, choose employee, date, duration, and available slot, then add to order.

Why: Services need scheduling data, not only product quantity.

Customer

How to fill: Open Customer, search, scan a card/QR, select an existing profile, or create a new client.

Why: Client data drives discounts, bonuses, deposit, CRM history, and support.

Address

How to fill: Open Address for delivery or customer address details.

Why: Delivery cost, route, tax location, and courier assignment depend on address.

Promotions

How to fill: Open Promotions, enter promo code when needed, select an eligible promotion, and click Apply.

Why: Promotions must be visible in history and totals.

Basket

How to fill: Review item quantity, modifiers, units, options, and delete buttons before payment.

Why: Wrong basket lines create wrong totals, production tickets, and stock movement.

Production comment

How to fill: Add a production comment only for kitchen/workshop instructions.

Why: Production comments should not contain private customer support notes.

Customer comment

How to fill: Use customer comment for customer-facing instructions or customer-provided notes.

Why: This keeps customer instructions separate from internal production notes.

Totals

How to fill: Review delivery cost, discount, amount without discount, subtotal, tax, tips, commission, paid amount, and total amount.

Why: The cashier should catch changes before payment is accepted.

Pay

How to fill: Click Pay, choose method, bonus use, amount, tips, tax, fee, and comment, then confirm.

Why: Payments should explain exactly how the order was settled.

Payment information

How to fill: Click an existing payment row to inspect payment method, paid state, amount, order total, tips, tax, fee, and comment.

Why: Use this before refunding or explaining payment differences.

Refund

How to fill: Use Refund payment only after confirming the exact payment row and the refund reason.

Why: Refunds change paid totals, finance, and customer trust.

Print receipt

How to fill: Click Print receipt after reviewing totals and receipt language/settings.

Why: Receipts document the sale and may be required for the customer or compliance.

Status changes

How to fill: Use Change status to move the order through Awaiting, Paid, Confirmed, Started, In preparation, Ready, Awaiting delivery, Delivered, Waiting customer, or Done.

Why: Statuses tell staff and customers what should happen next.

Send to kitchen

How to fill: Click Send to kitchen or To production only when products and comments are ready.

Why: Production tickets should not be sent with missing or incorrect items.

Courier assignment

How to fill: Use Assign courier for delivery orders and check delivery windows, tracking number, and link when present.

Why: Courier data keeps delivery progress and customer support accurate.

Cancel order

How to fill: Use Cancel order only when the order should no longer be active, and make sure history records the reason.

Why: Canceled orders must be explainable in reports and support.

POS menu

How to fill: Open the menu for Products, Stock, All shifts, Take a break, Start/Close shift, Create a transaction, Process supplier delivery, Devices, Terminal settings, Deposit, Return to manager panel, and Refresh data.

Why: These buttons are adjacent terminal operations, not random navigation.

Refresh data

How to fill: Click Refresh data after changing setup in manager screens or after backend updates.

Why: The terminal uses cached app state and realtime streams that sometimes need a reload.

Common mistakes

  • Opening /Kassa directly and skipping /logkass, so the cashier misses the employee PIN entry and POS context can look wrong.
  • Entering a PIN that is not assigned to the current employee or user.
  • Creating an order before the employee work shift or cash register shift is opened.
  • Using the wrong employee PIN or sharing one PIN across several workers.
  • Closing a cash shift without entering actual cash or commenting on a cash difference.
  • Treating employee work shift and cash register shift as the same thing.
  • Creating the wrong order type, for example delivery as pickup, which hides address and courier requirements.
  • Adding products before checking the correct establishment and available sales channel.
  • Using scanner results without confirming the product when several identifiers are similar.
  • Putting customer instructions into production comment or internal production instructions into customer comment.
  • Applying a promotion without checking whether it changed the expected total.
  • Taking payment before reviewing tax, delivery cost, tips, commission, and discounts.
  • Refunding a payment row without checking the method, amount, and order total snapshot.
  • Printing receipt before the final payment and status are correct.
  • Sending to kitchen before item modifiers and comments are complete.
  • Marking an order Done when delivery, pickup, payment, or production is still incomplete.
  • Using Archive to find an active order instead of checking Active filters first.
  • Forgetting to refresh terminal data after manager-side changes to products, payment methods, taxes, or staff.
AI Agent Field Reference for implementation

This block is intentionally below the human instructions. It explains storage names and downstream dependencies for automation, support, and future AI agents.

FieldStored asPurposeWhy it matters
POS entry routeLogkassWidget.routePath = /logkassReal Login to POS screen with the PIN block.Cashiers start here; Logkass loads employees and validates the PIN before opening the terminal workspace.
POS workspace routeKassaWidget.routePath = /KassaMain cashier workspace used for sales and order operations after PIN login.Kassa is not the first public entry screen; it is the working terminal opened after /logkass succeeds.
Required staff positionFFAppState().User.positionDetermines whether the terminal can load operational data.If the position is empty, the page redirects away from POS and the cashier cannot work.
Establishment contextFFAppState().User.establishmentCurrent branch or location for the cashier.Orders, products, taxes, stock, halls, payment methods, and currency are filtered by location.
Terminal settingsFFAppState().terminal / FFAppState().User.terminalLayout and behavior settings for the POS.Column count, product rows, category width, scanner behavior, and terminal preferences depend on this object.
Realtime ordersactions.startOrdersStream(...)Live order stream for the company, establishment, cash register, and tax context.The order list must update without a manual page reload.
PIN codePinBlockWidget / users.PinFour-digit quick access or protected-action code.PIN protects staff switching and manager-like actions while keeping terminal work fast.
PIN keypadKeyboardWidget actionadd/actionclear/actioncompletleNumeric keypad used by the PIN block.Digits, backspace, clear, and complete behavior decide whether PIN entry succeeds.
Employee work shifttimeWorker / EmplyySmenaWidgetTime-tracking shift for the employee.SABSUS can require the employee to start work before orders are handled.
Cash register shiftFFAppState().cashRegister / SmensStructCash shift attached to payments and receipt reconciliation.Cash, refunds, taxes, fees, tips, and expected balance must belong to the right shift.
Starting cash amountSmensStruct.summaNachalasmensAmount counted in the drawer at opening.The closing difference is calculated from this starting value plus cash movement.
Expected cash balanceSsmenaWidget calculated balanceSystem balance based on opening cash and cash transactions.Managers compare expected versus actual cash to find discrepancies.
Actual cash balanceSsmenaWidget closeTextControllerCashier-entered drawer amount at close.Closing the shift with the wrong actual value breaks cash accountability.
Cashier commentSmensStruct.commentExplanation for cash difference or shift notes.A difference without a comment is hard to audit.
Cash calculator coins and billsSsmenaWidget denomination controllersCount by denomination for coins and bills.Denomination count helps staff close the drawer accurately.
Order view modeKassaModel.pagefocusSelected POS workspace such as orders, tiles, table, archive, menu, bookings, service, or inventory calendar.The same terminal changes behavior depending on the selected view.
Order status filtersUnpaid / In Progress / Done / Canceled / All StatusesQuick filters for visible orders.Cashiers should not search through every historical order during service.
Order type filtersatplace / pickup / delivery / cateringFilters for dine-in, pickup, delivery, and catering orders.Each type has different required fields and operational routing.
Date range filterKassaModel.periodSelected date or period from the calendar.Helps find old orders, delivery orders, bookings, and archive records.
Sort columnsListordersWidget.sortby / lowSortable columns: type, date, delivery date, status, amount.Sorting helps staff find urgent or unpaid work quickly.
Order list rowOrderitemWidgetVisible order summary in list mode.Rows show type, client, status, payment, details, and actions.
Order tileOrderitemTilesWidgetCompact order card in tile mode.Tile mode is faster for high-volume counters and tablet layouts.
New order buttonKassaWidget New orderCreates a new POS order and opens SaleWidget.New orders should carry POS integration, employee, shift, register, establishment, currency, and first status.
Fast-food direct orderestablishment.fastFoodCreates atplace order immediately when enabled.Fast-food businesses skip the order type dialog for speed.
Order type dialogTipOdersWidgetChooses atplace, pickup, delivery, or catering.The selected type controls which fields and products are available.
Order recordOrderStructFull order object with items, payments, status, client, totals, comments, and routing fields.Every downstream process reads the order record.
POS integration markerOrderStruct.integration = POSMarks that the order was created from the terminal.Reports and agents can separate POS orders from app, web, kiosk, delivery, or integration orders.
Cash shift numberOrderStruct.numberCashShiftCash shift copied onto the order.Order revenue and payments must reconcile to the right shift.
Cash registerOrderStruct.cashregisterRegister identifier attached to the order.Multiple terminals or drawers need separate accountability.
WorkerOrderStruct.workerEmployee who created or owns the order.Staff performance, commissions, audit, and support depend on this link.
Catalog tabSaleWidget CatalogProduct catalog inside the order.Cashiers add sellable products from this section.
Services tabSaleWidget ServicesService catalog and appointment scheduling.Service businesses need employee, date, duration, and available slot logic.
Customer tabSaleWidget Customer / ClientsKassaWidgetSearch, scan, select, or create a client.Client data connects the order to CRM, discounts, bonuses, deposits, and history.
Address tabSaleWidget AddressDelivery or customer address selection.Delivery pricing, courier routing, tax, and customer communication depend on address.
Promotions tabPromotionsKassaWidgetPromo code and available promotions.Discounts must be applied intentionally and recorded in order history.
Digital products tabSaleWidget Digital ProductsLinks purchased digital items to the order.Digital fulfillment should not be confused with physical products.
Tasks and documents tabSaleWidget Tasks and documentsOperational tasks and signed agreement data.Some orders require follow-up tasks or documents.
Order write-offs tabSaleWidget Order write-offsInventory write-off or ingredient movement attached to the order.Stock consumption and loss must stay connected to sales when used.
History tabSaleWidget HistoryStatus and action history for the order.Support, managers, and agents use history to explain what happened.
Search fieldMenuKassa2Widget.textControllerSearches products or reads barcode input.The cashier can find products quickly by name or code.
Scanneractions.scanBarcodeScans barcode, QR code, product ID, or excise code.Scanning reduces errors when products have codes.
Category chipsFFAppState().CategoryProduct category filter in the terminal catalog.Categories keep the catalog usable on a busy POS screen.
Product cardOptionRowWidget / product selectionProduct row or card added to basket.The product card controls quantity and item selection.
BasketOrderStruct.itemsSelected products, modifiers, service lines, and quantities.Totals, production, stock, and payment come from basket contents.
Production commentOrderStruct.commentForProductionInstruction for kitchen or workshop.Production notes should not be mixed with customer comments.
Customer commentOrderStruct.commentClientCustomer-facing or customer-provided note.Delivery and service preferences need a separate field.
Delivery costOrderStruct.priceForDeliveryFee included for delivery orders.Delivery cost changes totals and payment due.
DiscountOrderStruct.discount / discountsManual or promotion discount.Discounts affect revenue, margin, and approval rules.
TaxOrderStruct.tax / taxratesCalculated tax amount and applied rule.Receipts, reports, and compliance depend on correct tax.
TipsOrderStruct.tips / PaymentsStruct.tipsTip amount on the order or payment.Tips may affect staff payouts and payment settlement.
Payment rowsOrderStruct.payments[]List of payments attached to the order.Supports split payments, bonus payments, card/cash separation, and refunds.
Payment methodPaymentsStruct.methodPaymentConfigured payment method selected during payment.Payment method controls account, cash handling, online/integration behavior, and fees.
Payment amountPaymentsStruct.amountAmount collected for the payment row.Payment rows must explain paid total and remaining balance.
Pay with bonusesmethodPayment.id = BonusBonus or loyalty balance used for payment.Bonus use changes customer balance and order paid state.
Payment informationPaymentinfoWidgetPayment detail modal with method, amount, order, tips, tax, fee, comment, and refund.Staff can audit or refund a specific payment row.
Refund paymentPaymentinfoWidget Refund paymentProtected action that refunds or reverses a payment row.Refunds must be deliberate because they change order paid totals and finance records.
Print receiptSaleWidget Print receiptPrints customer receipt or production receipt depending on settings.Printing documents the transaction and may trigger receipt history.
Payment successSecsessPaymentWidgetSuccess screen after payment.Cashier confirms purchase completion and closes the payment flow.
Order statusStatusWidget / Liststatusorder / Change statusCurrent status such as Awaiting, Paid, Confirmed, Started, In preparation, Ready, Awaiting delivery, Delivered, Waiting customer, Done.Statuses route work to kitchen, delivery, pickup, and reports.
Send to kitchenSaleWidget Send to kitchen / To productionMarks order lines for preparation.Production should receive the order only when items and comments are correct.
Assign courierOrderitemWidget Assign courierAssigns delivery worker.Delivery accountability and customer ETA depend on courier assignment.
Cancel orderOrderitemWidget Cancel order / DeletorderWidgetCancels an order with the correct status/history.Canceled orders must not look like active unpaid work.
POS menuMenukassaWidgetOperational menu for adjacent terminal tasks.Cashiers and managers use it without leaving the POS context.
Break buttonTake a break / Return from breakToggles employee rest state.Break state affects staffing and shift activity.
Start or close employee shiftMenukassaWidget Start shift / Closing your shiftOpens or closes the employee work shift.Work time must match the real staffing day.
Refresh dataMenukassaWidget Refresh dataReloads operational data.Use after backend changes or when the terminal cache is stale.

Use these guides to connect this section to adjacent SABSUS workflows.