Saltar a contenido

Integración por Lotes (Batch) de Agrupaciones de Productos

Introducción

Esta sección describe la interfaz de carga de agrupaciones de productos para la integración por lotes (batch) en la Tol.

Una agrupación se define como un conjunto de artículos que se mostrarán para una tienda preparadora durante un periodo de tiempo definido. Las agrupaciones se visualizan en el menú lateral izquierdo del grid en formato desktop y permiten organizar y presentar productos de forma conjunta en la tienda online.

Las agrupaciones se definen a nivel de tienda preparadora, por lo tanto, será posible definir diferentes agrupaciones en función de la tienda preparadora.

Image

Una agrupación permite definir la siguiente información:

  • Descripción: descripción en los diferentes idiomas que se mostrarán en la TOL.
  • Agrupación padre: agrupación que integra a otras agrupaciones.
  • Vigencia: fechas entre las que estará visible la agrupación.
  • Tienda preparadora: tienda preparadora donde será visible la agrupación.
  • Información SEO: información para definir la URL y el posicionamiento SEO
  • Productos (opcional): en el caso que exista, se vincularán los productos a la agrupación.

Interface

Acción

Alta

Realiza el alta de la agrupación y los productos en el sistema.

Deben informarse todos los campos obligatorios.

Gestión de errores

Si se intenta dar de alta una agrupación o un producto que ya haya sido creado previamente, se modificará la agrupación de alta a habilitada, borrará los productos e insertará los nuevos.

El sistema escribe un mensaje de aviso en la tabla de cargas.

Ejemplo Mensaje: Warn, Agrupación con código C-202111081800. Se han borrado los productos: [78]

Modificación:

Deben informarse todos los campos obligatorios.

  • Datos de la agrupación. Realiza la modificación de los datos de la agrupación.
  • Productos.
  • Incremental = 0. Borra todos los productos y da de alta los de la lista.
  • Incremental = 1. Añade los productos de la lista a la agrupación.

Gestión de errores

Si se intenta modificar una agrupación que no está dada de alta, el sistema escribe una advertencia en la tabla de cargas y ejecutará un alta de agrupación.

Ejemplo Mensaje: Warn, Agrupación con Código C-202111081800 no existe.

Baja:

Deben informarse todos los campos obligatorios.

Realiza la baja de la agrupación.

  • Código de agrupación. Da de baja la agrupación en todas las tiendas preparadoras.
  • Código de agrupación y listado de tiendas preparadoras. Da de baja la agrupación en las tiendas preparadoras definidas.

Gestión de errores

Si se intenta dar de baja una agrupación que no está dada de alta, el sistema escribe un error en la tabla de errores de carga y se informa en el correo resumen.

Ejemplo Mensaje: Error, Agrupación con código C-202111081800 y canal no informado.

Lógica de negocio

Acción Incremental Productos Cómo aplica
A/M 0 Null Alta o modificación de una agrupación sin afectar a los productos asociados en caso de existir.
A/M 0 [ ] listado productos vacío Alta o modificación de una agrupación, dejando el listado de productos de la agrupación vacíos. Permite modificar una agrupación y dejarla sin productos asociados
A/M 0 [cod1, cod2, cod3] Alta o modificación de una agrupación dejando el listado de productos de la asociación a: [cod1, cod2, cod3]
A/M 1 Null Alta o modificación de una agrupación sin afectar a los productos asociados en caso de existir.
A/M 1 [ ] listado productos vacío Alta o modificación de una agrupación sin afectar a los productos asociados en caso de existir.
A/M 1 [cod1, cod2, cod3] Alta o modificación de una agrupación agregando los productos del listado (cod1, cod2, cod3) a los productos que ya existían en la agrupación.
B 0 Null Baja de una agrupación sin afectar a los productos.
B 0 [ ] listado productos vacío Baja de una agrupación sin afectar a los productos.
B 0 [cod1, cod2, cod3] Baja de una agrupación sin afectar a los productos.
B 1 Null Baja de una agrupación sin afectar a los productos.
B 1 [ ] listado productos vacío Baja de una agrupación sin afectar a los productos.
B 1 [cod1, cod2, cod3] Baja de la agrupación y de los productos cod1, cod2, cod3 de la agrupación.

