Superapp / Product requirements / phones

CellNest — product requirements

Version 1.06 features22 requirements10 Must Open appJSONMarkdown

CellNest is an online phone store. Shoppers browse a faceted catalog, choose a storage and colour variant with its own price and stock, compare phones, fill a cart with a per-customer limit, apply coupons and trade-in credit, pick an installment plan and pay through a checkout that reprices the cart, books a delivery slot and verifies the card with a one-time code.

Problem. Phones are expensive and come in many near-identical models and variants. Shoppers must be sure the exact variant lands in the cart at the right price, that limits and discounts are applied correctly, and that the amount they approve is the amount charged.

Users

Goals

Out of scope

Contents

Catalog, facets and sort

Phones are listed in pages with facets, a price range and a sort control.

FR-CAT-01
Must
The catalog pages through all phones with "Show more" and never shows a card twice.
  • The first page reads "Showing 12 of 29 phones"; "Show more" shows "Loading…" then "Showing 24 of 29 phones"; again gives "Showing 29 of 29 phones" and the button disappears.
  • Every card name is unique.
  • The Accessories page shows "Showing 6 of 6 accessories" and no phone cards.
FR-CAT-02
Must
Brand, storage, 5G and condition facets combine with AND, show removable chips, are kept in the URL and clear in one click; a brand filter shows only that brand.
  • Brand "Nova" shows "Nova (7)" and "Showing 7 of 7 phones", every name starting with "Nova", and a "Nova" chip.
  • Adding Storage 512 GB leaves Nova X12 Pro, Nova X12 Pro Max and Nova C14 Plus; after a reload the URL keeps ?brand=Nova&storage=512.
  • Condition "Renewed – Excellent" on top shows "No products match these filters".
  • "Clear all filters" returns to "Showing 12 of 29 phones" with no chips.
FR-CAT-03
Should
The price range filters after a short pause and the Sort-by control orders results; an inverted range is refused.
  • Min 300 and Max 500 give chips "Min $300.00" and "Max $500.00" and only prices in that range.
  • "Price: low to high" starts with Kestrel M10 at $324.00; "Price: high to low" starts with Zenith A13 at $499.00, also reachable with ArrowDown and Enter.
  • Min 600 with Max 400 shows "Min price must not exceed max price" and leaves results unchanged.

Variants, stock and limit

Each phone has storage and colour variants with their own price and stock.

FR-VAR-01
Must
Each storage option adds its price to the phone, and a phone cannot be added without a storage choice.
  • Nova X12 Pro shows "From $899.00" with Storage "— choose one".
  • Add to cart without storage shows "Choose a storage size" and the badge stays 0.
  • 128 GB is $899.00, 256 GB is $999.00 ("or $83.25/mo for 12 months at 0% APR") and 512 GB is $1,149.00.
FR-VAR-02
Must
The cart charges the price of the chosen storage and the exact variant chosen, not a similarly named model.
  • Glacier, 256 GB, quantity 2 shows "Added 2 × Nova X12 Pro 256 GB to your cart", badge 2.
  • The cart has one line "Nova X12 Pro" · "256 GB · Glacier", Qty 2, $1,998.00 ($999.00 each), Shipping Free, with no Pro Max, Renewed or Clear Case line.
  • Glacier 512 GB is a line "512 GB · Glacier" at $1,149.00 with Total $1,149.00.
FR-VAR-03
Should
A sold-out variant cannot be bought, offers a restock alert and remains available in other colours.
  • Nova X12 Pro 512 GB in Sunset reads "Sold out", shows "Nova X12 Pro 512 GB in Sunset is sold out." and has no Add to cart button.
  • "Notify me" with an email shows "We'll email <address> when Nova X12 Pro 512 GB in Sunset is back."
  • Switching to Glacier (keyboard ArrowRight/ArrowLeft works) makes 512 GB buyable at $1,149.00.
FR-VAR-04
Must
A customer may hold at most 3 units of one model across all colours and storages, on the product page, the cart stepper and when moving a saved line back.
  • With 2 Graphite 128 GB, adding 2 Glacier 128 GB fails with "Limit 3 per customer for Nova X12 Pro. You already have 2 in your cart."
  • Adding 1 Glacier succeeds and the badge reads 3; "+" on the Graphite line shows "Limit 3 per customer for Nova X12 Pro" and keeps quantity 2.
  • Moving a saved line back to the cart fails with the limit message and the line stays under "Saved for later".

Cart, coupons and shipping

The cart supports removal with undo, one coupon per order and a free-shipping threshold.

FR-CRT-01
Should
Removing a line asks for confirmation in a modal and an Undo restores the same variant and quantity.
  • "Remove" then "Keep it" leaves the line.
  • "Remove" then "Remove" shows "Removed Orbit S9 from your cart" with "Undo" and "Your cart is empty".
  • Undo within 6 seconds restores the Orbit S9 · 256 GB · Cobalt line at $899.00.
FR-CRT-02
Must
Only one coupon applies per order: CELL10 gives 10% off phones only, a second code replaces the first, a coupon applied twice discounts once, and expired or unknown codes are refused.
  • Nova X12 Pro 128 GB ($899.00) and a $15.00 cable: CELL10 shows "CELL10 applied", discount −$89.90 (phone only) and Total $824.10.
  • SAVE50 shows "SAVE50 replaced CELL10 — one code per order", discount −$50.00 and Total $864.00.
  • SPRING25 shows "SPRING25 expired on 30 Sep"; BOGUS shows "\"BOGUS\" is not a valid code"; SAVE50 stays applied.
  • Removing the phone shows SAVE50 as "—" with "Add $485.00 more to use SAVE50" and Total $20.99.
  • Applying CELL10 to one Nova X12 Pro 128 GB gives −$89.90 and Total $809.10; applying it again leaves both unchanged.
