When to use sized items vs. zero-dollar parents
Two similar-looking patterns are easy to confuse:
Use sized items when... | Use zero-dollar parents when... |
The variants are sizes of the same thing — Small / Medium / Large tray of the same salad | The variants are different priced configurations — Boxed Lunch with Turkey ($12), Roast Beef ($14), or Veggie ($10) |
Modifier structure is identical across variants (same dressings, same toppings) | Modifier structure may differ between variants |
|
|
For the zero-dollar parent pattern, see Menu Setup Guide.
Tagging rules
Sized items use most of the standard item-level tags from the Menu Setup Guide, with three differences:
CateringServeSizemoves from the item level to the option (choice) level, so each size can serve a different number of people.The option group containing the sizes gets
IsSelectionSizeGroup = T.The size option group must have the smallest
sortOrderof any option group on the item, so it appears first.
Item-level tags
Tag | Requirement | Where it lives |
| Required | Item |
| Required | Item |
| Required when applicable | Item |
| Required when applicable | Item |
| Required when set to | Item |
CateringServeSize is not applied at the item level for sized items — it lives at the option level instead.
Option-group tags
Tag | Requirement | Where it lives |
| Required when set to | Option group containing the sizes |
Option (choice) tags
Tag | Requirement | Where it lives |
| Required | Each size option |
Structural constraints
Sized items have stricter structural rules than regular modifier items, because ezCater needs to recognize each size as a variant of the same underlying item.
Naming
Size option names must not include the parent item name. Use “Small,” “Medium,” “Large” — not “Small Tray,” “Medium Tray,” “Large Tray.”
Naming must be consistent across all sizes within the group. If one size is named “Half Pan,” the others should follow the same convention, not “Medium Pan.”
Matching modifier structure
Every size variant must share the same modifier structure underneath. For each option group nested inside the parent item, every size must offer:
The same
descriptionThe same
sortOrderThe same
mandatorysettingThe same
minSelectsandmaxSelectsThe same
choiceQuantityIncrementThe same
supportChoiceQuantitiessetting
If any of these differ across sizes, the item won’t build. ezCater needs the structural match to know that a “Caesar dressing” choice on the Small variant is the same selection as a “Caesar dressing” choice on the Large variant.
Sort order
The option group containing the sizes must have the smallest sortOrder of any option group on the item. This makes the size selector appear first to the customer, before any modifiers.
Common mistakes
Applying
IsSelectionSizeGroupto the parent item or to individual choices. It belongs on the option group only.Including the parent item name in size names (for example, “Small Salad Bowl” instead of “Small”). This breaks the size-matching logic.
Inconsistent modifier structure between sizes — different sort orders, different option group descriptions, or different mandatory settings. Every size must share the same structure.
Forgetting to move
CateringServeSizeto the option level. Sized items must specify serve size per size, not on the item.Confusing this pattern with zero-dollar parent items. If the variants are sizes, use this pattern. If they’re priced configurations of different content, use the zero-dollar parent pattern in Menu Setup Guide.
Worked example
A “House Salad” item offered in three sizes, with a single dressing modifier group.
Parent item
Field | Value |
Item name | House Salad |
|
|
|
|
|
|
| (not applied at item level) |
Size option group
Field | Value |
Option group name | Size |
|
|
|
|
|
|
|
|
|
|
Size choices
Choice name | Price |
|
Small | $25 |
|
Medium | $40 |
|
Large | $60 |
|
Dressing modifier group (repeated identically on each size)
Field | Value |
Option group name | Dressing |
|
|
|
|
|
|
|
|
Dressing choices (same on every size)
Ranch
Caesar
Italian
Balsamic Vinaigrette
In this example, the size group appears first to the customer because its sortOrder is 0. Once the customer picks a size, the dressing group appears with the same four choices regardless of size, because the modifier structure matches across all three sizes. ezCater can then recognize “Caesar dressing on Small” and “Caesar dressing on Large” as the same selection applied to different size variants of one underlying item.
