/orders/update/:id
PATCH /api/orders/update/:id
_id
. Solo se permite modificar órdenes con estado 'Pendiente'.verificarAutenticacion
validateUpdateOrder
validateRequest
Parámetro | Tipo | Requerido | Descripción |
---|---|---|---|
id | string | ✅ | _id de la orden (formato ObjectId) |
{
"products": [
{
"productId": "123", // ID del producto (string de número)
"quantity": 5 // cantidad > 0
}
],
"discountApplied": 10,
"netTotal": 90,
"totalWithTax": 106.2,
"comment": "Actualizar por cambio de cantidad"
}
{
"status": "success",
"code": "ORDER_UPDATED",
"msg": "Orden actualizada con éxito.",
"data": {
"_id": "ObjectId",
"customer": 20406090,
"products": [
{
"productId": "123",
"quantity": 5
}
],
"discountApplied": 10,
"netTotal": 90,
"totalWithTax": 106.2,
"status": "Pendiente",
"comment": "Actualizar por cambio de cantidad",
"registrationDate": "2025-04-24T14:00:00Z",
"lastUpdate": "2025-04-24T15:00:00Z",
"seller": "ObjectId"
},
"info": {
"stockUpdateDetails": {
"attempted": 2,
"modified": 2,
"status": "Éxito",
"message": "Stock ajustado correctamente."
}
}
}
{
"status": "error",
"code": "MISSING_FIELD",
"msg": "Campos requeridos: products (array), discountApplied, netTotal, totalWithTax."
}
{
"status": "error",
"code": "INVALID_OPERATION",
"msg": "La orden con estado 'Enviado' no puede ser actualizada."
}
{
"status": "error",
"code": "INSUFFICIENT_STOCK",
"msg": "Stock insuficiente para el producto 123. Stock actual: 2, se intentarían quitar 5 unidades adicionales."
}
{
"status": "error",
"code": "AUTH_ERROR",
"msg": "Acceso no autorizado. Se requiere token válido."
}
{
"status": "error",
"code": "NOT_FOUND",
"msg": "Orden con ID 663abc1234 no encontrada."
}
{
"status": "error",
"code": "NOT_FOUND",
"msg": "Producto con ID 123 no encontrado en la base de datos."
}
{
"status": "error",
"code": "STOCK_CONFLICT",
"msg": "Conflicto al ajustar stock: Se intentaron 3 ajustes, pero solo 2 se completaron. Cambios revertidos.",
"info": {
"attempted": 3,
"modified": 2,
"status": "Conflicto",
"message": "Fallo parcial en stock.",
"reversion": "Reversión completada con éxito."
}
}
{
"status": "error",
"code": "SERVER_ERROR",
"msg": "Ha ocurrido un error inesperado al actualizar la orden. Intente de nuevo más tarde.",
"info": {
"detail": "Referencia circular detectada.",
"reversionStatus": "Reversión completada parcialmente. Verificar integridad manualmente."
}
}
curl --location -g --request PATCH 'https://back-prima-s-a.onrender.com/api/orders/update/{{id}}' \
--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3NWNkZGEzMTJkYmM5YjM2NzkwNDliNiIsInJvbCI6IlNlbGxlciIsImlhdCI6MTczODE4OTczOCwiZXhwIjoxNzM4MjE4NTM4fQ.pqhvNo0o_kP3oK8hrJsRhdIPoXUnReaZT-x3_FVN6HA' \
--header 'Content-Type: application/json' \
--data-raw '{
"products": [
{
"productId": 55055012,
"quantity": 1
},
{
"productId": 55055025,
"quantity": 5
}
],
"discountApplied": 10.5,
"netTotal": 7.8,
"totalWithTax": 8.97
}'
{}