Integración por Lotes (Batch) de Lotes de Productos
Introducción
Esta sección describe la interfaz de carga de lotes de productos para la integración por lotes (batch) en la Tol.
Un lote permite definir un conjunto de productos, habilitados y deshabilitados, que pueden utilizarse para el disparo de una promoción u otras lógicas de negocio.
La interfaz permite realizar altas, modificaciones y bajas de lotes de productos.
Interface
En el caso que algún producto del lote no este dado de alta en la TOL, el lote se dará igualmente de alta, pero el producto no se dará de alta con el lote.
En el caso que algún producto del lote este deshabilitado (dado de alta, pero no disponible) el producto se dará de alta con el lote.
Acción
Alta
Realiza el alta del lote y los productos en el sistema.
Es obligatorio informar todos los campos obligatorios.
Si se intenta dar de alta un lote o un producto que ya está dado de alta, el sistema escribe un mensaje tipo “warn” en la tabla de logs.
En este caso se modificará el lote de alta a habilitado, borrará los productos e insertará los nuevos.
Ejemplo Mensaje: Warn, Lote con código C-202111081800 y canal: 1. Se han borrado los productos: [78]
Modificación
Realiza la modificación de los productos de un lote. Borra los productos que existían y da de alta los que se informan.
Gestión de errores
Si se intenta modificar un lote que no está dado de alta, el sistema escribe un mensaje tipo “warn” en la tabla de logs, pero insertará el lote.
Ejemplo Mensaje: Warn, Lote con código C-202111081800 y canal 1 no existe.
Baja
Realiza la baja del lote en el sistema. La acción de baja es una baja lógica, no física.
Se da de baja el lote, pero no la asignación de los productos al lote.
Gestión de errores
Si se intenta dar de baja un lote que no está dado de alta el sistema escribe un mensaje tipo “error” en la tabla de logs y se informa en el correo resumen.
Ejemplo Mensaje: Error, Lote con canal no informado
Formato del fichero
Diariamente y según la planificación establecida, se ejecutará un proceso que recibirá un archivo JSON incremental con la información de los productos mostrados en la tienda online
Este archivo tendrá el siguiente nombre: “prefijoNombrefichero”, donde:
- Prefijo: Prefijo a definir en cada instalación
- NombreFichero: A definir por el cliente en la instalación, p.ej . AAAAMMDDHHmmss
Adicionalmente se puede definir que la carga del archivo de lote se ejecute teniendo en cuenta la existencia de un archivo de semáforo para asegurar que el archivo de surtido está completo.
El archivo de semáforo tendrá el siguiente nombre “prefijosemaforoprefijoAAAAMMDDHHmmss
Prefijosemaforo: texto configurable en cada instalación.
Planificación del proceso
Diariamente y según la planificación establecida, se ejecutará el proceso de carga que leerá los archivos JSON desde una carpeta del servidor de archivos definido y una vez procesado lo moverá a una carpeta de archivos procesados.
Las carpetas de lectura y de archivos procesados son configurables en cada instalación.
El proceso se puede lanzar de forma manual desde el back-office.
El proceso envia un mail a la cuenta de cargas con el resultado de la ejecución:


Formato del archivo JSON
El archivo JSON tendrá la estructura siguiente:
| Campo “Nombre campo” | Descripción/Ejemplo | Formato | Oblig. |
|---|---|---|---|
| Lotes “lotes” | Lista con la información de los lotes | Lista del Tipo Lote | Sí |
| Campo “Nombre campo” | Descripción/Ejemplo | Formato | Oblig. |
|---|---|---|---|
| Canal “canal” | Canal al que pertenece el lote | Numérico entero | Sí |
| Código “codigo” | Código que identifica el lote | Literal (30 caracteres máximos) | Sí |
| Productos “productos” | Lista de productos que componen el lote | Lista de Tipo Producto | Sí |
| Acción “accion” | Alta, baja o modificación | Literal (1 carácter ) “A”, “B” ,”M” | Sí |
A continuación, describimos el Tipo Producto Lote:
| Campo “Nombre campo” | Descripción/Ejemplo | Formato | Oblig. |
|---|---|---|---|
| Código “codigo” | Código del producto en los sistemas del cliente | Literal (10 caract max) | Sí |
Ultima versión de Json valida: 1
ANEXOS. Ejemplos json
Ejemplo alta lote
{
"lotes": [
{
"canal": 1,
"codigo": "LOTE_PRUEBA_1",
"accion": "A",
"productos": [
{
"codigo": "0355"
},
{
"codigo": "06969"
},
{
"codigo": "1000"
}
]
},
{
"canal": 1,
"codigo": "LOTE_PRUEBA_2",
"accion": "A",
"productos": [
{
"codigo": "0355"
},
{
"codigo": "06969"
},
{
"codigo": "1000"
}
]
}
]
}
Ejemplo modificación lote
{
"lotes": [
{
"canal": 1,
"codigo": "LOTE_PRUEBA_2",
"accion": "M",
"productos": [
{
"codigo": "100267"
},
{
"codigo": "100268"
},
{
"codigo": "100308"
},
{
"codigo": "1000"
}
]
}
]
}
Ejemplo baja lote
Ejemplo JSON
Gestión de versiones
| Versión | Cambios |
|---|---|
| 25.0 | Importación inicial |
| 25.3 | Eliminación versionJ |