Los socios de Google pueden proporcionar datos estructurados del menú a Google a través de la integración de extremo a extremo de Reservas para usarlos en la sección Menú del Perfil de Negocio de Google de un restaurante y otros puntos de entrada en las plataformas para el consumidor de Google.
Los datos del menú se transfieren con los feeds genéricos. Antes de comenzar:
- Asegúrate de haber completado la configuración de la cuenta.
- Comprende el proceso de carga del feed genérico
- Comprende cómo configurar tu cuenta para subir feeds genéricos
Cómo crear y subir feeds de menú
Cuando crees y subas feeds de menú, sigue estos lineamientos y convenciones:-
Para proporcionar detalles del restaurante, sigue las especificaciones de datos que se describen en Feed de comercios.
Para ver un ejemplo de archivo JSON, consulta el ejemplo de JSON.
Los nombres de los archivos de datos deben ser únicos entre las cargas. Se recomienda incluir una marca de tiempo en el nombre del archivo, por ejemplo,
menu1_1633621547.json. -
En el descriptor del conjunto de archivos del feed de menú, establece el campo
nameengoogle.food_menu. Para ver un ejemplo del contenido del archivo de descriptor, consulta el ejemplo de JSON del archivo de descriptor. Los nombres de los archivos de descriptor deben ser únicos entre las cargas. Se recomienda incluir una marca de tiempo en el nombre del archivo, por ejemplo,descriptor_1633621547.filesetdesc.json. El archivo descriptor se debe subir al servidor SFTP genérico como parte del feed de menú. - Los feeds deben subirse al servidor SFTP genérico con una cadencia diaria como actualizaciones completas.
- Limita los feeds a 1,000 fragmentos (archivos), como se menciona en Uso del SFTP de feeds genéricos
Puedes encontrar el estado de la transferencia del feed en la sección Transferencia > Historial del portal de socios. Puedes encontrar la información del servidor SFTP de los feeds en la sección Configuración > Feeds del Portal para socios.
Puedes encontrar el estado de la transferencia del feed en la sección Transferencia > Historial del Portal de socios. Puedes encontrar la información del servidor SFTP de feeds en la sección Configuración > Feeds del Portal para socios.
Cómo trabajar con las opciones de elementos de menú
Las opciones de elementos del menú se pueden especificar con el proto MenuItemOption.
Los socios que ofrecen varios conjuntos de opciones obligatorias para un solo elemento del menú (por ejemplo, un latte con opciones de tamaño y leche) deben decidir la mejor manera de mostrar esas opciones en Google. Google recomienda lo siguiente:
- El feed de menú debe coincidir con el sitio de pedidos del socio (o con el menú para comer en el restaurante si no tienes un sitio de pedidos para la ubicación).
Si el artículo se muestra con un precio individual en el sitio de pedidos, se debe usar
MenuItem. Si el artículo se muestra con un precio base y varias opciones, se debe usarMenuItemOption. - Evita incluir una lista larga de opciones, por ejemplo:
- Burrito de pollo
- Burrito de pollo con queso
- Burrito de pollo con salsa
- Burrito de pollo con salsa y queso
- Burrito de pollo con guacamole
- Burrito de pollo con guacamole y salsa
- Las opciones de elementos del menú solo se admiten si el plato requiere que se seleccione una de las opciones. Por ejemplo, cuando pides una pizza, el tamaño es una opción obligatoria. No se admiten las opciones de elementos de menú que son para complementos (es decir, "opción para agregar aguacate") y no deben incluirse en los feeds.
El precio de la opción del elemento de menú debe ser el precio completo del elemento con esa opción seleccionada. El precio se debe establecer para el elemento del menú o para sus opciones, pero no para ambos.
Restaurantes con varios menús
Un solo restaurante (entidad) solo puede tener un menú. En el caso de un restaurante que tiene varios menús (es decir, menús separados para el almuerzo y la cena), puedes combinar todos los menús en uno solo con MenuSections (es decir, un menú con una sección para el almuerzo y otra para la cena). El menú resultante tendría la siguiente estructura:
- Menú
- Sección de almuerzo
- Sopas
- Sopa 1
- Sopa 2
- Sándwiches
- Sándwich 1
- Sándwich 2
- Sección de la cena
- Entradas
- Activador 1
- Starter 2
- Platos principales
- Plato principal 1
- Plato principal 2
Compartir menús entre restaurantes
Se puede compartir un solo menú entre varios restaurantes si se incluyen todos los restaurantes en la lista de merchant_ids del menú. Ten en cuenta que esta lista acepta IDs de entidades para los socios que usan el feed de entidades.
Prácticas recomendadas
A continuación, se indican las prácticas recomendadas que debes seguir cuando desarrolles feeds de menús.
- Asocia solo un menú a un restaurante.
- Proporciona el idioma preferido como el primer idioma en el TextField. Si envías varios objetos LocalizedText, se mostrará a los usuarios el primer objeto de la lista de texto.
- Todos los elementos del menú se deben agregar a las secciones del menú. No agregues elementos de menú directamente al objeto de menú.
- Proporciona contenido con codificación UTF-8. No es necesario escapar los caracteres no ASCII.
- Si planeas lanzar tu app en varias regiones, asegúrate de usar los códigos de moneda y las denominaciones correctos en los campos de unidades y nanos. Presta especial atención al campo de nanos, que equivale a 10^-9 de una unidad. Usa el Visualizador de menú en el Visualizador de inventario para confirmar que estableciste los precios correctamente.
- Proporcionar a los usuarios menús visualmente enriquecidos, integrales y actualizados es clave para brindar una experiencia del usuario útil y atractiva. Los precios, las descripciones, las fotos y la información dietética son elementos clave para impulsar la toma de decisiones, y se recomienda a los socios que proporcionen la mayor cantidad posible de estos datos para brindar una experiencia óptima a los usuarios y comercios.
- Para no mostrar ningún precio, incluye un prototipo Price vacío en el prototipo Offer.
Herramientas de desarrollo y pruebas
Después del lanzamiento de los feeds de menú, los datos de tus feeds de menú serán aptos para aparecer en las experiencias de descubrimiento y podrán verse en la pestaña "Menú" de la hoja de lugar del restaurante. La pestaña de menú es compatible con la Búsqueda de Google (dispositivos móviles y computadoras), y la experiencia se expandirá a otras plataformas, como Google Maps. La experiencia renderizada puede variar según la superficie.
Para asegurarte de que tu menú esté estructurado correctamente, usa el Visualizador de menús en el Visualizador de inventario para obtener una vista previa de tus menús.
Los menús de los restaurantes pueden provenir de muchas fuentes, incluidos los propios restaurantes a través de su Perfil de Negocio de Google, socios de pedidos de comida y reservas, fotos de menús de los usuarios y mucho más. Si varias fuentes proporcionan menús para el mismo restaurante, el comercio puede elegir un proveedor preferido en el editor de menús del Perfil de Negocio de Google.
Esquema
Puedes encontrar el esquema completo del menú aquí.
FoodMenuFeed
| Nombre del campo | Tipo | Requisito | Descripción |
|---|---|---|---|
data | array de object(MenuComponent) |
MenuComponent
| Nombre del campo | Tipo | Requisito | Descripción |
|---|---|---|---|
| oneOf(type) | Solo se puede establecer uno de los campos en este oneOf. |
| Nombre del campo | Tipo | Requisito | Descripción |
|---|---|---|---|
menu_id | string | Obligatorio | Es una cadena opaca de un socio que identifica de forma única el menú dentro del feed del socio. Obligatorio. |
merchant_ids | Array de cadenas | Obligatorio | Son los comercios a los que se aplica el menú. Nota: Este campo se repite para que las cadenas de restaurantes puedan compartir el mismo menú en varias ubicaciones, cada una de las cuales es un comercio independiente. Obligatorio. |
display_name | object(TextField) | Es el nombre que puede identificar el menú cuando un usuario lo explora. Opcional. | |
language | string | Es el código de idioma predeterminado asociado con las etiquetas de texto que se incluyen en el menú. Se espera un código de idioma BCP-47, como "en-US" o "sr-Latn". Para obtener más información, consulta http://www.unicode.org/reports/tr35/#Unicode_locale_identifier. Opcional. |
| Nombre del campo | Tipo | Requisito | Descripción |
|---|---|---|---|
text | array de object(LocalizedText) | Obligatorio | Son los valores de texto por configuración regional. Si solo se desea admitir una configuración regional, no es necesario establecer el parámetro language_code en cada texto, y el idioma se inferirá del idioma predeterminado del menú. Si hay varios textos en diferentes configuraciones regionales, se debe establecer el parámetro language_code para cada texto. El primer texto de la lista se considera la representación preferida. Obligatorio. |
LocalizedText
Es la variante localizada de un texto en un idioma determinado.
| Nombre del campo | Tipo | Requisito | Descripción |
|---|---|---|---|
text | string | Es una cadena localizada en el idioma correspondiente a [language_code][google.type.LocalizedText.language_code] que se indica a continuación. | |
language_code | string | Es el código de idioma BCP-47 del texto, como "en-US" o "sr-Latn". Para obtener más información, consulta http://www.unicode.org/reports/tr35/#Unicode_locale_identifier. |
| Nombre del campo | Tipo | Requisito | Descripción |
|---|---|---|---|
menu_section_id | string | Obligatorio | Es una cadena opaca de un socio que identifica de forma única el objeto MenuSection dentro del feed del socio. Obligatorio. |
display_name | object(TextField) | Obligatorio | Es el nombre que puede identificar el objeto MenuSection cuando un usuario explora el menú. Obligatorio. |
description | object(TextField) | Es una descripción de la sección del menú. Opcional. | |
images | array de object(Image) | Imágenes de la sección del menú Opcional. |
| Nombre del campo | Tipo | Requisito | Descripción |
|---|---|---|---|
uri | string | Obligatorio | Es la URL que contiene los píxeles sin procesar de la imagen. Obligatorio. |
| Nombre del campo | Tipo | Requisito | Descripción |
|---|---|---|---|
menu_item_id | string | Obligatorio | Es una cadena opaca de un socio que identifica de forma única el MenuItem dentro del feed del socio. Obligatorio. |
display_name | object(TextField) | Obligatorio | Es el nombre que puede identificar el MenuItem cuando un usuario navega por el menú. Obligatorio. |
description | object(TextField) | Es la descripción del elemento de menú. Opcional. | |
images | array de object(Image) | Imágenes del elemento de menú. Opcional. | |
| oneOf(pricing) | Obligatorio | Solo se puede establecer uno de los campos en este oneOf. |
item_attributes | object(MenuItemAttributes) | Son los atributos de este elemento de menú. Opcional. |
| Nombre del campo | Tipo | Requisito | Descripción |
|---|---|---|---|
offers | array de object(Offer) | Obligatorio | Es la lista de ofertas posibles. Obligatorio. |
| Nombre del campo | Tipo | Requisito | Descripción |
|---|---|---|---|
price | object(Money) | Los siguientes casos no son válidos y harán que se quite el elemento de menú: Precio sin código de moneda, pero con unidades o nanos, o ambos: price {units: 100, nanos: 1000000} price {units: 100} price {nanos: 1000000} Precio con código de moneda no válido, pero con unidades o nanos, o ambos: price {currency_code: 'gXYZ', units: 100, nanos: 1000000} price {currency_code: 'gXYZ', units: 100} price {currency_code: 'gXYZ', nanos: 1000000} Precio con código de moneda, pero con unidades o nanos no válidos price {currency_code: 'USD', units: 100, nanos: -100} price {currency_code: 'USD', units: -100, nanos: 100} |
Dinero
Representa un importe de dinero con su tipo de moneda.
| Nombre del campo | Tipo | Requisito | Descripción |
|---|---|---|---|
currency_code | string | Es el código de moneda de tres letras definido en la norma ISO 4217. | |
units | string | La unidad entera del importe.
Por ejemplo, si currencyCode es "USD", 1 unidad es un dólar estadounidense. | |
nanos | número | Número de unidades nano (10^-9) del importe.
Debe ser un valor entre -999,999,999 y +999,999,999.
Si units es positivo, nanos debe ser positivo o cero.
Si units es cero, nanos puede ser positivo, cero o negativo.
Si units es negativo, nanos debe ser negativo o cero.
Por ejemplo, –$1.75 se representa como units=-1 y nanos=-750,000,000. |
| Nombre del campo | Tipo | Requisito | Descripción |
|---|---|---|---|
menu_item_option_ids | Array de cadenas | Obligatorio | Son los IDs de las opciones de elementos de menú que se aplican a este elemento de menú. Obligatorio. |
| Nombre del campo | Tipo | Requisito | Descripción |
|---|---|---|---|
number_of_servings | número | Cantidad de porciones disponibles en un elemento de menú determinado. Opcional. | |
nutrition_information | object(NutritionInformation) | Describe toda la información nutricional del artículo, p.ej., calorías y contenido de grasa. Opcional. | |
suitable_diets | array de enum(DietaryRestriction) | Son las restricciones alimentarias que cumple este elemento del menú. Opcional. | |
additive | array de object(Additive) | Son los aditivos de este elemento de menú. Opcional. | |
allergen | array de object(Allergen) | Alérgenos de este elemento de menú. Opcional. | |
packaging_deposit_info | object(DepositInfo) | Es la información de empaquetado y reciclaje de este elemento del menú. Opcional. |
| Nombre del campo | Tipo | Requisito | Descripción |
|---|---|---|---|
energy | object(NutritionValue) | Es la cantidad de energía nutricional de la porción de comida. Se puede definir en calorías o kilojulios. Opcional. | |
sodium_content | object(NutritionValue) | Cantidad de sodio, medida en gramos o miligramos Opcional. | |
serving_size | número | Es la cantidad de porciones a las que se aplica el valor nutricional. Opcional. | |
description | object(TextField) | Es la información nutricional en formato de texto libre. Por ejemplo, "Contiene conservantes". Opcional. |
| Nombre del campo | Tipo | Requisito | Descripción |
|---|---|---|---|
| oneOf(value) | Solo se puede establecer uno de los campos en este oneOf. | |
unit | enum(NutritionValueUnit) | Obligatorio | Es la unidad asociada al importe, según lo especificado por el socio. Validaremos el feed para que la unidad de cada tipo de valor nutricional sea la esperada para ese tipo de valor. Por ejemplo, solo se esperan ENERGY_CALORIES y ENERGY_KILOJOULES en la propiedad energy de NutritionalInformation. Obligatorio. |
| Nombre del campo | Tipo | Requisito | Descripción |
|---|---|---|---|
min | número | Obligatorio | Es la cantidad mínima de valor nutricional. Obligatorio. |
max | número | Obligatorio | Es la cantidad máxima de valor nutricional. Obligatorio. |
| Nombre del campo | Tipo | Requisito | Descripción |
|---|---|---|---|
name | object(TextField) | Obligatorio | Texto descriptivo del aditivo, p.ej., "conservantes". Obligatorio. |
containment_level_code | enum(ContainmentLevelCode) | Indica si el elemento de menú contiene, puede contener o no contiene este aditivo. El valor predeterminado es contains. Opcional. |
| Nombre del campo | Tipo | Requisito | Descripción |
|---|---|---|---|
allergen_type_code | enum(AllergenTypeCode) | Obligatorio | Es el tipo de alérgeno. Obligatorio. |
containment_level_code | enum(ContainmentLevelCode) | Indica si el elemento de menú contiene, puede contener o no contiene este alérgeno. El valor predeterminado es contains. Opcional. |
| Nombre del campo | Tipo | Requisito | Descripción |
|---|---|---|---|
deposit_code | enum(DepositCode) | Es la estrategia de depósito que se debe emplear, p.ej., "reusable". Opcional. | |
deposit_value | object(Money) | Es el valor reembolsado por depositar el artículo correctamente. Opcional. |
| Nombre del campo | Tipo | Requisito | Descripción |
|---|---|---|---|
menu_item_option_id | string | Obligatorio | Es una cadena opaca de un socio que identifica de forma única el MenuItemOption dentro del feed del socio. Obligatorio. |
value | object(MenuItemOptionProperty) | Obligatorio | Propiedad y valor de la opción, p.ej., Tamaño: pequeño. Obligatorio. |
| Nombre del campo | Tipo | Requisito | Descripción |
|---|---|---|---|
property_type | enum(PropertyType) | Obligatorio | Es el tipo de esta propiedad de opción. Obligatorio. |
| oneOf(value) | Obligatorio | Solo se puede establecer uno de los campos en este oneOf. |
NutritionValueUnit
| Nombre | Descripción |
|---|---|
NUTRITION_VALUE_UNIT_UNSPECIFIED | No lo utilices. No se estableció explícitamente la unidad de valor nutricional. |
ENERGY_CALORIES | Unidades que se usan para expresar la cantidad de energía en un elemento de menú. |
ENERGY_KILOJOULES | |
WEIGHT_MILLIGRAMS | Unidades que se usan para expresar la cantidad en peso de una sustancia presente en el elemento de menú. |
WEIGHT_GRAMS |
DietaryRestriction
Indica una restricción o pauta alimentaria que se siguió durante la preparación de la comida.
| Nombre | Descripción |
|---|---|
DIET_UNSPECIFIED | No lo utilices. No se especifica explícitamente la restricción alimentaria. |
DIET_DIABETIC | |
DIET_GLUTEN_FREE | |
DIET_HALAL | |
DIET_HINDU | |
DIET_KOSHER | |
DIET_LOW_CALORIE | |
DIET_LOW_FAT | |
DIET_LOW_LACTOSE | |
DIET_LOW_SALT | |
DIET_VEGAN | |
DIET_VEGETARIAN |
ContainmentLevelCode
Indica el nivel de contención que tiene un alimento de un atributo determinado, como alérgenos o aditivos.
| Nombre | Descripción |
|---|---|
CONTAINMENT_LEVEL_CODE_UNSPECIFIED | No lo utilices. No se especifica de forma explícita el código de nivel de contención. |
CONTAINMENT_LEVEL_CODE_CONTAINS | |
CONTAINMENT_LEVEL_CODE_DOES_NOT_CONTAIN | |
CONTAINMENT_LEVEL_CODE_MAY_CONTAIN |
AllergenTypeCode
Tipo de alérgeno derivado de GS1: http://gs1.org/voc/AllergenTypeCode
| Nombre | Descripción |
|---|---|
ALLERGEN_TYPE_CODE_UNSPECIFIED | No lo utilices. No se especifica de forma explícita el código del tipo de alérgeno. |
ALLERGEN_TYPE_CODE_ALMONDS | |
ALLERGEN_TYPE_CODE_ALPHA_ISOMETHYL_IONONE | |
ALLERGEN_TYPE_CODE_ALCOHOL | |
ALLERGEN_TYPE_CODE_AMYL_CINNAMAL | |
ALLERGEN_TYPE_CODE_ANISE_ALCOHOL | |
ALLERGEN_TYPE_CODE_BARLEY | |
ALLERGEN_TYPE_CODE_BENZYL_ALCOHOL | |
ALLERGEN_TYPE_CODE_BENZYL_BENZOATE | |
ALLERGEN_TYPE_CODE_BENZYL_CINNAMATE | |
ALLERGEN_TYPE_CODE_BENZYL_SALICYLATE | |
ALLERGEN_TYPE_CODE_BRAZIL_NUTS | |
ALLERGEN_TYPE_CODE_BUTYLPHENYL_METHYLPROPIONATE | |
ALLERGEN_TYPE_CODE_CARROTS | |
ALLERGEN_TYPE_CODE_CASHEW_NUTS | |
ALLERGEN_TYPE_CODE_CELERY | |
ALLERGEN_TYPE_CODE_CEREALS_CONTAINING_GLUTEN | |
ALLERGEN_TYPE_CODE_CINNAMAL | |
ALLERGEN_TYPE_CODE_CINNAMYL_ALCOHOL | |
ALLERGEN_TYPE_CODE_CITRAL | |
ALLERGEN_TYPE_CODE_CITRONELLOL | |
ALLERGEN_TYPE_CODE_COCOA | |
ALLERGEN_TYPE_CODE_CORIANDER | |
ALLERGEN_TYPE_CODE_CORN | |
ALLERGEN_TYPE_CODE_COUMARIN | |
ALLERGEN_TYPE_CODE_CRUSTACEANS | |
ALLERGEN_TYPE_CODE_EGGS | |
ALLERGEN_TYPE_CODE_EUGENOL | |
ALLERGEN_TYPE_CODE_EVERNIA_FURFURACEA | |
ALLERGEN_TYPE_CODE_EVERNIA_PRUNASTRI | |
ALLERGEN_TYPE_CODE_FARNESOL | |
ALLERGEN_TYPE_CODE_FISH | |
ALLERGEN_TYPE_CODE_GERANIOL | |
ALLERGEN_TYPE_CODE_GLUTEN | |
ALLERGEN_TYPE_CODE_HAZELNUTS | |
ALLERGEN_TYPE_CODE_HEXYL_CINNAMAL | |
ALLERGEN_TYPE_CODE_HYDROXYCITRONELLAL | |
ALLERGEN_TYPE_CODE_HYDROXYISOHEXYL_3_CYCLOHEXENE_CARBOXALDEHYDE_ISOEUGENOL_LIMONENE_LINAL | |
ALLERGEN_TYPE_CODE_KAMUT | |
ALLERGEN_TYPE_CODE_LACTOSE | |
ALLERGEN_TYPE_CODE_LUPINE | |
ALLERGEN_TYPE_CODE_MACADAMIA_NUTS | |
ALLERGEN_TYPE_CODE_METHYL_2_OCTYNOATE | |
ALLERGEN_TYPE_CODE_MILK | |
ALLERGEN_TYPE_CODE_MOLLUSCS | |
ALLERGEN_TYPE_CODE_MUSTARD | |
ALLERGEN_TYPE_CODE_NO_DECLARED_ALLERGENS | |
ALLERGEN_TYPE_CODE_OAT | |
ALLERGEN_TYPE_CODE_PEANUTS | |
ALLERGEN_TYPE_CODE_PEAS | |
ALLERGEN_TYPE_CODE_PECAN_NUTS | |
ALLERGEN_TYPE_CODE_PISTACHIOS | |
ALLERGEN_TYPE_CODE_POD_FRUITS | |
ALLERGEN_TYPE_CODE_QUEENSLAND_NUTS | |
ALLERGEN_TYPE_CODE_RYE | |
ALLERGEN_TYPE_CODE_SESAME_SEEDS | |
ALLERGEN_TYPE_CODE_SOYBEANS | |
ALLERGEN_TYPE_CODE_SPELT | |
ALLERGEN_TYPE_CODE_SULPHUR_DIOXIDE | |
ALLERGEN_TYPE_CODE_TREE_NUTS | |
ALLERGEN_TYPE_CODE_TREE_NUT_TRACES | |
ALLERGEN_TYPE_CODE_WALNUTS | |
ALLERGEN_TYPE_CODE_WHEAT |
DepositCode
Indica cómo depositar correctamente un alimento o una botella.
| Nombre | Descripción |
|---|---|
DEPOSIT_CODE_UNSPECIFIED | No lo utilices. No se especificó explícitamente el código de depósito. |
DEPOSIT_CODE_REUSABLE | |
DEPOSIT_CODE_RECYCLABLE |
PropertyType
Tipos de propiedad para los que se aplica la opción.
| Nombre | Descripción |
|---|---|
UNKNOWN_PROPERTY_TYPE | No lo utilices. No se especifica explícitamente el tipo de propiedad. |
OPTION | Es una propiedad genérica de opción de elemento de menú, que no es uno de los tipos más específicos que se indican a continuación. Usa este valor si la propiedad no es de tipo SIZE o PIZZA_SIDE. |
SIZE | Denota la propiedad de opción del elemento de menú de tamaño (p.ej., pequeño, mediano o grande). |
PIZZA_SIDE | Propiedad específica de las pizzas. Por ejemplo, este MenuItemOption solo es válido para una porción o una pizza entera, como los ingredientes de champiñones en el lado izquierdo, el lado derecho o toda la pizza. |
PropertyValue
Valores bien definidos para la propiedad de opción.
| Nombre | Descripción |
|---|---|
UNKNOWN_PROPERTY_VALUE | No lo utilices. El valor de la propiedad no se especifica de forma explícita. |
PIZZA_SIDE_LEFT | La opción de elemento de menú solo se aplica al lado izquierdo de una pizza. |
PIZZA_SIDE_RIGHT | El MenuItemOption solo se aplica al lado derecho de una pizza. |
PIZZA_SIDE_WHOLE | MenuItemOption se aplica a toda la pizza. |
tipo
| Nombre del campo | Tipo | Requisito | Descripción |
|---|---|---|---|
menu | object(Menu) | Es mutuamente excluyente con | |
section | object(MenuSection) | Es mutuamente excluyente con | |
item | object(MenuItem) | Es mutuamente excluyente con | |
option | object(MenuItemOption) | Es mutuamente excluyente con |
| Nombre del campo | Tipo | Requisito | Descripción |
|---|---|---|---|
offer_set | object(OfferSet) | Es mutuamente excluyente con | Son las ofertas disponibles para comprar este alimento. |
menu_item_option_set | object(MenuItemOptionSet) | Es mutuamente excluyente con | Son las opciones disponibles para este elemento del menú. |
| Nombre del campo | Tipo | Requisito | Descripción |
|---|---|---|---|
amount | número | Es mutuamente excluyente con | Es un solo número que representa la cantidad de valor nutricional. |
range | object(Range) | Es mutuamente excluyente con | Es un rango que representa la cantidad de valor nutricional. |
| Nombre del campo | Tipo | Requisito | Descripción |
|---|---|---|---|
property_val | enum(PropertyValue) | Es mutuamente excluyente con | Es un valor bien definido para la propiedad de la opción. Actualmente, solo se espera si property_type es PIZZA_SIDE. |
text_val | object(TextField) | Es mutuamente excluyente con | Es un texto de formato libre para el valor de la propiedad. Se espera para los tipos de propiedad OPTION y SIZE. |