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>
16 lines
1.3 KiB
Markdown
16 lines
1.3 KiB
Markdown
## 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 |