Saltar al contenido principal

Obtener Enlaces de Descarga de Etiquetas

Obtén los enlaces para descargar las etiquetas de envío asociadas con una orden específico. Las etiquetas solo están disponibles por 90 días después de su creación.

GET/v1/client/shipment/label_path/:unique_order_number

Este endpoint proporciona una lista de URLs para descargar las etiquetas asociadas con la orden solicitado. Las etiquetas solo estarán disponibles 90 días después de su creación.

Encabezados

ParámetroTipoRequeridoDescripción
Authorizationstring✅ SíToken Bearer obtenido del endpoint /token/generate

Ejemplos

curl -X GET https://apisandbox.eonwms.com/v1/client/shipment/label_path/Orden-12345 \
-H "Authorization: Bearer TU_TOKEN"

Respuestas

200Éxito - Enlaces de descarga disponibles

{
"shipment": {
"unique_order_number": "VALID-IDENTIFIER",
"master_tracking": "000000000000",
"expiration_date": "2024-11-27",
"data": [
{
"format": "PNG",
"url": "https://apisandbox.eonwms.com/v1/client/shipment/label/download/VALID-IDENTIFIER/000000000000.png"
}
]
}
}

404No encontrado - Orden no existe

{
"code": 404,
"fault": {
"arguments": {
"unique_order_number": "invalid"
},
"type": "shipmentNotFound",
"message": "Envío no encontrado."
}
}

422No procesable - Etiqueta expirada

{
"code": 422,
"fault": {
"arguments": null,
"type": "get_label.expired",
"message": "La etiqueta ya no está disponible, la orden ha expirado."
}
}

Estructura de la Respuesta

Información del Envío

  • unique_order_number: Número único de la orden
  • master_tracking: Número de rastreo principal
  • expiration_date: Fecha de expiración de las etiquetas (formato YYYY-MM-DD)

Enlaces de Descarga

El array data contiene los enlaces de descarga:

  • format: Formato del archivo (generalmente "PNG")
  • url: URL completa para descargar la etiqueta
Autenticación Requerida

Las URLs de descarga también requieren el token Bearer en el header Authorization. No son enlaces públicos.

Consideraciones Importantes

Expiración de Etiquetas

Las etiquetas tienen una validez de 90 días desde su creación:

// Verificar si la etiqueta está por expirar
function verificarExpiracion(expirationDate) {
const expira = new Date(expirationDate);
const hoy = new Date();
const diasRestantes = Math.floor((expira - hoy) / (1000 * 60 * 60 * 24));

if (diasRestantes < 0) {
return { expirada: true, mensaje: "La etiqueta ya expiró" };
} else if (diasRestantes < 7) {
return {
expirada: false,
mensaje: `¡Advertencia! La etiqueta expira en ${diasRestantes} días`
};
}

return { expirada: false, diasRestantes };
}

Formatos Disponibles

Actualmente, las etiquetas se proporcionan en:

  • PNG: Formato de imagen estándar
    • Resolución recomendada para impresión: 300 DPI
    • Tamaño típico: 4" x 6"

Múltiples Etiquetas

una orden puede tener múltiples etiquetas si:

  • El envío requiere múltiples paquetes
  • Se generaron etiquetas de retorno
  • Hay documentación adicional (como etiquetas de aduana)

Ejemplo de Implementación Completa

Descargar y Mostrar Etiqueta en el Navegador

async function mostrarEtiqueta(uniqueOrderNumber) {
try {
// 1. Obtener URLs de etiquetas
const response = await fetch(
`https://apisandbox.eonwms.com/v1/client/shipment/label_path/${uniqueOrderNumber}`,
{
headers: { 'Authorization': 'Bearer TU_TOKEN' }
}
);

if (!response.ok) {
throw new Error('No se pudieron obtener las etiquetas');
}

const data = await response.json();

// 2. Verificar expiración
const expiracion = verificarExpiracion(data.shipment.expiration_date);
if (expiracion.expirada) {
alert('Las etiquetas han expirado');
return;
}

// 3. Descargar y mostrar cada etiqueta
for (const label of data.shipment.data) {
const labelResponse = await fetch(label.url, {
headers: { 'Authorization': 'Bearer TU_TOKEN' }
});

const blob = await labelResponse.blob();
const imgUrl = URL.createObjectURL(blob);

// 4. Mostrar en una nueva ventana
const ventana = window.open('', '_blank');
ventana.document.write(`
<html>
<head>
<title>Etiqueta ${uniqueOrderNumber}</title>
<style>
@media print {
body { margin: 0; }
img { max-width: 100%; }
}
</style>
</head>
<body>
<img src="${imgUrl}" alt="Etiqueta de envío">
<script>
window.print();
</script>
</body>
</html>
`);
}
} catch (error) {
console.error('Error:', error);
alert('Error al obtener las etiquetas');
}
}

Descargar Etiquetas en Lote

async function descargarEtiquetasEnLote(ordenes) {
const resultados = [];

for (const orden of ordenes) {
try {
const response = await fetch(
`https://apisandbox.eonwms.com/v1/client/shipment/label_path/${orden}`,
{
headers: { 'Authorization': 'Bearer TU_TOKEN' }
}
);

if (response.ok) {
const data = await response.json();
resultados.push({
orden,
exito: true,
urls: data.shipment.data
});
} else {
resultados.push({
orden,
exito: false,
error: 'No disponible'
});
}
} catch (error) {
resultados.push({
orden,
exito: false,
error: error.message
});
}
}

return resultados;
}

Casos de Uso

1. Reimpresión de Etiquetas

Cuando un cliente necesita reimprimir una etiqueta perdida o dañada.

2. Integración con Sistema de Impresión

Automatizar la descarga e impresión de etiquetas en tu centro de fulfillment.

3. Archivo Digital

Mantener un respaldo digital de todas las etiquetas generadas.

Mejores Prácticas
  1. Cachea las URLs: Las URLs son las mismas durante la vida de la etiqueta
  2. Implementa reintentos: En caso de fallo de red al descargar
  3. Verifica la expiración: Antes de intentar descargar
  4. Guarda localmente: Para evitar múltiples descargas de la misma etiqueta