A cashless kitchen still needs a clear handoff: which table, counter pickup, or packed takeaway. Missing mode blocks pay.
Fulfillment mode is part of checkout UX
Cart-level fulfillment for table delivery, self-pickup, and takeaway — with validation when a table number is missing.
Table delivery
Cart with table delivery selected and a numbered table grid.
Implementation narrative
The cart exposes fulfillment tabs. Table delivery shows a numbered table grid. Self-pickup and takeaway swap instruction copy. Paying without a required table number opens a validation modal instead of WeChat Pay.
- Table delivery: Cart with table delivery selected and a numbered table grid.
- Require a table number: Modal blocks pay until the guest picks a table or changes mode.
- Self-pickup: Counter pickup instructions replace the table grid.
- Takeaway packing: Takeaway mode with packing copy before the pay CTA.

