Skip to main content

Use the reviewed order state reference contract

Driver App presents orders through current, past, grouped, logistics, detail, and action-specific views. These views combine returned order data with client configuration, local transformations, cached state, and realtime hints. A label, tab, card position, or visible action is not authoritative workflow state.

This reference intentionally omits internal numeric status values. Integrations must use reviewed semantic categories and server-owned transition contracts.

Availability

SurfaceCurrent public boundary
Current ordersConfigured pending, in-progress, or combined active categories
Past ordersConfigured completed and cancelled categories
DetailReturned status plus client-derived phase and conditional controls
Grouped cardsClient display transformation of related returned members
Logistics requestsSeparate assignment-request lifecycle, not a standard order category
Driver availabilityProfile/account state for receiving work; not a guard on every detail view
Offline/realtimeCached rows and events can alter presentation without proving convergence

Prerequisites

  • Use an authenticated Driver and only records the Driver is authorized to view.
  • Preserve the distinction between returned server state, configured category, client-derived phase, local cache, and realtime event.
  • Re-read authoritative state before any action; never use a card label or control visibility as transition eligibility.
  • Treat grouped members and logistics assignments individually unless a reviewed server contract explicitly provides atomic group behavior.
  • Keep list, detail, socket, storage, location, assignment, and status effects outside documentation runtime.

Responsibility boundaries

OwnerResponsibility
API/order domainAuthoritative order state, ownership, allowed transitions, concurrency, and receipts
Assignment domainLogistics request ownership, expiry, decision, and assignment state
Driver App configurationMap returned states into visible semantic categories
List controllerFilter, paginate, sort, transform grouped rows, and apply local/socket changes
Detail UIRender returned state and client-derived phase; expose conditional controls
Availability ownerDetermine whether the Driver can receive work; not retroactively authorize order actions
Offline/realtime ownersCache and transport hints; not workflow authority

Inputs and result

Categories and client-derived state

Current and past tabs are presentation categories assembled from configuration. Detail components can derive a broader phase from returned fields and use it to show copy or controls. The same order can therefore appear differently across a list, detail, grouped member, cached view, or later event.

Treat the returned server state as one input, not as permission to perform the next action. The server must validate the requested transition against current ownership, state, locks, configuration, and related requirements.

Availability and order access

Driver availability controls receiving-work behavior, but current detail source does not consistently guard visibility or every action with the profile toggle. An unavailable Driver may still have accessible assigned work. Conversely, availability does not establish ownership, assignment, or transition eligibility.

Grouped and logistics distinctions

Standard grouped cards are a client transform over related returned orders, not a user-selectable grouping rule or one atomic server entity. Current composition hides group mutation controls by default; members can still have separate detail navigation.

Logistics cards represent assignment requests with their own expiry, ownership, and decision lifecycle. Do not classify them as ordinary grouped orders or infer acceptance from visibility.

Security and privacy

  • Do not publish internal status codes, private transition maps, endpoints, payloads, record identifiers, socket rooms, or operational data.
  • Enforce ownership and current state on the server for every transition.
  • Use optimistic/local/socket state only as presentation until reconciled with an authoritative read and result receipt.
  • Apply authorization per grouped member and per logistics request; never trust client grouping as an authorization boundary.
  • Treat cached rows, card assets, customer/business data, and event payloads as private and potentially stale.

Limits and failure states

StateRequired interpretation
Current/past tab labelConfigured category, not universal workflow taxonomy
Card visibleReturned/cached/local candidate, not current ownership or eligibility
Control visibleClient condition passed; server acceptance remains unknown
Detail phaseClient-derived presentation, not a portable server state
Driver unavailableReceiving-work state; existing detail may remain accessible
Group cardDisplay transform; members can differ and effects need not be atomic
Logistics requestAssignment candidate with separate lifecycle
Realtime move/updateTransport/local change, not ordered durable truth
Offline cardCached state with unknown freshness
Empty categoryNo visible matching rows, not global absence

Troubleshooting

List and detail show different states

Compare the selected category, cached/realtime state, and client-derived phase. Re-read through the approved order source; do not trigger a status action to force convergence.

A status control is visible for an unavailable Driver

Do not treat availability as the action guard. Verify assignment, ownership, current state, lock, configuration, and action-specific requirements separately.

A grouped card looks ready for one action

Inspect members separately. Current group actions are not productively available by default, and source does not establish atomic success across members.

A logistics request appears in Orders

Use the assignment-request contract. Visibility does not prove that the request is pending, unexpired, owned, or successfully accepted.

Related guides: Find deliveries · View grouped deliveries · Review logistics requests · Understand an active delivery · Edit Driver profile and availability