Gate 2 9/9 passed + 51/51 regression. nix-cafe f49d8f8, no migration.
The flat ghost button becomes a two-state card: an amber “Promotion Available”
call-out with an Apply Promo CTA, and a green “Promotion Applied” card
showing the saved amount. Each freed line now shows a green “✓ APPLIED”
chip and a bold FREE price with the original struck through.
Eligibility — “some items have promotions, some don’t” (Narong).
Eligibility is by category (e.g. drinks yes, food no): a mixed cart frees only the
eligible drinks while the sandwich stays full price. Per Narong’s call the card is
always shown when the shop has an active promotion — it never hides on a mixed
cart. When an Apply can’t free anything it now explains why instead of doing nothing silently:
“Add one more eligible item to get one free” (a lone eligible item) or “No eligible
items in this order” (nothing qualifies).
1 — Available: Americano ($3.00) + Espresso ($2.50) in the cart. The amber card offers “Apply Promo” — not yet applied. Click to zoom.
2 — Applied: the cheaper line (Espresso) is freed — bold FREE, original $2.50 struck through, green “✓ APPLIED” chip. The green card reads “You saved $2.50” with a Remove Promo button, and a “✓ … applied” line sits under the Total.
3 — Remove Promo returns the cart to the amber available state; the FREE label and APPLIED chip are gone, full prices restored.
4 — A single eligible item can’t pair, so Apply shows “Add one more eligible item to get one free” — the card stays visible (always-on), nothing is charged as free.