---
title: "Actualizar un producto de menú compartido | Documentación de Ordering.co"
description: "Usa PUT /business/{business_id}/menus_shared/{menu_id}/products/{product_id} para actualizar la asociación de producto de un menú compartido."
canonical: https://docs.ordering.co/es/api-reference/guides/update-menu-shared-product/
---

# Actualizar un producto de menú compartido

> **API operation:** [Open the endpoint in Scalar](https://docs.ordering.co/es/api-reference/#tag/business/PUT/business/{business_id}/menus_shared/{menu_id}/products/{product_id})

Usa `PUT /business/{business_id}/menus_shared/{menu_id}/products/{product_id}` para actualizar la asociación de producto de un menú compartido. La operación pública actual es `Product.update_menu_shared`.

El controlador valida que el menú compartido pertenece a `business_id` y contiene `product_id`. El acceso de los gerentes de negocio está limitado según la titularidad del negocio. La operación requiere autenticación de administrador o gerente de negocio.

Esta operación cambia la asociación `BusinessMenuProduct`, no el `Product` base. Los campos de asociación pueden incluir `price`, `upselling`, `featured`, `enabled`, `inventoried`, `quantity` y `snooze_until`. Omitir un campo no necesariamente lo restablece a `null`.

Para conocer el comportamiento relacionado, consulta [Funciones de menús compartidos](https://docs.ordering.co/es/api-reference/guides/shares-menus-features/).

## Referencia de OpenAPI

**Operación:** `PUT /business/{business_id}/menus_shared/{menu_id}/products/{product_id}`

**Parámetros de ruta**

| Nombre        | Tipo    | Obligatorio | Descripción |
| ------------- | ------- | ----------- | ----------- |
| `business_id` | integer | Sí          | —           |
| `menu_id`     | integer | Sí          | —           |
| `product_id`  | integer | Sí          | —           |

**Campos del cuerpo de la solicitud**

| Nombre         | Tipo           | Obligatorio |
| -------------- | -------------- | ----------- |
| `snooze_until` | string \| null | No          |

**Respuestas**

| Código | Descripción                                                                                                                                                                                                                                                                        |
| ------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| 200    | Respuesta exitosa. El contenido de `result` varía según la operación y se devuelve como JSON.                                                                                                                                                                                      |
| 400    | Respuesta de error (error=true). Los errores de validación y de negocio comparten este código.                                                                                                                                                                                     |
| 401    | Respuesta de error: sesión ausente, inválida, o nivel de usuario fuera de los permitidos. Respuesta de error: el proyecto no existe o no tiene una suscripción activa.                                                                                                             |
| 404    | Respuesta vacía: la versión de API solicitada no está admitida.                                                                                                                                                                                                                    |
| 429    | Envelope de error: se excedió un límite de consumo del proyecto (o el sujeto está baneado). Lleva Retry-After y X-RateLimit-Limit/Remaining/Reset/Scope/Key.                                                                                                                       |
| 500    | Respuesta de error: falló la búsqueda o inicialización del proyecto.                                                                                                                                                                                                               |
| 503    | Envelope de error: la aplicación está temporalmente en mantenimiento. Envelope de error: el proyecto está temporalmente en mantenimiento, o los límites de consumo no se pudieron evaluar y el límite aplicable está configurado con on\_error = closed (cabecera Retry-After: 1). |

[Abrir esta operación en la Referencia de la API](https://docs.ordering.co/es/api-reference/#tag/business/PUT/business/{business_id}/menus_shared/{menu_id}/products/{product_id})
