Feature Matrix
Live per-feature status
This is the detailed, app-by-app companion to the Delivery › Roadmap (phase plan) and Sprint Reviews (per-cycle verified status). Use the roadmap for the plan, this matrix for the current state of each feature.
Main matrix
| Group | Feature | BO | Client | Sale | MVP1 | PO/BA review | Status | Notes |
|---|---|---|---|---|---|---|---|---|
| System administration | Parameter configuration | P1 | Done | |||||
| Access audit log | P2 | Most recent login | ||||||
| Service packages | Service package config | P1 | Not needed | Done | Will evaluate after launch once Nex opens | |||
| License management | P1 | Not needed | Done | Will evaluate after launch once Nex opens | ||||
| Activation / renewal | P1 | Not needed | Done | Will evaluate after launch once Nex opens | ||||
| User management | Internal user management | P1 | Done | |||||
| Store employee (store admin / owner) | P1 | ✓ | Not done, needs reorg per ops | Done | ||||
| Store employee (cashier, kitchen, warehouse…) | P1 | P1 | ✓ | Not done, needs reorg per ops | Not done | Cashier / kitchen permissions still pending (cashier close to having shift open) | ||
| Account registration + verification (OTP SMS) | P1 | Done | Simplify MC / sale channel declaration | |||||
| POS login | P1 | Done | ||||||
| Authorization | System-wide Casbin RBAC config | P1 | Not done | View per-role permission detail | ||||
| Create INTERNAL role group (template) | P1 | Done | ||||||
| Create MERCHANT role group | P2 | Done | ||||||
| Assign users to role group (N-N) | P2 | Done | ||||||
| Assign users to merchant | P2 | Not done | ||||||
| Store management | Organization management (business entity) | P1 | P1 | Done | ||||
| Store management (outlet / branch) + tax ID | P1 | P1 | Done | Currently using headquarter to apply shared tax ID across stores | ||||
| Sale channel config (POS, QR, online…) | P1 | P1 | Done | |||||
| Business type config (F&B / retail) | P1 | P1 | Not done | Inventory workflows for F&B vs retail | ||||
| Device management | Register POS terminal, printer, scanner, SoundBox | P1 | Done | |||||
| USB / network driver (printer, cash drawer) | P1 | Done | ||||||
| Secondary display | P1 | Done | ||||||
| Product & pricing | Product catalog, variants, combos | P1 | ✓ | Combo deduction shipped (cart-add expansion); addon/FBT use regular PV inventory | Shipped | Combo = ProductVariantTypes.COMBO; cart-add expands to lead + N child SaleOrderItems via ProductBundler; ADDON/FBT auto-inherit physical PV inventory. ADR-0006. | ||
| Price config, price groups, variant-level pricing | P1 | Merged with product pricing screen above | Done | Price group config → per-price detail, per-variant price | ||||
| Product search, barcode scan at till | P1 | Not needed | ||||||
| Inventory | Basic stock (receive / issue / balance) | P1 | ✓ | Not done | Not done | |||
| Barcode scan for receive / issue | P2 | Not needed | ||||||
| Stock count, stock adjustment | P1 | ✓ | Not done | Not done | ||||
| BOM + batch + expiry (F&B, pharma, production) | P2 | Not needed | ||||||
| Realtime stock view at till | P1 | P1 | ✓ | Not done | ||||
| Sales (Order) | Create order at till (POS) | P1 | Done | |||||
| Table management, floor plan (F&B) | P1 | Done | Needs: table info, running revenue, table count per zone | |||||
| Send ticket to kitchen (KDS) | P1 | Not done | ||||||
| Split bill, merge tables, transfer table | P1 | Done | ||||||
| POS shift management (open / close) | P1 | Not done | ||||||
| QR self-order (customer scan to order) | P1 | Not done | ||||||
| Offline mode (sell when network is down) | P2 | |||||||
| Order history | P1 | P1 | P1 | Done | ||||
| Payment history | P1 | P1 | P1 | Done | ||||
| Payment | Cash payment | P1 | Done | |||||
| VNPAY QR payment | P1 | Done | ||||||
| Thermal receipt printing (USB / network) | P1 | Done | ||||||
| PhonePOS payment | P1 | Done | ||||||
| Partners | Vendor info management | P1 | Not done | Basic vendor info first; vendor AR/AP later | ||||
| Vendor AR/AP management | ||||||||
| Individual customer info | ||||||||
| Business customer info (tax ID) | P2 | |||||||
| Loyalty, voucher, rewards, engagement | P2 | |||||||
| Tax declaration | E-invoice provider connection (VNPAY) | P1 | P1 | ✗ | Not done | UI not yet built | ||
| Industry-based tax rate % | P1 | Done | ||||||
| Point-of-sale e-invoice issuance (MTT) | P1 | P1 | Not done | |||||
| Tax-exempt + S1a form (Path A) | P1 | Not done | ||||||
| S2a / S2b-e + form 01/CNKD (Path B/C/D) | P2 | |||||||
| VAT deduction + CIT + TT132 / TT200 forms (enterprise) | Undetermined | |||||||
| Export XML return, submit via T-VAN | P2 | |||||||
| Reports | System-wide revenue dashboard | P1 | Not done | |||||
| Revenue report by org / merchant | P1 | ✗ | Done | |||||
| X-Report, Z-Report per shift | P1 | P1 | Not done | |||||
| Tax report | P1 | Not done | ||||||
| Stock report, best-selling items | P1 | Not done | ||||||
| Profit report (basic P/L) | P1 | Not done | ||||||
| Cashbook | Cash drawer, finance wallet | P1 | ✗ | Done | ||||
| Receipt / payment vouchers | P1 | ✗ | Done | Double-check with accounting if auto-forwarded to accounting system | ||||
| Shift close: cash reconciliation | P1 | Not done | ||||||
| Phase 2 extensions | Campaign config | P2 | ||||||
| AI – forecast, alert, analytics |
Supplemental features (needs review)
Features below exist in code or module docs but are not in the main matrix yet. PO/BA review required to promote or discard.
| Group | Feature | BO | Client | Sale | MVP1 | PO/BA review | Status | Notes |
|---|---|---|---|---|---|---|---|---|
| User management | Forgot password / password reset | identity has endpoint, no UI yet | ||||||
| Email verification (beyond OTP SMS) | identity supports — when to use? | |||||||
| Link multiple login methods (phone + email) | identity supports | |||||||
| Upgrade customer → user account | Self-service flow unclear | |||||||
| Store management | Table zone / allocation layout admin | Distinct from floor plan — zone-level admin | ||||||
| Product & pricing | Unit of measure (UoM) management | inventory has CRUD; needed? | ||||||
| Inventory | Purchase orders (create, confirm, receive, close) | inventory has full flow | ||||||
| Inventory ticket (transfer / internal issue) | inventory-ticket exists | |||||||
| Material & production recipe | Split from P2 BOM? | |||||||
| Inventory locations / multi-warehouse | inventory-location exists | |||||||
| Inventory movement audit log | Stock audit trail | |||||||
| Sales (Order) | Void order / restore to draft | sale has API | ||||||
| Merge / split orders (distinct from table ops) | sale has API | |||||||
| Check splitting (even split / merge checks / per-person allocation) | sale-check — distinct from "split bill" at table level | |||||||
| Kitchen ticket void / rush / served markers | KDS sub-features | |||||||
| Payment | Payment gateway webhook config | payment admin config | ||||||
| Cashbook | Finance categories (receipt / payment) | finance has CRUD | ||||||
| Pay-in / pay-out / safe drop during shift | shift-management records cash movements | |||||||
| Reports | Purchase summary report | sale-report exists | ||||||
| Sales report by product / category | sale-report exists | |||||||
| Phase 2 extensions | Loyalty point transactions | loyalty has CRUD in code |