Skip to main content
Set display_type on each pricing.modifiers entry for a modifier product. Fire spark validates that the value matches the group and modifier minimum and maximum quantities when you upsert a menu.

Menu sync overview

Read the menu sync guide for payload structure, modifier groups, and nested modifiers.

Where the field lives

display_type is not set on the modifier group. Groups use display_type for layout only (LIST or GRID). Per-modifier UI control lives on the modifier product under pricing.modifiers, one object per modifier_group_id where that product appears as an option:
If you omit display_type, Fire spark infers the control from group and modifier quantity limits using the table below. Inference is deterministic when those bounds are present.
When the group max is greater than 1 and you omit maximum_quantity on the modifier entry, Fire spark treats the modifier as quantity-capable and infers QUANTITY. For checkbox-style options in a multi-select group, set maximum_quantity: 1. An explicit display_type is optional in that case — it documents intent for API consumers but must match the quantity bounds when you send it.

Expected display type by quantity limits

Use the group bounds from modifier_groups[].minimum_quantity and modifier_groups[].maximum_quantity, and the modifier bounds from the matching pricing.modifiers entry on the modifier product.
When the group max is greater than 1 and you omit maximum_quantity on the modifier entry, validation treats the modifier as quantity-capable (QUANTITY). Set maximum_quantity: 1 explicitly when the option should behave as a checkbox inside a multi-select group.

Examples

Validation errors

Menu sync runs these checks on style: "DEFAULT" payloads.

Modifier group breaks the rule

Modifier breaks the rule

Example rejection:

Decision flow

See Upsert menus for the full pricing.modifiers schema.