Costos
POST
Listar costo de platos
POST /api/costing/list-product-costs
Descripción
Listado paginado de platos con su costo, precio y porcentaje de costo.
Detalles
Calcula el costo de cada plato con su receta y el costo vigente de sus insumos. Permite ver solo los platos que superan la meta de costo o los que no tienen receta. Incluye cuántos platos superan la meta y cuántos no tienen receta en todo el catálogo.
Permisos requeridos
costs.module
Request
| Nombre | Tipo | Requerido | Reglas |
|---|---|---|---|
| search | string | No |
max:100
|
| status | string | No |
enum:over,noRecipe
|
Paginación
| defaultLimit | 50 |
| maxLimit | 100 |
| defaultDir | asc |
| withTotal | true |
| allowedSorts | [name, costCents, priceCents, foodCostBasisPoints, productId] |
| tieBreak | productId asc |
Ejemplo de request
curl -X POST https://restofy.pro/api/costing/list-product-costs \
-H "Content-Type: application/json" \
-H "Authorization: Bearer <accessToken>"
Los valores son demo: reemplázalos por datos reales del negocio.
Ejemplo de respuesta
Actualizado: 2026-11-02T19:00:57Z
HTTP 200
Request
{
"search": "Plato costo 6ae8d7303c119"
}
Response
{
"success": true,
"message": "Operación realizada correctamente",
"data": {
"targetBasisPoints": 3000,
"kpis": {
"productsOverTarget": 1,
"productsWithoutRecipe": 17
},
"products": [
{
"productId": 21,
"productUuid": "e3650f94-595d-4c3b-912d-af30ff51fd12",
"name": "Plato costo 6ae8d7303c119",
"categoryName": "Sopas y Cremas",
"priceCents": 10000,
"costCents": 8000,
"hasRecipe": 1,
"hasMissingCost": 0,
"foodCostBasisPoints": 8000
}
],
"pagination": {
"page": 1,
"limit": 50,
"total": 1,
"totalPages": 1,
"hasNext": false,
"hasPrev": false
}
}
}