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

Actualizar Estado de Orden

PATCH
/api/orders/update/state/{{id}}

🔁 PATCH /orders/update/state/:id#

Actualiza el estado de una orden existente con validación de flujo de estados y autenticación.

📍 Ruta#

PATCH /api/orders/update/state/:id

📝 Descripción#

Este endpoint actualiza únicamente el campo status de una orden específica identificada por su _id.
Permite transiciones válidas entre los siguientes estados:
Pendiente
En proceso
Enviado
Cancelado

⚠️ Reglas de transición:#

No se puede revertir una orden Enviado a Pendiente.
No se puede modificar una orden que ya esté en estado Cancelado.

🔐 Autenticación#

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

🔢 Parámetros#

🛣️ Path Parameters#

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

📥 Request Body#

{
  "status": "En proceso"
}
📌 Valores permitidos: "Pendiente", "En proceso", "Enviado", "Cancelado"

✅ Respuestas#

✔️ 200 OK – Estado actualizado exitosamente#

{
  "status": "success",
  "code": "ORDER_STATUS_UPDATED",
  "msg": "Estado de la orden actualizado a 'En proceso'.",
  "data": {
    "_id": "ObjectId",
    "customer": 20406090,
    "products": [
      {
        "productId": "123",
        "quantity": 5
      }
    ],
    "discountApplied": 10,
    "netTotal": 90,
    "totalWithTax": 106.2,
    "status": "En proceso",
    "comment": "Actualizando estado",
    "registrationDate": "2025-04-24T14:00:00Z",
    "lastUpdate": "2025-04-24T16:00:00Z",
    "seller": "ObjectId"
  }
}

❌ Errores#

⚠️ 400 Bad Request – ID o cuerpo inválido#

{
  "status": "error",
  "code": "INVALID_FORMAT",
  "msg": "ID de orden inválido: 123abc."
}
{
  "status": "error",
  "code": "MISSING_FIELD",
  "msg": "El campo 'status' es requerido para actualizar el estado."
}
{
  "status": "error",
  "code": "INVALID_FORMAT",
  "msg": "Estado inválido: 'Procesando'. Los estados permitidos son: Pendiente, En proceso, Enviado, Cancelado."
}

❗ 400 Bad Request – Transición no permitida#

{
  "status": "error",
  "code": "INVALID_OPERATION",
  "msg": "No se puede revertir una orden 'Enviado' a 'Pendiente'."
}
{
  "status": "error",
  "code": "INVALID_OPERATION",
  "msg": "No se puede cambiar el estado de una orden 'Cancelado'."
}

🔐 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": "No se encontró la orden con el id 663abc1234."
}

💥 500 Internal Server Error – Falla inesperada#

{
  "status": "error",
  "code": "SERVER_ERROR",
  "msg": "Ha ocurrido un error inesperado al actualizar el estado de la orden. Intente de nuevo más tarde.",
  "info": {
    "detail": "Excepción no capturada en controlador."
  }
}
Request Request Example
Shell
JavaScript
Java
Swift
curl --location -g --request PATCH 'https://back-prima-s-a.onrender.com/api/orders/update/state/{{id}}' \
--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3NWNkZGEzMTJkYmM5YjM2NzkwNDliNiIsInJvbCI6IlNlbGxlciIsImlhdCI6MTczODE4OTczOCwiZXhwIjoxNzM4MjE4NTM4fQ.pqhvNo0o_kP3oK8hrJsRhdIPoXUnReaZT-x3_FVN6HA' \
--header 'Content-Type: application/json' \
--data-raw '{
    "status":"Pending"
}'
Response Response Example
{}

Request

Authorization
Provide your bearer token in the
Authorization
header when making requests to protected resources.
Example:
Authorization: Bearer ********************
Header Params
Content-Type
string 
optional
Example:
application/json
Authorization
string 
optional
Example:
Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3NWNkZGEzMTJkYmM5YjM2NzkwNDliNiIsInJvbCI6IlNlbGxlciIsImlhdCI6MTczODE4OTczOCwiZXhwIjoxNzM4MjE4NTM4fQ.pqhvNo0o_kP3oK8hrJsRhdIPoXUnReaZT-x3_FVN6HA
Body Params application/json
status
string 
required
Examples

Responses

🟢200Success
application/json
Body
object {0}
Modified at 2025-04-24 17:49:22
Previous
Actualizar Orden
Next
Eliminar Orden
Built with