Formato del fichero

Diariamente y según la planificación establecida, se ejecutará un proceso que recibirá un archivo JSON.

Este archivo tendrá el siguiente nombre: “prefijoNombrefichero”, donde:

  • Prefijo: prefijo a definir en cada instalación.

Ejemplo: agrupacion

  • NombreFichero: a definir por el cliente en la instalación, por ejemplo: AAAAMMDDHHmmss

Ejemplo: 2022012015500

Adicionalmente, se puede definir que la carga del archivo de agrupación 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á un proceso que recogerá el archivo 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 envía un mail a la cuenta de cargas con el resultado de la ejecución:

Image

Formato del archivo JSON

El archivo JSON tendrá la estructura siguiente:

Campo “Nombre campo” Descripción/Ejemplo Formato Oblig.
Agrupaciones “agrupaciones” Lista con la información de las agrupaciones Lista del Tipo Agrupación Sí

A continuación, describimos el Tipo Agrupación:

Campo “Nombre campo” Descripción/Ejemplo Formato Oblig.
Canal “canal” Canal al que pertenece la agrupación Numérico entero Sí
Zona “zona” Zona a la que pertenece la agrupación. DEPRECATED: Se debe utilizar “zonas”. Numérico entero No
Zonas “zonas” Listado de zonas a las que pertenece la agrupación Lista de Tipo Zona No
Código “codigo” Código que identifica la agrupación Literal (15 caracteres máximos) Sí
Orden “orden” Orden de la agrupación en el menú del catálogo Numérico entero No
Padre “padre” Código de agrupación de la cual es dependiente Debe existir previamente en el sistema TOL. Fecha (dd/mm/aaaa hh:mm) No
Desde “desde” Fecha a partir de la cual la agrupación es mostrada en la tienda online Fecha (dd/mm/aaaa hh:mm) Sí
Hasta “hasta” Fecha a partir de la cual la agrupación deja de mostrarse Fecha (dd/mm/aaaa hh:mm) Sí
Nombre “nombre” Descripción de la agrupación Lista de Tipo Multi idioma Sí
Incremental “incremental” Indica que en una modificación de agrupación se añaden los productos que se informan en la lista. Si no se informa se considera 0 Booleano (1,0) No
Productos “productos” Lista de productos que componen la agrupación Lista de Tipo Producto No
Atributos “atributos” Lista de atributos de la agrupación Lista de Tipo Atributo No
Acción “accion” Alta, baja o modificación Literal (1 carácter) “A”, “B” o ”M” Sí

A continuación, describimos el Tipo Zona:

Campo “Nombre campo” Descripción/Ejemplo Formato Oblig.
Código “codigo” Código de la tienda preparadora Numérico entero Sí

A continuación, describimos el Tipo Producto:

Campo “Nombre campo” Descripción/Ejemplo Formato Oblig.
Código “codigo” Código interno del producto en los sistemas del cliente. Literal (10 caract max) Sí

A continuación, describimos el Tipo Atributo:

Campo “Nombre campo” Descripción/Ejemplo Formato Oblig.
Tipo “tipo” Código del tipo de atributo. Literal (50 caract max) Sí
Valores “valores” Lista de valores del atributo Lista de Tipo Multi idioma Atributo Sí

A continuación, describimos el Tipo Multidioma Atributo:

Campo “Nombre campo” Descripción/Ejemplo Formato Oblig. A
Idioma “idioma” Identificador del idioma (ISO 639-1). Código ‘00’ aplica a todos los idiomas. Literal (2 caracteres máx.) Sí
Nombre “valor” Valor del atributo en el idioma correspondiente Literal (500 caracteres máx.) Sí

A continuación, describimos el Tipo Multidioma:

