Understand business page states
Customer App can open a business from discovery, another in-app handoff, or a recognized store/product link. The page can combine business information, menu and product data, reviews, favorites, cart state, order progress, remote media, and provider-backed destinations.
These layers can load and settle independently. Opening the page is not guaranteed to be read-only, and a visible business or product does not prove current availability, authorization, cart settlement, or deployed behavior.
Entry and business-read states
| State | Safe interpretation |
|---|---|
| Entry requested | Navigation targeted a business reference; ownership, availability, and freshness remain separate |
| Loading | Business, category, product, configuration, cart, order, media, or supporting state is unresolved |
| Business visible | A returned business projection is being presented for the current order context |
| Error or unavailable | Current read/navigation failed or returned no usable business; existence and private state remain undisclosed |
| Closed-looking | Returned schedule/open presentation indicates a closed state for one revision; future serviceability and cart/order settlement are separate |
| Disabled or ineligible-looking | One returned/configured rule blocks current presentation/action; another account/project/order context is not disclosed |
| Empty menu | No usable category/product rows are shown for this result; global product absence is not established |
Returning to the business list is navigation only. It does not cancel reads, roll back cart work, or prove the business no longer exists.
Returned configuration boundary
Business presentation can depend on project configuration, business configuration, theme, order type, address, schedule, plan, feature, account, and returned data. Configuration determines whether many controls and sections appear, but it is not customer authorization or financial/cart authority.
Public guidance must not reveal configuration keys, protected/internal values, provider credentials, or assumptions about deployed configuration. A returned business graph can contain more configuration and relation data than this page needs; Customer App should receive a purpose-minimal projection.
Missing, malformed, differently typed, stale, or filtered configuration must fail safely. It must not enable quick cart mutation, provider egress, or a private section by default.
Information, Menu, and Reviews are separate
| Section | What it can present | What it does not prove |
|---|---|---|
| Information | Returned description, address, schedule, social/contact, delivery, or business detail | Current serviceability, provider approval, contact completion, or legal accuracy |
| Menu | Categories, products, featured/search/lazy-loaded state | Complete catalog, current availability, consistent pagination, or safe cart mutation |
| Reviews | Returned rating/review summary and a reviews handoff | Moderation, publication, reviewer identity, current average, or eligibility to submit |
Tabs, modals, section headings, ratings, category position, or selected styling are presentation state. They do not make these reads equally fresh or authorize an external destination.
Favorite, cart, and order-progress handoffs
Favorite business/product state, an existing-cart prompt, Checkout handoff, and an order-progress card are separate owners.
- A favorite icon or changed favorite state does not prove durable save or current account ownership.
- A cart badge/prompt does not prove cart validity, freshness, Checkout readiness, or successful product changes.
- Order progress can perform a private order read and can depend on socket state; it is not a business-page freshness receipt.
- Opening Order Details, Checkout, cart, messages, or another destination starts that surface's authorization and effect boundaries.
Do not use one handoff to diagnose another layer.
Opening the page can change cart state
The current business page can read a locally stored reorder-adjustment marker on mount. If the current cart contains products marked unavailable, it can start removing them and then update the cart or show an alert. This is passive reorder cleanup, not informational browsing.
The page can also clear local markers and update search/category state. A loaded page, removed row, alert, cart count, or returned Checkout option does not prove that every removal, cart recalculation, socket event, plugin, or storage effect settled.
Deep-link and quick-add effects
A recognized store/product handoff can load a target product after the business read. When one-click add is enabled and the product meets current UI conditions, opening/selecting that product can immediately add it to or update the cart instead of opening customization.
Therefore:
- a store/product link is not passive navigation;
- the business/product reference is not cart authorization;
- config and simple-product checks are not server eligibility;
- haptic, toast, cart row, or navigation is not an idempotent add/update receipt; and
- replayed, stale, foreign, or late link results must not mutate a current cart.
This guide does not provide deep-link, quick-add, favorite, cart, Checkout, or order procedures.
Remote media, providers, and privacy
Business header, logo, gallery, product, marker, banner, review, or social/media content can load from remote or provider-controlled locations. Contact, social, map, review, media, or other external destinations can disclose business, account, order-context, device, network, or navigation information.
Remote media must use allowlisted/minimized sources, safe placeholders, bounded dimensions, accessible alternatives, and current-purpose policy. Loading or opening media does not prove provider trust, content safety, freshness, consent, availability, or external-action completion.
Do not include real business/order/cart values, links, images, provider content, configuration, or identifiers in documentation, logs, screenshots, or support notes.
Freshness and unknown outcomes
| Situation | Safe interpretation |
|---|---|
| Business loads but menu does not | Business and catalog revisions differ; product availability is unknown |
| Menu changes but cart does not | Catalog/cart recalculation can be stale or failed |
| Closed/open state changes | Schedule, timezone, device/server clock, and returned revision can differ |
| Favorite changes then reverts | Local/API/account state did not settle consistently |
| Reorder cleanup removes only some products | Exact per-product/cart result is partial |
| Quick-add response is lost | Cart add/update is unknown; do not repeat automatically |
| Order progress/socket differs from the business/cart | Independent order state can be stale or differently authorized |
| Account/project/order context changes | Reject prior business/config/cart/order/media/provider callbacks |
Troubleshoot safely
- Distinguish business, menu, reviews, favorite, cart, order progress, and provider state before interpreting a mismatch.
- Do not reload, reopen, replay a link, quick-add, favorite, or change the cart to test freshness.
- Do not infer current availability from open/closed styling or a product row.
- If reorder cleanup or quick-add is unknown, preserve the cart mismatch and do not repeat.
- If remote/provider content is missing, do not paste another URL or enable a permission/provider to test it.
- Use value-free descriptions such as “business/menu revisions differ” or “quick-add settlement unknown.”
Accessibility
Entry, loading, error, closed, disabled, empty, stale, Info/Menu/Reviews tabs, favorite, cart, order progress, quick-add, remote media, provider, alert, and unknown states need clear semantic names, roles, values, consequences, focus order, and announcements. Do not rely on color, rating stars, selected tabs, cart badges, product images, or schedule styling alone.
Large text, keyboard, screen reader, safe area, reduced motion, haptics, modal, Back, and focus return must not hide state or trigger duplicate cart/provider actions. These are verification requirements, not current accessibility, privacy, provider, catalog, cart, or order certification.
Recertification triggers
Revalidate after changes to business entry/store-product routing; business DTO/ configuration filtering; loading/error/closed/disabled handling; Info/Menu/ Reviews sections; category/search/lazy pagination; favorite/cart/Checkout/order progress; reorder cleanup; quick-add; sockets/plugins/storage; remote media/ providers; account/project/order-context cleanup; privacy; or accessibility.
Related guides: Browse businesses · Business information and reviews · Browse menus and categories · Customize a product · Understand favorites · Review your cart before checkout