feat(mall): live group-buying page with open or join intent

The group-buying page lists active activities, the group price against the
catalog price, and each open group with its paid-member count and expiry. A
shopper opens a group or picks one to join; either way the activity SKU goes
into the cart and the intent is carried to checkout, which submits it and hides
the coupon picker for that order. Payment and order detail show the snapshotted
group price.

The group-buying fixtures leave the page; the fixed-data adapter still serves
the domain as the rollback path.
This commit is contained in:
2026-09-18 13:22:47 +00:00
parent a7bc476251
commit e540b91491
9 changed files with 338 additions and 26 deletions
+2
View File
@@ -706,6 +706,8 @@ export function seedOrders(userId: string): MockOrderSeed {
total_minor: total,
discount_minor: 0,
coupon_id: null,
group_activity_id: null,
group_id: null,
items,
shipping_address: defaultAddress(),
created_at: createdAt,