REST Resource: projects.locations.menus

Item

Item represents a menu entity which is valid only as a top-level item within an order. Item may represent a single food item, drink, service, promotion, or combination meal which can be modified with various choices.

JSON representation
{
  "id": string,
  "semanticName": string,
  "displayName": string,
  "categoryIds": [
    string
  ],
  "description": string,
  "image": {
    object (Image)
  },
  "availability": {
    object (Availability)
  },
  "basePrice": {
    object (Money)
  },
  "integrationAttributes": {
    object (ItemIntegrationAttributes)
  },
  "modifierGroups": [
    {
      object (ModifierGroupReference)
    }
  ],
  "modifierConstraints": {
    object (ModifierConstraints)
  }
}
Fields
id

string

Required. Identifier for this item, unique within the menu.

semanticName

string

Optional. Concise, human-readable name which clearly & distinctly identifies this item. Should be unique among Items in the menu.

displayName

string

Required. Human-readable name for this item to be used on user interfaces.

categoryIds[]

string

Optional. Category of the item.

description

string

Optional. Human-readable description.

image

object (Image)

Optional. Image to display for this item in the UI.

availability

object (Availability)

Optional. Availability of the item.

basePrice

object (Money)

Optional. The base price of the item. This may be affected by the selected modifiers.

integrationAttributes

object (ItemIntegrationAttributes)

Optional. Metadata associated with this entity used for downstream integrations.

modifierGroups[]

object (ModifierGroupReference)

Optional. References to modifier groups which apply to this item.

modifierConstraints

object (ModifierConstraints)

Optional. Constrains what modifiers can / must be applied to this item across referenced ModifierGroups.

Image

Image to display for a menu entity.

JSON representation
{
  "sourceUri": string
}
Fields
sourceUri

string

Required. The source URI of the image.

Availability

Defines the availability of an item or modifier.

JSON representation
{
  "daypartAvailability": {
    object (DaypartAvailability)
  },
  "menuScheduleAvailability": {
    object (MenuScheduleAvailability)
  },
  "status": enum (Status),
  "fulfillmentAvailability": {
    object (FulfillmentMethodAvailability)
  }
}
Fields
daypartAvailability

object (DaypartAvailability)

Optional. Daypart-level availability information for this item. If omitted, daypart-based availability is ignored.

menuScheduleAvailability

object (MenuScheduleAvailability)

Optional. Menu schedule-level availability information for this item. If omitted, menu schedule-based availability is ignored.

status

enum (Status)

Optional. Indicates a status leading to unavailability, or that the item is available. If omitted, the item is available by default.

fulfillmentAvailability

object (FulfillmentMethodAvailability)

Optional. The fulfillment methods this item is available for. If omitted, the item is available for all fulfillment methods.

DaypartAvailability

Constrains availability of this entity to specified dayparts.

JSON representation
{
  "daypartIds": [
    string
  ]
}
Fields
daypartIds[]

string

Required. Dayparts during which this item is available.

Status

Status of availability.

Enums
STATUS_UNSPECIFIED Invalid status. menus.create will fail if any item or modifier has this status.
STATUS_AVAILABLE Indicates that the item is available for purchase.
STATUS_UNAVAILABLE Indicates that the item is unavailable for ambiguous reasons.
STATUS_OUT_OF_STOCK Indicates that the item is currently out of stock, but may become available in the near future.
STATUS_DISCONTINUED Indicates that the item is discontinued, and will remain unavailable for the foreseeable future.

FulfillmentMethodAvailability

Constrains availability of this entity to specified fulfillment methods.

JSON representation
{
  "fulfillmentMethods": [
    enum (FulfillmentMethod)
  ]
}
Fields
fulfillmentMethods[]

enum (FulfillmentMethod)

Required. Fulfillment methods for which this item is available.

ItemIntegrationAttributes

Metadata associated with an item used for downstream integrations.

JSON representation
{
  "customIntegrationAttributes": {
    object
  },
  "streamAttributes": {
    object (StreamIntegrationAttributes)
  },
  "toastAttributes": {
    object (ToastIntegrationAttributes)
  }
}
Fields
customIntegrationAttributes

object (Struct format)

Optional. Arbitrary metadata to be associated with an entity, used to build downstream integrations, i.e. identifiers or schema information for constructing an order for submission to a third-party point of sale API.

streamAttributes

object (StreamIntegrationAttributes)

