Manual integración modulo de entregas y devoluciones.
Introducción
El siguiente documento detalla el proceso y flujo para que un cliente pueda realizar devoluciones en la TOL. Para ello es necesario implementar nuevos procesos de intercambio de información entre la TOL y los sistemas del comercio.
A continuación se muestra el esquema del flujo y los procesos necesarios:

Entregas
Información de entregas; del Comercio a la TOL
Para realizar una devolución es necesario que se informe a la TOL de los productos servidos al cliente, esto se hace a través de la interfaz “Entrega”.
Al igual que otras comunicaciones, la carga de entregas se hace mediante un archivo en formato JSON depositado en el servidor de archivos de intercambio, éste deberá ir acompañado de su correspondiente archivo de verificación:
Archivo con los datos de la entrega: servidoaaaammddhhmmss.dat Archivo de verificación: clot_servidoaaaammddhhmmss.dat
El proceso de carga de entregas está sujeta a la validación de los datos importados, en el caso que alguno de los datos no pase la validación, la entrega no será procesada, y, se notificará vía e-mail al administrador de la TOL.
Cuando una entrega se haya cargado correctamente se enviará un e-mail al cliente notificando el detalle de la misma y se pasa el pedido a un nuevo estado “Entregado”.
Detalles de la interfaz “Entrega”
Datos de tipo Entrega
| Campo “Nombre campo” | Descripción/Ejemplo | Formato | Obliga. |
|---|---|---|---|
| Pedido “pedido” | Número de pedido. El de la TOL | Numérico entero | Sí |
| Fecha “fechaEntrega” | Fecha de la entrega (o creación del ticket) | Fecha y hora (dd/mm/aaaa hh:mm) | Sí |
| Código “codigoEntrega” | Número único que identifica la entrega | Literal (50 carácter máx.) | Sí |
| Tipo “tipoEntrega” | Indica si el cliente ha recogido el pedido en tienda o se le ha entregado en domicilio | Literal (1 carácter máx.) “T” Tienda “D” Domicilio | Sí |
| Tienda “codigoTiendaFisica” | Código de la tienda que ha realizado la entrega | Literal (50 caracteres máx.) | Sí |
| Número de caja “numeroCaja” | Código de la caja en tienda donde se ha preparado la entrega | Numérico entero | No |
| Importe Neto “importeNeto” | Importe total de la compra. Corresponde con el importe que se cobra al cliente. | Numérico decimal (formato 0.00) | Sí |
| Gastos de entrega “gastosEntrega” | Importe de los gastos del pedido | Numérico decimal (formato 0.00) | Sí |
| Descuentos “descuentos” | Importe de la suma de los descuentos aplicados a la entrega | Numérico decimal (formato 0.00) | Sí |
| Productos “productos” | Productos incluídos en la entrega | Lista de tipo Producto entrega | Sí |
Datos de tipo Producto entrega
| Campo “Nombre campo” | Descripción/Ejemplo | Formato | Oblig. |
|---|---|---|---|
| Código “codigoProducto” | Código interno del producto | Literal (10 carácter máx.) | Sí |
| Cantidad “cantidad” | Cantidad servida. Para productos tipo 1 (estándar) -> unidades de producto. Para productos tipo 2 (al peso) -> kg./gr. Para productos tipo 3 (al peso por unidades) -> unidades de producto. Para productos tipo 3 (al peso por unidades) -> kg./gr. | Numérico decimal (formato 0.00) | Sí |
| Precio “precio” | PVP del producto. Precio con IVA. Según el tipo de producto tiene el siguiente significado: 1 (estándar): precio por unidad de producto 2 (al peso): precio por unidad de producto. 3 (al peso por unidades): precio por unidad de medida 3 (al peso por unidades): Precio por unidad de peso La divisa viene determinada por el pedido. | Numérico decimal (formato 0.00) | Sí |
| Retornable “retornable” | Si el producto se puede devolver | Booleano (1,0) | No |
Para los productos del tipo 3 (al peso por unidades) donde el comercio desconoce las unidades servidas, se informa del peso entregado (kg./gr.) en vez de las unidades.
Ejemplo JSON
{
"entregas": [
{
"codigoEntrega": "codigo_entrega_001",
"pedido": 1234,
"fechaEntrega": "18/11/2015 09:00:00",
"tipoEntrega": "D",
"codigoTiendaFisica": "codigo_tienda_fisica_001",
"numeroCaja": 100,
"importeNeto": 30.5,
"gastosEntrega": 7.5,
"descuentos": 0.2,
"productos": [
{
"codigoProducto": "codigo_producto_001",
"cantidad": 3,
"precio": 7.5
}
]
}
]
}
Devoluciones
Las devoluciones se crean en el apartado “Mis compras” (figura 1), donde se muestran los pedidos y las entregas relacionadas. En esta misma pantalla también se puede consultar el detalle del pedido (figura 2) y el detalle de los productos que finalmente se le han entregado (figura 3).
Figura 1: Mis compras y entregas realizadas.

