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)
  },
  "numericAbbreviations": [
    string
  ],
  "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.

numericAbbreviations[]

string

Optional. Short, usually numeric abbreviations that users might use to refer to this item, as in, "I'd like a number 3." Must be at most 3 characters.

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)
  },
  "status": enum (Status)
}
Fields
daypartAvailability

object (DaypartAvailability)

Optional. Daypart-level availability information for this item. If omitted, daypart-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.

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.

ItemIntegrationAttributes

Metadata associated with an item used for downstream integrations.

JSON representation
{
  "customIntegrationAttributes": {
    object
  }
}
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.

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
  }
}
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.

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
  }
}
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.

Methods

create

Creates a menu.

delete

Deletes the specified menu.

get

Gets a menu.

list

Lists menus.