Detalles del ítem del menú
Un «ítem» es un plato dentro de un menú, que tiene propiedades específicas que lo describen y lo hacen interactuar con el sistema de manera dinámica.
A continuación, te mostramos las partes de un ítem, sus propiedades y las nuevas modificaciones que permiten integrar URLs para obtener información actualizada.
id
: string – Identificador único del ítem.name
: string – Nombre del ítem (plato).description
: string – Descripción breve del ítem.price
: number – Precio del ítem.currencyCode
: string – Moneda en la que se expresa el precio (por ejemplo, USD).ingredients
: string[] – Lista de ingredientes del ítem.vegan
: boolean – Si el ítem es vegano.vegetarian
: boolean – Si el ítem es vegetariano.imageURLs
: string[] – URLs de las imágenes del ítem.mostrar
: boolean – Define si el ítem debe mostrarse en el menú.ultimaActualizacionItem
: object – Detalles sobre la última actualización del ítem, como el email del responsable y la fecha.marcarComoNuevo
: boolean – Si el ítem debe marcarse como nuevo en el menú.barCode
: string (opcional) – Código de barras del ítem.infoApiUrl
: DatosParaInfoApiUrl (opcional) – URL externa donde se obtiene información actualizada del ítem, como precio, nombre y descripción.opciones
: ProductOption[] – Opciones personalizables disponibles para este ítem (como la selección de sabores o cantidad).
Opciones del ítem
Puedes configurar opciones personalizadas que permiten a los clientes elegir entre diferentes variaciones del ítem, como el tamaño o el sabor, y decidir si esas opciones son obligatorias o no.
ProductOption
: Objeto que define las opciones personalizables del ítem.nombre
: string – Nombre de la opción (por ejemplo, "Tamaño", "Sabor").tipo
: "selección múltiple" | "selección única" | "contadores" – Tipo de opción que puede tener varias selecciones, solo una o un contador de valores.valores
: string[] | OptionValue[] – Los valores disponibles para elegir (por ejemplo, "Pequeño", "Mediano", "Grande").enabled
: boolean – Si la opción está habilitada para ser seleccionada.obligatoria
: boolean (opcional) – Si la opción es obligatoria para el cliente (por ejemplo, "Tamaño" puede ser obligatorio mientras que "Sabor" es opcional).minSelecciones
: number (opcional) – Número mínimo de selecciones que el cliente debe hacer si la opción es de "selección múltiple".maxSelecciones
: number (opcional) – Número máximo de selecciones permitidas si la opción es de "selección múltiple".
URL de la API para obtener información
Si se configura el campo infoApiUrl
, el ítem consultará esta URL para obtener información actualizada como el precio, nombre y descripción del ítem. Los parámetros que pueden ser utilizados son:
useName
: Si se configura comotrue
, se actualizará el nombre del ítem con el valor obtenido de la API.useDescription
: Si se configura comotrue
, se actualizará la descripción del ítem con el valor obtenido de la API.usePrice
: Si se configura comotrue
, se actualizará el precio del ítem con el valor obtenido de la API.
La URL debe devolver un objeto JSON que contenga los campos opcionales name
, description
y price
.
Item API Endpoint Details
Cada ítem puede tener un campo opcional llamado endpoint
que apunta a una URL externa. Si se configura, este endpoint será consultado automáticamente para obtener valores actualizados para ese ítem. La respuesta esperada es un objeto JSON que puede contener name
, description
y price
, todos opcionales.
Desde el formulario de edición del ítem, puedes elegir si se debe usar el nombre, la descripción o el precio devueltos por el endpoint, o si se deben mantener los valores ya cargados manualmente.
{
"name": "Updated Example Item Name",
"price": 35.5
}
En este ejemplo, el endpoint solo devuelve los campos name
y price
, por lo tanto, solo esos datos estarán disponibles para actualizar el ítem (si así se decide desde el formulario).
Estructura esperada del JSON del endpoint
name
: string (opcional) – Nombre actualizado del ítem.description
: string (opcional) – Descripción del ítem.price
: number (opcional) – Precio actualizado.
El endpoint puede devolver únicamente los campos que desees. Cada ítem permite decidir, de forma individual, si utilizar los valores recibidos desde su endpoint (para name
, description
o price
) o mantener los valores ya cargados manualmente.