Case 05New

5. Online Store

Trailhead Shop is an online store of expedition gear: tents, sleeping bags, thermoses, knives, ropes, stoves, lights and backpacks. Your task is to test the whole shopping journey — from searching the catalog to placing an order and tracking its status — against the requirements below, and find all the bugs and usability issues.

  • Browser
  • Bug report
Hunt now!

Requirements

General:

  • The shop is available in English, Russian, German, Spanish and French. Prices are in US dollars ($) in every language version.
  • Anyone can browse the catalog and product pages. Adding to the cart or the wishlist, and placing orders, requires signing in.
  • All data (users, carts, orders, reviews, stock) is stored in your browser. The Reset shop button in the Realbugz menu (the round «Rb» button in the top-left corner of the shop) deletes all of it and restores the initial stock. The same menu opens these requirements in a separate tab.
  • All pages are usable on a phone (screen width from 360 px) with no horizontal scrolling. On a phone the filters are hidden behind the Filters button and the navigation — behind the menu button.
  • The shop header contains the logo (leads to the catalog), search, Wishlist and Cart with item counters, and Sign in or the user's name (leads to the account).

Catalog:

  • The catalog contains 64 products in 8 categories.
  • A product card shows a photo, name, price (and the old price crossed out if there is a discount), rating, the Add to cart button and the wishlist button.
  • Products that are out of stock are marked "Out of stock" and cannot be added to the cart.
  • Search works by product name, is case-insensitive, ignores spaces at the beginning and end and starts from 2 characters. If nothing is found, the message "Nothing found" is shown.
  • Filters: category (several can be selected), price from / to (whole numbers from 0, "from" not greater than "to"; boundaries are inclusive — a product priced exactly at the boundary is shown), "In stock only".
  • Sorting: by popularity (default), price low to high, price high to low, name A–Z, rating.
  • Search, filters and sorting work together. 12 products per page with page numbers below.
  • After returning from a product page, filters, sorting and the page number are preserved.
  • When a guest clicks Add to cart or the wishlist button, the sign-in page opens; after signing in, the user returns to the page they came from.

Product page:

  • Breadcrumbs: Catalog → Category → Product.
  • Photo, name, category, price, description and specifications.
  • Stock: "In stock: N pcs" or "Out of stock".
  • Quantity: from 1 to 10, but not more than the stock.
  • Clicking the wishlist button again removes the product from the wishlist.
  • Reviews: a rating from 1 to 5 stars and a text of 10–500 characters (spaces at the beginning and end are not counted). Only signed-in users can write a review, one review per product. The average rating is shown with one decimal place, next to the number of reviews.

Registration and sign-in:

  • Name: 2–30 characters, letters (Latin, including accented letters such as é, ü, ñ, and Cyrillic), spaces and hyphens.
  • Email: a valid format, unique (case-insensitive).
  • Password: 8–20 characters, at least one letter and one digit. There is a Show button.
  • Password confirmation must match the password.
  • The "I agree to the terms of use" checkbox is required.
  • Errors are shown under the field as soon as you leave it. After registration the user is signed in.
  • If the email or password is wrong, the message "Incorrect email or password" is shown (without specifying which one).
  • The user stays signed in after closing the tab, until they click Sign out.
  • Each user has their own cart and wishlist: after signing out they are hidden, after signing in they come back.

Cart:

  • Each line shows a photo, name, price per item, quantity (− / + buttons and a field), line sum and a Remove button.
  • Quantity: from 1 to 10 and not more than the stock. Trying to set more shows a message "No more than 10 pcs of one item per customer" or "Only N pcs available".
  • Adding a product that is already in the cart increases its quantity (with the same limits).
  • An empty cart shows a message and a link to the catalog.
  • Delivery cost is calculated at checkout. All sums are rounded to cents.

Promo codes:

  • Only one promo code per order. Letter case does not matter, spaces at the beginning and end are ignored.
  • TREK10 — 10% off, only for items without a discount.
  • SAVE15 — $15 off if the items total is $100 or more.
  • FREESHIP — free courier delivery (not express).
  • SUMMER24 — expired: the message "This promo code has expired" is shown.
  • An unknown code shows the message "Promo code not found".

Checkout:

  • Recipient (prefilled with the profile name), phone ("+" and 10–15 digits), city (2–50 characters), street and house (3–100 characters), ZIP code (5–6 digits) — required; comment for the courier — up to 200 characters, optional.
  • Delivery: store pickup — $0; courier — $10, free if the items total after discount is $150 or more; express — always $25.
  • Payment: "Card online" or "Cash on delivery".
  • One click on Place order creates exactly one order. The order gets a number like RB-10001 (in sequence), the cart is emptied, the promo code is reset and the stock is reduced.
  • Card payment is made on the order page while the status is "Awaiting payment": card number of 16 digits, expiry date MM/YY not in the past, CVV of 3 digits. Use the test card 4242 4242 4242 4242.

Order statuses:

  • "Awaiting payment" — right after checkout with "Card online".
  • "Paid, packing" — after card payment, or right after checkout with "Cash on delivery".
  • "Shipped" — after "Paid, packing", when the order leaves the warehouse.
  • "Delivered" — after "Shipped", when the courier delivers the order.
  • "Cancelled" — the user clicked Cancel order; the stock is returned. An order can be cancelled only before it is shipped.
  • The order page shows the status history with date and time.

My account:

  • Profile: the name can be changed, the email cannot. Password change: current password, new password, confirmation.
  • My orders: number, date, total and status; newest first. Clicking an order opens its details.
  • Wishlist: product list, remove, add to cart.