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.