Capture exclusive promotion composition, empty-group cancel, and mall surface scope so the five marketing changes can be implemented without stacking or lifecycle ambiguity. Co-authored-by: Cursor <cursoragent@cursor.com>
1.2 KiB
1.2 KiB
ADDED Requirements
Requirement: Live flash-sale page
The mall SHALL render active flash-sale sessions and activity products from the shared API client, including authoritative activity price, remaining stock, and sell-through. It SHALL replace SECKILL_SESSIONS and derived fixed product data. Shoppers SHALL purchase through the existing cart and checkout; payment and order-detail views SHALL show the snapshotted activity unit price from the order payload. This change SHALL NOT add flash-sale prices, badges, or claim CTAs to the catalog product-detail page (/goods/[id]); that page keeps catalog SKU pricing.
Scenario: choose live session
- WHEN a shopper selects an active flash-sale session
- THEN its live eligible products and countdown render without direct fixture imports
Scenario: order shows flash snapshot
- WHEN checkout applies a flash-sale price
- THEN payment and order-detail views show that unit price from the order payload
Scenario: product detail stays on catalog price
- WHEN a shopper opens a catalog product that is also in an active flash-sale session
- THEN the product-detail page still shows catalog SKU prices and does not require a flash-sale overlay in this change