Archive add-favorites and split-catalog-into-product-category-brand

- Sync favorites capability spec and frontend-mall live-favorites
  requirement into openspec/specs/
- Split catalog spec into new category and product capability specs;
  remove now-empty catalog spec
- Move both completed changes to openspec/changes/archive/
- Ignore .superpowers/ scratch directory
This commit is contained in:
Chengdong Zhang
2026-09-22 16:27:42 +08:00
parent 13cd598a45
commit 4d2ee3b0bf
18 changed files with 83 additions and 4 deletions
+19
View File
@@ -211,3 +211,22 @@ The mall SHALL render active group-buying activities and open groups from the sh
#### 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
### Requirement: Live customer favorites
The mall SHALL use the shared selected API adapter for product and shop favorite state. Product and store detail controls SHALL load persisted state, require customer authentication, prevent duplicate in-flight mutations, and survive reloads. The buyer-center favorites page and dashboard preview/counts SHALL render paginated live favorite results and remove targets through the API instead of reading `MOCK_FAVORITES` or mutating local-only state.
#### Scenario: product favorite survives reload
- **WHEN** a signed-in shopper favorites a product and reloads its detail page
- **THEN** the favorite control remains selected from backend state
#### Scenario: anonymous favorite requires sign-in
- **WHEN** a signed-out shopper uses a product or store favorite control
- **THEN** the mall sends the shopper to sign in with the current detail URL as the return destination
#### Scenario: remove from buyer center
- **WHEN** a shopper removes a product or shop from the favorites page
- **THEN** the API state, visible list, dashboard preview, and visible count reflect the removal without fixture mutation
#### Scenario: fixed adapter remains functional
- **WHEN** the favorites domain is configured to fixed data
- **THEN** detail controls and buyer-center favorite flows behave deterministically through the same shared client methods