> ## Documentation Index
> Fetch the complete documentation index at: https://docs.getjusto.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Actualizar un menú

> Usa este recurso para actualizar un menú



## OpenAPI

````yaml put /menu/{id}
openapi: 3.0.0
info:
  title: Orders Endpoint API
  version: 1.0.0
servers:
  - url: https://api.getjusto.com/api/v2
    description: Production server
security: []
tags:
  - name: menu
    description: Todo lo relacionado a operar con menús
paths:
  /menu/{id}:
    put:
      tags:
        - menu
      parameters:
        - name: id
          in: path
          description: >-
            Corresponde al identificador interno que posea cada marca para su
            respectivo menú.
          required: true
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/menuParams'
      responses:
        '200':
          description: Order injected successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/menuResult'
      security:
        - bearerAuth: []
components:
  schemas:
    menuParams:
      type: object
      properties:
        removeItemsNotIncluded:
          description: >-
            Cuando se envía con valor `true` hará que todos los `products` y
            `options` se desvinculen o remuevan del menú en el cual se está
            trabajando, dejando solo activos los que vienen en el `body`. Esta
            opción NO afectará a `categories` ni a los `modifiers`, ya que son
            opciones globales que no dependen del menú.
          type: boolean
        data:
          $ref: '#/components/schemas/dataParams'
          description: datos
    menuResult:
      type: object
      properties:
        status:
          type: string
          description: Resultado de la operación.
        data:
          $ref: '#/components/schemas/dataResult'
          description: Datos asociados a la operación
    dataParams:
      type: object
      properties:
        menu:
          $ref: '#/components/schemas/menu'
          description: El menú
        products:
          type: array
          description: Los productos.
          items:
            $ref: '#/components/schemas/product'
        categories:
          type: array
          description: Las categorias.
          items:
            $ref: '#/components/schemas/category'
        modifiers:
          type: array
          description: Los modificadores.
          items:
            $ref: '#/components/schemas/modifier'
        options:
          type: array
          description: Las opciones.
          items:
            $ref: '#/components/schemas/option'
    dataResult:
      type: object
      properties:
        errors:
          type: array
          description: Descripción de los errores que existen en la llamada
          items:
            type: string
    menu:
      type: object
      properties:
        name:
          type: string
          description: >-
            El nombre del menú en cuestión. Es un valor que se usarás de manera
            interna, por lo que no te preocupes por tus compradores, ya que
            ellos nunca lo verán.
        priority:
          type: number
          description: >-
            Dice la prioridad que tiene este versus el resto de los menú. Si
            tiene prioridad más alta y cumple con todas las condiciones,
            entonces es el que se muestra.
        storesIds:
          type: array
          description: >-
            Utilizando el id de Justo para cada tienda, se puede limitar en qué
            locales estará disponible este menú. Cada id debe corresponder a una
            tienda existente en Justo (no eliminada). Si quieres que esté en
            todos, basta con dejarlo vacío.
          items:
            type: string
        externalId:
          type: string
          description: ID externo del modificador.
        channels:
          type: array
          items:
            type: string
            description: Son los tipos de pedidos que acepta este menú
            enum:
              - web-delivery
              - web-go
              - web-serve
              - commander-delivery
              - commander-go
              - commander-serve
              - orion-delivery
              - orion-go
              - orion-serve
              - app-delivery
              - app-go
              - app-serve
        daysBefore:
          type: number
          description: >-
            Días de anticipación se necesitan para activar este menú. Esta
            configuración es ideal para los negocios que tienen productos que se
            hacen a pedido. Ejemplo una pastelería.
        schedule:
          $ref: '#/components/schemas/schedule'
          description: >-
            Este campo determina la disponibilidad del menú en función del
            tiempo.
    product:
      type: object
      properties:
        name:
          type: string
          description: Nombre del producto de cara al compradores.
        description:
          type: string
          description: Descripción del producto en cuestión.
        externalId:
          type: string
          description: >-
            ID externo del producto (obligatorio). Solo se permiten caracteres
            alfanuméricos, guiones y guiones bajos.
        priority:
          type: string
          description: >-
            Dice la prioridad que tiene este item versus el resto de los
            productos. Si tiene prioridad más alta sale primero en la lista de
            productos.
        price:
          type: number
          description: Precio normal del producto en este menú
        discount:
          type: string
          description: >-
            Precio con descuento de este producto. No es lo mismo 0 que null, ya
            que si el valor es 0, implica que el producto es gratis.
        available:
          type: boolean
          description: Si está disponible este producto en el menú
        informativeStamps:
          type: array
          items:
            type: string
            description: >-
              Un arreglo con sellos informativos de productos. Este campo solo
              acepta como parámetros
            enum:
              - VEGAN
              - VEGETARIAN
              - GLUTEN_FREE
              - LACTOSE_FREE
              - SUGAR_FREE
              - CACAO_100
              - RECYCLABLE
              - SPICY
              - KETO
              - RECYCLED
              - HANDMADE
              - OLDER_THAN_18
              - CRUELTY_FREE
              - REFRIGERATED
              - FROZEN
        categoriesExternalIds:
          type: array
          description: >-
            Un arreglo con los externalId de las categorías que tiene el
            producto.
          items:
            type: string
        modifiersExternalIds:
          type: array
          description: >-
            Un arreglo con los externalId de los modificadores que tiene el
            producto.
          items:
            type: string
        images:
          type: array
          description: >-
            Arreglo con las URLs de las imágenes de este producto. Puedes usar
            cualquier URL externa y se va a subir la imagen a los servidores de
            Justo. El tamaño máximo para las imagenes es de 10mb. Si es que
            quieres dejar el producto sin imágenes, puedes enviar un arreglo
            vacío.
          items:
            type: string
        measurementUnit:
          type: string
          description: >-
            Unidad de medida del producto para el cálculo del Precio por Unidad
            de Medida (PUM) según DS N° 38/2024.
          enum:
            - kg
            - gr
            - und
            - ltr
            - ml
        measurementValue:
          type: number
          description: >-
            Valor numérico del contenido del producto en la unidad de medida
            indicada. Debe ser mayor o igual a 0.
    category:
      type: object
      properties:
        name:
          type: string
          description: Nombre del producto de cara al compradores.
        externalId:
          type: string
          description: >-
            ID externo de la categoría (obligatorio). Solo se permiten
            caracteres alfanuméricos, guiones y guiones bajos.
        priority:
          type: string
          description: >-
            Dice la prioridad que tiene este item versus el resto de las
            categorías. Los primeros que se muestran son los que tienen una
            prioridad cercana a cero.
    modifier:
      type: object
      properties:
        name:
          type: string
          description: Nombre del modificador
        shortName:
          type: string
          description: El nombre corto del modificador
        description:
          type: string
          description: Descripción del modificador
        optional:
          type: boolean
          description: Señala si este modificador es opcional para los compradores.
        min:
          type: number
          description: >-
            Mínimo de opciones a seleccionar. Si es que necesitas que sea
            requerido, el campo optional debe ser false
        max:
          type: number
          description: Máximo de opciones a seleccionar.
        internalName:
          type: string
          description: >-
            Un nombre interno que no ven los compradores. Sirve para diferenciar
            modificadores con el mismo nombre y para asociar los modificadores a
            los productos.
        externalId:
          type: string
          description: >-
            ID externo del modificador (obligatorio). Solo se permiten
            caracteres alfanuméricos, guiones y guiones bajos.
        optionIds:
          type: array
          description: Arreglo de Id's externos de opciones que operan con este modificador
          items:
            type: string
    option:
      type: object
      properties:
        name:
          type: string
          description: Nombre de la opción de cara al comprador.
        internalName:
          type: string
          description: >-
            Un nombre interno que no ven los compradores. Sirve para diferenciar
            las opciones con el mismo nombre.
        max:
          type: number
          description: Cuantas veces se puede escoger esta opción dentro del modificador
        externalId:
          type: string
          description: >-
            ID externo de esta opción (obligatorio). Solo se permiten caracteres
            alfanuméricos, guiones y guiones bajos.
        price:
          type: number
          description: Precio normal de la opción en este menú
        discount:
          type: string
          description: >-
            Precio con descuento de esta opción. No es lo mismo 0 que null, ya
            que si el valor es 0, implica que el producto es gratis.
        available:
          type: boolean
          description: Si está disponible esta opción en el menú
    schedule:
      type: object
      properties:
        closedUntilDate:
          type: array
          description: >-
            Fecha en la que vuelve a estar disponible. (Solo si es que esta
            cerrado temporalmente)
          items:
            type: string
            format: date-time
        closedDays:
          type: array
          description: >-
            Fechas exactas cuando esta cerrado (por lo general se agregan los
            feriados)
          items:
            type: string
            format: date-time
        availableAtPeriods:
          type: boolean
          description: >-
            Si se envía como verdadero, la disponibilidad se aplica acorde a lo
            que está en el campo `openPeriods`. Si que es falso, siempre estará
            disponible el menú, independiente del día.
        timezone:
          type: string
          description: Zona horaria en la que se opera.
          enum:
            - America/Santiago
            - America/Lima
            - America/Guayaquil
            - America/Argentina/Buenos_Aires
            - America/Bogota
            - America/Costa_Rica
            - America/Mexico_City
        openPeriods:
          type: array
          description: >-
            Este es un  arreglo de elementos en donde están los periodos de
            apertura.
          items:
            $ref: '#/components/schemas/openPeriod'
    openPeriod:
      type: object
      properties:
        daysOfWeek:
          type: array
          description: >-
            Arreglo con los días de la semana en que operará este menú. El Lunes
            es el valor 1 y domingo es 7.
          items:
            type: string
            format: date-time
        fromMinute:
          type: number
          description: >-
            Minutos desde las 00:00 hrs en que empieza este periodo. Ejemplo 720
            significa que empezará a operar desde las 720/60 = 12 hrs.
        toMinute:
          type: number
          description: >-
            Minutos desde las 00:00 hrs en que termina este periodo. Ejemplo 960
            significa que terminará de operar a las 960/60 = 16 hrs.
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT

````