Prima-Back
  1. Modulo Pedidos
Prima-Back
  • API DOCUMENTATION
  • Principal
    • /
      GET
  • Modulo Administradores
    • Vendedores Operaciones
      • Registro de Vendedores
      • Visualizar Vendedores
      • Visualizar Vendedores por Mongo ID
      • Visualizar Vendedores por cedula
      • Actualizar Vendedor
      • Eliminar Vendedor
    • Estadisticas
      • Estadisticas de documentos
      • Visualizacion de top Vendedores
      • Visualizar Ventas por Vendedor
    • Login Administradores
      POST
    • Recuperacion de contraseña Administrador
      POST
  • Modulo Vendedores
    • Inicio de Sesión Vendedores
      POST
    • Confirmación de Cuenta
      GET
    • Solicitud de restablecimiento de contraseña
      POST
    • Restablecimiento de contraseña
      POST
  • Modulo Clientes
    • Registrar Cliente
      POST
    • Visualizar Clientes
      GET
    • Visualizar Clientes por RUC
      GET
    • Actualizar Cliente
      PATCH
    • Eliminar Cliente
      DELETE
  • Modulo Productos
    • Crear Producto
      POST
    • Visualizar Productos
      GET
    • Visualizar Productos por ID
      GET
    • Actualizar Producto
      PATCH
    • Eliminar Producto
      DELETE
  • Modulo Pedidos
    • Crear Orden
      POST
    • Visualizar Ordenes
      GET
    • Visualizar Ordenes por ID
      GET
    • Actualizar Orden
      PATCH
    • Actualizar Estado de Orden
      PATCH
    • Eliminar Orden
      DELETE
  1. Modulo Pedidos

Eliminar Orden

DELETE
/api/orders/delete/{{id}}

🗑️ DELETE /orders/delete/:id#

Cancela una orden pendiente o en proceso y restaura el stock correspondiente.

📍 Ruta#

DELETE /api/orders/delete/:id

📝 Descripción#

Este endpoint cancela una orden existente, validando primero su estado. Si es 'Pendiente' o 'En proceso', se procede a restaurar el stock de los productos relacionados usando operaciones atómicas (bulkWrite).
Si la restauración del inventario es exitosa, la orden se marca como 'Cancelado'. Si ocurre un conflicto o error, se evita cambiar el estado de la orden para preservar la consistencia.

🔐 Autenticación#

Requiere un token JWT válido.
Middleware aplicado:
1.
verificarAutenticacion
2.
validateDeleteOrder
3.
validateRequest

🔢 Parámetros#

🛣️ Path Parameters#

ParámetroTipoRequeridoDescripción
idstring✅_id de la orden (formato ObjectId)

📥 Request Body#

No se requiere ningún cuerpo (body) para esta solicitud.

✅ Respuestas#

✔️ 200 OK – Orden cancelada y stock restaurado correctamente#

{
  "status": "success",
  "code": "ORDER_CANCELLED",
  "msg": "Orden cancelada con éxito y stock restaurado.",
  "data": {
    "_id": "ObjectId",
    "status": "Cancelado"
  },
  "info": {
    "stockRestoreDetails": {
      "attempted": 3,
      "modified": 3,
      "status": "Éxito",
      "message": "Stock restaurado correctamente para todos los productos."
    }
  }
}

❌ Errores#

⚠️ 400 Bad Request – ID inválido#

{
  "status": "error",
  "code": "INVALID_FORMAT",
  "msg": "ID de orden inválido: 123abc."
}

⚠️ 400 Bad Request – Estado de orden no cancelable#

{
  "status": "error",
  "code": "INVALID_OPERATION",
  "msg": "No se puede cancelar una orden con estado 'Enviado'. Solo se permiten 'Pendiente' o 'En proceso'."
}

🔐 401 Unauthorized – Token ausente o inválido#

{
  "status": "error",
  "code": "AUTH_ERROR",
  "msg": "Acceso no autorizado. Se requiere token válido."
}

🕳️ 404 Not Found – Orden no encontrada#

{
  "status": "error",
  "code": "NOT_FOUND",
  "msg": "Orden con ID 662cdef90a2f4e30e8ac9b4e no encontrada."
}

❗ 409 Conflict – Fallo al restaurar el stock#

{
  "status": "error",
  "code": "STOCK_CONFLICT",
  "msg": "Conflicto al restaurar stock: Se intentaron 4 restauraciones, pero solo 2 se completaron. La orden NO fue cancelada.",
  "info": {
    "attempted": 4,
    "modified": 2,
    "status": "Conflicto",
    "message": "Fallo parcial en operaciones de inventario."
  }
}

💥 500 Internal Server Error – Falla inesperada#

{
  "status": "error",
  "code": "SERVER_ERROR",
  "msg": "Ha ocurrido un error inesperado al cancelar la orden. Intente de nuevo más tarde.",
  "info": {
    "detail": "Excepción en la restauración del stock.",
    "stockRestoreStatus": "Error al restaurar...",
    "orderCancelStatus": "Error al cancelar..."
  }
}
Request Request Example
Shell
JavaScript
Java
Swift
curl --location -g --request DELETE 'https://back-prima-s-a.onrender.com/api/orders/delete/{{id}}?id=1' \
--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3NWNkZGEzMTJkYmM5YjM2NzkwNDliNiIsInJvbCI6IlNlbGxlciIsImlhdCI6MTczODE4OTczOCwiZXhwIjoxNzM4MjE4NTM4fQ.pqhvNo0o_kP3oK8hrJsRhdIPoXUnReaZT-x3_FVN6HA'
Response Response Example
{}

Request

Authorization
Provide your bearer token in the
Authorization
header when making requests to protected resources.
Example:
Authorization: Bearer ********************
Query Params
id
string 
optional
Example:
1
Header Params
Authorization
string 
optional
Example:
Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3NWNkZGEzMTJkYmM5YjM2NzkwNDliNiIsInJvbCI6IlNlbGxlciIsImlhdCI6MTczODE4OTczOCwiZXhwIjoxNzM4MjE4NTM4fQ.pqhvNo0o_kP3oK8hrJsRhdIPoXUnReaZT-x3_FVN6HA

Responses

🟢200Success
application/json
Body
object {0}
Modified at 2025-04-24 17:54:58
Previous
Actualizar Estado de Orden
Built with