Saltar a contenido

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:

Image

Image

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

{
  "lotes": [
    {
      "canal": 1,
      "codigo": "LOTE_PRUEBA_X",
      "accion": "B"
    }
  ]
}

Gestión de versiones

Versión Cambios
25.0 Importación inicial
25.3 Eliminación versionJ