This guide will be removed on April 29, 2022. Please use our new, easier-to-use Toast technical documentation site. All updated content is on the new site.

Understanding the new visibility behavior

To understand the visibility changes, it is helpful to understand the old behavior. Previously, menu entities in the Toast POS system had several configuration options in the Toast administration back-end for controlling where an entity was visible and available for ordering. On the menu entity details pages, those settings look liked this:

And this:

Note

The Grubhub setting was only visible at Toast POS system restaurants that used a legacy Grubhub integration, so not all restaurants would have seen this option.

These original settings were represented in the menus API by a visibility array that was included for each menu entity. A menu entity's visibility array would contain various combinations of the following enums, depending on how the menu entity was configured:

  • POS: The menu entity is visible in the Toast POS app.

  • TOAST_ONLINE_ORDERING: The menu entity is visible on the Toast online ordering site for this restaurant.

  • KIOSK: The menu entity is visible on a Toast Kiosk device.

  • GRUBHUB: The menu entity is included during a menu sync to Grubhub and will be visible on the Grubhub online ordering service after a menu sync has completed.

Grubhub was the only online ordering integration that the menus API's visibility array explicitly identified. In other words, you could tell if a menu entity should be visible on the Grubhub online ordering site by using the GRUBHUB enum, but no equivalent indicator existed for other online ordering integrations.

The configuration API is older and it treats orderable online and visibility as two separate concepts. In the configuration API, the original menu visibility settings were represented by:

  • An orderableOnline value on the Menu, MenuGroup, and MenuItem objects that could be set to Yes or No. Some integrations used this value to determine whether a menu entity should be included in an online ordering integration.

  • A visibility value on the Menu, MenuGroup, and MenuItem objects. All of the values in this array, however, were related to the visibility of a menu entity on a Toast POS device and had no bearing on whether an entity could be ordered online or not.

The Grubhub and Show on Kiosk configuration options were not represented in the configuration API.

As stated earlier, the menu visibility enhancements combine the original visibility settings into one cohesive set of options with better, more intuitive labeling. The following illustration shows the new combined settings, which all reside in the Visible To configuration option on a menu entity's details page:

These configuration options have a one-to-one relationship with an enum in the visibility array that the menus API returns for each menu entity. The table below describes the behavior of each option and defines the enum used to represent it in the visibility array:

Configuration option Menus API Visibility Array Enum Description

In-store orders: POS

POS

The menu entity is visible on a Toast POS device.

In-store orders: Kiosk

KIOSK

The menu entity is visible on a Toast Kiosk device.

Online orders: Toast

TOAST_ONLINE_ORDERING

The menu entity is visible on a restaurant's Toast online ordering site.

Online orders: Ordering partners

ORDERING_PARTNERS

The restaurant wants the menu entity to be visible on online ordering sites that integrate with the Toast POS system using the orders API.

To sum up, the effect of these changes for online ordering partners are as follows:

  • Ordering partner integrations should no longer use the orderableOnline value in the configuration API to determine if a menu entity should be visible on their online ordering site. Instead, an online ordering integration should inspect the visibility array that the menus API returns for all menu entities for the existence of the ORDERING_PARTNERS enum and only display menu entities where that enum exists. The Toast technical integrations team also recommends that partners discontinue using the configuration API for retrieving any menu-related data and use the menus API instead.

  • If your ordering partner integration used the TOAST_ONLINE_ORDERING enum in the menus API visibility array to determine if a menu entity should be available on your ordering site, you must switch to using the ORDERING_PARTNERS enum instead. The TOAST_ONLINE_ORDERING enum is now used exclusively to indicate a menu entity's availability on a restaurant's Toast online ordering site. Only menu entities whose visibility array includes the ORDERING_PARTNERS enum should be shown on ordering partner web sites.

Note

For historical reasons, modifier groups currently do not have the Online orders: Toast option in the Visible To settings in the Toast administration back-end. This omission does not affect partner implementations because the Online orders: Toast option only impacts whether a menu entity is available on a restaurant's Toast online ordering site. In other words, the omission of this setting has no bearing on whether the modifier group is visible to a partner integration's online ordering site. The Online orders: Toast option will be added to modifier groups in a future release. Also, the TOAST_ONLINE_ORDERING enum is included in the visibility array for all modifier groups, regardless of the Visible To settings. This is a temporary condition that will be fixed soon. It should not impede the ability for partners to use, test, and code against the new Visible To settings because the TOAST_ONLINE_ORDERING enum is intended for the use of Toast online ordering only.