Skip to main content

Schedule and preorder states

Some Customer App experiences present an as-soon-as-possible choice or candidate future slots. A date or time shown by the app is only a candidate for the current context. It is not a reservation, business acceptance, server eligibility decision, or order commitment.

:::warning Important boundary

Scheduling controls can change cart-wide order timing without a final confirmation tap. Do not open, refocus, or revisit a scheduling surface to test whether a previous choice settled.

:::

Standard and catering surfaces differ

The current source has related but distinct timing controllers:

SurfaceCandidate behaviorImportant boundary
Standard moment pageCan show as-soon-as-possible and generic future intervals within a date windowThe generated interval list is not the business's final eligibility decision
Business-aware moment pageCan apply a supplied business schedule and business timezoneBusiness data can be missing, stale, or different from server validation
Catering preorderUses additional lead, range, interval, minimum-day, and maximum-day inputsMalformed or missing inputs can change or empty the candidate list
Inline cart timingCan select a next candidate automatically when catering constraints require itMounting or recalculating can write timing without a tap

Do not assume these surfaces have identical schedules, confirmation behavior, or error handling.

A candidate slot has several gates

GateWhat it contributesWhat remains unresolved
App and project policyWhether scheduling controls can appearCurrent server and business eligibility
Order typeWhich standard or catering rules are consideredCompatibility with every cart and item
Business or menu scheduleCandidate open intervalsExceptions, capacity, closure, and server acceptance
Lead and date limitsEarliest and latest candidate windowsWhether the selected slot is still valid later
Interval generationCandidate start and end labelsBusiness capacity or reservation
Cart and fulfillment contextCurrent delivery, pickup, reservation, or other timing inputsPayment, placement, and order settlement
Server validationAuthoritative acceptance should occur against current contextDeployment behavior remains unconfirmed in this guide

A visible slot can expire, disappear, or be rejected after any relevant input changes.

Timezone, clock, and interval boundaries

Scheduling can cross device, business, and server clocks. The app can calculate with the business timezone when one is available and otherwise fall back to a local device interpretation. Display formatting can then differ from the value stored or sent for reconciliation.

Day boundaries, daylight-saving changes, ambiguous or nonexistent local times, overnight business schedules, interval end times, and clock drift can all make a displayed candidate differ from business or server eligibility. Treat the business and server's current accepted time context as authoritative; a device label alone is not proof.

Selection, storage, and navigation settle separately

StageWhat may changeWhat it does not prove
Date highlightLocal date and candidate listAny cart timing write
Time highlightLocal time state or an immediate moment change, depending on surfaceServer acceptance or reservation
Global moment changeLocal order context, storage, or a server update can beginThat every write completed
Cart refreshOne or more carts can receive recomputed timing contextSame revision across every cart
Navigation awayThe scheduling surface closes or another page opensThat the timing update settled
Checkout or order stateLater stages use the current timing contextPayment, placement, or order completion

The current controller does not consistently wait for the timing update before calling the next callback or navigating away. A changed label or closed screen is therefore not a settlement receipt.

Automatic and no-tap changes

Several source paths can change scheduling without a deliberate final action:

  • catering cart timing can select the next candidate during recalculation;
  • a stored scheduled time that reaches expiry can reset to as-soon-as-possible;
  • focusing one preorder surface can reset the current moment to as-soon-as-possible;
  • changing a date can clear the prior time or moment before another time is accepted; and
  • shared order context can propagate one timing change beyond the visible surface.

These are timing mutations, not passive display refreshes. Do not interpret an automatic fallback as customer confirmation, business availability, or a safe replacement for an expired slot.

Multi-cart and subtype consequences

A shared moment can affect more than one current cart. In a multi-business checkout, businesses can have different schedules, timezones, lead limits, interval rules, and eligibility. One candidate cannot be treated as valid for the whole group without an exact current per-cart result.

Gift, school, service/reservation, catering, delivery, pickup, and other order subtypes can have separate ownership and scheduling rules. A timing choice does not preserve a service reservation, student context, cart validity, payment state, or group completeness.

Unknown and partial outcomes

Observed stateSafe interpretation
Date changed and prior time disappearedLocal clearing may have occurred; server/cart state is unresolved
Candidate became selected automaticallyA no-tap write may be pending or partial
Screen closed after a selectionNavigation and timing settlement remain separate
Scheduled label changed to as-soon-as-possibleExpiry or focus logic may have reset timing; do not infer customer intent
One cart reflects the time and another does notMulti-cart timing is partial
Slot disappears after refreshCandidate generation or eligibility changed; no reservation is proved
Error or lost response appearsLocal, stored, cart, server, socket, and plugin results can disagree
Checkout or order proceedsTiming, payment, placement, and order settlement remain separate

While the result is unknown, do not repeat the selection, reopen the timing surface, change the device clock, or place another order as a diagnostic.

Troubleshoot safely

What you observeSafe next check
Scheduling controls are absentTreat scheduling as unavailable for the current context; do not infer a global fault
No candidate slots appearRecheck the current business and order context without changing time or cart state as a test
Candidate labels look offsetTreat device/business/server timezone authority as unresolved
A slot ends outside business hoursDo not use it; interval-end eligibility must be reconciled
Selection closes the screen too quicklyTreat the timing write as unknown; do not repeat immediately
A stored time resets automaticallyReconfirm current context through an approved path; do not treat the fallback as intent
Multi-cart times disagreePreserve per-cart uncertainty; do not infer group readiness
Account, project, business, or order type changedDisregard prior timing results and rely only on the current context

Support reports should use only a value-free state class, such as “scheduled moment unresolved.” Do not include real dates, times, timezones, business or customer data, cart/order identifiers, links, or private screenshots.

Privacy and accessibility

  • A scheduled time can reveal location, routine, fulfillment, school, service, or event context. Keep timing details out of documentation and support notes.
  • Date tabs, time choices, as-soon-as-possible state, selected/disabled/busy/ expired/error state, and interval start/end need explicit accessible text.
  • Horizontal date lists and time grids must remain operable without relying on color, borders, motion, or haptics.
  • At large text sizes, slot labels and warnings should reflow without hiding the selection state. Focus should return predictably after confirmation, Back, or automatic expiry.
  • Screen-reader, keyboard, switch, safe-area, Back, reduced-motion, timezone, and daylight-saving behavior require current-platform verification; this guide does not certify them.

Recertification triggers

Revalidate this reference after changes to standard or catering controllers, business/menu schedules, lead/range/interval/date-limit policy, timezone or DST handling, interval ends, device/server clock use, global moment storage, expiry timers, focus behavior, automatic selection, navigation, multi-cart propagation, order subtypes, payment/placement, sockets/plugins, or accessibility primitives.

Also recertify after changes to API deployment authority, server eligibility, operation versioning, idempotency, stale-response cleanup, or unknown-outcome recovery.