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 modifier 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

Not sure yet that modifiers are the cause? Item Not Showing on the Menu rules out the other reasons — snoozes, category hours, stock and menu settings — before you dig into modifier groups here.
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 top-level group has no available options left, the product itself becomes unavailable — not just that group. Required nested groups behave differently. Because nested groups only appear after the customer picks a parent option, the ordering page does not pre-emptively grey out the product. Instead, the product stays orderable — but when the customer picks the parent option that reveals the empty required nested group, they cannot complete the item and cannot add it to the basket. 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. On Hide, every pasta dish using it showed as sold out. On Disable, the pasta still looked orderable but customers who selected “Add Polpette” could not add it to their basket.

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 only on Hide: the product is dropped from the menu entirely, rather than shown greyed out with Currently sold out.
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 modifier 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.