En la pantalla de “Nueva devolución” (figura 4) el cliente debe indicar los productos que quiere devolver, las unidades, los motivos y el modo. Opcionalmente puede realizar algún comentario.
Una vez indicado el detalle de la devolución el cliente debe seleccionar la fecha y la franja horaria para la recogida/reposición de los productos. Las franjas de las recogidas son exactamente las mismas que las de los pedidos, de manera que si se reserva una franja de una devolución, ésta ya no aparecerá como disponible para posteriores pedidos o devoluciones.
Figura 4: Pantalla de Nueva Devolución
Unidades
El cliente debe indicar las unidades de un producto que quiere devolver, quedando excluídos los productos del tipo 2 (al peso) y 3 (al peso por unidades). Donde no se permite seleccionar la cantidad, se devuelve la misma cantidad indicada en el momento de la entrega.
Devolución de artículos del tipo 3
Para facilitar la gestión de la resposición al comercio la TOL hace el cálculo de las unidades del artículo correspondientes al peso entregado. Tomando como referencia el precio kg./gr. que tenía el producto en el momento de la compra. Este dato únicamente se informa en la interfaz, no se muestra al cliente por pantalla.
Nota: Este dato se informará en el campo “unidadesEntregadas” en el detalle de la interfaz de Devolucion por cada “Producto devolución”.
A continuación se indica un caso de uso:
Pedido:
Producto: Tomate ensalada (código 60012) Precio unidad: 0,24 € Precio kg: 1,19 €/kg Cantidad comprada: 15 Precio linea: 15 x 0,24 = 3,6 €
Entrega (supuesto caso que se entrega menos cantidad de la solicitada por falta de stock):
Producto: Tomate ensalada (código 60012) Cantidad entregada: 2,24 Kg Precio linea: 2,67 €
Devolución:
Producto: Tomate ensalada (código 60012) Precio unidad: 0,24 € (se tomará del pedido ya que puede variar el precio en el surtido vigente) Precio kg: 1,19 €/kg (se tomará del pedido ya que puede variar el precio en el surtido vigente) Unidades x kg: 1,19 / 0,24 = 5 uds (dato calculado) Cantidad: 2,24 * 5 = 11 unidades (Este dato únicamente se informa en la interfaz) Precio: 2,67 €
Plazo de devolución
Para generar una devolución la TOL verifica que los productos no hayan superado la fecha límite de devolución. Esta fecha viene determinada por su categoría y por la fecha que se entregó el pedido/entrega al cliente. Si un producto se encuentra en más de una categoría, se utiliza el valor más permisivo.
Hay que tener en cuenta que a nivel de categoría se informa el dato en días (campo numérico entero), pero la fecha límite también tiene en cuenta la hora de la entrega. De modo que si un producto se entrega, por ejemplo, el 21/10/2015 a las 13:10h y la categoría indica que dispone 7 días como plazo de devolución, la fecha límite de devolución será el el 28/10/2015 a las 13:10h.
Motivo, modo de devolución y costes de recogida
Durante la creación de la devolución el cliente debe seleccionar los productos que quiere devolver, indicar, necesariamente, el motivo de la devolución, y, si desea su reposición.
La combinación del motivo de devolución y el modo tiene asociado un coste de recogida. Éste será el importe que se le descontará en el momento de realizar el abono por parte del comercio.
Los motivos de devolución y los costes asociados son administrables en el Baceknd de la TOL y se parametrizarán según la zona, la divisa y el idioma.
Importe de la devolución
Puede darse el caso que una devolución implique un abono total o parcial (por parte del comercio). Para calcular el importe se tiene en cuenta los siguientes conceptos:
- Suma de los productos devueltos en modo “Sin reposición”. Este importe será el que previamente se ha informado en la entrega, no el del pedido.
- Gastos de recogida.
Fecha y franja de recogida
Igual que en el proceso de compra, una devolución implica que el comercio ha de pasar por el domicilio del cliente a recoger los productos de la devolución, y, opcionalmente, a entregarle las reposiciones.
Durante el proceso de devolución el cliente debe indicar una fecha y una franja de recogida.
Detalle de la interfaz “Devolución”
Datos de tipo “Devolución”
| Campo “Nombre campo” | Descripción/Ejemplo | Formato | Oblig. |
|---|---|---|---|
| Número devolución “numero Devolución” | Número de devolución generado por la TOL | Numérico entero | Sí |
| Número pedido “numeroPedido” | Número de pedido de la TOL del cual se genera la devolución | Numérico entero | Sí |
| Código entrega “codigoEntrega” | Número de la entrega de la cual se genera la devolución | Numérico entero | Sí |
| Código tienda física “codigoTiendaFisica” | Código de la tienda que realizó la entrega | Numérico entero | Sí |
| Código zona “codigoZona” | Código de la zona | Numérico entero | Sí |
| Código canal “codigoCanal” | Código del canal | Numérico entero | Sí |
| Idioma “idioma” | Identificador del idioma (ISO 639-1) | Literal (2 caracteres máx.) | Sí |
| Divisa “divisa” | Código que identifica la divisa (ISO-4217) | Literal (3 caracteres máx.) | Sí |
| Fecha creación “fechaCreacion” | Fecha de creación de la devolución | Fecha (dd/mm/aaaa hh:mm) | Sí |
| Fecha devolución “fechaDevolucion” | Fecha de devolución seleccionada | Fecha (dd/mm/aaaa) | Sí |
| Hora inicio franja “horaInicioFranja” | Hora de inicio de la franja de entrega seleccionada | Hora (HH:MM) | Sí |
| Hora fin franja “horaFinFranja” | Hora fin de la franja de entrega seleccionada | Hora (HH:MM) | Sí |
| Tipo de entrega “tipoRecogida” | Indicador si la recogida se realizará en tienda o a domicilio | Literal (1 carácter máx.) “T” Tienda “D” Domicilio | Sí |
| Total “total” | Suma de los productos devueltos en modo “Sin reposición” | Numérico decimal (formato 0.00) | Si |
| Gastos de devolución “gastosDevolucion” | Gastos por la gestión de la devolución | Numérico decimal (formato 0.00) | Si |
| Importe devolución “importeDevolucion” | Importe de la devolución. Si el valor es negativo significa que el comercio ha de hacer un abono al cliente (o lo que considere oportuno). Si el importe es positivo significa que el cliente ha realizado un pago a través del TPV, en este caso el campo “codigoAutorizacion” ha de venir completado. | Numérico decimal (formato 0.00) | Si |
| Observaciones “observaciones” | Observaciones introducidas por el cliente | Literal (200 caracteres máx.) | No |
| Código autorización “codigoAutorizacion” | Código de autorización asociado al método de pago | Literal (30 caracteres máx.) | No |
| Código comercio electrónico “codigoComercioElectronico” | Merchant Code de la tienda seleccionada | Literal (12 caracteres máx.) | No |
| Terminal comercio electrónico “terminalComercioElectronico” | Número del terminal del comercio electrónico asociada a la tienda | Literal (10 caracteres máx.) | No |
| Productos “productos” | Lista de productos incluídos en la devolución | Lista de Tipo Producto Devolución | Sí |
| Fecha entrega “fechaEntrega” | Indica la fecha en la que se entregó el pedido | Fecha (dd/mm/aaaa hh:mm) | No |
| Importe neto “importeNeto” | Indica el importe del pedido entregado | Numérico decimal (formato 0.00) | Si |
| UserName “userName” | Nombre de usuario que hace la devolución | Literal (50 caracteres máx.) | Sí |
Datos de tipo “Producto devolución”
| Campo “Nombre campo” | Descripción/Ejemplo | Formato | Oblig. |
|---|---|---|---|
| Código “codigoProducto” | Código interno del producto | Literal (10 carácter máx.) | Sí |
| Descripción breve “descripcionBreve” | Descripción breve del producto | Literal (255 caracteres máx.) | Sí |
| Descripción larga “descripcionLarga” | Descripción larga del producto | Literal (255 caracteres máx.) | Sí |
| Cantidad entregada “cantidadEntregada” | Indica la cantidad serivda en la entrega. Para productos tipo 1 (estándar) -> unidades de producto. Para productos tipo 2 (al peso) -> kg./gr. Para productos tipo 3 (al peso por unidades) -> unidades de producto. | Num Numérico decimal (formato 0.00) | Sí |
| Cantidad devuelta “cantidadDevuelta” | Indica la cantidad que se devuelve. Para productos tipo 1 (estándar) -> unidades de producto. Para productos tipo 2 (al peso) -> kg./gr. Para productos tipo 3 (al peso por unidades) -> Kg/gr | Numérico decimal (formato 0.00) | Sí |
| Unidades entregadas “unidadesEntregadas” | Indica las unidades que se entregaron y que hay que reponer Para productos tipo 1 (estándar) -> unidades de producto. Para productos tipo 2 (al peso) -> kg./gr. Para productos tipo 3 (al peso por unidades) -> unidades de producto. Este dato será calculado por la TOL a partir de los parámetros del artículo y la cantidad entregas al cliente. | Numérico decimal (formato 0.00) | Sí |
| Precio “precio” | PVP del producto. Precio con IVA. Según el tipo de producto tiene el siguiente significado: 1(estándar): precio por unidad de producto 2 (al peso): precio por unidad de producto. 3 (al peso por unidades): precio por unidad de medida La divisa viene determinada por el pedido. Si se solicita reposición el precio será 0.00 | Numérico decimal (formato 0.00) | Sí |
| Precio devuelto “precioDevuelto” | Es el precio por la cantidad devuelta | Numérico decimal (formato 0.00) | Sí |
| Precio linea “precioLinea” | Es el mismo valor que el “precioLinea” del “Producto entrega” | Numérico decimal (formato 0.00) | Sí |
| Motivo devolución “codigoMotivoDevolución” | Código del motivo de la devolución | Numérico entero | Sí |
| Motivo devolución “motivoDevolucion” | Descripción del motivo de la devolución | Literal (N caracteres máx.) | Sí |
| Modo devolución “modoDevolucion” | Indica si requiere reposición | Numérico entero (1,0) 0 Sin reposición 1 Con reposición | Sí |
| Fecha plazo “fechaPlazo” | Indica la fecha en la que caduca el palzo para la devolución de ese producto en esa entrega | Fecha (dd/mm/aaaa hh:mm) | Si |
Gestión de versiones
| Versión | Cambios |
|---|---|
| 25.0 | Importación inicial |
| 25.3 | Eliminación versionJ |