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- Customer sees “Choose your patty” with options: Beef, Chicken, Veggie
- Customer selects “Beef”
- A new modifier group appears: “How would you like it cooked?” with options: Rare, Medium, Well Done
- 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.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:- Any nested modifier groups for the previous selection are hidden
- Selections in those hidden groups are cleared
- New nested modifier groups for the current selection appear
- Required nested modifiers must be completed before checkout
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.
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
- 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.
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