Menu Sync
ezCater and Olo have two integrations available to our restaurant partners: Orders API and Menus API. The Orders API transmits order data, while the Menus API syncs the ezCater menu with your Olo Rails menu, allowing for menu per location.
This documentation provides comprehensive guidance for preparing menus for integration with ezCater. It outlines menu features, requirements, best practices, and integration-specific configuration guidance to ensure a smooth integration process. To get the Menus API configured, ezCater requires additional metadata tagging to automate the menu build.
The purpose of this document is to explain the steps needed to build and tag your menu with the necessary metadata tagging to automate the menu build.
To ensure a smooth transition, we highly recommend you add all Metadata tags as soon as you can. This will allow the ezCater team to streamline the process and work on getting your brand live as soon as possible.
For assistance or questions about the integration functionality or what metadata Key/Value to use, please reach out to [email protected]
For assistance or questions regarding your Olo menu (Metadata placement, Rails visibility settings, basket errors) please contact your Olo Customer Experience Manager or your Olo Project Manager.
Additional Resources:
Metadata Setup
The purpose of this document is to identify and walk through the requried steps needed to set up metadata within Olo Menu Management to ensure a smooth sync with ezCater via the Menu API.
Metadata is data that is entered in key/value pairs (also known as metadata tags) in Menu Admin. In the case of ezCater specific metadata, the key/values are passed onto the ezCater platform to create a specific user experience.
For best practices and information on the metadata Keys/Values available for use, please follow below or reference ezCater’s features list.
How to set up metadata in the Olo Menu Management
- Click the metadata tag on the category, product, modifier group or modifier choice.
- Enter the Key | Value pair
For a more in-depth walkthrough of the steps above, please utilize the video below.
Metadata Callouts
- If you need to duplicate a product for ezCater and would like to use the same tags for the product make sure to keep the “Keep existing metadata for product” checked.
- Do not delete any metadata from live ezCater products unless advised otherwise by ezCater/Olo.
- There are no negative implications to adding metadata in advance to a live ezCater menu prior to onboarding with the ezCater Menus API.
- Remove the spacing that is present in the Key or Value field. For example: if a value is written VEGETARIAN, GLUTEN_FREE it will fail. Instead remove the space: VEGETARIAN,GLUTEN_FREE
- Keys and values are not case sensitive
Utensils-Specific Metadata
Utensils is a general term used to describe the varying utensil items a customer will need. Utensils can include utensils; forks, knives, spoons, plates, bowls, and/or napkins. We can accommodate free or paid utensils.
Utensils selections from customers can be found in Partner Portal.
- ezCater requires all menus to have a utensil configuration.
- ezCater provides consumers the ability to select or deselect their utensil requirements as the order forms in the cart. The experience includes:
- As items are added to the cart, tableware options appear in the cart in a dedicated section.
- Upon edit the consumer can select or deselect “tableware” as needed. The options available for selection change based on the item’s option/choices selected.
80% of orders on ezCater are placed with restaurants who offer free plates & utensils. Offering plates, napkins, and utensils helps ensure a positive experience for customers, especially if they do not have these items in-office.
Many customers appreciate offering sustainable or recyclable utensils or packaging.
Free Utensils-Specific Metadata
Free utensils are modeled as an Option/Choice, are tagged as “UTENSILS”, while hidden on the ezCater menu, they are presented as part of the checkout experience. If utensils are free, all items will need to have a utensil configuration with the exception of individual drinks.
- To create free utensils specifically for ezCater you will not use the Single Use Category functionality. Instead you will create a modifier group under each ezCater specific item.
- The table below highlights the possible configurations for utensils depending on the menu items offered. Utensils must be applied to all food items.
Item | Modifier Group | Choices |
|---|---|---|
Standard Items | Utensils |
|
Soups | Soup Utensils |
|
Non-Individual Drinks | Cups & Ice |
|
Coffee | Coffee Utensils |
|
Exceptions that would not require utensils: Individual drinks.
- Create a utensils modifier within the group and map it to the POS.
- Add metadata by clicking the “tag” button, enter the Key + Value as shown below.
- Key: ChoiceTypeTags
- Value: Utensils
For a more in-depth walkthrough of the steps above, please utilize the video below.
Paid Utensils-Specific Metadata
Paid for items are tagged as “UTENSILS” and presented in the menu as an item. Customers can select these items and add them to the cart as they build their order.
- Paid utensils are set up by creating a utensils item with a cost under a “Miscellaneous” category.
- Add Metadata by clicking the “tag” button, enter in Key + Value as shown.
- Key: ItemTypeTags, TaxCategory
- Value: Utensils, Miscellaneous
- Add Option Level for Utensils and the necessary choices using the configuration below depending on the menu items offered.
Item | Choices |
|---|---|
Utensils |
|
Soup Utensils |
|
Cups |
|
Ice |
|
Exceptions that would not require utensils: Individual drinks.
For a more in-depth walkthrough of the steps above, please utilize the video below.
Metadata Tag Configurations
Below are the necessary Keys and Values that need to be entered for all items. Keys are indicated by bold text, values are indicated by sub-bullets.
Item Level Tagging
CateringServeSize
Required for all items.
A numeric value indicating the serving size. Sorry, we cannot support ranges (ex. Serves 4-8). Ranges can be added to the item's descriptions. Supported values:
Any positive non-zero integer
FoodLabelingTags
Required when applicable.
Customers frequently filter on ezCater for dietary friendly options. 1 in 5 orders on ezCater include items that accomodate dietary restrictions. Many of our customers say that they are unable to order from a menu without anything gluten-free or vegan.
These values will tag an item with the flag in ezCater. These flags will be searchable by the customers. Supported values:
HEALTHY
VEGETARIAN
VEGAN
KOSHER
HALAL
GLUTEN_FREE
SPICY
ItemTypeTags
Required when applicable.
1 in 3 ezCater orders includes beverages, and 1 in 5 includes desserts
These values are specifically used for upsell opportunities. Please ensure all beverage and dessert items are tagged accordingly, including items that include a drink or dessert. Supported values:
DESSERT
DRINKS
UTENSILS
ICE
IndividualWrapStatus
Required when True.
27% of ezCater orders include individually packaged items
A value indicating whether the product can be individually wrapped or not. Supported values:
T
F
Option Level Tagging
FoodLabelingTags
Required where applicable.
These fields will tag an item’s choice with the flag in ezCater. These flags are not searchable by customers but will be tagged on the choice option. Supported values:
HEALTHY
VEGETARIAN
VEGAN
KOSHER
HALAL
GLUTEN_FREE
SPICY
ChoiceTypeTags
Required where applicable.
These values are specifically used for upsell opportunities. Please ensure all beverage and dessert items are tagged accordingly. Supported values:
DESSERT
DRINKS
UTENSILS
ICE
Sized Based Items Tagging
IsSelectionSizeGroup
Required where applicable.
For Sized Based Items, the above tags will still be required on the Parent/Item level with the exception of CateringServeSize that will live on the Option level.
- Parent/Item Level:
- TaxCategory (Required)
- FoodLabelingTags
- ItemTypeTags
- IndividualWrapStatus
- QuantityUnit (Required)
- Option GROUP
- IsSelectionSizeGroup = T
- Option
- CateringServeSize
These tags are specifically referring to size based items and are used to delineate small, medium, large for items. The product size selection names should not include the product name. The option group with this metatag should also be given the smallest sortOrder.
Products with selection sizes must have matching option and modifier structure across all sizes. Different selection sizes must have the same structure/names so the logic knows how to match options under the same option but with selection sizes.
- Option groups under each size must have exactly the same description, sortOrder, mandatory, minSelects, maxSelects, choiceQuantityIncrement, supportChoiceQuantities for each selection size.
Metadata tag will need to be added to the “Option Group”, not the Parent/Item or the Option. Supported values:
T
CateringServeSize
Required.
A numeric value indicating the serving size. For sized based items, these need to exist on the option level, not item level. Sorry, we cannot support ranges (ex. Serves 4-8). Ranges can be added to the item's descriptions. Supported values:
Any positive non-zero integer
Zero Dollar Parent Items
- Items where the price lives on the option level, but is not a size.
- Priced options within the first option group with a “sortOrder” of 0.
- Option Group must have minSelects = 1 and maxSelects = 1 and be mandatory.
- If these rules are not applied, the item will not be built.
- "IsSelectionSizeGroup" metadata should not be added to the “Option Group”
Lead Time for Menu Items
The Item lead time indicates how far in advance the order for the specific item must be placed from when it will be ready. This field should be used only when a menu item has a longer lead time than your ezCater Marketplace store. Please note, if an item lead time is shorter than your business lead time, these items will be available for order. When considering adding longer lead times to menu items, it’s helpful to remember that many customers search based on the store’s lead time. Adjusting lead times thoughtfully and having lower lead times helps ensure customers can easily find and order the items they want.
LeadTime
- Supported values will be in minutes starting at 5 hours and up to 72. Only whole hours will be supported.
Hours | Minutes |
|---|---|
5 | 300 |
6 | 360 |
7 | 420 |
8 | 480 |
9 | 540 |
10 | 600 |
15 | 900 |
20 | 1200 |
24 | 1440 |
30 | 1800 |
35 | 2100 |
40 | 2400 |
45 | 2700 |
48 | 2880 |
50 | 3000 |
55 | 3300 |
60 | 3600 |
65 | 3900 |
70 | 4200 |
72 | 4320 |
Meal Program Menu Set Up
We are able to support menu syncing with your Meal Program locations with some caveats: Meal Program menus and items need to be tagged according to these guidelines.
Like Marketplace orders, Meal Program orders will need to be sent through the API, but may fail due to “Relish Finalized” status happening ~90 minutes prior to the customer’s requested event time. Usage of ezCater specific menu items in Olo can assist with a specific lead time for the Meal Program items.
This timing is an estimate and dependent on:
- Brand’s set required “Relish Finalized” timing
- Customer’s distance from location
- Dispatch pick-up time if applicable
Item level:
- RelishChannel= T (required)
- Marketplacechannel=T (Required only if items will be shared between Marketplace & Meal Program, otherwise the item will only be available on Meal Program)
- RelishChannel=T can be used by itself or in combination with Marketplacechannel=T.
- Marketplacechannel= T cannot be standalone.
- CateringServeSize (required)
- TaxCategory (required)
- QuantityUnit (required)
- FoodLabelingTags (required when applicable)
- ItemTypeTags (required when applicable)
Choice Level:
- FoodLabelingTags (required when applicable)
- ChoiceTypeTags for Drinks, Desserts* (required when applicable)
- This is needed for tracking and upsell opportunities
- Sides: INDIVIDUALLY_PACKAGED_RELISH_SIDE = T. (required when applicable)
- This is only for printing an additional label.
Meal Program Tagging Logic
- When there is an item that is not a part of the main item and will not come in or on the ordered item, we will require “INDIVIDUALLY_PACKAGED_RELISH_SIDE = T”.
- For example, if there is a bowl being ordered and there is the ability to add mac and cheese as a side to the item at an additional cost, the mac and cheese would not come inside the bowl, so it will need to be tagged in order to generate another label.
- ChoiceTypeTags will also generate another label for Drinks or Desserts that come with the package.
- If you duplicate/ add menu items specifically for Meal Program, Utensils are NOT required for Meal Program items.
Photos
Our research shows that customers find photos more important than both menu item descriptions and user reviews when determining where to order from.
ezCater ordering data has shown that the more photos on the menu, the better. Menus with photos convert up to 60% higher.
Need photography for newly added items?
- To book an ezCater photo shoot, click here
- Check out the ezPhoto Guide for instructions on how to take great food photos.
Already have photos of your menu offerings?
- Upload the photos to your Olo menu and ensure access is shared with ezCater!
Rails Visibility
When using ezCater specific menu categories you will need to adjust the Rails visibility setting to filter off all other ordering channels.
Category Level Settings
- Navigate to the “Edit Category” button with a category.
- Under “Category Visibility” deselect all ordering channels with the exception of ezCater.
Item Level Settings
- Navigate to the product and click into the product name.
- Scroll down to get to the Menu Product Visibility feature and change the visibility to be ezCater specific.