Skip to content

Feature: Multi-counter ordering flow (create here, pay there) #361

Closed

Description

@khaira777

Feature: Multi-counter ordering flow (create here, pay there)

Summary

Support the workflow where Counter A creates an order and sends it to a payment queue, then Counter B retrieves it by ticket number/QR and completes payment. FloCafe already has durable orders, unpaid bills, idempotent order/payment work and LAN use.

Key design decision

Do not overload kitchen order.status (pending → preparing → ready → served → completed). Introduce a separate field:

checkout_stage: building | awaiting_payment | paid

Optionally a per-station kitchen dispatch setting later (on_order vs on_payment).

What already exists

Proposed UX

COUNTER 1                 COUNTER 2
create order      →       waiting for payment
"Send to payment"          A104  $23.50, A105 $11.20 ...
Ticket A104 / QR    →     scan/click → payment

Acceptance criteria

  • Order reaches awaiting_payment without kitchen seeing it (unless configured).
  • A waiting-panel lists orders by ticket number and total (LAN).
  • checkout_stage transitions are enforced server-side, separate from kitchen status.
  • Tests for lifecycle + idempotency (mirror tests/issue-253 / issue-254).

Activity

  1. added
    type:featureNew capability or enhancement request
    state:needs-designNeeds a design/scope decision before work starts
    on Sep 21, 2026
  2. khaira777 commented on Oct 29, 2026

    @khaira777
    ContributorAuthor

    Scheduled orders (#360 / #1408) just landed on main. Picking this up next to implement owner-configured multi-counter ordering/payment roles, per-device counter selection, real awaiting_payment orders/bills with ticket number + QR lookup, and shared transactional release gating with #360.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:backendBackend (Express/SQLite)area:frontendFrontend (React/Next.js)enhancementNew feature or requeststate:needs-designNeeds a design/scope decision before work startstype:featureNew capability or enhancement request

    Type

    No type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions