/orders/delete/:idDELETE /api/orders/delete/:id'Pendiente' o 'En proceso', se procede a restaurar el stock de los productos relacionados usando operaciones atómicas (bulkWrite).'Cancelado'. Si ocurre un conflicto o error, se evita cambiar el estado de la orden para preservar la consistencia.verificarAutenticacionvalidateDeleteOrdervalidateRequest| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
id | string | ✅ | _id de la orden (formato ObjectId) |
body) para esta solicitud.{
"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."
}
}
}{
"status": "error",
"code": "INVALID_FORMAT",
"msg": "ID de orden inválido: 123abc."
}{
"status": "error",
"code": "INVALID_OPERATION",
"msg": "No se puede cancelar una orden con estado 'Enviado'. Solo se permiten 'Pendiente' o 'En proceso'."
}{
"status": "error",
"code": "AUTH_ERROR",
"msg": "Acceso no autorizado. Se requiere token válido."
}{
"status": "error",
"code": "NOT_FOUND",
"msg": "Orden con ID 662cdef90a2f4e30e8ac9b4e no encontrada."
}{
"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."
}
}{
"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..."
}
}curl --location -g --request DELETE 'https://back-prima-s-a.onrender.com/api/orders/delete/{{id}}?id=1' \
--header 'Authorization: Bearer <token>'{}