POS / Retail testing profile
Category: POS / Retail SaaS · Profile version 1.0 · Validated on: Dukaan AI
What this profile requires
A module counts as covered only when the installation actually exposes it (Phase 3 discovery). Plan-gated modules (Manufacturing, Staff, Online Store, Loans on the Free Trial) are expected to be present but gated — gating behaviour itself is a SaaS-pack case (Section 23.1), not a coverage failure.
A product in this category is checked against 29 modules. A module counts as covered only when the installation actually exposes it; a module discovery cannot see is recorded as a gap to review — behind authentication, nested inside another module, plan-gated or not enabled — never automatically as a product defect.
Required modules (29)
| Module | Module (Urdu) | Notes |
|---|---|---|
| Dashboard | ڈیش بورڈ | — |
| Sales | فروخت | — |
| Billing / POS | بلنگ / پی او ایس | — |
| Quotations | کوٹیشنز | — |
| Sales Orders | سیل آرڈرز | Discovered route slug is 'sale-orders' (singular) while the walkthrough name is 'Sales Orders'; matched by explicit alias in matchSlugs. |
| Delivery Challans | ڈیلیوری چالان | — |
| Purchase Orders | پرچیز آرڈرز | — |
| Inventory / Stock | انوینٹری / اسٹاک | The discovered 'forecast' feature (demand forecast) is a sub-feature of Inventory and is matched under this module. |
| Warehouses | گودام | — |
| Stock Transfers | اسٹاک ٹرانسفر | — |
| Manufacturing (plan-gated) | مینوفیکچرنگ | — |
| Day Close | ڈے کلوز | Historical note (Oct 2026 owner walkthrough): Day Close was the only module that failed to load in every attempt at that time ('This page couldn't load'). Recorded as history only — NOT a current verified defect; the route was discovered (HTTP 200 shell) in Phase 3. |
| Returns / Exchanges | واپسی / تبادلہ | No top-level 'returns' route was discovered in the Phase 3 crawl. Returns may be nested inside Sales/Billing or reachable only through authenticated navigation; from the public surface this is unverifiable. Recorded as a coverage GAP TO REVIEW (Section 22: a gap is not automatically a product defect). |
| Reports | رپورٹس | — |
| Finance | فنانس | — |
| Expenses | اخراجات | — |
| Credit / Udhaar | ادھار | — |
| Suppliers | سپلائرز | — |
| Customers | گاہک | — |
| Staff (plan-gated) | عملہ | — |
| Online Store (plan-gated) | آن لائن اسٹور | — |
| Loans (plan-gated) | قرضے | — |
| Cheques | چیک | — |
| Notes | نوٹس | — |
| Jobs | جابز | — |
| Loyalty | لائلٹی | — |
| WhatsApp Marketing | واٹس ایپ مارکیٹنگ | — |
| AI Assistant | اے آئی اسسٹنٹ | — |
| Settings | ترتیبات | — |
Critical journeys (4)
A journey is the smallest unit a product owner feels end to end. These are the journeys this profile treats as critical; each is linked to test cases, or states plainly why it cannot execute yet.
- Login → Billing → bill print/share — cases: JRN-POS-01, GEN-WEB-BILLING — Blocked: no TEST-QA credentials are configured in the platform secret store, so no authenticated case may execute (Sections 14/31). The journey skeleton is PROPOSED and requires owner approval plus credentials.
- Quotation → Sales Order → Delivery Challan → Bill — cases: JRN-POS-02, GEN-WEB-QUOTATIONS, GEN-WEB-SALE-ORDERS, GEN-WEB-DELIVERY-CHALLANS, GEN-WEB-BILLING — Blocked: no TEST-QA credentials are configured in the platform secret store, so no authenticated case may execute (Sections 14/31). The journey skeleton is PROPOSED and requires owner approval plus credentials.
- Purchase Order → stock-in → inventory reflects — cases: JRN-POS-03, GEN-WEB-PURCHASE-ORDERS, GEN-WEB-INVENTORY — Blocked: no TEST-QA credentials are configured in the platform secret store, so no authenticated case may execute (Sections 14/31). The journey skeleton is PROPOSED and requires owner approval plus credentials.
- Sale → stock decreases → Day Close totals reconcile — cases: JRN-POS-04, GEN-WEB-SALES, GEN-WEB-INVENTORY, GEN-WEB-DAY-CLOSE — Blocked: no TEST-QA credentials are configured in the platform secret store, so no authenticated case may execute (Sections 14/31). The journey skeleton is PROPOSED and requires owner approval plus credentials.
Proposed business invariants (5)
Invariants are the arithmetic rules a product in this category must never break. In MC Testing they are platform proposals (status PROPOSED) seeded from standard practice for the category, each carrying a source note; they bind a product only after its owner approves them, and they are never presented as the product's own documented rules.
- Trial balance: total debits equal total credits for every period.
Platform proposal from standard POS/accounting practice — not yet confirmed against Dukaan's documented rules (Section 17: PROPOSED until owner-approved). - Bill total = Σ line amounts − discount + tax, on every generated bill.
Platform proposal from standard POS/accounting practice — not yet confirmed against Dukaan's documented rules (Section 17: PROPOSED until owner-approved). - Stock after a sale = stock before − quantity sold (per SKU, per warehouse).
Platform proposal from standard POS/accounting practice — not yet confirmed against Dukaan's documented rules (Section 17: PROPOSED until owner-approved). - Day Close total = Σ of that day's bills (net of returns and discounts).
Platform proposal from standard POS/accounting practice — not yet confirmed against Dukaan's documented rules (Section 17: PROPOSED until owner-approved). - A completed return restores the returned quantity to stock and reverses the sale amount.
Platform proposal from standard POS/accounting practice — not yet confirmed against Dukaan's documented rules (Section 17: PROPOSED until owner-approved).
Readiness gates
Category weights (proposed, stored with every score snapshot): Functional correctness 25% · Business logic & data integrity 20% · Security 20% · Integration & reliability 10% · UI/UX & accessibility 10% · Performance 10% · Deployment & operational 5%.
- No open P0 finding (including any confirmed public data exposure).
- Billing critical journey PASS on the TEST-QA account.
- Day-close reconciliation invariant holds on TEST-QA data (after owner approval of the invariant).
- Public-surface suites (smoke, visual, a11y, security) executed with zero unexplained FAILs.
Platform proposal seeded from the Section 25 defaults — owner approval pending. These thresholds are NOT Dukaan's documented release rules (none are published); they take effect only when the owner approves them.
Release blockers
- Any confirmed public data exposure (P0, Section 18.1).
- Any open critical security finding.
- Billing journey (JRN-POS-01) failing on the TEST-QA account.
- A PROPOSED business invariant found violated on TEST-QA data after owner approval of that invariant.
Security requirements
- No confirmed public data exposure (Section 18.1 leak sweep clean) — a confirmed exposure is a P0 release blocker.
- Tenant isolation: one shop's data must never be visible to another shop (verified on the TEST-QA account once credentials exist).
- Security headers present on public pages (HSTS, CSP, nosniff, clickjacking protection) — Section 29.
- Authentication boundaries hold: every non-public route redirects to /login when unauthenticated (Phase 3 verified 29/31 routes).
Required evidence
- Per-case step results with screenshots on failure (browser/visual cases).
- Redacted API snapshots for API cases (no secret values in evidence).
- Leak-sweep probe table (JSON) per security run.
- Lighthouse metrics per profile (standard and low-end reported separately).
Cross-cutting packs on this profile
| Pack | Status | Why |
|---|---|---|
| saas-billing | Attached | Dukaan AI is a multi-shop SaaS with signup, a Free Trial and plan-gated modules (Manufacturing, Staff, Online Store, Loans) — all observed in Oct 2026 and Phase 3. Quota values and trial-expiry behaviour are NOT documented anywhere available to the platform, so those cases carry NEEDS REVIEW notes (Section 23.1). |
| bilingual-rtl | Attached | The product is Urdu-first (Urdu is the server-rendered default; English, Pashto-draft and Persian-draft also offered). The pack's public part (default language, switching, font) is executable now (BI-DUK-01..03); authenticated depth is PROPOSED. |
| import-export | Attached | Inventory/customer import-export is core POS surface. All pack cases are authenticated, so they are defined as PROPOSED + requires_credentials and never executed in this phase. |
| pakistan-payments | Needs review | NOT APPLICABLE-UNKNOWN: whether Dukaan AI offers JazzCash/EasyPaisa collection (for subscriptions or shop-level payments) is undocumented in every source available to the platform (discovery, walkthrough, public pages). The pack is neither assumed present nor assumed absent — it stays NEEDS REVIEW until product documentation or an authenticated inspection settles it. |