Menu Mix

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 como true, se actualizará el nombre del ítem con el valor obtenido de la API.
  • useDescription: Si se configura como true, se actualizará la descripción del ítem con el valor obtenido de la API.
  • usePrice: Si se configura como true, 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.