---
title: "List menus (prices)"
method: GET
path: "/ecommerce/prices"
---

# List menus (prices)

`GET /ecommerce/prices`

## Request

- Base URL: `https://api.service.getjusto.com/v3`
- URL: `https://api.service.getjusto.com/v3/ecommerce/prices`
- Auth: none declared

**Cómo funcionan los menús y precios**

Un menú es una lista de precios: dice qué productos se venden y a qué precio. En el administrador se llama *menú* y en la API *precio*: cada menú es un registro de `GET /ecommerce/prices`, y su `_id` es el `menuId` que aparece en `menus` de cada producto. Una marca puede tener varios menús, por ejemplo uno general, uno para un local y uno de almuerzo.

**1. Cada pedido usa un solo menú.** Los menús no se mezclan: el cliente ve el precio y la disponibilidad que el producto tiene en el menú que se está usando.

**2. Cómo se elige el menú en la tienda online.** Se revisan los menús habilitados de mayor a menor `priority` y se usa el primero que cumple todas estas condiciones:

- `storesIds` está vacío o incluye el local del pedido. Mientras no se sepa el local, los menús con locales no aplican.
- `channels` está vacío o incluye el canal del pedido. Si el cliente aún no elige cómo recibir el pedido, se considera delivery.
- `schedule` está abierto a la hora de entrega menos el tiempo de preparación del local, o ahora si el pedido no es programado. El horario solo restringe si `availableAtPeriods` es `true`; si no, el menú aplica a toda hora, salvo los días cerrados (`closedDays`).
- Faltan al menos `daysBefore` días de calendario para esa fecha.
- `segmentIds` está vacío, o el cliente inició sesión y pertenece a alguna de esas audiencias.

Si ningún menú cumple, se usa el menú por defecto (`isDefault`), aunque no cumpla sus condiciones. Si la marca no tiene menú por defecto, se usa el de mayor `priority`. Si la marca tiene un solo menú habilitado, se usa siempre.

**3. Productos no disponibles.** Si el producto no está disponible en el menú que se usa, no aparece en la tienda. Si en el administrador tiene un mensaje de no disponible, aparece con ese mensaje, pero no se puede comprar. Un producto tampoco aparece si tiene un modificador obligatorio sin opciones disponibles en ese menú. Agotado (`out-of-stock`) es otra cosa: se marca por local, y el producto aparece como agotado, salvo que la marca active *Ocultar productos no disponibles o sin stock*: entonces los agotados no aparecen.

**4. Cada menú tiene su propio precio.** Cambiar el precio en un menú no cambia los demás. Para cambiarlo en toda la marca, cámbialo en cada menú donde el producto está disponible. Para cambiarlo solo en un local, canal u horario, usa el punto 2 para saber qué menú se usa ahí.

**5. Descuentos.** `discountPrice` es el precio final que paga el cliente, no un monto ni un porcentaje, y no puede ser mayor que el precio: si bajas `price` por debajo del descuento guardado, envía también `discountPrice`. Si es menor que el precio, la tienda muestra el precio normal tachado. En las respuestas viene como `discount`. Enviar `discountPrice` deja un solo descuento, y `null` lo quita. En el administrador se pueden guardar varios descuentos seguidos: en ese caso `discount` es el primero, pero el cliente paga el último.

**6. Los cambios no son instantáneos.** La tienda se actualiza en segundo plano, y el menú elegido para cada cliente se guarda hasta 15 minutos, así que un cambio en las condiciones de un menú puede tardar ese tiempo en verse.

## Response `200`

The OpenAPI spec

- object
  - `success` boolean
  - `data` ApiPrice[]
    - `_id` string: ID Justo del menú. Es el menuId de los productos.
    - `name` string: Nombre interno del menú.
    - `priority` number: Prioridad. Si varios menús cumplen sus condiciones, aplica el de número más alto.
    - `storesIds` string[]: Locales donde puede aplicar. Vacío: todos los locales. Mientras no se sepa el local del cliente, un menú con locales no aplica.
    - `channels` string[]: Canales donde puede aplicar. Vacío: todos. Formato origen-tipo: web (tienda web), app (app propia de la marca), orion (app de Justo), commander y pos (punto de venta); delivery, go (retiro) o serve (mesa).
    - `daysBefore` number: Días de anticipación mínimos: sólo aplica si la hora de entrega menos el tiempo de preparación del local cae al menos esos días después de hoy. Debe incluir todos los productos que se pueden pedir con esa anticipación, también los de entrega el mismo día.
    - `schedule` object: Horario en que aplica el menú, con la misma estructura que el horario de un local (availableAtPeriods, openPeriods, closedDays, specialPeriods). Solo restringe si availableAtPeriods es true; si no, el menú aplica a toda hora, salvo los días cerrados (closedDays).
    - `disabled` boolean: Si es true, el menú no se usa, salvo que sea el menú por defecto y ningún otro menú cumpla sus condiciones.
    - `segmentIds` string[]: Audiencias del menú. Vacío: todos los clientes. Con audiencias, el menú sólo cumple sus condiciones para clientes identificados que pertenecen a alguna.
    - `isDefault` boolean: Menú por defecto: se usa cuando ningún menú cumple sus condiciones, aunque él tampoco las cumpla.
    - `externalId` string: ID externo configurado por la marca.
    - `metadata` object: Metadata del item escrita por API v3.

## Other responses

- `400`: Errors

## Changes

- **2026-10-31** `4ad06bd631ce`: 15 warning, 3 info
  - added the new `app-delivery` enum value to the `data/items/channels/items/` response property for the response status `200`
  - added the new `app-go` enum value to the `data/items/channels/items/` response property for the response status `200`
  - added the new `app-serve` enum value to the `data/items/channels/items/` response property for the response status `200`
  - added the new `commander-delivery` enum value to the `data/items/channels/items/` response property for the response status `200`
  - …14 more
- **2026-07-22** `d9d38def2cf6`: 1 info
  - endpoint added
- **2026-06-01** `6788b092513b`: 1 breaking
  - api path removed without deprecation
- **2026-05-18** `39f0eb0b2640`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/getjusto/apis/justo-api/changes/ecommerce/prices/get.md)

---

[API](https://skmtc.dev/getjusto/apis/justo-api.md) - [All operations](https://skmtc.dev/getjusto/apis/justo-api/llms.txt) - [OpenAPI document](https://skmtc.dev/getjusto/apis/justo-api/revisions/c810bd8246fd?raw)
