দোকান POS Documentation
Complete guide to every feature and module
Why দোকান POS?
One affordable platform that runs your whole business — online or offline.
All-in-one platform
- POS, inventory, purchases, accounting, HRM, CRM, marketing and reports — one login, no juggling separate tools or spreadsheets.
- Built for how Bangladeshi businesses actually work: Bengali + English, ৳ currency, bKash / Nagad / Rocket payments, and SMS in Bangla.
- Offline-first POS: keep selling even when the internet drops — sales are queued and sync automatically when you reconnect.
- Multi-branch: run several outlets from one account with branch-wise stock, sales and reports, plus inter-branch transfers.
How you benefit
- Sell faster: barcode scan, quick keys, split payments and instant thermal or A4 receipts.
- Stop losing money to stock: low-stock & expiry alerts, batch/FEFO tracking, damage write-offs and supplier dues.
- Know your profit daily: real-time dashboard with profit, receivables/payables and 15+ ready reports.
- Grow your customers: loyalty points, coupons, gift cards, due reminders and birthday / marketing SMS.
- Stay in control: role-based staff permissions, tamper-evident audit log, 2FA and automatic cloud backup.
Affordable & secure
- Start on a free plan and upgrade only as you grow — pricing sized for a single shop up to multi-branch enterprises.
- Each shop's data is fully isolated, secrets are encrypted, webhooks are signed and audit logs are HMAC-protected.
- Install it as an app (PWA) on phone, tablet or desktop — no app store required.
Features by Business Type
দোকান POS adapts to your trade — pick your business type and only the tools you need appear.
Pick your type at setup
- The onboarding wizard asks what kind of business you run and switches on the right modules automatically.
- Change it anytime in **Settings → Features** — set your Business Type and fine-tune which modules show in your menu.
🍽️ Restaurant / Food
- Table floor view with dine-in, takeaway and delivery order types.
- Send orders to the Kitchen Display (KOT) and track preparing → ready → served.
- Menu modifiers & add-ons (spice level, extra cheese) with automatic price changes.
- Split bills, merge tables and a configurable service charge.
- Benefit: faster table turnover, fewer kitchen mistakes and accurate billing.
💊 Pharmacy
- Batch / lot tracking with a separate expiry date per batch; sales auto-pick the earliest-expiry batch (FEFO).
- Near-expiry and expired reports plus email alerts, so you sell stock before it expires.
- Supplier dues, purchase returns and damage write-offs for short-dated medicine.
- Benefit: less expiry loss, compliant stock rotation and tighter margins.
🛒 Grocery / Super Shop
- Fast barcode POS with coupons, gift cards and loyalty points.
- Batch & expiry tracking for perishables and low-stock alerts for timely reordering.
- Multi-branch stock with inter-branch transfers.
- Benefit: quick checkout, less wastage and more repeat customers.
💻 Electronics / 📱 Mobile Shop
- Serial / IMEI tracking for every unit, with warranty & RMA management.
- Repair / service jobs with technician assignment and status tracking.
- EMI / installment sales with schedules, and quotations that convert into sales.
- Benefit: full unit traceability, smooth after-sales and more financing options.
👕 Fashion / Clothing
- Product variants (size / colour), barcode labels and bundles.
- Coupons, gift cards and seasonal marketing campaigns.
- Benefit: tidy variant stock and stronger promotions.
💍 Jewellery / Gold
- Live metal-rate pricing: set today's gold / silver rate per karat in **Settings → Metal Rates**; each jewellery line is priced **on the server** from weight × rate + making charge, so prices can't be tampered with.
- Change the day's rate and open jewellery items **reprice instantly** at the POS — no stale tags.
- Old-gold buyback: deduct the customer's exchanged gold from the bill; any surplus is paid out as cash **or** kept as store credit in the customer's wallet (cashier's choice) and redeemable on future sales.
- Per-product jewellery fields (metal, karat, weight, making charge) and a metal-rate header printed on the receipt.
- Benefit: always-accurate gold pricing, transparent buyback and faster billing.
👟 Footwear
- Size / colour variant matrix with barcode labels for every pair.
- Sale exchanges for quick size swaps, plus coupons, gift cards and loyalty points.
- Benefit: tidy size-wise stock and effortless exchanges.
📦 Wholesale / Distribution
- Quotations, customer credit limits with due tracking, and price groups for tiered pricing.
- Multiple branches / warehouses, stock transfers and salesperson commissions.
- Benefit: manage bulk buyers, control credit and reward your sales team.
🏭 Manufacturing
- Bill of Materials (BOM), production orders and production-wastage tracking.
- Raw-material stock, multiple warehouses and supplier management.
- Benefit: know your true production cost and material usage.
🏪 General / Other retail
- All the essentials: POS, inventory, customers, accounting and reports.
- Turn extra modules on from Settings → Features as your business grows.
Getting Started
Set up your shop and start selling in minutes.
Shop Registration
- Visit the registration page and fill in your shop name, owner name, phone, email, and password.
- A unique slug (URL identifier) is automatically generated from your shop name.
- Your account starts on the Free plan — no credit card required.
- After registration, sign in and complete the onboarding wizard to configure basic settings.
User Roles & Permissions
- Owner — Full access to all modules including settings, reports, and user management.
- Manager — Access to sales, inventory, purchases, customers, and reports. Cannot manage users or billing.
- Cashier — Access to POS, viewing products/customers, and basic sales operations.
- Granular overrides — on top of the role defaults, grant or revoke individual permissions per staff member (e.g. let one cashier process returns or apply discounts) from their profile.
- Add additional staff via Settings → Users. Each user gets their own login credentials.
Initial Configuration
- Set your currency, timezone, and financial year start date in Shop Settings.
- Configure receipt layout (paper size, logo, header/footer notes, language).
- Set up your tax rates under Settings → Taxes.
- Add product categories and brands before importing products.
Point of Sale (POS)
Complete POS system with multi-payment, loyalty, gift cards, and split payments.
Creating a Sale
- Navigate to POS from the sidebar. Search products by name, SKU, or barcode.
- Add items to cart. Adjust quantity or apply per-item discounts.
- Select the customer (optional) to track purchase history and earn loyalty points.
- Apply cart-level discounts as a percentage or fixed amount.
- Select tax, shipping charge, and payment method(s).
- Complete the sale — invoice is generated with a unique reference number (INV-YYYYMMDD-XXXX).
Voiding a Sale
- Voiding cancels a sale completely and **reverses every effect it had**: stock goes back to the shelf, account ledger entries are undone, loyalty points earned are taken back and points redeemed are returned, gift-card and store-credit balances are restored, and any coupon use is freed up.
- The voided sale stops counting anywhere — it disappears from reports, from the customer's outstanding due, and from your monthly sales usage.
- The record itself is kept for audit purposes rather than erased, so the void is always traceable in the audit log.
- A sale that already has a **return or exchange** against it can't be voided — reverse those first, so the two reversals can never double up.
- Voiding is **not reversible** and a voided sale does not appear in Trash. Use a return instead when the customer is giving goods back.
- Requires the *Process returns* permission.
Payment Methods
- Cash — Enter the amount received; change is calculated automatically.
- Card — Record card payment with optional transaction reference.
- bKash / Nagad / Rocket — Record mobile banking payments.
- Split Payment — Pay with multiple methods in a single transaction (e.g., part cash + part bKash).
- Payments are automatically posted to the linked account (account ledger).
Loyalty Program
- Enable loyalty in Shop Settings. Set points per currency unit spent and redemption rate.
- Customers earn points on the cash/card portion of each purchase — points are NOT earned on amounts settled with a gift card, store credit or an old-gold trade-in, nor on any discounted amount.
- At POS, enter loyalty redemption amount — points are deducted from customer balance.
- A minimum point threshold (configurable) is required before redemption.
Gift Cards & Coupons
- Generate gift cards with custom codes, amounts, and expiry dates.
- At POS, enter the gift card code — balance is deducted from the card.
- Create coupons with percentage or fixed discounts, usage limits, and validity periods.
- Apply coupon code at checkout — usage count is tracked automatically.
Serial & Variant Products
- Serial-tracked products (IMEI, serial numbers) must be sold one unit at a time.
- Select the specific serial unit from the list — it's marked as 'sold' after the transaction.
- Variable products (size/color variants) show variant selection at POS.
- Bundle products deduct stock from each component product automatically.
Jewellery Pricing & Old-Gold Buyback
- For jewellery shops, gold / silver lines are priced from the live metal rate (per karat) × item weight, plus the making charge — computed on the server so the amount can't be edited client-side.
- Update the day's rate in **Settings → Metal Rates** and items already in the cart reprice instantly.
- Take old gold in exchange: its value is deducted from the total. Any excess becomes either a **cash payout** or **store credit** added to the customer's wallet.
- Store credit is a redeemable tender on future sales; refunds return to store credit / gift card / cash in that order. The shipping charge is non-refundable — returns refund the goods (and their proportional tax) only.
Thermal Printer
- Connect an ESC/POS thermal printer via network (TCP/IP port 9100).
- Configure printer IP, port, and characters per line in Shop Settings.
- Receipts are formatted for 58mm or 80mm paper.
- Receipt language (English/Bengali) and content are fully configurable.
Inventory Management
Track products, variants, bundles, serial numbers, and warehouse stock.
Product Setup
- Create products with name, SKU (unique per shop), barcode, category, brand, buy price, sell price, and unit.
- SKU is automatically unique within your shop (enforced at database level).
- Set minimum stock level for low-stock alerts.
- Products can be type: standard, service, or bundle.
- Service products don't track stock quantity.
Product Variants
- Enable 'Is Variable' for products with multiple variants (size, color, etc.).
- Each variant has its own SKU, sell price, and stock level.
- Variant stock is tracked independently and rolls up to the parent product total.
Bundle Products
- Enable 'Is Bundle' to create composite products (gift baskets, kits, etc.).
- Define component products and their quantities.
- Selling a bundle automatically deducts stock from all component products.
- Bundle availability is limited by the component with the lowest stock.
Stock Adjustments
- Record stock additions, removals, or corrections with a reason.
- Each adjustment creates an audit trail entry.
- Adjustment types: purchase receive, sale return, damage, loss, initial stock.
Stock Counts
- Create a physical count session, enter actual quantities for each product.
- System calculates variances (expected vs actual).
- Finalize the count to automatically adjust stock levels.
Serial Number Tracking
- Enable serial tracking on products to track individual units.
- Import serial numbers (IMEI, serial IDs) per product.
- Serial status: in_stock → sold → warranty → returned.
- Serial numbers are linked to sale items and warranty claims.
Purchase Management
Create purchase orders, manage suppliers, receive goods, and handle returns.
Purchase Orders
- Create purchase orders with supplier, items, quantities, and unit prices.
- Apply discounts (percentage or fixed) and taxes.
- Status flow: pending → received.
- Record partial or full payments linked to your accounts.
Receiving Goods
- Mark a purchase order as 'Received' to automatically increment product stock.
- Buy price is updated on the product record upon receipt.
- Warehouse stock (default warehouse) is also synced on receipt.
Purchase Returns
- Create purchase returns referencing the original PO.
- Select items and quantities to return.
- Stock is decremented automatically on return completion.
Supplier Management
- Manage supplier profiles with contact details, address, and tax ID.
- Rate suppliers after purchases (1-5 stars with optional feedback).
- View purchase history per supplier.
Purchase Requisitions
- Staff can submit purchase requisitions for approval.
- Managers review and approve/reject requisitions.
- Approved requisitions can be converted to purchase orders.
Customer Management
CRM with payment history, loyalty program, portal access, and birthday greetings.
Customer Profiles
- Store customer name, phone (normalized automatically), email, address, and birth date.
- Phone numbers are de-duplicated per shop at database level.
- Assign customers to price groups for automatic discount tiers.
- Set payment terms (days) for credit customers.
Customer Ledger & Payments
- View complete purchase history and outstanding dues per customer.
- Record due collections and advance payments.
- Payment types: due_collection or advance.
Loyalty Program
- Customers earn points on the out-of-pocket (cash/card) amount of each purchase — configurable points per ৳ spent, excluding gift-card / store-credit / old-gold settled amounts and any discount.
- Redeem points at POS for discounts.
- Full loyalty transaction history (earn, redeem) per customer.
Customer Portal
- Customers access their portal via your shop's public URL + phone number.
- Portal shows: purchase history, loyalty balance, warranty claim status.
- No login required — lookup is by phone number.
Birthday & Due Reminders
- Automated birthday greetings via SMS/WhatsApp/email (configurable template).
- Automated payment due reminders for overdue invoices.
- Triggered by the background job (cron) running daily.
Accounting & Finance
Chart of accounts, double-entry ledger, cash register, and expense tracking.
Chart of Accounts
- Create accounts of types: cash, bank, mobile_banking, receivable, payable, income, expense.
- Accounts track opening balance and current balance.
- All sale payments, purchase payments, and expenses post to linked accounts.
Account Transactions
- Every payment (sale, purchase, expense) creates an account transaction.
- Transactions are typed: in (credit) or out (debit).
- Each transaction links to the originating sale, purchase, or expense.
Expenses
- Record expenses with category (rent, salary, utilities, marketing, etc.), amount, date, and notes.
- Expenses can be linked to warranty repair costs automatically.
- Expense reports available in the Reports module.
Cash Register
- Open/close register sessions with opening float.
- Track all cash transactions during the session.
- Close-out report shows expected vs actual cash.
Reports & Analytics
Sales, inventory, profit, customer, and staff reports with date filters.
Sales Reports
- Daily, weekly, monthly, and custom date-range summaries.
- Revenue, average order value, top-selling products.
- Payment method breakdown (cash vs mobile banking).
- Sales by staff member (salesperson commission tracking).
Inventory Reports
- Current stock levels with low-stock alerts.
- Stock movement history (sales, purchases, adjustments).
- Dead stock report (products with no recent sales).
- Valuation report (stock × buy price and stock × sell price).
Financial Reports
- Profit & Loss summary (revenue − cost of goods − expenses).
- Expense category breakdown.
- Account balance summary.
- Due receivables (customers with outstanding balances).
Human Resources (HRM)
Staff management, salary processing, attendance tracking, and leave management.
Employee Management
- All system users (Owner, Manager, Cashier) are also employees.
- Set commission rate (%) per staff member.
- Track sales performance per salesperson.
Salary Management
- Create salary records per employee with base salary and allowances.
- Record salary payments with month/year, amount, and account.
- Salary history and payment status tracking.
Attendance Tracking
- Mark daily attendance with check-in/check-out times.
- Status types: present, absent, late, half_day, holiday.
- Monthly attendance summary per employee.
Leave Management
- Employees submit leave requests with type (casual, sick, annual, unpaid).
- Managers approve or reject with notes.
- Leave balance tracking per employee.
Marketing & Promotions
Coupons, gift cards, campaigns, and multi-channel notifications.
Coupons
- Create discount coupons with code, type (percentage/fixed), value, max usage, and expiry.
- Coupons are validated at checkout — expired or exhausted coupons are rejected.
- Track usage count per coupon.
- Bulk expire coupons past their expiry date via the background job.
Gift Cards
- Issue gift cards with custom codes, initial balance, and expiry.
- Cards are redeemable at POS — balance is deducted on use.
- Full transaction history per gift card.
- Status: active → depleted or expired.
Campaigns
- Create mass notification campaigns targeting all customers or a segment.
- Send via SMS, WhatsApp, or email.
- Schedule campaigns or send immediately.
- Track sent, delivered, and failed counts.
Notifications
- SMS — via generic HTTP gateway (configurable URL, API key, sender ID).
- Email — via SMTP (configurable host, port, credentials).
- WhatsApp — via Meta Cloud API, Twilio, or 360dialog.
- Notification triggers: sale receipt, due reminder, low stock alert, booking reminder, birthday.
Warranty Management
RMA claims, repair tracking, serial status management, and cost recording.
Warranty Claims
- Create a warranty claim linked to a customer, sale item, and serial number.
- Record the product issue, received date, and estimated return date.
- Each claim gets a unique reference (RMA-YYYYMMDD-XXXX).
Claim Workflow
- Status flow: received → sent_to_supplier → repaired → returned_to_customer (or rejected).
- Serial number status mirrors claim status automatically.
- Record repair cost and courier cost per claim.
- Post costs as expenses with one click.
Customer View
- Customers can check their warranty claim status via the Customer Portal.
- Staff updates are reflected in real-time.
Booking & Appointments
Appointment scheduling, service management, staff assignment, and confirmation notifications.
Booking Management
- Create appointments with customer, service (product of type 'service'), assigned staff, and schedule.
- Set duration in minutes per booking.
- Status flow: pending → confirmed → completed or cancelled.
Notifications
- Customer receives SMS/email confirmation when booking status changes to 'confirmed'.
- Booking reminder notifications can be sent automatically via the daily job.
Manufacturing
Bill of Materials (BOM) and production order management with wastage tracking.
Bill of Materials (BOM)
- Define the recipe/formula for manufactured products.
- Specify component products and required quantities per unit.
- BOM is linked to the finished product.
Production Orders
- Create a production order from a BOM with target quantity and planned date.
- Status flow: draft → in_progress → completed.
- On completion, finished product stock is incremented; component stock is decremented.
- Record wastage per component during production.
Multi-Warehouse
Multiple storage locations, stock transfers, and location-based inventory.
Warehouse Setup
- Create multiple warehouses with names, addresses, and phone numbers.
- Designate one warehouse as the 'default' — sales and purchases sync to it automatically.
Warehouse Stock
- Each product has a stock level per warehouse.
- Sales deduct from the default warehouse; purchases add to it.
- Sale returns restore stock to the default warehouse.
Stock Transfers
- Transfer stock between warehouses with item lists and quantities.
- Status flow: pending → completed.
- On completion, source warehouse stock decrements and destination warehouse stock increments.
Quotations
Create quotations, share with customers, and convert to invoices.
Creating Quotations
- Create a quotation with customer, items, prices, discounts, and taxes.
- Each quotation has a unique reference (QUO-YYYYMMDD-XXXX).
- Status: draft → sent → accepted or rejected.
Convert to Invoice
- Convert an accepted quotation to a sale invoice with one click.
- A new invoice (INV-YYYYMMDD-XXXX) is created with all quotation line items.
- Stock is not deducted at quotation stage — only on invoice creation.
Installments / EMI
Flexible installment plans, payment schedules, and automatic reminders.
Creating Installment Plans
- Create an installment plan for a customer sale with down payment, total amount, tenure (months), and interest rate.
- Payment schedules are auto-generated (monthly due dates).
- Each plan gets a reference (EMI-YYYYMMDD-XXXX) and links to an invoice.
Recording Payments
- Record each installment payment — paid amount, method, and date.
- Outstanding balance updates automatically.
- Late payment tracking with overdue status.
Recurring Invoices
Auto-generate invoices on configurable intervals for subscription-based services.
Setup
- Create a recurring invoice template with customer, items, interval (daily/weekly/monthly/yearly), and start date.
- The system auto-generates invoices on schedule via the background job.
- Manual trigger available for immediate generation.
SaaS & Multi-Tenant
Plan limits, tenant isolation, data export, and security architecture.
Plan Limits
- Free: 2 users, 200 products, 500 customers, 500 sales/month.
- Basic: 5 users, 1,000 products, 2,000 customers, 2,000 sales/month.
- Pro: 20 users, 10,000 products, 20,000 customers, 20,000 sales/month.
- Enterprise: Unlimited everything.
- Plan limits are enforced at the API level — upgrade prompts are shown when limits are reached.
Tenant Isolation
- Every database query is scoped by shopId.
- There is no cross-shop data leakage by design.
- Shop status (active/suspended) is checked on every API call.
- Suspended shops receive 403 responses on all API routes.
Security
- JWT sessions with 30-day expiry and 5-minute role refresh from database.
- CRON jobs require a secret token (CRON_SECRET environment variable).
- AUTH_SECRET required in production (throws on startup if missing).
- Rate limiting on all API routes (Redis-ready, in-memory by default).
- Complete audit log for all significant actions.
Data Export
- GET /api/export returns a full JSON export of all shop data.
- Includes: sales, purchases, customers, products, accounts, audit logs, and more.
- Restricted to Owner role. Rate-limited to prevent abuse.
Settings & Configuration
Shop settings, notifications, receipt layout, pricing, and tax configuration.
Shop Settings
- Name, slug, phone, email, address, logo (light/dark/favicon).
- Trade licence number and business hours — shown on invoices.
- Currency, timezone, and financial year start date.
- Default profit margin for auto-calculating sell prices.
- Metal rates (per karat) for jewellery shops, under **Settings → Metal Rates**.
Notification Settings
- SMS gateway: configure URL, API key, and sender ID.
- SMTP email: host, port, username, password, from name/email.
- WhatsApp: Meta Cloud API, Twilio, or 360dialog credentials.
- Toggle notifications: sale receipt, due reminder, low stock, booking, birthday.
Trash / Recycle Bin
- Deleting a product, customer, supplier, or staff member is a **soft delete** — the record is hidden everywhere but kept so past sales, purchases, and reports stay intact.
- Open **Trash** from the sidebar to see everything you've deleted, grouped by type.
- Each tab shows a **count badge**, so you can see at a glance how much is sitting in the trash.
- Restore brings a record back with its original SKU / phone / email — unless an active record has since taken that value, in which case the restore is safely blocked.
- Delete permanently removes it for good; records still referenced by past sales are protected and can't be purged.
- Empty trash clears the whole tab at once, after a confirmation. Records still referenced by past sales are kept — the result tells you how many were purged and how many were kept, so a partial clear is never a mystery.
- Emptying the trash needs the same permission as deleting that record type, so staff can't purge records they were never allowed to delete.
- Trashed records are also cleared automatically after a retention period (default 90 days).
- Trashed records **do not count toward your plan limits** — only live records do. Your billing page shows any trashed records next to each limit, so the numbers always add up.
Receipt & Print Settings
- Paper size: 58mm, 80mm, or A4.
- Toggle: show logo, show customer, show cashier.
- Custom header and footer notes.
- Receipt language: English or Bengali.
- ESC/POS thermal printer IP, port, and characters-per-line.
- Invoice template (A4): *Standard* (one full page), *Two copies* (Customer + Office on one A4 with a cut line), or *Half page* — a compact Mushak-style invoice on the top half of an A4 you can cut off to save paper.
- Customer and **Authorised** signature lines are printed on every A4 invoice.
- Cash **round-off** mode (nearest 1 / 5 / 10 / poisha) applied to the payable total.
Taxes, VAT & Price Groups
- Create tax rates (percentage) with names (e.g., VAT 15%).
- BD VAT (Mushak 6.3): enable VAT to apply a per-product VAT rate (inclusive or exclusive), print the **Mushak 6.3** tax-invoice (with amount in words), and get a VAT summary report (output − input, rate-wise).
- Price groups: create customer tiers with automatic discount percentages.
- Assign customers to price groups for automatic pricing.
Security & Accounts
Two-factor authentication, email verification, and offline-safe selling.
Two-Factor Authentication (2FA)
- Open Profile → Two-factor authentication and click Enable.
- Scan the secret key (or enter it manually) into an authenticator app such as Google Authenticator, Authy, or Microsoft Authenticator.
- Enter the 6-digit code to confirm — 2FA is now active on your account.
- On every future sign-in, after your password you'll be asked for the current 6-digit code.
- To turn it off, go back to Profile and confirm with your account password (so you're never locked out if you lose your device).
Email Verification
- After registration a verification link is emailed to the shop owner (valid for 24 hours).
- Click the link to confirm your email; you can re-send it from your profile if it expires.
- When the platform operator enables 'Require email verification', owners must confirm their email before they can sign in.
Offline-Safe POS
- If the connection drops, the POS keeps working — sales are queued locally and an offline receipt is shown.
- Queued sales sync automatically when you're back online.
- Each sale carries a unique reference so a re-sent sale is never recorded twice (no duplicate invoices or double stock deduction).
Developer / API
Programmatic access with API keys and outbound webhooks.
API Keys
- Go to Settings → Developer / API (owner only) and create a key. Choose read or read+write scope.
- The full key is shown only once at creation — copy and store it securely.
- Authenticate requests with the header: Authorization: Bearer dk_live_…
- Revoke a key anytime; revoked keys stop working immediately.
REST API (v1)
- GET /api/v1/products — list active products (supports page, pageSize, search).
- GET /api/v1/sales — list sales (supports page, pageSize, from, to date filters).
- All v1 endpoints are scoped to the shop that owns the API key.
Webhooks
- Add a webhook URL and choose events: sale.created, sale.returned, product.low_stock, purchase.created, customer.created.
- We POST signed JSON to your URL when an event fires.
- Verify the X-Dokan-Signature header — it's an HMAC-SHA256 of the request body using your webhook secret.
- Each delivery (and its response status) is logged so you can debug failures.