Commerce & Orders

Menu Item Detail

A full-screen item detail view for restaurant ordering. It displays the item image, description, configurable option groups, nutrition info, and allergens, and lets customers choose a quantity and add the item directly to the cart.

Flow positionItem detail & option selection

The detail and option-selection step before adding to cart.

Data sourcenavigationParams

Reads all item data passed by Menu Item Card.

Cart integrationonAddToCart

AppPlayer-injected callback updates the shared cart state.

What it does

Four things worth knowing

Configurable option groups

Renders option groups - such as size, extras, or cooking preference - from the item data passed in navigation params. Default selections are applied automatically.

Nutrition and allergen info

Displays calories, macros, and allergen tags when present in the item payload, helping customers make informed choices.

Quantity selector

Inline plus and minus controls let customers set how many of the item they want before adding to the cart.

Add-to-cart and navigation

Calls the AppPlayer-injected onAddToCart with the item plus selected options and quantity, then optionally navigates to the cart, menu, or orders screen.

Builder setup

Add it as your shared item detail screen

Where to find itAdd it to your shared detail screen

  1. Component picker → Commerce & OrdersMenu Item Detail.
  2. Drop it onto a dedicated item detail screen.
  3. Point all Menu Item Card taps to this one detailScreenId.

Before you publishThree things to check

  1. Set cartScreenId so “View Cart” in the confirmation sheet has a valid destination.
  2. Optionally set menuScreenId so “Continue Shopping” returns to your menu screen.
  3. Confirm item payload fields from Menu Item Card include optionGroups, allergens, and nutrition if those sections are enabled.
Category: Commerce & OrdersComponent: BuilderMenuItemDetailRegistry key: menu-item-detail
Props

Data, navigation, and display

PropTypeDefaultDescription
navigationParamsobjectInjected by AppPlayerPrimary data source for title, subtitle, price, image, tags, option groups, includes, allergens, nutrition, spice level, serving size, and menu item ID.
showImage, showPrice, showDescription, showBadge, showTagsbooleantrueVisibility toggles for the hero/content header elements.
showIncludes, showAllergens, showNutrition, showSpiceLevel, showServingSizebooleantrueVisibility toggles for supporting food information sections.
showBackButton, showOrderButton, showQuantitySelectorbooleantrueVisibility toggles for navigation controls and primary action controls.
cartScreenId, menuScreenId, ordersScreenIdstringDestinations used by confirmation sheet actions and follow-up order flow navigation.
orderButtonLabel, usesBackendOrdersstring / booleanAdd to cart / falsePrimary CTA label and backend-order mode toggle.
onAddToCart, onSubmitOrder, onScreenNavigate, onGoBackfunctionInjected by AppPlayerRuntime callbacks for cart updates, backend order submit, and screen navigation actions.
Toggles & colours

Make it yours

Most visual customisation lives in Builder style props. Keep component defaults in sync with registry defaultProps when updating branding tokens.

PropDefaultWhat it controls
backgroundColor, cardBackgroundColorTheme defaultsScreen and card surface colors.
titleColor, priceColor, descriptionColor, sectionTitleColor, dividerColorTheme defaultsMain text hierarchy and section separators.
accentColor, backButtonColor, orderButtonColor, orderButtonTextColorTheme defaultsPrimary action and interactive accent colors.
badgeBackgroundColor, badgeTextColorTheme defaultsBadge chip background and label color.
tagBackgroundColor, tagTextColorTheme defaultsTag pill background and label color.
allergenBackgroundColor, allergenTextColorTheme defaultsAllergen pill background and text color.
nutritionBackgroundColor, nutritionValueColor, nutritionLabelColorTheme defaultsNutrition card surface and typography colors.
cartConfirmBackgroundColor, cartConfirmIconColor, cartConfirmTitleColor, cartConfirmTextColorTheme defaults“Added to cart” confirmation sheet container and text colors.
cartChipBackgroundColor, cartChipTextColor, cartStatusTextColorTheme defaultsCart count/status chip colors in the confirmation sheet.
continueButtonColor, continueButtonTextColor, viewCartButtonColor, viewCartButtonTextColorTheme defaultsConfirmation sheet button colors.
titleFontSize, padding, fontFamily26, 20, component defaultCore typography scale and layout spacing controls.
Tips

Common mistakes to avoid

Param shape must match the item card

All field names in the navigation payload - item id, name, price, options, etc. - must match exactly what Menu Item Card sends. Changing one side without the other breaks the detail view.

Default option selections keep the flow smooth

Configure sensible defaults for required option groups so customers can tap Add to Cart immediately without having to make a selection first.

One shared screen covers every item

Because all content comes from navigation params you never need a separate detail screen per item. Point every Menu Item Card tap at the same screen.

Builder canvas uses placeholder data

On the canvas the component renders sample item content so you can preview layout and styles without navigating through the full flow.