FR-CRT-03
Should
The CELL10 discount never exceeds $100.00.
  • Nova X12 Pro Max 1 TB, subtotal $1,349.00: CELL10 gives −$100.00 (not $134.90) and Total $1,249.00.
FR-CRT-04
Should
Orders under $50.00 pay $5.99 shipping with a progress hint; at $50.00 or more shipping is free.
  • A $15.00 cable shows "Add $35.00 for free shipping", Shipping $5.99 and Total $20.99.
  • Adding a $19.00 and a $29.00 accessory gives Subtotal $63.00, Shipping Free, Total $63.00 and no hint.

Trade-in

A six-step wizard quotes credit for an old phone and applies it to the order.

FR-TRD-01
Must
The trade-in wizard keeps answers on Back, quotes credit by condition and applies the credit to the cart.
  • Next without a device shows "Choose your phone's brand and model".
  • Nova X11 Pro, answers "Yes", "Light scratches", "Good — normal wear", "No, it is off" quote "$323.00 credit" with quote id TQ-… valid 30 minutes.
  • Going Back and changing Body to "Dents, bends or cracks" quotes "$247.00 credit" with earlier answers kept.
  • "Apply credit" shows "Trade-in credit of $247.00 applied", a "Trade-in: Nova X11 Pro (scratched screen)" line of −$247.00 and Total $652.00 on a $899.00 phone.
FR-TRD-02
Should
Locked phones and phones that do not power on get a $0 quote that cannot be applied.
  • Orbit S8 with device lock on shows "$0.00 credit", "Turn off device lock (Find my phone) before trading in." and a disabled "Apply credit".
  • Power "No" shows "Phones that do not power on are recycled for free (no credit)."

Checkout and payment

Checkout takes an address, a delivery slot, a payment plan and a verified card payment.

FR-CHK-01
Should
A guest is sent to sign-in at checkout and returns to checkout with the same cart; wrong sign-in details are refused.
  • Checkout shows "Sign in to check out. Your cart is kept."
  • A wrong password shows an error alert and stays on Sign in.
  • After a correct sign-in checkout opens at step 1 with Full name "Jordan Lee" and Order summary total $499.00.
FR-CHK-02
Must
If prices changed since the cart was built, payment shows the change and the buyer must accept the new total before any charge; the order is placed only after the one-time code is confirmed.
  • Address step offers five day tabs (no Sunday); the "17:00 – 21:00" window can be chosen while the first day 8:00 – 12:00 window shows "Full" and cannot be chosen.
  • Orbit S9 Cobalt 128 GB: "Pay $799.00" shows "Prices changed": "Orbit S9: $799.00 → $749.00", New total $749.00.
  • "Pay new total" opens "Verify it's you" for $749.00 on the card ending 4242 with a 1:30 countdown; the code arrives as a notification about 1.5 seconds later and disappears after about 8 seconds.
  • The correct code shows "Thank you! Your order CN-2026-NNNNNN has been placed.", status Processing, Total $749.00 and the chosen delivery window; the cart is empty.
FR-CHK-03
Must
Three wrong verification codes cancel the payment and no order is created.
  • Total $74.00: wrong codes show "Wrong code. 2 attempts left.", "Wrong code. 1 attempt left." then "Too many wrong codes — payment cancelled" with inputs and Confirm disabled.
  • "My orders" shows no new order.
FR-CHK-04
Should
Errors found by the server return the buyer to the right step with the message beside the field, and a declined card creates no order.
  • Phone "555" reopens step 1 with "Enter a phone number for the courier".
  • Expiry 01/24 reopens step 3 with "Card has expired".
  • Card 4000 0000 0000 0002 shows "Your card was declined. Try another card." with no verification modal.
FR-CHK-05
Should
Instalment plans are offered only for orders of $300.00 or more; 0% plans divide evenly and the 9.9% APR plan costs more in total.
  • Nova X12 Pro 256 GB offers: Pay in full $999.00; 6 months · 0% APR $166.50/mo; 12 months · 0% APR $83.25/mo; 24 months · 9.9% APR with a total above $999.00.
  • 12 months makes the pay button read "Pay $83.25 today (plan 12 mo)".
  • A cart holding only a cable offers only "Pay in full".

Orders and compare

Fresh orders can be cancelled and up to three phones can be compared.

FR-ORD-01
Should
A Processing order can be cancelled within 30 minutes with a reason; afterwards the option is gone.
  • A $29.00 charger totals $34.99 including $5.99 shipping; the order shows status Processing and "Cancel order".
  • Confirming without a reason shows "Choose a reason".
  • "Ordered by mistake" shows "Order CN-2026-… cancelled. Your refund will appear in 3–5 business days.", status Cancelled, "Cancelled: Ordered by mistake" and no Cancel button.
FR-ORD-02
Could
Compare holds at most three phones and can hide identical rows.
  • A fourth tick shows "You can compare up to 3 phones. Remove one first." and the tray reads "Compare (3/3)".
  • "Compare now" shows a table with chip "Helix 9" for both Nova phones and "Quark 4" for Orbit S9.
  • "Show differences only" hides identical rows and keeps Price from, Display and Battery.

Non-functional requirements

NFR-01
Must
Prices, limits, coupon rules and the verification code are checked by the server, not only by the screen.
  • A client request for a lower price or a fourth unit is refused.
NFR-02
Should
Paged lists load without duplicates even when loading is slow.

Glossary and rules

VariantA storage and colour combination of one phone model with its own price and stock.
Trade-in creditA quoted amount deducted from an order in exchange for an old phone.
Verification codeA six-digit one-time code that confirms the card payment.