Files
vmall/openspec/changes/add-product-reviews/specs/frontend-mall/spec.md
T

1.9 KiB

ADDED Requirements

Requirement: Live product review area

The mall SHALL render product reviews from the shared selected API adapter instead of display-only comment fixtures. Product detail SHALL show the rating summary (average, count, star distribution) and a paginated list of visible reviews with images and merchant replies, with totals from the API and no invented reviewers or ratings.

Scenario: detail page shows real reviews

  • WHEN a shopper opens a product whose reviews were posted through completed orders
  • THEN the review area shows the aggregated summary and those reviews with their merchant replies

Scenario: detail page without reviews

  • WHEN a shopper opens a product with no visible reviews
  • THEN the review area shows an empty state and a zeroed summary instead of fixture comments

Requirement: Buyer-center pending review and submission

The buyer center SHALL expose a "pending review" entry counting completed order lines awaiting review and a submission form posting rating, text, and optional image URLs through the shared API contract. Submission SHALL require the customer's own unreviewed completed order line, and the pending list SHALL refresh after a successful submission.

Scenario: submit a review from the buyer center

  • WHEN a shopper submits a review for a pending order line and it succeeds
  • THEN the pending list and count drop that line and the review appears on the product detail page

Scenario: anonymous submission requires sign-in

  • WHEN a signed-out shopper opens the pending review entry or submission form
  • THEN the mall sends the shopper to sign in with the current URL as the return destination

Scenario: fixed adapter remains functional

  • WHEN the reviews domain is configured to fixed data
  • THEN the review area, pending-review entry, and submission flows behave deterministically through the same shared client methods