6 - Importación en Sales Layer :
6 - Importación en Sales Layer
Modificado el Vie, 15 May a 6:06 P. M.
Entrada de datos y estructura
A través de la API y del SDK, es posible importar datos directamente en Sales Layer utilizando SalesLayer_Conn(). Esto te permite automatizar importaciones desde sistemas como un ERP y enviar los datos directamente a la plataforma.
En este ejemplo, el SDK se utiliza para importar información en una cuenta de prueba, actualizando registros existentes y creando nuevos ítems al mismo tiempo.
Antes de trabajar con este ejemplo, es recomendable revisar la documentación de la API y configurar un conector de importación genérico en la Tienda de canales.
El primer paso es definir una clave privada y elegir los idiomas que se van a conectar.
La opción Sobrescribir siempre al importar se utiliza para la sincronización de CSV a través de Fuentes vinculadas, por lo que no es relevante para este ejemplo con SDK.
Después de la configuración inicial, configura las tablas que quieres importar. En cada tabla, añade los campos que quieres actualizar o crear.
En el ejemplo, se configuran categorías, productos y variantes con los campos necesarios para la importación de prueba.
Si solo quieres actualizar ítems existentes, elige Sí en la opción del conector para trabajar solo con ítems existentes. Si también quieres crear nuevos ítems, elige No.
Al elegir No, aparece una segunda opción para definir el estado de los nuevos ítems. En este escenario, los nuevos ítems se crean como borrador.
En la columna izquierda del conector debes definir los nombres exactos de los campos que después enviarás a través del SDK. Estos nombres deben coincidir exactamente con la estructura de importación, incluidos espacios, mayúsculas, minúsculas y signos de puntuación.
Una vez configuradas y guardadas las tablas, el conector está listo. Como este ejemplo utiliza la API, no se usa la pestaña Fuentes vinculadas.
Código
El siguiente script define las credenciales del conector, crea el objeto de conexión, establece la versión de la API en 1.18, prepara la estructura input_data y la envía con set_info().
La estructura de input_data sigue siempre este patrón:
$input_data = [ "table" => [ [ "reference" => "", "field1" => "", "field2" => "" ], ... ], ... ];
En los registros de categorías del ejemplo, se actualizan dos categorías y se crea una nueva categoría. No es necesario enviar todos los campos de categoría al crear un nuevo registro, solo los campos requeridos por el conector y el campo de referencia.
En el bloque de productos, se actualiza la descripción de un producto en inglés y se crea un segundo producto con valores multidioma para el nombre y la descripción.
Aviso:
El campo de referencia relacionado es obligatorio en todas las tablas. Es necesario para crear nuevos ítems y también es el campo que permite a Sales Layer reconocer los ítems existentes que deben actualizarse.
Para importar valores multidioma, los idiomas correspondientes deben estar habilitados en los parámetros del conector y los nombres de campo en "input_data" deben incluir el sufijo ISO correcto, como "Product Name:en" o "Product Description:es".
En el bloque de variantes, se crea una variante y se actualiza otra variante modificando solo el campo de precio.
Después de enviar la solicitud de importación, el script comprueba si hay errores y utiliza las funciones de seguimiento para monitorizar el progreso: get_input_tracking_status(), get_input_tracking_percent() y get_input_tracking_message().
Ejecución y resultados
Cuando se ejecuta el script, el conector devuelve la versión de la API, el ID del conector, la hora de la solicitud, el estado del seguimiento y la cantidad total de información importada.
Una vez finalizado el proceso, puedes verificar los datos importados en Sales Layer revisando las tablas de categorías, productos y variantes.
La API también se puede utilizar para eliminar información existente. Para hacerlo, incluye el campo Status en el conector y envía el valor X para la referencia que quieres eliminar.
Después de ejecutar esa importación, el ítem se elimina y deja de aparecer en Sales Layer.
Por último, en lugar de enviar una estructura input_data en línea, el SDK también puede importar un archivo CSV alojado en un servidor. En ese caso, la solicitud incluye la URL del archivo y cualquier dato de conexión necesario, como usuario, contraseña y puerto.