Crear varios grupos de modificadores de una vez
POST /api/modifier-groups/create-modifier-groups
Descripción
Registra hasta 100 grupos de modificadores nuevos en una sola llamada, cada uno con sus modificadores.
Detalles
Valida todo el lote antes de guardar: si un solo grupo o una de sus opciones tiene un problema no se crea nada y la respuesta indica la posición y el campo de cada error. Cada grupo trae entre 1 y 50 modificadores, que quedan en el orden enviado. El mínimo de selecciones no puede superar la cantidad de opciones del grupo. Permite una prueba previa que valida sin guardar nada.
Permisos requeridos
catalog.module
Request
| Nombre | Tipo | Requerido | Reglas |
|---|---|---|---|
| dryRun | bool | No |
default:0
|
| items | array | Sí | — |
| items[].ref | string | No |
max:60
|
| items[].name | string | Sí |
max:100
|
| items[].internalName | string | No |
max:100
|
| items[].description | string | No |
max:1000
|
| items[].minSelections | int | No |
min_value:0
max_value:255
default:0
|
| items[].maxSelections | int | No |
min_value:1
max_value:255
default:1
|
| items[].isCollapsible | bool | No |
default:1
|
| items[].modifiers | array | Sí | — |
| items[].modifiers[].name | string | Sí |
max:100
|
| items[].modifiers[].priceCents | int | No |
min_value:0
default:0
|
| items[].modifiers[].minQuantity | int | No |
min_value:0
max_value:255
default:0
|
| items[].modifiers[].maxQuantity | int | No |
min_value:1
max_value:255
default:1
|
| items[].modifiers[].defaultQuantity | int | No |
min_value:0
max_value:255
default:0
|
Ejemplo de request
curl -X POST https://restofy.pro/api/modifier-groups/create-modifier-groups \
-H "Content-Type: application/json" \
-H "Authorization: Bearer <accessToken>" \
-d '{
"items": [
{
"name": "string",
"modifiers": [
{
"name": "string"
}
]
}
]
}'
Los valores son demo: reemplázalos por datos reales del negocio.
Ejemplo de respuesta
Actualizado: 2026-11-02T19:00:57Z
HTTP 200
Request
{
"items": [
{
"name": "Término de la carne 6ae8d85bf26eb",
"minSelections": 1,
"maxSelections": 1,
"modifiers": [
{
"name": "Azul"
},
{
"name": "Término medio"
},
{
"name": "Tres cuartos"
},
{
"name": "Bien asado"
}
],
"ref": "termino"
},
{
"name": "Término de la carne 6ae8d85bf26f0",
"minSelections": 0,
"maxSelections": 2,
"modifiers": [
{
"name": "Salsa de ajo",
"priceCents": 1500
},
{
"name": "Salsa BBQ",
"priceCents": 2000
}
],
"ref": "salsas"
}
]
}
Response
{
"success": true,
"message": "Grupos creados",
"data": {
"dryRun": false,
"items": [
{
"index": 0,
"ref": "termino",
"modifierGroupId": 20,
"modifierGroupUuid": "c3596101-fcfa-4f03-a293-602338c28435",
"modifierIds": [
76,
77,
78,
79
]
},
{
"index": 1,
"ref": "salsas",
"modifierGroupId": 21,
"modifierGroupUuid": "f229a217-7321-4f93-ba1f-190ff78520d3",
"modifierIds": [
80,
81
]
}
]
}
}