/orders/delete/:id
DELETE /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.verificarAutenticacion
validateDeleteOrder
validateRequest
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 eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3NWNkZGEzMTJkYmM5YjM2NzkwNDliNiIsInJvbCI6IlNlbGxlciIsImlhdCI6MTczODE4OTczOCwiZXhwIjoxNzM4MjE4NTM4fQ.pqhvNo0o_kP3oK8hrJsRhdIPoXUnReaZT-x3_FVN6HA'
{}