Conectores: importando contenido

 

Para automatizar la importación de datos desde fuentes externas como un ERP, Sales Layer dispone de un conector de importación. Su funcionamiento se basa en la carga de un CSV periódicamente para insertar o actualizar contenido.

Al activar el conector, lo primero que hay que hacer es asignarle una clave privada. Después, hay que decidir si nos interesa la opción de Sobrescribir siempre al importar. En el caso de responder afirmativamente, la información del PIM será sobrescrita con el contenido del archivo del conector. En caso contrario, solo se importarán los cambios realizados en el archivo CSV. En este último caso, si en un momento dado necesitáramos sobrescribir todo en un momento puntual, habría que refrescar el conector directamente.

forzar refresco
Opción en Parámetros del conector.

También en Datos de salida hay otra opción de configuración clave: si ponemos Solo actualizar ítems existentes, no se crearán nuevos registros. Con esta opción únicamente se actualizará cuando coincidan referencias del archivo CSV con las que tenemos en Sales Layer, y así se evita cargar en el PIM más productos o variantes.

solo actualizar ítems existentes

Siguiendo con el conector de entrada, en la siguiente pestaña, encontramos todas las tablas (Categorías, Productos, Variantes y Puntos de venta) y sus campos correspondientes que podemos actualizar vía este canal. El único campo obligatorio para vincular es el de la referencia del ítem, sea el de categoría, producto o variante. Como en otros conectores, puedes anular alguna de esas tablas y dejar seleccionadas las que te interesen.

También como en otros conectores, a la hora de importar/actualizar los ítems es posible aplicar fórmulas

En el caso de un conector de entrada podemos hacer cosas como, por ejemplo:

  • Cambiar los estados de productos si cumplen ciertos requisitos (como los valores que haya en otros campos).
  • Realizar cambios de categoría si se cumplen ciertas condiciones.
  • Añadir o quitar etiquetas.

Es bueno tener en cuenta que cuantas más fórmulas se apliquen, especialmente si son de una cierta complejidad, la sincronización va a tardar algo más (quizá sea un ligero retraso, pero multiplicado por miles de productos puede ser apreciable a pesar de la velocidad de procesado en Sales Layer). En el apartado de fórmulas te daremos más información de cómo funcionan.

El último paso sería enlazar el archivo de cada tabla que queremos sincronizar. Se puede añadir una URL directamente y si es de tipo ftp, nos pedirá el login y contraseña para más seguridad.

Al escribir FTP: el conector directamente nos pedirá usuario, clave y puerto
Al escribir FTP: el conector directamente nos pedirá usuario, clave y puerto

Es importante remarcar que el FTP ha de tener un certificado firmado por una autoridad certificadora, como estándar de seguridad en las aplicaciones, no aceptamos certificados autofirmados.

Atento: para acceder al servidor externo, es necesario que las IPs de Sales Layer no estén bloqueadas. En el caso de disponer de un servidor con firewall, habría que agregar a la lista blanca las IP siguientes: 52.16.19.36 / 34.252.100.48 para cloud.saleslayer.com / 52.16.206.155 para api.saleslayer.com / 52.16.132.188 para servidores de backprocess. API Puerto: 443 (https) o 80(http)

Es muy importante que los campos que escribamos en el conector en Nombre en Importación se llamen igual que como aparecen en el CSV. Una vez tengamos elegidos los que vamos a sincronizar, tenemos que elegir la frecuencia (cada hora, a diario, etc.). Ten en cuenta que a la hora elegida se pondrá el archivo en cola y la actualización no se hará inmediatamente, sino que se iniciará cuando llegue su turno y llevará más o menos tiempo, según la longitud y complejidad de las fórmulas aplicadas.

Apunta: si quieres importar un campo del CSV en dos columnas diferentes de Sales Layer, puedes hacerlo con la fórmula GET_COLUMN_VALUE.

