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.3 KiB
1.3 KiB
ADDED Requirements
Requirement: Live group-buying page
The mall SHALL render active group-buying activities and open groups from the shared API client, including group price, required member count, current paid-member count, and expiry. It SHALL let an authenticated shopper choose to open or join a group and replace derived fixture counts. Checkout SHALL submit the open-or-join intent for a single activity SKU at quantity 1. Payment and order-detail views SHALL show the snapshotted group price. This change SHALL NOT add group price or join CTAs to the catalog product-detail page (/goods/[id]); opening and joining happen from the group-buying page and checkout intent.
Scenario: open a group
- WHEN a shopper selects an active group-buying product and chooses to open a group
- THEN the checkout intent identifies the activity and requests a new group
Scenario: order shows group snapshot
- WHEN checkout succeeds with group-buy intent
- THEN payment and order-detail views show the server group unit price from the order payload
Scenario: product detail stays on catalog price
- WHEN a shopper opens a catalog product that also has an active group-buying activity
- THEN the product-detail page still shows catalog SKU prices and does not require a group-buy overlay in this change