Campo “Nombre campo” Descripción/Ejemplo Formato Oblig. A
Idioma “idioma” Identificador del idioma (ISO 639-1) Literal (2 caracteres máx.) Sí
Nombre “valor” Nombre de la agrupación Literal (50 caracteres máx.) Sí
Titulo “titulo” Título de la agrupación. Situado en la barra de título del navegador. Si se inserta como nuevo y no viene informado, se asignará automáticamente el campo “Nombre”. Literal (256 caracteres máx.) No
Descripción “descripcion” Descripción de la agrupación. Utilizado para posicionamiento SEO. Literal (256 caracteres máx.) No
H2 “h2” Estático que se utiliza para describir la agrupación en el Grid de la tienda. Visible para cliente. Literal (1000 caracteres máx.) No
Seo “seo” Texto que se muestra en la parte descriptiva de la URL cuando navegamos a una agrupación. Si no se informa este campo, se realiza una normalización del campo “Nombre” Literal multi idioma (1024 caracteres máx.) No

ANEXOS. Ejemplos json

Ejemplo alta agrupación

{
  "agrupaciones": [
    {
      "codigo": "PASTA",
      "canal": 1,
      "padre": "ITALIA",
      "desde": "21/08/2022",
      "hasta": "31/08/2022",
      "nombre": [
        {
          "idioma": "es",
          "valor": "INGREDIENTES PASTA FRESCA",
          "titulo": "Ingredientes pasta fresca",
          "descripcion": "pasta fresca italiana",
          "h2": "Ingredientes pasta fresca",
          "seo": "INGREDIENTES_PASTA_FRESCA"
        },
        {
          "idioma": "en",
          "valor": "FRESH PASTA INGREDIENTS ",
          "titulo": "FRESH PASTA INGREDIENTS",
          "descripcion": "FRESH PASTA INGREDIENTS",
          "h2": "FRESH PASTA INGREDIENTS",
          "seo": "FRESH_PASTA_INGREDIENTS"
        }
      ],
      "zonas": [
        {
          "codigo": 1
        }
      ],
      "Incremental": 0,
      "productos": [
        {
          "codigo": 10001
        },
        {
          "codigo": 10002
        },
        {
          "codigo": 10003
        }
      ],
      "accion": "A"
    }
  ]
}

Ejemplo modificación agrupación

{
  "agrupaciones": [
    {
      "codigo": "PASTA",
      "canal": 1,
      "padre": "ITALIA",
      "desde": "21/08/2022",
      "hasta": "31/08/2022",
      "nombre": [
        {
          "idioma": "es",
          "valor": "INGREDIENTES PASTA FRESCA",
          "titulo": "Ingredientes pasta fresca",
          "seo": "INGREDIENTES_PASTA_FRESCA"
        },
        {
          "idioma": "en",
          "valor": "FRESH PASTA INGREDIENTS ",
          "titulo": "FRESH PASTA INGREDIENTS",
          "seo": "FRESH_PASTA_INGREDIENTS"
        }
      ],
      "zonas": [
        {
          "codigo": 1
        }
      ],
      "Incremental": 0,
      "productos": [
        {
          "codigo": 10004
        },
        {
          "codigo": 10005
        }
      ],
      "atributos": [
        {
          "tipo": "ingredientsListNames",
          "valores": [
            [
              {
                "idioma": "es",
                "valor": "Piña"
              },
              {
                "idioma": "en",
                "valor": "Pinapple"
              }
            ],
            [
              {
                "idioma": "es",
                "valor": "Agua"
              },
              {
                "idioma": "en",
                "valor": "Water"
              }
            ]
          ]
        }
      ],
      "accion": "M"
    }
  ]
}

Ejemplo baja agrupación

Ejemplo JSON

{
  "agrupaciones": [
    {
      "codigo": "ITALIA",
      "canal": 1,
      "zonas": [
        {
          "codigo": 1
        }
      ],
      "accion": "B"
    }
  ]
}

Gestión de versiones

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