Restofy Docs
Productos del menú POST

Crear producto del catálogo

POST /api/products/create-product

Descripción

Registra un producto nuevo en el catálogo del restaurante, asignándole automáticamente un código único.

Detalles

Crea un producto vinculado a una categoría, unidad de medida y tiempo de servicio. El código identificador del producto se genera de forma automática a partir del prefijo de la categoría asignada, sin que el integrador deba enviarlo. La apariencia visual y el estado se aplican con valores por defecto si no se envían. Falla si ya existe un producto con el mismo nombre, o si la categoría, la unidad o el tiempo de servicio no existen o no están disponibles.

Permisos requeridos

catalog.module

Request

Nombre Tipo Requerido Reglas
name string Sí
min:2 max:150
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
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 creado
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/create-product \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer <accessToken>" \
  -d '{
    "name": "string",
    "productCategoryUuid": "string",
    "unitId": 1,
    "defaultCourseId": 1
}'

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

Ejemplo de respuesta

Actualizado: 2026-10-09T02:12:12Z
HTTP 200

Request

{
    "name": "Producto Test 6ac84d0b1d5cf",
    "productCategoryUuid": "ef52bb1b-f81b-44f8-a33c-119ca3d557ce",
    "unitId": 1,
    "defaultCourseId": 5,
    "basePriceCents": 1000,
    "iconFontAwesome": "fa-solid fa-bowl-food",
    "color": "#FF4500",
    "isActive": 1
}

Response

{
    "success": true,
    "message": "Producto creado",
    "data": {
        "product": {
            "uuid": "69305061-3d65-4230-8c66-87d536371293",
            "name": "Producto Test 6ac84d0b1d5cf",
            "sku": "SOP-003",
            "internalName": null,
            "description": null,
            "kitchenDefaultNotes": null,
            "basePriceCents": 1000,
            "consumptionTaxCents": 0,
            "prepTimeMinutes": 0,
            "stockMin": "0.0000",
            "sortKey": "h",
            "iconFontAwesome": "fa-solid fa-bowl-food",
            "color": "#FF4500",
            "menuCardStyle": "auto",
            "isActive": 1,
            "productCategoryUuid": "ef52bb1b-f81b-44f8-a33c-119ca3d557ce",
            "productCategoryName": "Sopas y Cremas",
            "unitId": 1,
            "defaultCourseId": 5,
            "taxRuleIds": [],
            "revenueAccountId": null
        }
    }
}