Optional. Represents metadata associated with this item used for Stream integration. If Stream integration isn't enabled for the store, this field is ignored.

toastAttributes

object (ToastIntegrationAttributes)

Optional. Represents metadata associated with this item used for Toast integration. If Toast integration isn't enabled for the store, this field is ignored.

StreamIntegrationAttributes

Represents attributes for an Item from a Stream menu.

JSON representation
{
  "taxes": [
    {
      object (Tax)
    }
  ],
  "itemFamilyId": string
}
Fields
taxes[]

object (Tax)

Optional. Represents tax rates which apply to this item.

itemFamilyId

string

Optional. Represents the item family that contains this item variant in Stream's menu.

Tax

Tax rate information associated with this item.

JSON representation
{
  "streamId": string,
  "isInclusive": boolean,
  "rate": number,
  "displayName": string,
  "isDefault": boolean
}
Fields
streamId

string

Required. The ID of the tax in the Stream menu.

isInclusive

boolean

Optional. Determines if the tax amount is already included in the item price

rate

number

Required. The rate of the tax as a percentage.

displayName

string

Optional. The name of the tax.

isDefault

boolean

Optional. Whether the tax is the default tax.

ToastIntegrationAttributes

Represents attributes for an Item from a Toast menu.

JSON representation
{
  "menuGroupGuid": string
}
Fields
menuGroupGuid

string

Optional. Represents the menu group guid of the item in Toast's menu.

ModifierGroupReference

A reference to a modifier group.

JSON representation
{
  "id": string,
  "defaultModifiers": [
    {
      object (DefaultModifierSelection)
    }
  ],
  "minSelectionCount": integer,
  "maxSelectionCount": integer
}
Fields
id

string

Required. The modifier group ID.

defaultModifiers[]

object (DefaultModifierSelection)

Optional. The set of modifiers that are applied by default.

minSelectionCount

integer

Optional. The minimum count of modifiers from the referenced ModifierGroup which must be selected. If this value is set on both the ModifierGroupReference and the ModifierGroup, both constraints are enforced. If not set, there is no minimum.

maxSelectionCount

integer

Optional. The maximum count of total modifiers from the referenced group that may be selected. If this value is set on both the ModifierGroupReference and the ModifierGroup, both constraints are enforced. If not set, there is no maximum.

DefaultModifierSelection

Specifies the default selection of a modifier within a ModifierGroup.

JSON representation
{
  "id": string,
  "quantity": integer
}
Fields
id

string

Required. The modifier ID.

quantity

integer

Optional. The quantity of this modifier to apply. If omitted, reference is treated as having a quantity of 1.

ModifierConstraints

Constrains what modifiers can or must be applied to an entity across referenced ModifierGroups.

JSON representation
{
  "minQuantity": integer,
  "maxQuantity": integer
}
Fields
minQuantity

integer

Optional. The minimum number of modifiers that must be applied across directly referenced ModifierGroups. If not specified, no minimum is enforced.

maxQuantity

integer

Optional. The maximum number of modifiers that may be applied across directly referenced ModifierGroups. If not specified, no maximum is enforced.

Modifier

Defines modifying options made within for items or other modifiers, via relationships defined by ModifierGroup.

JSON representation
{
  "id": string,
  "displayName": string,
  "description": string,
  "image": {
    object (Image)
  },
  "semanticName": string,
  "categoryIds": [
    string
  ],
  "availability": {
    object (Availability)
  },
  "priceAdjustment": {
    object (Money)
  },
  "integrationAttributes": {
    object (ModifierIntegrationAttributes)
  },
  "modifierGroups": [
    {
      object (ModifierGroupReference)
    }
  ],
  "modifierConstraints": {
    object (ModifierConstraints)
  }
}
Fields
id

string

Required. Identifier for this modifier, unique within the menu.

displayName

string

Required. Human-readable name for this item to be used on user interfaces.

description

string

Optional. Human-readable description.

image

object (Image)

Optional. Image to display for this item in the UI.

semanticName

string

Optional. Concise, human-readable name which clearly & distinctly identifies this modifier. Should be unique among Modifiers in ModifierGroups where this Modifier exists.

categoryIds[]

string

Optional. Category of the modifier.

availability

object (Availability)

Optional. Availability for this modifier.

priceAdjustment

object (Money)

Optional. An additive adjustment applied to the top-level item's price when this modifier is selected. Leave empty if the modifier does not affect the price.

