Proyectos

Transportistas y control de costes

Cuatro transportistas con una sola lógica: la tarifa más barata con todos los recargos incluidos y una revisión automática de cada factura.

Detalles

Año 2024 – 2026
Resultado Coste logístico sobre ventas, un 24 % menor
Herramientas Node.js, Express, MongoDB, SOAP, REST, SFTP

Cómo funciona

  1. 1 Pedido destino, peso y número de bultos
  2. 2 Tarifas precio total con combustible y extras
  3. 3 Transportista se elige el más barato, en automático
  4. 4 Etiqueta y seguimiento con estados normalizados
  5. 5 Factura se importa tal cual la manda el transportista
  6. 6 Comparador las diferencias quedan listas para reclamar

Contexto

Enviamos a España, Portugal y el resto de Europa con varios transportistas, y cada uno funciona a su manera: unos con SOAP, otros con REST o con ficheros por SFTP, cada uno con sus estados de seguimiento y sus recargos, que cambian cada mes.

Qué hice

Mantengo un middleware en Node.js y MongoDB que genera las etiquetas de GLS, SEUR/DPD, UPS y Correos Express, este último también para Portugal y puntos PaqPunto. Para cada pedido calcula el precio total con el combustible y los extras y se queda con el más barato; los recargos se cambian desde una pantalla, sin tocar código. Los estados de todos los transportistas se traducen a uno común, para que el resto de sistemas no tenga que saber con quién va el paquete.

Cuando llegan las facturas, un comparador las cruza con los envíos reales por referencia, código postal y peso, y separa lo que hay que reclamar. Correos Express lo llevé de las primeras pruebas a producción en julio de 2026, después de dos meses trabajando con ellos.

Resultado

El coste logístico sobre ventas bajó un 24 %. Y el comparador encuentra diferencias reclamables en cada factura mensual.

Lo que aprendí

Generar etiquetas es lo fácil; lo difícil es entender los estados de cada transportista. Hay una regla que me ha ahorrado muchos disgustos: un estado con significado nunca se pisa con un «desconocido». Y las tarifas son datos, no código: si cambian cada mes, tienen que poder cambiarse sin desplegar.