Opening or joining a group now sets the activity SKU to quantity 1 instead of
accumulating, so a retry after a failed checkout - or a second click - can no
longer push the line to quantity 2 and then fail the quantity-1 intent with an
opaque error.
The stashed group intent is cleared when the checkout page unmounts without
submitting, and when its SKU is no longer in the cart, so an abandoned intent
cannot silently reprice a later order or keep the coupon picker hidden.
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.