Design Multi-branch Retail POS System -- 2
Budget: $750 – $1,500 USD
1. Purpose
This document defines the functional and non-functional requirements for developing a RetailMan-style Point of Sale (POS) system designed for retail businesses operating multiple branches, each running offline, with multiple terminals, multiple stock locations, and credit sales support.
The system must be fast, reliable, offline-first, and suitable for supermarkets, electronics stores, hardware shops, and similar retail environments.
2. System Overview
Each branch operates independently on its own local server and LAN.
Multiple cashier terminals connect to the branch server.
The system works 100% offline at branch level.
A future sync module will allow consolidation between branches when internet is available.
3. Architecture Requirements
3.1 Deployment Model
Branch Server
Hosts database and business logic
Performs backups
POS Terminals
Client machines connected over LAN
No direct database access (via services/API)
3.2 Technology Stack (Preferred)
Platform: Windows Desktop
Language: C# (.NET 8)
UI: WinForms or WPF
Database: PostgreSQL (mandatory for multi-terminal safety)
Printers: ESC/POS thermal + A4 laser
Barcode scanner: USB HID
4. Branch, Location & Terminal Structure
4.1 Entities
Branch
Independent offline unit
Location
Shop floor, warehouse, service counter
Terminal
POS1, POS2, etc.
4.2 Rules
Inventory is tracked per location
Each sale records:
Branch
Location
Terminal
Cashier
Timestamp
5. POS / Sales Module
5.1 Core Features
Barcode scanning
Product search (SKU / name / barcode)
Quantity change, price override (permission-based)
Discounts (line & bill level)
Park / Recall sale
Sales return & refund
Void sale with supervisor PIN
Split payments (Cash / Card / Mobile)
Change calculation
5.2 Printing
80mm thermal receipt (ESC/POS)
A4 invoice printing
Reprint last receipt
5.3 End of Day
Cashier X-Report
Z-Report per terminal and per branch
6. Credit Sales (Accounts Receivable)
6.1 Customer Accounts
Customer code (company-wide unique)
Credit limit
Payment terms (7 / 14 / 30 days)
Opening balance
6.2 Credit Sale Flow
Select customer
Choose “On Account” payment
Invoice posted to Accounts Receivable
6.3 Payments
Full or partial payments
Allocation to invoices
Unapplied credits supported
6.4 Controls
Block sale if credit limit exceeded
Manager override allowed (logged)
6.5 Reports
Customer statement
Debtors aging (0-30, 31-60, 61-90, 90+)
Outstanding balances
7. Inventory Management
7.1 Product Master
SKU, barcode, name
Cost price, sell price
Tax category
Reorder level per location
Supplier link
7.2 Stock Movements
All movements logged in Stock Ledger
Inbound, outbound, adjustment, transfer
7.3 Stocktake
Physical count per location
Variance report
Supervisor approval
8. Purchases & Suppliers
Purchase Order
Receive goods into selected location
Supplier returns
Cost update rules (Weighted Average Cost)
9. Transfers
9.1 Within Branch
Location-to-location transfer
Dispatch → Receive workflow
9.2 Between Branches
Branch-to-branch transfer
Dispatching branch reduces stock
Receiving branch confirms receipt
Mandatory reference numbers
10. Users, Roles & Security
10.1 Roles
Admin
Manager
Cashier
Inventory Clerk
10.2 Permissions
Price override limits
Discount limits
Refund/void approval
Stock adjustment rights
Credit override
10.3 Audit Trail (Mandatory)
Log:
User
Action
Before / after values
Date/time
Terminal
Location
11. Reporting (Location & Branch Aware)
Sales (daily / monthly)
Sales by cashier / terminal
Product sales & margin
VAT/GST reports
Inventory valuation
Low stock per location
Debtors aging
End-of-day summaries
12. Backup & Data Safety
Automated daily backups at each branch
Manual “Backup Now” option
Restore utility with validation
Power-failure safe transactions (ACID compliance)
13. Sync & Consolidation (Phase 2)
13.1 Design Rules (Must be implemented now)
Every record must include:
GUID
BranchId
LocationId
CreatedAt / UpdatedAt
No auto-increment dependency across branches
13.2 Sync Options
Manual export/import (USB)
Online sync when internet available
13.3 Conflict Handling
Product & price: Head Office rules configurable
Stock: Only via transfer documents
Customers: Unique company-wide codes
14. Numbering Rules
Invoice: BRANCHCODE-00000123
Transfer: TR-BR1-BR2-000045
Customer: CUST-000123
15. Deliverables
Full source code ownership
Database schema & scripts
Server installer
POS terminal installer
Admin & cashier manuals
Training + support period
Bug-fix warranty
16. Project Phases
Single branch: multi-terminal, multi-location, credit, reports
Inter-branch transfer module
Sync & head-office consolidation
This document defines the functional and non-functional requirements for developing a RetailMan-style Point of Sale (POS) system designed for retail businesses operating multiple branches, each running offline, with multiple terminals, multiple stock locations, and credit sales support.
The system must be fast, reliable, offline-first, and suitable for supermarkets, electronics stores, hardware shops, and similar retail environments.
2. System Overview
Each branch operates independently on its own local server and LAN.
Multiple cashier terminals connect to the branch server.
The system works 100% offline at branch level.
A future sync module will allow consolidation between branches when internet is available.
3. Architecture Requirements
3.1 Deployment Model
Branch Server
Hosts database and business logic
Performs backups
POS Terminals
Client machines connected over LAN
No direct database access (via services/API)
3.2 Technology Stack (Preferred)
Platform: Windows Desktop
Language: C# (.NET 8)
UI: WinForms or WPF
Database: PostgreSQL (mandatory for multi-terminal safety)
Printers: ESC/POS thermal + A4 laser
Barcode scanner: USB HID
4. Branch, Location & Terminal Structure
4.1 Entities
Branch
Independent offline unit
Location
Shop floor, warehouse, service counter
Terminal
POS1, POS2, etc.
4.2 Rules
Inventory is tracked per location
Each sale records:
Branch
Location
Terminal
Cashier
Timestamp
5. POS / Sales Module
5.1 Core Features
Barcode scanning
Product search (SKU / name / barcode)
Quantity change, price override (permission-based)
Discounts (line & bill level)
Park / Recall sale
Sales return & refund
Void sale with supervisor PIN
Split payments (Cash / Card / Mobile)
Change calculation
5.2 Printing
80mm thermal receipt (ESC/POS)
A4 invoice printing
Reprint last receipt
5.3 End of Day
Cashier X-Report
Z-Report per terminal and per branch
6. Credit Sales (Accounts Receivable)
6.1 Customer Accounts
Customer code (company-wide unique)
Credit limit
Payment terms (7 / 14 / 30 days)
Opening balance
6.2 Credit Sale Flow
Select customer
Choose “On Account” payment
Invoice posted to Accounts Receivable
6.3 Payments
Full or partial payments
Allocation to invoices
Unapplied credits supported
6.4 Controls
Block sale if credit limit exceeded
Manager override allowed (logged)
6.5 Reports
Customer statement
Debtors aging (0-30, 31-60, 61-90, 90+)
Outstanding balances
7. Inventory Management
7.1 Product Master
SKU, barcode, name
Cost price, sell price
Tax category
Reorder level per location
Supplier link
7.2 Stock Movements
All movements logged in Stock Ledger
Inbound, outbound, adjustment, transfer
7.3 Stocktake
Physical count per location
Variance report
Supervisor approval
8. Purchases & Suppliers
Purchase Order
Receive goods into selected location
Supplier returns
Cost update rules (Weighted Average Cost)
9. Transfers
9.1 Within Branch
Location-to-location transfer
Dispatch → Receive workflow
9.2 Between Branches
Branch-to-branch transfer
Dispatching branch reduces stock
Receiving branch confirms receipt
Mandatory reference numbers
10. Users, Roles & Security
10.1 Roles
Admin
Manager
Cashier
Inventory Clerk
10.2 Permissions
Price override limits
Discount limits
Refund/void approval
Stock adjustment rights
Credit override
10.3 Audit Trail (Mandatory)
Log:
User
Action
Before / after values
Date/time
Terminal
Location
11. Reporting (Location & Branch Aware)
Sales (daily / monthly)
Sales by cashier / terminal
Product sales & margin
VAT/GST reports
Inventory valuation
Low stock per location
Debtors aging
End-of-day summaries
12. Backup & Data Safety
Automated daily backups at each branch
Manual “Backup Now” option
Restore utility with validation
Power-failure safe transactions (ACID compliance)
13. Sync & Consolidation (Phase 2)
13.1 Design Rules (Must be implemented now)
Every record must include:
GUID
BranchId
LocationId
CreatedAt / UpdatedAt
No auto-increment dependency across branches
13.2 Sync Options
Manual export/import (USB)
Online sync when internet available
13.3 Conflict Handling
Product & price: Head Office rules configurable
Stock: Only via transfer documents
Customers: Unique company-wide codes
14. Numbering Rules
Invoice: BRANCHCODE-00000123
Transfer: TR-BR1-BR2-000045
Customer: CUST-000123
15. Deliverables
Full source code ownership
Database schema & scripts
Server installer
POS terminal installer
Admin & cashier manuals
Training + support period
Bug-fix warranty
16. Project Phases
Single branch: multi-terminal, multi-location, credit, reports
Inter-branch transfer module
Sync & head-office consolidation