How this page is organized
Features are grouped into three categories:
Core capabilities — the foundational menu features ezCater supports out of the box. If you’re checking whether a basic menu can be modeled on ezCater, start here.
Advanced configurations — supported patterns that need specific setup (sized items, zero-dollar parents, lead times). Use these when your menu is more complex than a flat list of items.
Known limitations and workarounds — features ezCater does not support, with recommended alternatives.
Core capabilities
Per-location menus
Menus are managed per location. Attributes — pricing, availability, items offered — can vary across locations of the same brand. For pricing differences across locations, ensure your approach complies with ezCater’s menu requirements.
Categories
Categories group items together on the menu.
Items
The fundamental unit of an ezCater menu. Items support:
Capability | Notes |
Item prices | Measured in cents. Must be greater than $0. |
Item sizes | Optional. If supported by your integration, see Sized-Based Items. |
Serving sizes | Required. Single integer; ranges (for example, “serves 4–8”) are not supported. |
Item min, max, and increment | Limits on how many of a given item can be ordered. |
Item descriptions | Free text for level-setting what the item is. |
Item images | Item-level images via URL. Read here for technical specs. |
Tax classifications | Required. See the Tag Reference for accepted values. |
Options and choices
Options are modifier groups within an item; choices are the individual selections within an option. Supported features include:
Capability | Notes |
Required option choices | Forces a customer to make a selection before adding the item to cart. Use only for genuine selection options (a sandwich’s cheese choice), not for optional add-ons. |
Min and max option choices | Bounds the number of choices a customer can make per option. |
Option prompts | The text shown to the customer (“Select cheese,” “Add toppings”). |
Caterer labels | Free-text fields on options that appear on the ezCater invoice. Useful for connecting an item to a choice on the kitchen side. |
Choice descriptions | Free text for level-setting what each choice is. |
Default selections | “Most Popular” or “Assorted” choices default to selected. |
Tags
The integration supports tag-driven behavior across food labeling, item type, choice type, and unit of measure. See the Tag Reference for the canonical inventory.
Tag category | Values |
Food labeling |
|
Item type and choice type |
|
Quantity unit | 35 accepted values; default is |
Identification and individual wrapping
Capability | Notes |
Identification mapping | External IDs representing the third-party identifier. |
Individual wrap status | Identifies whether the item is individually wrapped. Customers filter on this. See Tag Reference. |
Utensils
A required configuration on every food item. Supports free and paid patterns. See Utensils for the full setup.
Advanced configurations
These are supported but require specific setup. Each links to a dedicated reference page.
Size-based items
For items offered in multiple sizes that share the same modifier structure (Small / Medium / Large of the same dish). The size group requires IsSelectionSizeGroup = T and structural matching across sizes. See Sized-Based Items.
Zero-dollar parent items
For items whose price lives at the option level rather than the item level (a “Boxed Lunch” with three priced choice options). Requires a specific structural setup on the priced option group. See Menu Setup Guide.
Lead times per item
The LeadTime tag overrides store-level lead time for items that need longer prep. Accepted values are minutes, drawn from a defined list of whole-hour values between 5 and 72 hours. See Lead Times.
Rails visibility
Olo-side controls for restricting categories or items to ezCater. Use when you have ezCater-specific categories or items that shouldn’t appear on your other ordering channels. See Rails Visibility.
Meal Program channel
A dedicated channel for recurring subscription-style ordering, separate from on-demand Marketplace. Requires its own tagging via RelishChannel. See Meal Program Overview.
Known limitations and workarounds
The patterns below are not supported today. Each has a recommended workaround.
Dayparts (time-of-day item availability)
ezCater does not currently honor time-of-day restrictions on specific items (for example, “breakfast burritos only available 8–10am”).
Workaround: add the availability window to the item description (for example, “Only available from 8am to 10am”). This will not prevent customers from adding the item to their cart outside the window, but it sets expectations.
Temporary item deactivation (86’ing)
ezCater treats items added to your menu as highly available and stable. Items aren’t designed to be temporarily disabled.
Workaround: items marked inactive or not sent to ezCater’s menu won’t be available for ordering. Use this for both short-term outages and long-term unavailability.
Light 86’ing is available specifically when participating in the Menus API. Confirm with your ezCater contact whether your integration supports it.
Quantity modifiers within an item
A customer can’t add multiple quantities of a single modifier choice within one item (for example, “4 turkey sandwiches, 5 ham sandwiches, 1 hummus sandwich” inside one platter). Fixed-count and up-to-count selections are supported using minimum and maximum settings on the option group:
“Choose exactly 3 sandwiches” — set
minSelects = 3andmaxSelects = 3on the group in Olo.“Choose up to 3 sandwiches” — set
minSelects = 1andmaxSelects = 3.
Workaround: When the goal is multiple quantities of one option, use option groups named to represent each selection slot instead: “Select First Sandwich,” “Select Second Sandwich,” and so on. This is verbose but functional.
Nested modifiers beyond one level
A choice can open a single sub-choice underneath it — for example, a “Choose sandwich” option whose “Grilled cheese” choice opens a “Toasted?” sub-choice. Nesting past that first level is not supported and causes menu ingestion failures — the “Toasted?” sub-choice cannot itself open a “Cut in half?” choice.
Workaround for deeper structures: expand the choice list to include the full combination. Instead of a sub-choice that opens a further picker, list “House Salad with Ranch,” “House Salad with Italian,” and “Spinach Salad with Italian” as discrete choices.
Zero-dollar items
An item priced at $0 will not appear on the ezCater marketplace.
Workaround: determine a base price for the item and use options for any variations. If an item’s price varies by selection, use the zero-dollar parent item pattern, which is a different concept — zero-dollar parents have prices on their options.
Negative-amount options or choices
A choice cannot decrease the price of an item (no “minus $2 for no protein” style modifiers).
Workaround: create a separate item at the lower price. For example, instead of a “no protein, save $2” choice, list a vegetarian variant of the dish at the lower price as its own item.
