Skip to Content

Variants

Offer size options, protein choices, crust types, and other customizations using the variant system.

What Are Variants?

Variants let you offer multiple versions of a single item:

  • Pizza sizes - Small, Medium, Large
  • Protein options - Chicken, Beef, Tofu
  • Preparation styles - Grilled, Fried, Blackened
  • Add-ons - With bacon, Extra cheese

A variant structure consists of:

  • Parent item - The main menu item (e.g., “Pizza”)
  • Variant categories - Types of choices (e.g., “Size”, “Crust”)
  • Variant options - Specific choices within a category (e.g., “Small”, “Medium”, “Large”)

Creating Variants

Step 1: Create the Parent Item

  1. Navigate to Menus > Items
  2. Click New Item
  3. Enter the base item details (name, description)
  4. Save the item

Step 2: Add Variant Categories

  1. Open the parent item
  2. Go to the Variants tab
  3. Click Add Variant Category
  4. Enter the category name (e.g., “Size”)
  5. Configure selection rules:
    • Required - Diner must select an option
    • Optional - Selection is optional
    • Multi-select - Allow multiple selections

Step 3: Add Variant Options

  1. Within the category, click Add Option
  2. Search for an existing item, or create a new one
  3. The option is linked to the category
  4. Repeat for all options

Example setup:

Pad Thai (Parent) ├── Protein (Required, Single-select) │ ├── Chicken │ ├── Shrimp │ ├── Tofu │ └── Combo └── Spice Level (Required, Single-select) ├── Mild ├── Medium └── Hot

Variant Options as Items

Each variant option is itself a menu item. This enables:

  • Individual pricing - Options can have different prices
  • Separate allergens - Each option tracks its own allergens
  • Reusability - Same option across multiple parents

Creating Option Items

You can:

  1. Use existing items - Search for items already in your menu
  2. Create new items - Make items specifically for variants

Option items typically have:

  • A simple name (“Chicken”, “Large”)
  • Price adjustment (or null if no upcharge)
  • Relevant allergens

Allergen Handling

Parent Allergens

The parent item’s allergens derive from ALL options:

Burger (Parent) contains: ├── Classic Burger (Contains: Wheat, Milk) ├── Veggie Burger (Contains: Wheat, Soy) └── Chicken Burger (Contains: Wheat) Result: Burger Contains: Wheat, Milk, Soy

Why All Options?

When diners filter by allergen, they need to know if ANY version of the item might contain it. The parent shows all possible allergens so diners investigate further.

Option-Level Detail

When diners select options, they see allergens for their specific choices:

  1. Diner selects “Veggie Burger”
  2. Shows: Contains Wheat, Soy
  3. Not showing: Milk (only in Classic Burger)

Pricing Variants

Base + Adjustment

Parent has a base price; options add or subtract:

Pizza: $12 (base) ├── Small: -$2 → $10 ├── Medium: $0 → $12 └── Large: +$3 → $15

Option-Only Pricing

Parent has no price; each option has its own:

Pizza: No price ├── Personal (8"): $10 ├── Medium (12"): $15 └── Large (16"): $20

Free Variants

Options with no price adjustment (e.g., cooking temperature):

Steak: $28 ├── Rare: $0 ├── Medium-Rare: $0 ├── Medium: $0 └── Well-Done: $0

Managing Variants

Editing Variant Structure

  1. Open the parent item
  2. Go to Variants tab
  3. Add, remove, or reorder categories
  4. Add or remove options within categories
  5. Click Save

Editing Option Details

  1. Navigate to Menus > Items
  2. Find and click the option item
  3. Edit name, price, allergens
  4. Save changes
  5. Changes apply everywhere the option is used

Removing a Variant Option

  1. Open the parent item
  2. Go to Variants tab
  3. Click the X next to the option
  4. Confirm removal
  5. The option item still exists; only the link is removed

Lineage System

Variant options have a “lineage” that tracks their relationship:

Duplicating Parents

When you duplicate a parent item:

  • The copy gets NEW variant options
  • Options are independent from the original
  • Changes to copy don’t affect original

Shared Options

If you use the same option item in multiple parents:

  • Changes affect all parents using it
  • Useful for common options (sizes, standard add-ons)
  • Be careful when editing shared options

Best Practices

  1. Name categories clearly - “Size”, “Protein”, “Style”
  2. Order options logically - Small → Medium → Large, not random
  3. Keep option names short - “Lg” or “Large”, not “Large (16 inch)”
  4. Track allergens on options - Don’t rely on parent only
  5. Review after adding options - Verify derived allergens

Common Patterns

Size Variants

Coffee ├── Size (Required) │ ├── Small (12oz) - $3 │ ├── Medium (16oz) - $4 │ └── Large (20oz) - $5

Protein Variants

Grain Bowl ├── Base Protein (Required) │ ├── Grilled Chicken │ ├── Salmon (+$3) │ ├── Tofu │ └── No Protein (-$2)

Preparation Variants

Salmon ├── Preparation (Required) │ ├── Grilled │ ├── Pan-Seared │ ├── Blackened │ └── Poached

Add-On Variants

Burger ├── Add-Ons (Optional, Multi-select) │ ├── Bacon (+$2) │ ├── Avocado (+$2) │ ├── Extra Cheese (+$1) │ └── Fried Egg (+$1.50)

Troubleshooting

”Option already used”

An item can only be used once per variant category. Use a different item or create a copy.

Allergens not showing on parent

  1. Check that options have allergens marked
  2. Wait a moment for allergen derivation
  3. Edit and save the parent to trigger refresh

Option changes not reflecting

If you edit an option item:

  1. Check you edited the correct item
  2. The parent’s derived allergens update automatically
  3. Hard refresh the page if display seems stale
Last updated on