Skip to main content
Nested modifiers allow you to display additional modifier groups only when a customer selects a specific option. This keeps your menu clean and guides customers through complex customisation flows.

How It Works

When a customer selects a modifier option that has nested modifiers attached, additional modifier groups appear below. If they change their selection, the nested groups update accordingly. Example: Build Your Burger
  1. Customer sees “Choose your patty” with options: Beef, Chicken, Veggie
  2. Customer selects “Beef”
  3. A new modifier group appears: “How would you like it cooked?” with options: Rare, Medium, Well Done
  4. If customer changes to “Veggie”, the cooking preference disappears (not applicable)

Common Use Cases

Supported Integrations

Nested modifiers are supported when syncing menus from:
  • Deliverect
  • Stream
  • Toast
  • Zonal Aztec
On a menu synced from a POS or menu management system, nested modifiers are configured there and sync automatically to storekit. On a menu you build in storekit, attach them per option: click the pencil icon on a modifier option to open the Edit modifer panel, then use the Sub-Modifiers tab.

Nesting Depth

How many levels of nesting sync across depends on the integration.
Very deep nesting (three or more levels) is not guaranteed. Even where the integration has no hard limit, deeply nested structures are harder for customers to complete and can behave unexpectedly. Keep nesting shallow — one or two levels — for the most reliable experience.

Customer Experience

Nested modifiers provide a cleaner checkout experience:
  • Customers only see relevant options based on their selections
  • Reduces overwhelm from too many choices at once
  • Guides customers through logical customisation steps
  • Prevents invalid combinations (e.g., cooking preference for a veggie burger)

How Selections Are Handled

When a parent modifier selection changes:
  1. Any nested modifier groups for the previous selection are hidden
  2. Selections in those hidden groups are cleared
  3. New nested modifier groups for the current selection appear
  4. Required nested modifiers must be completed before checkout
If a nested modifier group is required, customers must complete it before adding the item to their basket. Make sure your menu structure accounts for this.

Why a product shows as sold out when its modifiers are unavailable

A modifier group with a minimum of 1 or more is required: the customer cannot order the product without a valid selection in it. If a required group has no available options left, the product itself becomes unavailable — not just that group. This cascades from nested groups too. A nested group belongs to the product and is only shown when its parent option is selected, so an empty required nested group takes the whole product out of stock — for every product that uses the group, including customers who would never pick the parent option. A real case: an “Add Polpette” option on a pasta dish revealed a required nested group with two options, chicken and beef meatballs. Both meatball options went unavailable, which left the required nested group with no options, so every pasta dish using it showed as sold out — even though each dish still looked available in the dashboard.

What the customer sees

What happens on the ordering page depends on the menu’s Unavailable Product Options setting, because that is what decides whether unavailable options are still listed in the group: A required group that has no options configured at all — for example a group that synced from the POS with none — is different: the product is unavailable on Disable, and on Hide it is dropped from the menu entirely.
Nothing in the dashboard flags the product: its own availability is untouched, so it still shows as available in the menu builder. The unavailability is worked out when the ordering page loads, from the state of the product’s required groups.

How to spot it

1

Open the product's modifier groups

Go to Menus, click Edit on the menu, click the product, and open the Modifiers tab of the Edit product panel. Each row of the Group / Options table is a modifier group attached to this product; click Edit on a row to open the group.
2

Check whether the group is required

In the group, look under How many options can customers choose?. There are two number fields: the first is the minimum, the second the maximum. A minimum of 1 or more makes the group required.
3

Check the options

Each row of the group’s table is an Option with an In Stock toggle. If every option is toggled off — or the table is empty and only Add an option is offered — a required group here cannot be satisfied, and the product is unavailable.
4

Work out which groups are nested

Nested groups appear in the product’s Modifiers list exactly like ordinary groups — the dashboard does not label a group as nested. To see the nesting, click the pencil icon on a modifier option’s row to open the Edit modifer panel and go to its Sub-Modifiers tab. The Sub-Modifier Group column lists the groups that option reveals, each with its (minimum - maximum) range; No sub-modifier groups added means the option reveals none.

On POS-managed menus, fix it in the POS

On a POS-managed menu (Deliverect, Toast, Zonal, Stream, Lightspeed K-Series, 3S POS) the modifier structure, each group’s minimum and each option’s availability all come from the POS, and every sync writes the POS values back over anything you change in storekit. So for a Toast menu delivered through Stream, make the change in Toast:
  • mark at least one option in the required nested group available again, or
  • set that group’s minimum to 0 so it is no longer required, or
  • restructure it as described below
Then let the menu reach storekit again:
  • Stream and Deliverect push the menu when it is published in the source system. There is no sync button in storekit for those integrations.
  • Lightspeed K-Series, Zonal and Toast menus have a Sync button on the menu’s row in Menus.
Either way, the menu row in Menus shows Synced with how long ago the last sync ran — use it to confirm the new data arrived.

Prefer an optional standalone group to a required nested one

Where the nested choice is really part of an optional extra, model the extra as one optional group instead of an option that reveals a required group: Keep required minimums for choices the customer must make about the product itself (size, base, cooking preference), not for add-ons.

Troubleshooting

Nested Modifiers Not Appearing

If nested modifiers aren’t showing:
  • Verify your POS/menu system has nested modifiers configured correctly
  • Check that the menu has synced recently
  • Ensure you’re using a supported integration (Deliverect, Stream, Toast, or Zonal Aztec)

A Product Shows as Sold Out but Looks Available in the Dashboard

Check its required modifier groups, including nested ones — see Why a product shows as sold out when its modifiers are unavailable.

Wrong Modifiers Showing

If incorrect nested modifiers appear:
  • Review the parent-child relationships in your POS system
  • Re-sync your menu after making changes
  • Check that modifier group IDs are correctly linked
For further assistance, contact support.