🚀 API REST - Ventas AutomateYa

Documentación completa de endpoints

📊 Estado del Sistema

✅ Base de datos conectada correctamente

📁 Tablas encontradas: 26

📦 Productos en BD: 16

📦 API de Productos

GET /api/productos.php Paginado
Obtener todos los productos con filtros opcionales
// Parámetros opcionales: ?page=1 // Página (default: 1) &limit=12 // Productos por página (default: 12) &categoria=bateria // Filtrar por categoría (slug) &marca=Bosch // Filtrar por marca &search=bateria // Búsqueda por nombre/descripción &destacado=true // Solo productos destacados &nuevo=true // Solo productos nuevos &precio_min=50 // Precio mínimo &precio_max=200 // Precio máximo &sort=precio_asc // Ordenar (precio_asc, precio_desc, nombre_asc, nuevo, popular)
GET /api/productos.php?id=1
Obtener un producto específico por ID (incluye imágenes, especificaciones, características)
POST /api/productos.php Admin
Crear nuevo producto
PUT /api/productos.php?id=1 Admin
Actualizar producto existente

📁 API de Categorías

GET /api/categorias.php
Obtener todas las categorías activas
GET /api/categorias.php?slug=bateria
Obtener categoría por slug

🏷️ API de Marcas

GET /api/marcas.php
Obtener todas las marcas activas

🛒 API de Pedidos

POST /api/pedidos.php
Crear nuevo pedido
// Body JSON: { "cliente_email": "cliente@example.com", "cliente_nombre": "Juan Pérez", "cliente_telefono": "+1234567890", "envio_direccion": "Calle Principal 123", "envio_ciudad": "Ciudad", "items": [ { "id": 1, "sku": "BAT-001", "nombre": "Batería 12V", "precio_unitario": 89.99, "cantidad": 2, "imagen": "...", "categoria": "Baterías", "marca": "Bosch" } ], "cupon_codigo": "DESCUENTO10" // Opcional }
GET /api/pedidos.php?numero_orden=RP20260118xxxx
Obtener pedido por número de orden

🎟️ API de Cupones

POST /api/cupones/validar.php
Validar cupón de descuento
// Body JSON: { "codigo": "BIENVENIDO10", "subtotal": 150.00, "email": "cliente@example.com" // Opcional }

📋 Formato de Respuestas

✅ Respuesta Exitosa

{ "success": true, "message": "Operación exitosa", "data": { ... } }

❌ Respuesta de Error

{ "success": false, "message": "Error en la operación", "errors": { ... } // Opcional }

📄 Respuesta Paginada

{ "success": true, "data": [ ... ], "pagination": { "total": 16, "page": 1, "limit": 12, "pages": 2 } }