Obtener Estado de la orden
Consulta el estado actual y el historial de estados de una orden específica usando su número de orden único.
GET
/shipment/client/order-status/:unique_order_numberEste endpoint te permite obtener el estado de la orden, pasando el unique_order_number como parámetro en la URL.
Encabezados
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
Authorization | string | ✅ Sí | Token Bearer obtenido del endpoint /token/generate |
Ejemplos
- cURL
- JavaScript
- Python
curl -X GET https://apisandbox.eonwms.com/shipment/client/order-status/TESTORDER01 \
-H "Authorization: Bearer TU_TOKEN"
const uniqueOrderNumber = 'TESTORDER01';
const response = await fetch(
`https://apisandbox.eonwms.com/shipment/client/order-status/${uniqueOrderNumber}`,
{
method: 'GET',
headers: {
'Authorization': 'Bearer TU_TOKEN'
}
}
);
const orderStatus = await response.json();
console.log('Estado actual:', orderStatus.data.find(s => s.current).status);
import requests
unique_order_number = 'TESTORDER01'
response = requests.get(
f'https://apisandbox.eonwms.com/shipment/client/order-status/{unique_order_number}',
headers={
'Authorization': 'Bearer TU_TOKEN'
}
)
order_status = response.json()
# Obtener el estado actual
current_status = next(s for s in order_status['data'] if s['current'])
print(f"Estado actual: {current_status['status']}")
Respuestas
200Éxito - Estado de la orden obtenido
{
"shipment": {
"uniqueOrderNumber": "order18",
"masterTrackingNumber": "390450842353",
"shippingService": "FEDEX"
},
"data": [
{
"id": 1,
"status": "PLACED",
"shipment_id": 1,
"current": false,
"date": null,
"time": null,
"created_at": "2022-11-10T02:07:46.474-06:00",
"updated_at": "2022-11-10T02:19:08.457-06:00"
},
{
"id": 2,
"status": "READY",
"shipment_id": 1,
"current": false,
"date": null,
"time": null,
"created_at": "2022-11-10T02:19:08.476-06:00",
"updated_at": "2023-01-10T13:48:51.966-06:00"
},
{
"id": 9,
"status": "Shipment information sent to FedEx",
"shipment_id": 1,
"current": true,
"date": "2022-11-10",
"time": "2000-01-01T02:19:00.000-06:00",
"created_at": "2023-01-10T13:48:51.982-06:00",
"updated_at": "2023-02-08T16:44:01.727-06:00"
}
]
}
401No autorizado - Token inválido
{
"v": "EON_V2.0",
"fault": {
"arguments": {
"Authorization": "invalid"
},
"type": "InvalidAuthorizationException",
"message": "La solicitud no está autorizada, el token de acceso es inválido."
}
}
422Entidad no procesable - Número de orden inválido
{
"fault": {
"error": "invalid_unique_order_number",
"error_description": "El número de orden único es inválido."
}
}
Estructura de la Respuesta
Información del Envío
El objeto shipment contiene:
- uniqueOrderNumber: Tu número de orden único
- masterTrackingNumber: Número de rastreo principal del transportista
- shippingService: Servicio de envío utilizado
Historial de Estados
El array data contiene el historial completo de estados, donde cada objeto incluye:
- id: Identificador único del estado
- status: Descripción del estado
- current: Boolean que indica si es el estado actual
- date: Fecha cuando ocurrió el cambio (formato YYYY-MM-DD)
- time: Hora del cambio
- created_at: Timestamp de creación del registro
- updated_at: Timestamp de última actualización
Estados Posibles de la orden
Estados de Fulfillment
| Estado | Descripción |
|---|---|
PLACED | Orden recibida y registrada |
READY | Stock confirmado, listo para surtir |
PICKED | Productos recolectados del almacén |
PACKED | Orden empacada |
SHIPPED | Enviado al transportista |
Estados del Transportista
Una vez que la orden es enviada, recibirás estados específicos del transportista, por ejemplo:
- "Shipment information sent to FedEx"
- "In transit"
- "Out for delivery"
- "Delivered"
Ejemplo de Uso Práctico
// Función para verificar si una orden fue enviada
async function verificarEnvio(uniqueOrderNumber) {
const response = await fetch(
`https://apisandbox.eonwms.com/shipment/client/order-status/${uniqueOrderNumber}`,
{
headers: {
'Authorization': 'Bearer TU_TOKEN'
}
}
);
const data = await response.json();
const estados = data.data;
// Buscar si existe el estado SHIPPED
const enviado = estados.some(estado =>
estado.status === 'SHIPPED' ||
estado.status.includes('sent to')
);
if (enviado) {
console.log(`Orden ${uniqueOrderNumber} fue enviado`);
console.log(`Número de rastreo: ${data.shipment.masterTrackingNumber}`);
} else {
const estadoActual = estados.find(e => e.current);
console.log(`Estado actual: ${estadoActual.status}`);
}
}
Monitoreo de Estados
Puedes usar este endpoint para:
- Crear un sistema de notificaciones cuando cambie el estado
- Mostrar el progreso de la orden a tus clientes
- Detectar ordenes que necesitan atención (ej: detenidos en un estado por mucho tiempo)
Frecuencia de Consulta
- Recomendamos no consultar más de una vez por minuto por orden
- Para monitoreo en tiempo real, considera implementar webhooks
- Los estados del transportista pueden tener un retraso de 15-30 minutos