A complete point of sale for Bangladeshi shops. Scan and sell in seconds, consume stock batch-by-batch at its real purchase cost, track dues and returns, and read a profit & loss statement that already accounts for expenses and shrinkage.
Every number on this page is a real field, enum, or report in the system — not a marketing figure.
Sixteen working areas, each one a real page in the app. Nothing on this list is a roadmap item.
Full-screen selling: scan a barcode or search by name and SKU, filter by category and brand, then take payment and print the receipt.
Every sale gets a dated, unique invoice number you can look a customer up by. Void a sale and stock, balances and profit all reverse with it.
Full return, partial return or exchange — each with a reason, an optional restocking fee, and an approval step before money moves.
SKU, auto-generated barcode, purchase and selling price, per-product tax rate, shelf location, low-stock threshold and reorder point.
Receive stock as batches, each carrying its own unit cost and expiry date. Selling consumes the oldest batch first, so cost stays truthful.
Record expired, damaged, stolen, sampled or donated stock against a specific reason, with the loss valued and carried into your P&L.
Organise the catalogue into categories that drive POS filtering and every category-level report.
Group products by brand for faster lookup at the counter and cleaner reporting in the back office.
Sell on credit within a customer's limit, collect part-payments over time, and see exactly who is overdue and by how much.
Log rent, salaries, utilities, transport and the rest against a category and payment method, with a receipt reference kept on file.
Revenue → cost of goods sold → gross profit → expenses → net profit, with shrinkage and refunds already deducted.
Filter by date, search by invoice or customer, and break the period down by product, category, payment method and return rate.
Today's revenue, orders, margin and new customers, plus top products, recent sales, low-stock warnings and a 30-day trend.
Stock value at cost and at retail, turnover, out-of-stock and low-stock lists, batch ageing, expiry warnings and reorder suggestions.
Add staff, assign one of six roles, change passwords and suspend accounts. Every product change is stamped with who made it.
Shop name, contact details, currency and default tax rate — plus the permission matrix and a full database backup and restore.
The POS runs full-screen on whatever you already have at the counter. Scan, adjust quantity, apply the discount, take the money — and the sale carries its own cost and profit with it from the moment it closes.
Every product gets a unique barcode automatically. Scan it, or search across name, SKU, description and barcode at once.
Quantities are stored to two decimal places, so 1.25 kg of sugar or 0.5 litre of oil rings up exactly — across 26 units of measure.
Fourteen discount types — percentage, fixed amount, bulk, seasonal, loyalty, trade, coupon code and more — applied per sale.
A shop-wide default tax rate, overridable per product and per sale, with the tax amount stored alongside the total.
Cash, card, mobile banking, bank transfer, digital wallet or other — with change calculated for you, or the balance left as a due.
Each sale is stamped INV-YYYYMMDD-0001 the moment it completes, and a printable receipt is ready straight away.
Stock arrives in batches, and each batch remembers what you actually paid for it. Selling draws down the oldest batch first, so the cost attached to a sale is the real one.
112 Bag in stock across 3 batches
The next bag sold costs ৳242.00, not an averaged guess. When batch #A-1042 runs out, costing moves to #A-1078 by itself.
Set a low-stock threshold and a reorder point per product; the dashboard and inventory report surface anything that crosses them, with suggested reorder quantities.
Because expiry lives on the batch and not the product, you can see precisely which lot is about to date out — and how long stock has been sitting.
Each product carries a shelf or warehouse location, so the person picking it doesn't have to guess.
Created, updated, restocked, adjusted, price changed, status changed or deleted — seven action types, each stamped with the user who did it and when.
Every item sold stores what it sold for and what it cost, right there on the sale. That single decision is what makes a real profit & loss statement possible at the end of the month.
INV-20260826-0147
| Item | Sold | Cost | Profit |
|---|---|---|---|
Rice 5kg ×2 | ৳280.00 | ৳242.00 | ৳76.00 15.70% |
Soyabean Oil ×1 | ৳185.00 | ৳158.00 | ৳27.00 17.09% |
Sugar 1kg ×3 | ৳95.00 | ৳82.00 | ৳39.00 15.85% |
Nothing here is entered by hand — it is assembled from sales, batches, expenses, returns and write-offs.
Illustrative figures — but this is the exact chain the report computes, including shrinkage from written-off stock, which most small-shop software silently ignores.
Credit is how a great many Bangladeshi shops actually trade. Here it is a first-class feature with a proper ledger behind it — not a note scribbled in a register.
Credit limit ৳50,000 · ৳37,550 still available
Give a customer a ceiling and an opening balance. Their running balance moves with every sale and every payment, so you always know how much rope is left.
Take ৳500 today and ৳2,000 next week against the same invoice. The sale tracks paid and due separately and moves through PARTIAL, COMPLETED or OVERDUE on its own.
Collections are recorded as PAY-YYYYMMDD-0001 with the method, transaction or cheque reference, and who took the money — with a printable receipt.
Void a payment and the customer's balance unwinds with it. The ledger keeps the history rather than quietly rewriting the number.
Who owes you, right now. The dues page lists every customer with an outstanding balance and flags sales past your chosen overdue threshold, so chasing money stops being guesswork.
Goods come back, and goods go bad. Both are recorded against a reason and a value, so your closing stock and your profit figure stay believable.
When stock is removed for any reason other than a sale, say why. Each write-off carries a quantity and an estimated loss, and can be pinned to the specific batch and expiry date it came from.
The total flows into your profit & loss report as shrinkage — the quiet cost that usually goes unmeasured.
Record what the shop spends, then read three reports that pull sales, stock, expenses, returns and write-offs into one picture.
August 2026 · ৳38,450 across 10 categories
Any date range, searchable by invoice, customer name or phone. Breaks down by top products, category, payment method and return rate, with net sales after refunds.
Stock value at cost and potential revenue at retail, inventory turnover, per-product margin, out-of-stock and low-stock lists, batch ageing and expiry warnings.
Gross and net profit with margins, expense breakdown by category, shrinkage from write-offs, returns by reason, month-by-month trend and your most profitable products.
Twelve pages, six roles. The grid below is how a new shop starts — and every tick in it can be changed from inside the app, taking effect immediately.
| Page | SuperAdmin | Owner | Admin | Manager | Staff | Customer |
|---|---|---|---|---|---|---|
Dashboard /dashboard | ||||||
POS terminal /pos | ||||||
Sales /sales | ||||||
Dues /dues | ||||||
Products /products | ||||||
Purchases /purchases | ||||||
Stock write-offs /product-removal | ||||||
Setup /setup | ||||||
Expenses /expenses | ||||||
Users /users | ||||||
Reports /reports | ||||||
Settings /settings |
Scroll the table sideways to see every role →
A SuperAdmin edits the matrix in Settings. The change lands in the database and the very next request is judged against it — no deployment, no developer, no downtime.
Hiding a menu item is not security. The same page-to-role map guards the API, so a hidden page cannot be reached by typing its address or calling the endpoint directly.
No uptime badge invented for a landing page — just the things that are actually in place.
Credentials are bcrypt-hashed. Sign-in issues a short-lived access token plus a refresh token held in an httpOnly cookie.
Take a complete database backup as a file from inside the app, and restore from one when you need to. Reserved for the SuperAdmin.
Secure HTTP headers, strict request validation that rejects unexpected fields, a locked-down cross-origin allow-list, and per-IP rate limiting.
A health endpoint reports database connectivity and memory pressure, so your host or uptime monitor can tell you before your staff do.
Product changes are logged with the action, the user and the timestamp. Sales, payments and write-offs all record who was responsible.
It is a standard PostgreSQL database. Run it on your own server, export to CSV whenever you like, and take your backup file with you.
Step three matters most: products carry prices, but batches carry cost. Without a purchase batch, there is nothing for the profit figures to work from.
Shop name, address and phone, your currency and the default tax rate every sale should inherit.
Create the groupings your catalogue needs. These drive POS filtering and every category-level report later on.
Enter each product with its price, unit and low-stock threshold — then receive a purchase batch so it has real quantity at a real cost.
Create accounts and give each one a role. Adjust the permission matrix if the defaults don't match how your shop runs.
From the first sale onward, stock, costs, profit, dues and reports all keep themselves up to date.
Where the system doesn't do something yet, it says so here rather than letting you find out later.