Restofy Docs
Productos del menú POST

Listar productos del catálogo

POST /api/products/list-products

Descripción

Retorna los productos disponibles del catálogo del restaurante, paginados, con búsqueda y filtros opcionales.

Detalles

Lista los productos disponibles del catálogo respetando el orden configurado del restaurante. Permite buscar por coincidencia parcial en el nombre del producto, su código de identificación o el nombre de su categoría. Admite además filtrar por categoría y por estado activo o pausado. Incluye datos de presentación, precio base, categoría asociada y estado operativo de cada producto. Los productos eliminados no se incluyen en la respuesta.

Permisos requeridos

catalog.module

Request

Nombre Tipo Requerido Reglas
query string No
max:100
categoryUuid string No
min:36 max:36
status string No
enum:active,inactive

Paginación

defaultLimit 25
maxLimit 100
allowedSorts sortKey, name, sku, basePriceCents, createdAt
defaultSort sortKey
defaultDir asc
withTotal true

Respuesta

Campos que devuelve dentro de data. Nada fuera de esta lista sale en la respuesta.

Campo Tipo Descripción
products array Productos del catálogo, en el orden en que se muestran
products[].uuid string Identificador del producto
products[].name string Nombre del producto
products[].sku string Código SKU
products[].internalName string Admite vacío Nombre interno para cocina y reportes
products[].description string Admite vacío Descripción para la carta
products[].kitchenDefaultNotes string Admite vacío Notas sugeridas para cocina
products[].basePriceCents int Precio base, en centavos
products[].prepTimeMinutes int Tiempo de preparación en minutos
products[].stockMin decimal Existencia mínima antes de avisar
products[].iconFontAwesome string Ícono de Font Awesome
products[].color string Admite vacío Color en hexadecimal
products[].isActive bool Si se ofrece para vender
products[].productCategoryUuid string Identificador de la categoría
products[].productCategoryName string Nombre de la categoría
products[].unitId int Unidad en que se vende
products[].defaultCourseId int Tiempo de servicio por defecto
products[].revenueAccountId int Admite vacío Cuenta de ingresos; vacío si usa la del restaurante
products[].createdAt datetime Cuándo se creó el producto
products[].pricesCount int Cantidad de precios configurados
pagination pagination Página devuelta y total de resultados

Ejemplo de request

curl -X POST https://restofy.pro/api/products/list-products \
  -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-10-09T02:12:12Z
HTTP 200

Request

{
    "query": "Cazuela de Mariscos"
}

Response

{
    "success": true,
    "message": "Operación realizada correctamente",
    "data": {
        "products": [
            {
                "uuid": "36624424-18be-11f1-9da2-b627060a1ebe",
                "name": "Cazuela de Mariscos",
                "sku": "MAR-001",
                "internalName": "cazuela",
                "description": "Camarones, calamar y mejillones en salsa de coco y cúrcuma",
                "kitchenDefaultNotes": null,
                "basePriceCents": 2300000,
                "prepTimeMinutes": 20,
                "stockMin": "0.0000",
                "sortKey": "0c",
                "iconFontAwesome": "fa-solid fa-fish",
                "color": "#06b6d4",
                "isActive": 1,
                "productCategoryUuid": "bacf4e3d-70fb-425f-9ede-1fdb924aed80",
                "productCategoryName": "Mariscos",
                "unitId": 1,
                "defaultCourseId": 2,
                "revenueAccountId": 12,
                "createdAt": "2026-04-15T17:05:02.000Z",
                "pricesCount": 2
            }
        ],
        "pagination": {
            "page": 1,
            "limit": 25,
            "total": 1,
            "totalPages": 1,
            "hasNext": false,
            "hasPrev": false
        }
    }
}