Skip to main content
Use the top-level recommendations array to define upsell, cross-sell, and downsell targets once per sync. Attach them in two places:
  • pricing.recommendations on a line item — suggest other catalog products on the parent (combo upgrade, side item, downsell).
  • pricing.modifiers[].recommendations on a modifier option — pre-select modifier quantities when you surface a premium customization preset.
Each linked entry can set its own default_quantity. That value is independent from default_quantity on the same pricing.modifiers entry. The type values below are illustrative for this payload. Your catalog can map UPSELL, CROSS_SELL, and DOWNSELL differently.

What this example includes

Request

Define recommendations in the shared catalog. Link line-item suggestions from pricing.recommendations on the parent product. For premium modifier configurations, link presets from pricing.modifiers[].recommendations on each modifier option — each recommendation_id must exist in the catalog and its target_product_id must match the modifier product.
product-recommendations.json

Uber Eats style

Send recommendations on a full UBER_EATS payload the same way as items, categories, and modifier_groups. Use title.translations instead of name, and keep target_product_id aligned with an items[].id. Fire spark maps the array to the DEFAULT catalog during sync.
Add this array to a complete Uber Eats menu payload such as Simple menu.
pricing.recommendations pre-selects other products on the parent line. pricing.modifiers[].recommendations pre-selects quantities inside a modifier group — use it to ship ready-made premium configurations. default_quantity on the same modifier entry still controls the baseline when no preset is applied.

Modifier group overrides

Per-group pricing and default quantities on modifier products

Menu sync guide

Full validation rules for recommendations