🧾 Crear orden¶
Este endpoint permite a un usuario realizar una compra creando una nueva orden con los productos seleccionados. La orden puede incluir múltiples productos con sus respectivas cantidades.
🧠 ¿Cuándo usar este endpoint?¶
- Cuando el usuario finaliza su carrito de compras.
 - Para registrar una orden en el sistema y prepararla para el pago.
 - Para mantener un historial de compras por usuario.
 
🔐 Requiere autenticación¶
Debes enviar un token JWT válido en el encabezado:
Authorization: Bearer <token>
📋 Headers¶
| Nombre | Valor | 
|---|---|
| Authorization | Bearer  | 
| Content-Type | application/json | 
📦 Body (JSON)¶
- Método: 
POST - Ruta: 
/orders/create 
{
  "direction": "por aca",
  "products": [
    {
      "sku": "CARTO-004",
      "id": "b2d8a815-3f4d-4ae6-8972-e4826dcd380c",
      "quantity": 2
    },
    {
      "sku": "CARTO-006",
      "id": "e7b69d73-a836-452f-a034-4145f9a59052",
      "quantity": 5
    }
  ]
}
🚀 Ejemplo curl¶
curl -X POST "http://localhost:3000/api/orders/create" \
-H "Authorization: Bearer <tu_token_jwt_aqui>" \
-H "Content-Type: application/json" \
-d '{
  "direction": "por aca",
  "products": [
    {
      "sku": "CARTO-004",
      "id": "b2d8a815-3f4d-4ae6-8972-e4826dcd380c",
      "quantity": 2
    },
    {
      "sku": "CARTO-006",
      "id": "e7b69d73-a836-452f-a034-4145f9a59052",
      "quantity": 5
    }
  ]
}'
📄 Respuesta exitosa¶
HTTP/1.1 201 Created
Content-Type: application/json
{
  "success": true,
  "message": "Order created",
  "data": {
    "id": "aeb7903e-b0cc-4fc7-ade7-441580fdf20b",
    "total": "140.70",
    "direction": "por aca",
    "status": "pending",
    "createdAt": "2025-03-16T16:38:52.000Z",
    "updatedAt": "2025-03-16T16:38:52.000Z",
    "userId": "6df3a7ac-920f-4bca-b339-746676230d7a",
    "user": {
      "id": "6df3a7ac-920f-4bca-b339-746676230d7a",
      "name": "fabio2",
      "email": "fabio2@gmail.com"
    },
    "products": [
      {
        "sku": "CARTO-004",
        "id": "b2d8a815-3f4d-4ae6-8972-e4826dcd380c",
        "name": "Camiseta",
        "description": "Es una camiseta asi y asa",
        "color": "azul",
        "size": "s",
        "price": "20.10",
        "quantity": 2
      },
      {
        "sku": "CARTO-006",
        "id": "e7b69d73-a836-452f-a034-4145f9a59052",
        "name": "Camiseta",
        "description": "Es una camiseta asi y asa",
        "color": "verde",
        "size": "s",
        "price": "20.10",
        "quantity": 5
      }
    ]
  }
}
❌ Respuesta de error¶
| Código | Motivo | Solución | 
|---|---|---|
| 400 | Datos inválidos | Verifica que todos los campos requeridos estén bien escritos y que los productos existan. | 
| 401 | No autorizado | Asegúrate de enviar un token JWT válido en el encabezado de autorización. | 
| 404 | Usuario no encontrado | Asegúrate de que el usuario esté autenticado y exista en el sistema. | 
| 409 | Stock insuficiente | Verifica que haya suficiente stock disponible para los productos solicitados. | 
| 500 | Error interno del servidor | Intenta nuevamente más tarde. Si el problema persiste, contacta al administrador del sistema. | 
💡 Tip ¿Sabías que...?¶
Puedes ver tus órdenes creadas usando el endpoint Buscar órdenes del usuario, ideal para mostrar un historial de compras.