Un aspecto también determinante y que es necesario comprender con los conectores de entrada es que si hay campos en Sales Layer sincronizados con un conector de entrada, lo que un usuario modifique desde la cuenta puede perderse si el conector de entrada actualiza ese contenido. Es decir, pongamos que tienes un conector que cada noche actualiza la descripción: los cambios que haga en la descripción en Sales Layer, se perderán la siguiente noche al actualizar desde el archivo CSV. Para evitar esta situación, podemos bloquear esos campos de manera que el usuario no pueda hacer cambios en esos campos del PIM. Esto lo podemos hacer al configurar una familia o al editar formulario.

17b: Así se modifica un campo (desde el formulario de producto) para que no pueda editarse desde la edición de producto. Opción útil para los que se modifican desde un conector de entrada (y así evitar que se hagan cambios inútiles porque se perderían con la acción del conector).
17b: Así se modifica un campo (desde el formulario de producto) para que no pueda editarse desde la edición de producto. Opción útil para los que se modifican desde un conector de entrada (y así evitar que se hagan cambios inútiles porque se perderían con la acción del conector).
Así se modifica un campo para que no pueda editarse desde la edición de producto.  

Un apunte que puede resultar útil: en los conectores de entrada es posible hacer que en algunos campos se les añada información sin borrar lo que haya previamente y sin duplicar contenido. Le ponemos un ejemplo: tiene la categoría "Camiseta" y quiere añadir la categoría "Promociones" sin borrar la anterior, y sin que al volver a cargar el CSV añada otra categoría de "Promociones". Para realizarlo, podría añadir directamente ++ en el CSV de importación o hacerlo añadiendo los valores mediante una fórmula que antes de Promociones lleve un ++ delante. Por ejemplo, aplicando en el campo de categoría una fórmula como esta:

IF({PRICE}<50, "++PROMOCION"))

Con esto conseguiremos que si el campo PRICE es inferior a 50, añada PROMOCIÓN.

Esto funciona en los campos de Categorías, de etiquetas, de imágenes, en el campo tipo lista y en el campo ítem relacionado. 

Ese truco de añadir ++ también se aplica para acciones en bloque y en la importación vía Excel que hemos mostrado antes. Por otro lado, se puede quitar un valor en esos mismos campos con -- sin afectar al resto del contenido.

Para finalizar, tenga en cuenta que tanto si se trata de una sincronización periódica como si se ha forzado manualmente, la sincronización se pondrá en cola y según la carga del servidor se hará en más o menos tiempo (en situación normal tardará pocos minutos en iniciarse, pero no es inmediato).

Atento: para importar el contenido multidioma hay que casar el campo correspondiente en el conector. En el archivo de importación habrá que indicar el idioma en el nombre de la columna usando dos puntos y el ISO del idioma, por lo que tendrá que haber una columna por idioma.

Apunta: los CSVs enlazados no deben contener caracteres especiales en el nombre, para así evitar cualquier inconveniente con la descarga (espacios, comas, entrecomillados, puntos, etc.).

Es muy importante ser consciente de que Sales Layer como sistema de gestión de información de producto no está pensado para gestionar stocks. No obstante, es posible almacenar el dato de stock como cualquier otro contenido. Para ello, es importante tener en cuenta las siguientes consideraciones:

  • Puede no funcionar con la inmediatez necesaria para gestionar stocks, especialmente según cómo se cargue el contenido en Sales Layer (vía CSV los tiempos serán más lentos, es posible hacer una implementación vía API para agilizar la carga).
  • Las modificaciones de los campos de un producto implican que todos los que están modificados se reenvían por aquellos conectores API en los que se gestiona información modificada. Así que, en el caso de estar actualizando el stock de una parte de importante de productos como puede ser habitual, se estarían alargando de forma considerable los procesos de actualización. 

Nota: si el CSV contiene la misma referencia de ítem en diferentes líneas, el conector solo importará la primera y descartará las siguientes.