Menú digital
POST
Detalle de un plato del menú digital
POST /api/digital-menu/get-product
Descripción
Devuelve un plato con sus precios, alérgenos y opciones para personalizarlo.
Detalles
Retorna el plato con sus fotos, los precios entre los que se elige al pedir, sus variaciones y los grupos de opciones con el mínimo y el máximo a elegir. Con eso se arma el plato antes de agregarlo al pedido.
Permisos requeridos
public
Request
| Nombre | Tipo | Requerido | Reglas |
|---|---|---|---|
| slug | string | Sí |
min:1
max:63
|
| token | string | No |
min:1
max:64
|
| menuId | int | Sí |
min_value:1
|
| productUuid | string | Sí |
min:36
max:36
|
Respuesta
Campos que devuelve dentro de data. Nada fuera de esta lista sale en la respuesta.
| Campo | Tipo | Descripción |
|---|---|---|
| product | object | Detalle del producto |
| product.productId | int | Identificador del producto, para agregarlo al pedido |
| product.productUuid | string | Identificador público del producto |
| product.name | string | Nombre del producto |
| product.description | string Admite vacío | Descripción del producto |
| product.priceCents | int | Precio base, en centavos |
| product.kitchenDefaultNotes | string Admite vacío | Notas sugeridas para cocina |
| product.icon | string Admite vacío | Ícono del producto |
| product.color | string Admite vacío | Color del producto |
| product.categoryId | int | Identificador de la categoría |
| product.categoryName | string Admite vacío | Nombre de la categoría |
| product.categoryColor | string Admite vacío | Color de la categoría |
| product.imageUrl | string Admite vacío | Foto principal |
| product.images | array | Fotos del producto |
| product.images[].url | string | Dirección de la foto |
| product.allergens | array | Alérgenos del producto |
| product.allergens[].allergenId | int | Identificador del alérgeno |
| product.allergens[].name | string | Nombre del alérgeno |
| product.allergens[].icon | string Admite vacío | Ícono del alérgeno |
| product.allergens[].contains | string | Si lo contiene o puede tener trazas |
| product.modifierGroups | array | Grupos de opciones para personalizar el producto |
| product.modifierGroups[].modifierGroupId | int | Identificador del grupo, para agregarlo al pedido |
| product.modifierGroups[].name | string | Nombre del grupo |
| product.modifierGroups[].description | string Admite vacío | Descripción del grupo |
| product.modifierGroups[].minSelections | int | Mínimo de opciones a elegir |
| product.modifierGroups[].maxSelections | int Admite vacío | Máximo de opciones; vacío si no tiene tope |
| product.modifierGroups[].isCollapsible | bool | Si el grupo se muestra plegado |
| product.modifierGroups[].options | array | Opciones del grupo |
| product.modifierGroups[].options[].modifierId | int | Identificador de la opción, para agregarla al pedido |
| product.modifierGroups[].options[].name | string | Nombre de la opción |
| product.modifierGroups[].options[].priceCents | int | Precio adicional, en centavos |
| product.modifierGroups[].options[].minQuantity | int | Cantidad mínima |
| product.modifierGroups[].options[].maxQuantity | int Admite vacío | Cantidad máxima; vacío si no tiene tope |
| product.modifierGroups[].options[].defaultQuantity | int | Cantidad sugerida |
| product.reviewsCount | int | Cantidad de reseñas |
| product.ratingCount | int | Cantidad de calificaciones |
| product.ratingSum | int | Suma de las calificaciones |
| prices | array | Precios entre los que se elige al pedir |
| prices[].productPriceId | int Admite vacío | Identificador del precio; vacío si es el precio base |
| prices[].priceName | string Admite vacío | Nombre del precio |
| prices[].priceType | string | Tipo de precio |
| prices[].resolvedPriceCents | int Admite vacío | Precio a cobrar, en centavos; vacío si sale de la variación elegida |
| priceOptions | array | Variaciones de cada precio |
| priceOptions[].productPriceId | int | Precio al que pertenece |
| priceOptions[].productPriceOptionId | int | Identificador de la variación, para agregarla al pedido |
| priceOptions[].description | string | Nombre de la variación |
| priceOptions[].priceCents | int | Precio de la variación, en centavos |
Ejemplo de request
curl -X POST https://restofy.pro/api/digital-menu/get-product \
-H "Content-Type: application/json" \
-H "Authorization: Bearer <accessToken>" \
-d '{
"slug": "string",
"menuId": 1,
"productUuid": "string"
}'
Los valores son demo: reemplázalos por datos reales del negocio.