Productos del menú
POST
Actualizar producto del catálogo
POST /api/products/update-product
Descripción
Modifica los datos editables de un producto existente del catálogo.
Detalles
Actualiza nombre, código, categoría, unidad, tiempo de servicio, precio, apariencia y demás atributos editables de un producto identificado por su uuid. Si el código se deja vacío, se genera uno automáticamente a partir de la categoría. Falla si el producto no existe o fue eliminado, si ya existe otro producto con el mismo nombre, si el código ya está en uso por otro producto, o si la categoría, unidad o tiempo de servicio referenciados no existen o no están disponibles.
Permisos requeridos
catalog.module
Request
| Nombre | Tipo | Requerido | Reglas |
|---|---|---|---|
| uuid | string | Sí |
min:36
max:36
|
| name | string | Sí |
min:2
max:150
|
| sku | string | No |
max:50
|
| productCategoryUuid | string | Sí |
min:36
max:36
|
| unitId | int | Sí |
min_value:1
|
| defaultCourseId | int | Sí |
min_value:1
|
| internalName | string | No |
max:150
|
| description | string | No |
max:2000
|
| kitchenDefaultNotes | string | No |
max:2000
|
| basePriceCents | int | No |
min_value:0
default:0
|
| consumptionTaxCents | int | No |
min_value:0
default:0
|
| prepTimeMinutes | int | No |
min_value:0
default:0
|
| stockMin | string | No |
decimal
min_value:0
default:0
|
| iconFontAwesome | string | No |
max:100
default:fa-solid fa-bowl-food
|
| color | string | No |
min:7
max:7
default:#FF4500
|
| menuCardStyle | string | No |
max:20
default:auto
|
| isActive | int | No |
enum:0,1
default:1
|
| taxRuleIds | string | No |
array_int
|
| revenueAccountId | int | No |
min_value:1
|
Respuesta
Campos que devuelve dentro de data. Nada fuera de esta lista sale en la respuesta.
| Campo | Tipo | Descripción |
|---|---|---|
| product | object | Producto con los cambios guardados |
| product.uuid | string | Identificador del producto |
| product.name | string | Nombre del producto |
| product.sku | string | Código SKU |
| product.internalName | string Admite vacío | Nombre interno para cocina y reportes |
| product.description | string Admite vacío | Descripción para la carta |
| product.kitchenDefaultNotes | string Admite vacío | Notas sugeridas para cocina |
| product.basePriceCents | int | Precio base, en centavos |
| product.prepTimeMinutes | int | Tiempo de preparación en minutos |
| product.stockMin | decimal | Existencia mínima antes de avisar |
| product.iconFontAwesome | string | Ícono de Font Awesome |
| product.color | string Admite vacío | Color en hexadecimal |
| product.isActive | bool | Si se ofrece para vender |
| product.productCategoryUuid | string | Identificador de la categoría |
| product.productCategoryName | string | Nombre de la categoría |
| product.unitId | int | Unidad en que se vende |
| product.defaultCourseId | int | Tiempo de servicio por defecto |
| product.revenueAccountId | int Admite vacío | Cuenta de ingresos; vacío si usa la del restaurante |
| product.consumptionTaxCents | int | Impuesto al consumo por unidad, en centavos |
| product.menuCardStyle | string | Estilo de la tarjeta en la carta |
| product.taxRuleIds | array<int> | Reglas de impuesto del producto |
Ejemplo de request
curl -X POST https://restofy.pro/api/products/update-product \
-H "Content-Type: application/json" \
-H "Authorization: Bearer <accessToken>" \
-d '{
"uuid": "string",
"name": "string",
"productCategoryUuid": "string",
"unitId": 1,
"defaultCourseId": 1
}'
Los valores son demo: reemplázalos por datos reales del negocio.