Modifier Types & Templates
Each modifier has a type that determines how it affects the dish — adding something, removing something, swapping one ingredient for another, or changing the size. This guide walks through each type and the templates that make setup easy.
Modifier Types at a Glance
Every individual modifier is one of four types:
| Type | What It Does | Cost Impact |
|---|---|---|
| Add | Adds an ingredient or recipe to the dish | Increases cost by the added item's value |
| Remove | Takes an ingredient out of the dish | Decreases cost by the removed ingredient's value |
| Substitute | Swaps one item for another (ingredient or recipe on either side) | Net change: replacement cost minus removed item cost |
| Size | Changes the portion size of the entire dish | Scales base cost proportionally |
Size Options
Template: Size Options
Use this when customers choose a portion size. The most common example: Small, Medium, Large.
How It Works
- Display type: Variation — customers pick exactly one option
- Required: Yes — every order needs a size
- Each size modifier specifies how the recipe scales:
- Servings mode: "1.5 servings" means 1.5x the base recipe
- Yield mode: "300g" means that specific quantity of the recipe's yield
Real-World Example: Pizza Sizes
| Size | Servings | Price Adjustment | Cost Impact |
|---|---|---|---|
| Regular | 1.0 srv | +$0.00 (default) | Base cost |
| Large | 1.5 srv | +$4.00 | 1.5x base cost |
| Family | 2.0 srv | +$8.00 | 2x base cost |
Setting Up Size Options
- Choose the Size Options template
- Name the group (e.g., "Pizza Size")
- For each size modifier, set:
- Name (e.g., "Large")
- Size servings or yield quantity with unit
- Price adjustment (the customer-facing price change)
- Mark one option as the Default (typically "Regular")
Important
The size modifier's price adjustment is the customer-facing charge. The cost impact is calculated separately from the recipe scaling. A "Large" that's 1.5 servings costs 50% more to make, regardless of how much more you charge for it.
Add-Ons / Extras
Template: Add-Ons / Extras
Use this when customers can add extra toppings, ingredients, or components to their dish.
Two Ways to Define Add Modifiers
Recipe-based adds — The modifier links to a prep recipe. Cost is calculated from the recipe's total cost, scaled by the amount used.
| Detail | Example |
|---|---|
| Modifier | "Add Bacon" |
| Linked recipe | "Bacon (2 Slices)" |
| Recipe servings | 1 serving of the bacon recipe |
| Cost | Recipe's cost per serving |
Ingredient-based adds — The modifier links directly to an ingredient with a specific quantity and unit. No recipe needed.
| Detail | Example |
|---|---|
| Modifier | "Add Jalapeños" |
| Linked ingredient | Jalapeño Peppers |
| Quantity | 3 pieces |
| Cost | 3 × ingredient's cost per piece |
Real-World Example: Burger Toppings
Modifier Group: "Burger Toppings" (Multi Select, Optional)
├── Add Bacon (+$3.00) → Recipe: Bacon (2 Slices), 1 serving
├── Add Avocado (+$2.00) → Recipe: Avocado Spread, 1 serving
├── Extra Cheese (+$1.00) → Ingredient: Cheese, 50g
└── Add Jalapeños (+$0.50) → Ingredient: Jalapeño Peppers, 3 pieces
Setting Up Add-Ons
- Choose the Add-Ons / Extras template
- Name the group (e.g., "Burger Toppings")
- Search and pick recipes from your recipe database to use as add-on options, or
- Add custom options with just a name and price (no recipe needed)
- Set the price adjustment for each option
Tip: Using the template picker, you can search and filter your existing recipes to quickly find the right ones. You can also add custom options that aren't tied to any recipe — just a name and a price.
Remove Ingredients
Template: Remove Ingredients
Use this to let customers request that specific ingredients be left out. The template can auto-populate from a menu item's recipe.
How It Works
- The template asks Which menu item is this for?
- Once you select a menu item, it loads the recipe's ingredients
- Check the ingredients that should be removable
- Each checked ingredient becomes a "remove" modifier (e.g., "No Onions")
Real-World Example: Sandwich Customization
Modifier Group: "Customize Sandwich" (Multi Select, Optional Force Show)
├── No Onions ($0.00) → Removes: Onions
├── No Tomato ($0.00) → Removes: Tomato
├── Hold the Mayo ($0.00) → Removes: Mayonnaise
└── No Pickles ($0.00) → Removes: Pickles
Removals typically have no price adjustment (you don't charge less for leaving something out), but they do reduce the calculated food cost.
Setting Up Removals
- Choose the Remove Ingredients template
- Name the group (e.g., "Customize Sandwich")
- Select the menu item to pull ingredients from
- Check the ingredients that customers should be able to remove
- Click Create Modifier Group
Tip
If you use dynamic removals on the recipe instead, you don't need to create a separate modifier group for removals — the system generates removal options automatically from the recipe's ingredient list.
Substitutions
Template: Substitutions
Use this when customers can swap one item for another — choosing a different crust, swapping regular cheese for vegan, or replacing a protein.
How It Works
Each substitute modifier has two sides:
-
What gets removed — the item being swapped out of the dish. This can be:
- A target ingredient (e.g., mozzarella, regular pasta)
- A target recipe (e.g., a classic dough sub-recipe, a beef patty prep recipe)
-
What replaces it — the item being added in its place. This can be:
- A replacement recipe (e.g., thin crust dough recipe, turkey patty recipe)
- A replacement ingredient with a specific quantity and unit (e.g., 150g vegan cheese, 200g gluten-free penne)
The cost impact is the net difference: replacement cost minus removed item cost.
Substitution Patterns
| Pattern | Remove Side | Add Side | Example |
|---|---|---|---|
| Ingredient → Recipe | Target ingredient | Replacement recipe | Regular bun → Gluten-free bun recipe |
| Recipe → Recipe | Target sub-recipe | Replacement recipe | Classic dough recipe → Thin crust dough recipe |
| Ingredient → Ingredient | Target ingredient | Replacement ingredient + quantity | Mozzarella → 150g vegan cheese |
| Recipe → Ingredient | Target sub-recipe | Replacement ingredient + quantity | House sauce recipe → 50g ketchup |
Tip
Recipe → Recipe is ideal for pizza crusts, burger patties, sauces, and other components that are their own prep recipes. Ingredient → Ingredient is best for simple swaps like cheese or milk alternatives where you just want to specify a quantity.
Real-World Examples
Pizza Crust (Recipe → Recipe)
The base pizza uses a "Classic Dough" sub-recipe. The customer chooses a different crust — the classic dough recipe is removed and the thin crust dough recipe is added:
Modifier Group: "Pizza Crust" (Required, Single Select)
├── Classic Crust ($0.00) → Default, swaps: Classic Dough recipe → Classic Dough recipe
└── Thin Crust (+$1.00) → Swaps: Classic Dough recipe → Thin Crust Dough recipe
Cheese Options (Ingredient → Ingredient)
The pizza has 200g mozzarella. The customer wants vegan cheese. The modifier removes the mozzarella and adds 150g of the replacement:
Modifier Group: "Cheese Options" (Optional, Single Select)
└── Vegan Cheese (+$1.50) → Removes: Mozzarella, Adds: 150g Vegan Mozzarella
Dietary Substitutions (Ingredient → Recipe)
The classic pattern — remove an ingredient and add a prep recipe:
Modifier Group: "Dietary Options" (Optional Force Show, Single Select)
├── Keep Original ($0.00) → Default
├── Gluten-Free Bun (+$2.00) → Removes: Regular Bun, Adds: GF Bun recipe
└── Vegan Eggs (+$1.50) → Removes: Eggs, Adds: Vegan Scrambled Eggs recipe
Coffee Milk Swap (Ingredient → Ingredient)
A latte has 200ml whole milk. The customer wants oat milk — different quantity because oat milk froths differently:
Modifier Group: "Milk Options" (Optional, Single Select)
├── Whole Milk ($0.00) → Default
├── Oat Milk (+$0.70) → Removes: Whole Milk, Adds: 250ml Oat Milk
└── Almond Milk (+$0.70) → Removes: Whole Milk, Adds: 240ml Almond Milk
Substitution Pricing
When you enable Substitution Pricing on the group, the system uses cost-difference logic instead of fixed prices: the customer pays the difference between the replacement and the original item. The Charge for Defaults setting controls whether the default (original) option has a charge.
Setting Up Substitutions
- Choose the Substitutions template
- Name the group (e.g., "Pizza Crust", "Cheese Options", "Milk Alternatives")
- For each substitute modifier, set:
- What to remove: Pick a target ingredient or a target recipe (the item in the base dish being swapped out)
- What to add: Pick a replacement recipe, or pick a replacement ingredient with a quantity and unit
- Set price adjustments as needed
- Mark one option as the Default if this is a required choice (e.g., "Classic Crust")
Important
A substitute modifier can target either an ingredient or a recipe, but not both. Similarly, the replacement can be either a recipe or an ingredient with a quantity — not both. This keeps the cost calculation clear and unambiguous.
Required Choice
Template: Required Choice
Use this when the customer must pick exactly one option to complete their order — like choosing a protein, a base, or a side.
How It Works
- Display type: Single Select
- Required: Yes — the customer must pick one
- Min selections: 1, Max selections: 1
Real-World Example: Build-Your-Own Bowl
Modifier Group: "Choose Your Protein" (Single Select, Required)
├── Grilled Chicken (+$0.00) → Default
├── Steak (+$3.00) → Recipe: Grilled Steak, 1 serving
├── Tofu (+$0.00) → Recipe: Marinated Tofu, 1 serving
└── Shrimp (+$4.00) → Recipe: Sautéed Shrimp, 1 serving
Setting Up Required Choice
- Choose the Required Choice template
- Name the group (e.g., "Choose Your Protein")
- Search and add recipes for each option
- Set one option as the Default
- Set price adjustments (usually the default is $0.00, upgrades have a positive price)
Quantity Extras
Template: Quantity Extras
Use this for items that can be added multiple times with a quantity stepper — like extra espresso shots or additional sauce portions.
How It Works
- Display type: Quantity — shows a +/- stepper instead of checkboxes
- Customers can add 1, 2, 3, or more of the same modifier
- Each unit adds the modifier's price and cost
Real-World Example: Coffee Shop
Modifier Group: "Extra Shots" (Quantity, Optional)
├── Extra Espresso Shot (+$0.75 each) → Recipe: Espresso Shot
└── Extra Syrup Pump (+$0.50 each) → Recipe: Flavored Syrup
Setting Up Quantity Extras
- Choose the Quantity Extras template
- Name the group (e.g., "Extra Shots")
- Add the items that can be ordered in multiples
- Set the per-unit price adjustment
Custom / Blank
Template: Custom / Blank
Start from scratch with full control. No fields are pre-configured — you choose the display type, required mode, pricing strategy, and everything else.
Use this when none of the other templates fit your use case, or when you want a specific combination of settings.
Choosing the Right Template
| I want to... | Use Template |
|---|---|
| Let customers pick a size (S/M/L) | Size Options |
| Offer optional toppings or extras | Add-Ons / Extras |
| Let customers remove ingredients | Remove Ingredients |
| Offer item swaps (crusts, cheeses, proteins, milks) | Substitutions |
| Force a choice (pick your protein) | Required Choice |
| Allow multiple of the same add-on | Quantity Extras |
| Something else entirely | Custom / Blank |
Tip
You can always change a modifier group's settings after creation. The template just gives you a starting point — nothing is locked in.
Common Questions
Q: Can a single modifier group contain different modifier types?
A: Yes. A group can have a mix of add, remove, substitute, and size modifiers. However, for clarity, it's usually better to keep groups focused on one type of modification.
Q: What's the difference between "Optional" and "Optional Force Show"?
A: Both are optional, but Optional Force Show ensures the modifier group is always visible to your team when planning meals, even if no selection is made. Use this for things like "Customize Sandwich" where you want the options visible by default.
Q: Can I reorder modifiers within a group?
A: Yes. On the modifier group detail page, you can drag modifiers to reorder them. The order determines how options are displayed.
Q: What happens if a modifier's linked recipe is archived?
A: The modifier remains but its cost calculation may be affected. It's best to update or archive modifiers when their linked recipes change.
Next Steps
- Recipe Modifiers — Define modifiers on recipes for automatic inheritance
- Combo Menu Items — Build combo meals with per-component modifiers
- Advanced Modifier Settings — Pricing strategies, portions, nested choices
Last updated: May 19, 2026