[FE] 39.18 As Pixally Owner, I can create discount codes (uppercase alphanumeric, 3–20 chars, unique, Random generator), configure Percentage or Fixed type, set Duration and Valid Period independently, view listings with status badges (Active/Expired/Sche

FRD Link
https://docs.google.com/document/d/1B2FP_sS96tjbl-wZKrIzRSfOzxAie5oEO8A11txFooE/edit?tab=t.bb4yaa616ot7#heading=h.9wh1kn5t4tp1

Figma Link
https://www.figma.com/design/ej0kxwP45mDKmZCZfAJ5O8/Pixally?node-id=28190-87171&t=ggr1H3F3XW6HE1m8-0

User Flows
FRD6 – Create discount flow, listing/search/filter flow, edit discount flow, delete discount flow

Functional Logic
FRD6 – Code validation (uppercase A-Z and 0-9, 3–20 chars, unique, no reuse of deleted codes, Random button generates unique valid code); Discount Type toggle (Percentage 1–100% / Fixed $); Duration field (independent from Valid Period, value + unit); Valid Period (Valid From, Valid To – end > start); Status logic (Active: today within valid period; Expired: past Valid To; Scheduled: Valid From in future); Redemption counter increments per subscriber use; Edit field-lock rules (Code always locked, Type always locked, Amount locked if redemptions ≥ 1, Valid From locked if currently Active); Delete behavior (existing subscriber discounts honored until duration ends; deleted code still visible in Reports; code cannot be reused)

Acceptance Criteria
FRD6 – Create form opens; valid code saves and appears in listing; code < 3 chars, > 20 chars, lowercase, special chars → inline errors; duplicate active or deleted code → inline error; Random generates valid unique code each click; Percentage/Fixed toggle works; Amount validation per type; Duration and Valid Period save independently; listing shows correct columns and status badges; Edit opens with all fields pre-filled; field-lock rules enforced; Delete confirmation shows retention message; deleted code disappears from listing; subscriber retains discount until duration ends; deleted code appears in Reports with usage data; deleted code cannot be reused

Edge Cases
FRD6 – Code exactly 3 chars → valid; code exactly 20 chars → valid; 100% percentage discount → valid; Duration 0 → error; Valid To before Valid From → error; Empty required fields on save → inline errors per field; no discounts exist → empty state 'No discounts found. Create your first discount.'

Test Cases
TC-DISC-001, TC-DISC-002, TC-DISC-003, TC-DISC-004, TC-DISC-005, TC-DISC-006, TC-DISC-007, TC-DISC-008, TC-DISC-009, TC-DISC-010, TC-DISC-011, TC-DISC-012, TC-DISC-013, TC-DISC-014, TC-DISC-015, TC-DISC-016, TC-DISC-017, TC-DISC-018, TC-DISC-019, TC-DISC-020, TC-DISC-021, TC-DISC-022, TC-DISC-023, TC-DISC-024, TC-DISC-025, TC-DISC-026, TC-DISC-027, TC-DISC-028, TC-DISC-029, TC-DISC-030, TC-DISC-031, TC-DISC-032, TC-DISC-033, TC-DISC-034, TC-DISC-035, TC-DISC-036, TC-DISC-037, TC-DISC-038, TC-DISC-039, TC-DISC-040, TC-DISC-041, TC-DISC-042, TC-DISC-043, TC-DISC-044, TC-DISC-045, TC-DISC-046, TC-DISC-047, TC-DISC-048, TC-DISC-049, TC-DISC-050, TC-DISC-051, TC-DISC-052

Details

Key

PX-6248

Type / Priority

Status

QA Review

Sprint

Sprint 31

Epic

Super Admin Portal_Gawd Mode

Assignee

Kushal Brahmbhatt

Project

Pixally CRM

FRD

QA Status

—

Created

9/25/2026, 11:03:54 AM

Updated

9/25/2026, 11:08:34 AM

Last synced

9/25/2026, 11:08:34 AM
QA Test Cases

No test cases generated yet.

Failures & Comments (0)

No failures or comments.