Files
vmall/openspec/changes/add-flash-sales/specs/flash-sales/spec.md
T
Chengdong ZhangandCursor 53548196f8 docs(openspec): plan shop coupons, accounts, points, flash sales, and group buying
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>
2026-09-18 17:32:08 +08:00

26 lines
1.7 KiB
Markdown

## ADDED Requirements
### Requirement: Shop flash-sale configuration
Shop users SHALL manage only their own timed flash-sale sessions and SKU activity items. An item SHALL have a fixed minor-unit sale price, currency, reserved stock, per-customer limit, and belong to an active SKU owned by the session shop. The service SHALL reject a SKU that already has an overlapping active group-buying activity.
#### Scenario: cross-shop SKU rejected
- **WHEN** a merchant adds another shop's SKU to a flash-sale session
- **THEN** the API rejects it without creating an activity item
#### Scenario: overlapping group-buy SKU rejected
- **WHEN** a merchant adds a SKU that already has an overlapping active group-buying activity
- **THEN** the API rejects it without creating an activity item
### Requirement: Public active flash-sale discovery
Customers SHALL list active sessions and their eligible products with current sale price, remaining activity stock, and sell-through information. Inactive, disabled, or elapsed items SHALL not be purchasable as flash-sale items.
#### Scenario: window closes
- **WHEN** a session end time has passed
- **THEN** it is absent from active discovery and checkout applies the normal SKU price
### Requirement: Flash-sale purchase limit and inventory
Checkout SHALL enforce the activity's remaining stock and each customer's purchase limit atomically with normal SKU stock. A successful order SHALL retain the applied activity item and final price snapshot.
#### Scenario: quantity exceeds limit
- **WHEN** a customer checks out a flash-sale SKU above the remaining per-customer allowance
- **THEN** only eligible activity quantity receives the activity price and any other quantity follows normal availability and price