Skip to content

PRD: Backoffice Portal

ModuleCommerce (CORE-03)PRD IDPRD-BOP-001
StatusPlannedOwnerHải Cao · Phát Nguyễn
Date2026-06-11Versionv0.1 (draft)
Packages@nx/commerce · @nx/helpdesk · apps/boURDBOP
EpicBANA-1337WindowJun (onboard+config) · Jul (import) · Aug (support+dashboards)

TL;DR

An operator runs a client end-to-end from the BO alone: onboard (org → merchant MST → channels → business type), configure everything the client needs, import their catalog from one Excel file, handle their support tickets, and watch adoption on an admin dashboard.

1. Context & Problem

The pieces exist but don't make a portal: onboarding BE and a BO wizard exist; config screens exist for category templates, tax groups and licensing - but payment-methods config and transaction lookup are buried at merchant scope; Excel import doesn't exist at all; helpdesk has a rich backend and a client-side ticket UI but no BO ticket dashboard; and there is no admin view of stores/transactions. Operating a client today means hopping tools and asking devs.

2. Goals & Non-Goals

Goals - onboard from BO alone (URD-BOP-001) · full config from BO (002, 008) · admin-level transaction lookup (003) · bulk Excel import with row errors + duplicate-safe re-import (004) · Support Center in BO (005, 006) · admin dashboard (007).

Non-Goals - client-side (merchant-facing) screens · usage/behaviour analytics beyond the two dashboard views · API logs (later).

3. Success Metrics

MetricTarget
Time to onboard + configure a clientOne BO session, no dev help
Catalog importSpreadsheet → sellable catalog, bad rows reported by row

4. Personas & Use Cases

BO operator (NEXPANDO/VNPAY ops): onboards & supports clients · Admin: watches adoption (stores, transactions).

5. User Stories

  • As an operator, I onboard a signed client and configure packages, templates, tax groups in one sitting.
  • As an operator, I import the client's product list from Excel and fix only the rows it flags.
  • As a support agent, I work tickets (list → detail → resolve) inside the BO.

6. Functional Requirements

Delivers URD BOP URD-BOP-001…008 (Musts 001-005).

7. Non-Functional Requirements

  • Import handles thousands of rows with clear progress; all BO actions respect per-merchant authorization (E11).

8. UX & Flows

  1. Onboard (Jun): wizard org → merchant (MST) → channels → business type → done-checklist.
  2. Configure (Jun): packages & licenses · industries & category templates · tax groups · payment methods (admin level) · transaction lookup (admin level).
  3. Import (Jul): upload Excel → validate → row-level errors → apply → re-import safe.
  4. Support + monitor (Aug): ticket list/detail, SLA/category/agent config; dashboard of stores by industry + transactions by store.

9. Data & Domain

  • Onboarding reuses the existing atomic endpoints; import introduces an Excel pipeline (categories → products/variants → prices → tax, in dependency order); support reuses the helpdesk backend.

10. Dependencies & Assumptions

DependencyWhy
Per-merchant authz + BO user split (E11, Jun)Operator/admin roles gate the portal
Retail templates (PRD-RTL-001)Industry templates config covers retail
Helpdesk backendSupport Center front

11. Risks & Open Questions

  • Import file format: lock the template early (one sheet vs multi-sheet).
  • Helpdesk package had build issues historically - verify before the Aug slice.

12. Release Plan & Launch Criteria

Jun: onboard + config slices. Jul: import. Aug: support + dashboards. Launch: AC-BOP-01 passes - a client onboarded, configured and imported from BO alone.

13. FAQ

  • Is this a new app? No - it's completing apps/bo into a true operations portal.

References

URD BOP · Phase 2 - By Month · Epic BANA-1337

Proprietary and Confidential. Unauthorized copying, distribution, or use of this software is strictly prohibited.