NakalaPOS
Point of Sale

{{ loginError }}

Seeded: admin / Admin#2026

Dashboard ● Offline
{{ banner.msg }}
Resuming held order {{ resumingCode }} — edit the cart, then Pay to complete or Hold to keep it.
Product
Quantity
Total
No products added…
{{ l.name }}
{{ money(l.price) }} each
{{ money(l.price*l.qty) }}
Customer:
Sub Total{{ tenant?.name?'':'' }}{{ money(subTotal) }}
Type:
Discount{{ money(discountTotal) }}
{{ deliveryAddress || 'No shipping address — tap Type to add' }}
Total{{ money(total) }}
No categories.
No products here.
Payment
{{ money(total) }}
Change{{ money(change) }}

{{ chargeError }}

{{ tenant?.name }}
Receipt {{ receipt.code }}
Saved offline — will post automatically when back online
{{ p.quantity }} × {{ p.name }}{{ money(p.total_price) }}
Total{{ money(receipt.total) }}
Tendered{{ money(receipt.tendered) }}
Change{{ money(receipt.change) }}
Status{{ receipt.payment_status }}
ERP doc{{ receipt.erp_document_no }}
Cash {{ cashKind==='in'?'in (add to till)':'out (remove from till)' }}
X-Report · {{ xreport.register }}
Opening float{{ money(xreport.opening_float) }}
Cash sales{{ money(xreport.cash_sales) }}
Cash in{{ money(xreport.cash_in) }}
Cash out / refunds-{{ money(xreport.cash_refunds_out) }}
Expected in till{{ money(xreport.expected_cash) }}
Counted balance{{ money(xreport.current_balance) }}
Variance{{ money(xreport.variance) }}
Recent orders
{{ o.code }} {{ o.payment_status }}
{{ money(o.total) }} · {{ o.products.length }} item(s) · balance {{ money(o.balance_due) }}
{{ o.delivery_address }}
ERP: {{ o.erp_document_no }}
Refund {{ refunding.code }}
{{ l.name }}
refundable {{ l.max }}

{{ refundError }}

Manage

Creates the base unit group/unit automatically on first use.

{{ connMsg }}

Order Type
Shipping details

A delivery needs a shipping address.

Select Customer
Order Discount
Order Comment
Apply Coupon

Applied {{ couponCode }} — {{ money(couponDiscount) }} off.

{{ couponMsg }}

Taxes

Taxes are applied automatically per product tax group. The tax due is computed at checkout and printed on the receipt.

Taxable subtotal{{ money(subTotal) }}
POS Settings
Cashier: {{ user?.username }} · {{ tenant?.name }}
Till balance {{ money(register.balance) }}
Full Admin