Restofy Docs
Productos del menú POST

Crear varios productos de una vez

POST /api/products/create-products

Descripción

Registra hasta 100 productos nuevos en una sola llamada, con su código único generado automáticamente.

Detalles

Valida todo el lote antes de guardar: si un solo producto tiene un problema no se crea ninguno y la respuesta indica la posición y el campo de cada error. Los productos quedan al final del catálogo y en todos los menús, salvo que se indiquen menús puntuales. Permite una prueba previa que valida sin guardar nada.

Permisos requeridos

catalog.module

Request

Nombre Tipo Requerido Reglas
dryRun bool No
default:0
menuIds string No
array_int
items array Sí —
items[].ref string No
max:60
items[].name string Sí
min:2 max:150
items[].productCategoryUuid string Sí
min:36 max:36
items[].unitId int Sí
min_value:1
items[].defaultCourseId int Sí
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 default:0
items[].consumptionTaxCents int No
min_value:0 default:0
items[].prepTimeMinutes int No
min_value:0 default:0
items[].stockMin string No
decimal min_value:0 default:0
items[].iconFontAwesome string No
max:100 default:fa-solid fa-bowl-food
items[].color string No
min:7 max:7 default:#FF4500
items[].isActive int No
enum:0,1 default:1
items[].taxRuleIds string No
array_int
items[].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
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/create-products \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer <accessToken>" \
  -d '{
    "items": [
        {
            "name": "string",
            "productCategoryUuid": "string",
            "unitId": 1,
            "defaultCourseId": 1
        }
    ]
}'

Los valores son demo: reemplázalos por datos reales del negocio.