integrationAttributes

object (ModifierIntegrationAttributes)

Optional. Metadata associated with this entity used for downstream integrations.

modifierGroups[]

object (ModifierGroupReference)

Optional. References to modifier groups which apply to this modifier.

modifierConstraints

object (ModifierConstraints)

Optional. Constrains what modifiers can / must be applied to this modifier across referenced ModifierGroups.

ModifierIntegrationAttributes

Metadata associated with a modifier used for downstream integrations.

JSON representation
{
  "customIntegrationAttributes": {
    object
  },
  "toastAttributes": {
    object (ToastModifierIntegrationAttributes)
  }
}
Fields
customIntegrationAttributes

object (Struct format)

Optional. Arbitrary metadata to be associated with an entity, used to build downstream integrations, i.e. identifiers or schema information for constructing an order for submission to a third-party point of sale API.

toastAttributes

object (ToastModifierIntegrationAttributes)

Optional. Represents metadata associated with this modifier used for Toast integration. If Toast integration isn't enabled for the store, this field is ignored.

ToastModifierIntegrationAttributes

Represents attributes for a Modifier from a Toast menu.

JSON representation
{
  "guid": string,
  "isPreModifier": boolean
}
Fields
guid

string

Optional. Represents the modifier option guid of the item in Toast's menu.

isPreModifier

boolean

Optional. If true, this modifier represents a Toast PreModifier.

ModifierGroup

Defines a group of modifiers from which selections can be made.

JSON representation
{
  "id": string,
  "displayName": string,
  "semanticName": string,
  "modifierIds": [
    string
  ],
  "modifierActions": [
    {
      object (ModifierAction)
    }
  ],
  "minSelectionCount": integer,
  "maxSelectionCount": integer,
  "maxSelectionCountPerModifier": integer,
  "integrationAttributes": {
    object (ModifierGroupIntegrationAttributes)
  }
}
Fields
id

string

Required. Identifier for this modifier group, unique within its menu.

displayName

string

Required. The modifier group name -- e.g. "Toppings (Sandwich)" or "Side for Medium Combo".

semanticName

string

Optional. The modifier group name -- e.g. "Toppings (Sandwich)" or "Side for Combo".

modifierIds[]

string

Required. The modifier IDs that are part of this group.

modifierActions[]

object (ModifierAction)

Optional. The actions that can be taken on the modifiers in this group.

minSelectionCount

integer

Optional. The minimum count of modifiers from the referenced group that must be selected in order for the Item to be valid. If not set, there is no minimum. For a group where exactly one selection is required, this should be 1.

maxSelectionCount

integer

Optional. The maximum count of total modifiers from the referenced group that may be selected. If not set, there is no maximum. For a group where exactly one selection is required, this should be 1.

maxSelectionCountPerModifier

integer

Optional. Limits the number of times each modifier can be applied within this group. If not set, the default is 1.

integrationAttributes

object (ModifierGroupIntegrationAttributes)

Optional. Metadata associated with this entity used for downstream integrations.

ModifierAction

Defines an action that can be taken on modifiers.

JSON representation
{
  "name": string
}
Fields
name

string

Required. The modifier action name -- e.g. "NO", "SIDE", "ADD", "EXTRA".

ModifierGroupIntegrationAttributes

Metadata associated with a modifier group used for downstream integrations.

JSON representation
{
  "customIntegrationAttributes": {
    object
  },
  "toastAttributes": {
    object (ToastModifierGroupIntegrationAttributes)
  }
}
Fields
customIntegrationAttributes

object (Struct format)

Optional. Arbitrary metadata to be associated with an entity, used to build downstream integrations, i.e. identifiers or schema information for constructing an order for submission to a third-party point of sale API.

toastAttributes

object (ToastModifierGroupIntegrationAttributes)

Optional. Represents metadata associated with this modifier group used for Toast integration. If Toast integration isn't enabled for the store, this field is ignored.

ToastModifierGroupIntegrationAttributes

Represents attributes for a ModifierGroup from a Toast menu.

JSON representation
{
  "guid": string,
  "isPreModifierGroup": boolean
}
Fields
guid

string

Optional. Represents the menu group guid of the item in Toast's menu.

isPreModifierGroup

boolean

Optional. If true, this modifier group represents a Toast PreModifierGroup.

Methods

create

Creates a menu.

delete

Deletes the specified menu.

get

Gets a menu.

list

Lists menus.