Crear órdenes masivas (carga de Excel)
POST/api/batchShipping
Crea varias órdenes a partir de la plantilla Excel llena (GET /api/batchShipping). Cada fila se valida y se procesa por separado.
La respuesta es 200 aunque algunas filas fallen: revise isValid y response_message de cada fila en data[].
codeExcel es el número de fila del Excel, para ubicar los errores.
Cómo enviar el archivo
- Se envía como
multipart/form-dataen el campofile, con el tipo de contenido de Excel (application/vnd.openxmlformats-officedocument.spreadsheetml.sheet). Si el archivo llega con otro tipo (por ejemploapplication/octet-stream), se rechaza. Con curl:-F "file=@plantilla.xlsx;type=application/vnd.openxmlformats-officedocument.spreadsheetml.sheet". - Solo se lee el formato .xlsx. Un .xls (formato antiguo) se rechaza con
El archivo no pudo ser leído como Excel. - Se lee la primera hoja; la fila 1 son los encabezados y las filas vacías se omiten.
- Llene la plantilla en Excel u otra hoja de cálculo que guarde el resultado de las fórmulas: las columnas ocultas calculan los IDs (dirección, municipio, servicio) a partir de lo elegido en las listas. Si el archivo se genera con una librería que no calcula fórmulas, las filas fallan.
Columnas y validaciones por fila
Cada fila se valida en este orden y se reporta solo el primer error:
| Columna | Dato | Regla | Mensaje si falla |
|---|---|---|---|
| B | Nombre de cliente | Obligatorio, de 2 a 150 caracteres | El nombre del cliente es obligatorio y no puede estar vacío, El nombre del cliente debe contener al menos 2 caracteres, El nombre del cliente es demasiado largo. No puede superar los 150 caracteres |
| C | Teléfono de cliente | Obligatorio, de 7 a 9 caracteres: números y, opcionalmente, guion | El número de teléfono del cliente es obligatorio, El número de teléfono del cliente no puede tener más de 9 caracteres. Puede ingresarse con o sin guion, El número de teléfono del cliente solo puede contener números y, opcionalmente, un guion |
| D | Dirección de envío | Obligatoria, de 5 a 250 caracteres | La dirección del cliente es obligatoria y no puede estar vacía, La dirección del cliente es demasiado corta. Debe contener al menos 5 caracteres, La dirección del cliente es demasiado larga. No puede superar los 250 caracteres |
| E, F | Departamento y municipio | Elegidos de la lista | No se pudo identificar el municipio del cliente. Verifica que el municipio exista y esté correctamente seleccionado |
| A | Dirección de recolección | Elegida de la lista | Seleccione una dirección de recolección válida |
| I | Courier | Obligatorio | Seleccione un courier válido |
| J | Servicio | Obligatorio | Seleccione un servicio |
| K | Tipo de servicio | Obligatorio; la combinación de courier, servicio y tipo debe existir en la lista | Seleccione un tipo de servicio, La combinación de courier, servicio y tipo de servicio no es válida |
| L | Tipo de entrega | Entrega Normal (Sin Cobro) o Cobro Contra Entrega | Seleccione un tipo de entrega válido |
| N | Descripción del producto | Obligatoria, máximo 150 caracteres | Ingrese una descripción del producto, La descripción del producto es demasiado larga |
| H | Peso (lb) | Número mayor que 0 | Ingrese un peso válido |
| G | Cantidad de paquetes | Entero de 1 a 50 | Ingrese una cantidad de paquetes válida |
| M | Monto a cobrar | Mayor que 0 con Cobro Contra Entrega; sin cobro, vacío o mayor o igual a 0 | Ingrese un monto a cobrar válido, por ejemplo 15.50, El monto a cobrar no puede ser negativo |
| O | Comentarios | Opcional, máximo 300 caracteres | Los comentarios son demasiado largos |
Qué hace cada fila válida
Guarda o actualiza el destinatario en los clientes del comercio y crea la orden igual que POST /api/orders:
genera la guía y descuenta el costo del saldo. Si la creación falla (por ejemplo, por saldo o por un error del courier),
la fila llega con isValid: false y el mensaje de ese error. Las demás filas se procesan igual.
Petición
Respuestas
- 200
- 400
- 401
- 500
Archivo procesado; revisar el resultado de cada fila
El archivo no es válido. Mensajes posibles: No se envió ningún archivo, El archivo enviado no es válido,
El archivo enviado no es un archivo Excel válido, El archivo no pudo ser leído como Excel,
El archivo Excel no contiene hojas, El archivo Excel no contiene registros.
Falta el token, venció (dura 15 minutos) o no es válido. Repite el login para obtener uno nuevo.
Error interno al procesar el archivo