Productos del menú
POST
Actualizar varios productos de una vez
POST /api/products/update-products
Descripción
Modifica hasta 100 productos en una sola llamada, cambiando solo los datos indicados en cada uno.
Detalles
Cada producto del lote cambia únicamente los datos que se envían; el resto conserva su valor. Sirve para subir precios, pausar, mover de categoría o renombrar muchos productos juntos. Valida todo antes de guardar: si uno falla no se modifica ninguno y la respuesta indica la posición y el campo de cada error. Permite una prueba previa sin guardar.
Permisos requeridos
catalog.module
Request
| Nombre | Tipo | Requerido | Reglas |
|---|---|---|---|
| dryRun | bool | No |
default:0
|
| items | array | Sí | — |
| items[].ref | string | No |
max:60
|
| items[].productUuid | string | Sí |
min:36
max:36
|
| items[].name | string | No |
min:2
max:150
|
| items[].productCategoryUuid | string | No |
min:36
max:36
|
| items[].unitId | int | No |
min_value:1
|
| items[].defaultCourseId | int | No |
min_value:1
|
| items[].internalName | string | No |
max:150
|
| items[].description | string | No |
max:2000
|
| items[].kitchenDefaultNotes | string | No |
max:2000
|
| items[].basePriceCents | int | No |
min_value:0
|
| items[].consumptionTaxCents | int | No |
min_value:0
|
| items[].prepTimeMinutes | int | No |
min_value:0
|
| items[].stockMin | string | No |
decimal
min_value:0
|
| items[].iconFontAwesome | string | No |
max:100
|
| items[].color | string | No |
min:7
max:7
|
| items[].isActive | int | No |
enum:0,1
|
| items[].taxRuleIds | string | No |
array_int
|
Respuesta
Campos que devuelve dentro de data. Nada fuera de esta lista sale en la respuesta.
| Campo | Tipo | Descripción |
|---|---|---|
| dryRun | bool | Si fue una prueba que validó sin guardar nada |
| items | array | Productos del lote, en el mismo orden en que se enviaron |
| items[].index | int | Posición del producto en el lote, desde 0 |
| items[].ref | string Admite vacío | Referencia propia que se envió con el producto |
| items[].productUuid | string Admite vacío | Identificador del producto; vacío en una prueba de alta |
Ejemplo de request
curl -X POST https://restofy.pro/api/products/update-products \
-H "Content-Type: application/json" \
-H "Authorization: Bearer <accessToken>" \
-d '{
"items": [
{
"productUuid": "string"
}
]
}'
Los valores son demo: reemplázalos por datos reales del negocio.