API REST

Endpoints para integrar esta tienda con tu ERP, sistema de boletas, o cualquier sistema externo.

Modo demo: Hacé pedidos con el parámetro ?demo=1 para no procesar pagos reales. En modo demo, el stock NO se descuenta y el ERP webhook recibe un campo is_demo: true.

Endpoints

Productos

Listar y obtener productos del catálogo.

GET /api/products

Lista todos los productos. Soporta filtros por query string.

Parámetros opcionales: categoria, destacado=1, q=texto

curl https://tienda.pages.dev/api/products?categoria=electronica

GET /api/products/:id

Obtiene un producto específico por su ID.

curl https://tienda.pages.dev/api/products/2

Pedidos

GET /api/orders

Lista los pedidos. Útil para sincronizar con tu ERP.

Parámetros opcionales: codigo=PED-2026-0001, estado=pendiente, limit=50

curl https://tienda.pages.dev/api/orders?estado=pendiente&limit=20

GET /api/orders/:codigo

Obtiene el detalle completo de un pedido, incluyendo todos los items.

curl https://tienda.pages.dev/api/orders/PED-2026-0001

POST /api/orders

Crea un nuevo pedido. Devuelve el pedido con su código único.

Campos requeridos: customer_nombre, customer_email, customer_telefono, customer_direccion, items (array de {producto_id, cantidad})

curl -X POST https://tienda.pages.dev/api/orders \
  -H "Content-Type: application/json" \
  -d '{
    "customer_nombre": "Juan Pérez",
    "customer_email": "juan@example.cl",
    "customer_telefono": "+56 9 1234 5678",
    "customer_direccion": "Av. Principal 123, Depto 45",
    "customer_comuna": "Salamanca",
    "customer_region": "Coquimbo",
    "items": [
      { "producto_id": 2, "cantidad": 1 },
      { "producto_id": 4, "cantidad": 2 }
    ],
    "is_demo": true
  }'

Webhooks

POST /api/webhooks/mercadopago

Endpoint para recibir notificaciones de pago de Mercado Pago. Configurá esta URL en tu panel de Mercado Pago para que te notifique cuando un pago se aprueba, rechaza, etc.

POST https://tienda.pages.dev/api/webhooks/mercadopago
Content-Type: application/json

{
  "type": "payment",
  "data": { "id": 1234567890 },
  "external_reference": "PED-2026-0001"
}

ERP / Sistema externo

Webhook saliente (configurable)

Si configurás la variable de entorno ERP_WEBHOOK_URL en el proyecto Cloudflare, cada pedido nuevo se envía como JSON a esa URL.

Payload que recibe tu ERP:

{
  "evento": "pedido.creado",
  "pedido": {
    "id": 14,
    "codigo": "PED-2026-0001",
    "customer": {
      "nombre": "Juan Pérez",
      "email": "juan@example.cl",
      "telefono": "+56 9 1234 5678",
      "direccion": "Av. Principal 123, Depto 45",
      "comuna": "Salamanca",
      "region": "Coquimbo"
    },
    "items": [
      {
        "producto_id": 2,
        "nombre": "Smartwatch Deportivo",
        "cantidad": 1,
        "precio_unitario": 129990,
        "subtotal": 129990
      }
    ],
    "subtotal": 129990,
    "envio": 0,
    "total": 129990,
    "notas": null,
    "is_demo": false,
    "created_at": "2026-09-09T20:00:00.000Z"
  }
}

Para activar el webhook ERP: en Cloudflare Dashboard, andá a tu Pages project → Settings → Environment variables, y agregá ERP_WEBHOOK_URL con la URL de tu endpoint (ej: https://tu-erp.cl/api/webhooks/pedidos).

Próximos pasos

Probá ahora: Hacé tu primer pedido en /productos.html y luego consultalo via API en /api/orders.