Skip to main content

Review suggested products before checkout

Customer App can conditionally show a review list of suggested products near a cart or checkout handoff. Suggestions can be personalized based on the customer's previous orders. Each suggestion card has a button to add the product directly to the cart with one tap, and the customer can also open the product to review its options before adding it.

:::info Suggestion actions

Selecting a suggestion card opens Product Details for a separate review, where the customer can adjust options before adding the product. An add button on the suggestion card adds the product to the cart directly, without opening Product Details.

:::

Suggestion modes are different​

ModeCandidate sourceNotes
Business-product modeReads products for the current business and retains suggestion-marked candidatesBusiness, order type, catalog, inventory, and cart context can change independently
Supplied-array modeA caller passes a product array for local filtering and displayCaller authority, freshness, completeness, and server filtering depend on the integration
Cart-personalized modePersonalized by order history: suggestions based on the customer's previous ordersAvailability depends on the current cart and project configuration

Caller and cart context must agree​

A suggestion surface can receive business, cart, supplied products, current cart products, navigation callbacks, and checkout callbacks from different callers. Those inputs must all belong to the same authorized account, project, session, business, cart, order type, and revision.

Missing or inconsistent context can produce an error state, an empty list, an unfiltered fallback, a stale product, or a handoff for the wrong cart. A cart or business reference is not authorization to read customer history or infer private interests.

The visible page is review and handoff only​

The full-page surface can show current cart contents, a suggested-product list, and actions that continue toward Checkout or return to browsing. Each suggestion card offers an Add action that adds the product directly to the cart, and selecting the card opens Product Details to review options first.

Visible actionWhat it can startNotes
Add button on a suggestion cardAdds the product to the cart directlyCurrent price and availability still depend on the business and order context
Suggestion card (outside the add button)Product Details reviewLets the customer adjust options before adding
CheckoutSingle-cart Checkout handoff or a caller-provided continuationCart readiness, payment, and order creation happen during Checkout
Add more productsReturn to the prior browsing surface—
Back/closeNavigation away from the page—

Filtering and fallback boundaries​

The source can filter candidates marked for upselling and remove products that already appear in the current cart. Some inventoried repeats are treated differently from other repeats. The UI can also apply another current-cart filter before rendering.

That filtering does not prove current menu availability, inventory, price, options, school/student policy, schedule, serviceability, or that a supplied array was authorized and complete. If a filtered or server result is missing, do not substitute an unreviewed caller array or broader catalog as equivalent.

Loading, empty, and error states are incomplete​

The visible list renders only when loading has ended, no controller error is present, and retained candidates exist. The current full-page layout does not provide a dedicated loading, empty, or error explanation for every branch; cart/checkout actions can remain visible even with no suggestions.

Observed stateWhat it means
No suggestion rowsThe list can still be loading, filtering, or simply has no candidates for this cart
Cart summary visible firstShows the current local cart while suggestions load
Checkout button visibleCheckout remains available independent of whether suggestions finished loading
Page closes after cart becomes emptyThe empty cart closes the page; suggestion loading stops
Error without visible messageThe suggestion list did not load for this session

Absence of a suggestion is not evidence that a customer lacks history or that a product is unavailable.

Redirect and race conditions​

A caller-side redirect can open the upselling page as soon as suggestion loading ends, including with an empty supplied array. Other effects react to cart loading, cart-product changes, focus, business context, and suggestion result length. Late or reordered results can therefore navigate, filter, or close a surface against a newer cart.

Every request, redirect, Product Details handoff, Checkout handoff, and empty- cart close must be bound to one current generation. Stale or foreign results must be ignored rather than applied to the new account, project, business, or cart.

Personalization and privacy​

Cart contents, customer identity, product interactions, order history, and inferred preferences are private. A safe recommendation service must derive context only from an authorized current cart/customer, minimize history and returned product data, avoid sensitive inference, and provide a clear purpose and retention boundary.

Suggestions in cart-personalized mode reflect the customer's own order history. They are not based on other customers' identities, purchases, or private data, and a customer's history is never exposed to another customer.

Unknown outcomes and safe troubleshooting​

SituationSafe response
Suggestions differ after returningTreat the list and cart as different revisions; do not infer why
Product Details shows different availabilityUse Product Details only as its current review state; do not assume the suggestion was valid
Cart becomes empty or changesKeep the upselling and Checkout handoffs unresolved
No list or error is shownDo not refresh, reopen, or change the cart to diagnose recommendation state
Checkout opens unexpectedlyTreat navigation as a handoff only; do not continue to payment as a test
Account, project, business, or cart changedReject prior suggestions and callbacks

Support reports should use only a value-free state class such as “suggestion context unresolved.” Do not include cart contents, customer/history data, product or business details, account/cart/order identifiers, recommendation reasons, links, or private screenshots.

Accessibility​

  • The page needs explicit loading, empty, error, review-list, Product Details, Checkout, Add more, Back, stale, and unknown state semantics.
  • Suggestion cards need an accessible label that distinguishes the add button from opening Product Details, so screen readers announce the correct control.
  • The horizontal list, cart summary, and footer actions need predictable focus order without relying on images, price, color, or position alone.
  • At large text sizes, labels and handoff boundaries should reflow without hiding Checkout or return choices. Focus must not jump after late list or cart results.
  • Screen-reader, keyboard, switch, safe-area, Back, and reduced-motion behavior can vary by device and app version.