Pedidos (productos puntuales)
/admin/orders
Ruta /admin/orders. Solo está disponible si el módulo de productos puntuales está activo en ajustes; si no, la app redirige a /admin/dashboard.
Requisitos
El menú Ingresos → Pedidos aparece con `oneTimeProductsEnabled` en verdadero. Si desactivas el módulo, al abrir la URL a mano el usuario vuelve al panel de administración.
Modelo de pedido (campos visibles)
- id — identificador (en lista se acorta; el detalle mantiene el contexto).
- user_id — usuario cliente; filtrable en búsqueda en cliente.
- status — completed | pending | failed | refunded (badges en lista y detalle).
- provider — pasarela o “manual” si lo crea un operador.
- total_amount y currency — importe e ISO (habitual COP o USD en formularios).
- created_at — creado; formato según locale y zona horaria por defecto de la plataforma.
- order_items[] — por línea: one_time_product_id, nombre vía one_time_products, quantity, unit_price, subtotal = unit_price × quantity, moneda de línea.
Resumen superior
- Pedidos visibles — filas tras la búsqueda en el lote de página actual.
- Completados / pendientes — conteos en la página cargada.
- Ingreso visible — suma de total_amount de completados que pasan el filtro de búsqueda (moneda tomada de la primera fila visible para coherencia en esa página).
Fichas, pestañas y tabla
- Pestañas de estado — Todos, Completados, Reembolsados, Pendientes, Fallidos; ajustan el filtro en servidor y reinician a página 1.
- Búsqueda — subcadenas en id de pedido, user_id o provider (sin mayúsculas) sobre el lote cargado.
- Paginación — 10 / 20 / 50 filas; nueva petición con el filtro de estado activo.
- Columnas — Pedido (id + usuario), Estado, Proveedor, Total, Fecha, acción al detalle.
Crear pedido (manual)
Modal: usuario (lista cargada desde API), workspace inferido o workspaceId si falta, producto puntual, cantidad, moneda (COP/USD) y si marcar como pagado al crear (`markAsPaid`). Usa `createManualOrder` con workspaceId, userId, líneas, moneda y markAsPaid. Sirve para cortesía, reemplazos o cobros fuera de pasarela registrados en sistema.
Detalle
- Muestra estado, total, proveedor, fecha.
- Lista cada order_items con nombre de producto, cantidad e importe de línea.