1. Al sincronizar un comercio electrónico, ¿los datos existentes se sobrescriben o se duplican? ¿Tengo que eliminarlos?
Los datos existentes no se eliminan y no es necesario borrarlos.
Para sincronizar, el plugin busca una relación mediante el ID entre los datos existentes en PrestaShop y los datos que vienen de Sales Layer, normalmente usando una tabla intermedia o atributos generados en el comercio electrónico.
Si esa relación existe, el plugin actualiza la información del producto. Si no existe, el plugin busca productos existentes con la misma referencia o nombre que no estén asignados a otros IDs de Sales Layer. Si encuentra uno, establece la relación y actualiza los datos. Si no lo encuentra, crea el registro.
2. Si elimino un producto directamente en Sales Layer, ¿también se elimina en el comercio electrónico?
Las categorías y los productos cambian su estado a desactivado, y las variantes se eliminan en el comercio electrónico. Sin embargo, si el canal en Sales Layer se actualiza o modifica antes de sincronizarse después de eliminar productos en Sales Layer, los productos no se eliminarán y quedarán en un estado inconsistente. Existen en el comercio electrónico, pero no en Sales Layer. En ese caso, la única solución es eliminarlos directamente desde el comercio electrónico.
3. ¿Cuánto tarda en sincronizarse un comercio electrónico?
Depende de los recursos, del número de atributos y de otros factores similares. Puede tardar entre 0,5 y 1,5 segundos por categoría y variante, y entre 1 y 3 segundos por producto, al menos durante la creación. Las actualizaciones son más rápidas. Si no hay imágenes nuevas que procesar, será más rápido.
4. La consola muestra un error Ajax 404
Esto puede ocurrir por diferentes motivos. Normalmente, se debe a cambios en los dominios de PrestaShop. Si la instalación de PrestaShop tenía un dominio que ya no existe, es probable que permanezcan reglas de redirección obsoletas en el archivo .htaccess.
Para resolverlo, verifica que la configuración de la sección #Dispatcher del archivo sea correcta.
Este error no cancela la sincronización. El plugin utiliza Ajax para que el cliente pueda gestionar fácilmente el estado de la sincronización. Cuenta con una capa de seguridad para que, si se produce un error, el formulario se envíe igualmente y la acción pueda completarse.

5. Si actualizo un campo de producto que no está mapeado ni vinculado en el conector de PrestaShop, ¿el sistema enviará el producto al comercio electrónico?
Sí. Cada vez que modificas un campo de un producto, sea o no un campo del conector de PrestaShop, el ítem se actualiza y se envía al comercio electrónico.
6. ¿Qué significan los colores de los módulos PHP en la pestaña Diagnóstico?
En esta pestaña puedes ver módulos en diferentes colores: verde, gris y azul.
- El verde significa que Sales Layer y la instalación de PrestaShop usan y comparten el mismo módulo.
- El gris significa que Sales Layer usa ese módulo, pero la instalación de PrestaShop no lo utiliza.
- El azul significa que Sales Layer no usa ese módulo, mientras que la instalación de PrestaShop sí lo utiliza.

7. ¿Cómo cambiamos la versión del plugin?
Si quieres cambiar la versión del plugin, recomendamos actualizar el módulo en PrestaShop en lugar de desinstalarlo. Si desinstalas el plugin, perderás todos los vínculos de ítems entre Sales Layer y PrestaShop. Al instalar el nuevo plugin, algunas modificaciones no se reflejarán en PrestaShop, como cambiar el estado de producto a borrador o invisible.
8. Cómo exportar imágenes de producto desde PrestaShop
Puede que necesites subir datos desde PrestaShop a Sales Layer. Esto puede generar un problema habitual por la forma en la que PrestaShop gestiona los nombres de las imágenes. Una vez que se sube una imagen a PrestaShop, se almacena con un sistema de identificación por carpetas y con un nombre único por imagen.
Por ejemplo:
- Para productos: http://domain/img/p/1/2/3/4/1234.jpg y http://domain/img/p/1/2/3/5/1235.jpg.
- Para categorías: http://domain/img/c/1/2/3/4/1234.jpg y http://domain/img/c/1/2/3/5/1235.jpg.
Cuando accedes a esas mismas imágenes desde la tienda, PrestaShop sustituye el identificador de la imagen por el del producto o la categoría:
- http://domain/1234-prod_default/product.jpg
- http://domain/1235-prod_default/product.jpg
Por eso la URL se exporta de esta forma cuando viene directamente de una exportación de PrestaShop: carpetas diferentes, mismo nombre de imagen. Cuando Sales Layer la importa, como el nombre no puede duplicarse, solo se subirá una imagen con el mismo nombre.
Para evitar esta situación, modifica la configuración desde PrestaShop. Ve a Configurar > Parámetros avanzados > Base de datos > Añadir nueva consulta SQL:

Después, añade la consulta para obtener el contenido que quieres exportar desde PrestaShop en un archivo CSV. Con el contenido de este CSV, podrás importarlo en Sales Layer. El ejemplo utiliza un nombre de dominio ficticio.
SELECT aux.reference,
Group_concat(aux.img SEPARATOR ' ,') AS imagenes
FROM (SELECT p.id_product,
p.reference,
CASE
WHEN Length(im.`id_image`) = 6 THEN
Concat('https://yourdomain.com ', '/img/p/', INSERT(INSERT(INSERT(INSERT(INSERT(im.`id_image`, 2, 0, '/'), 4, 0, '/'), 6, 0, '/'), 8, 0, '/'), 10, 0, '/'), '/', im.`id_image`, '.jpg')
WHEN Length(im.`id_image`) = 5 THEN
Concat('https://yourdomain.com ', '/img/p/', INSERT(INSERT(INSERT(INSERT(im.`id_image`, 2, 0, '/'), 4, 0, '/'), 6, 0, '/'), 8, 0, '/'), '/', im.`id_image`, '.jpg')
WHEN Length(im.`id_image`) = 4 THEN
Concat('https://yourdomain.com ', '/img/p/', INSERT(INSERT(INSERT(im.`id_image`, 2, 0, '/'), 4, 0, '/'), 6, 0, '/'), '/', im.`id_image`, '.jpg')
WHEN Length(im.`id_image`) = 3 THEN
Concat('https://yourdomain.com ', '/img/p/', INSERT(INSERT(im.`id_image`, 2, 0, '/'), 4, 0, '/'), '/', im.`id_image`, '.jpg')
WHEN Length(im.`id_image`) = 2 THEN
Concat('https://yourdomain.com ', '/img/p/', INSERT(im.`id_image`, 2, 0, '/'), '/', im.`id_image`, '.jpg')
WHEN Length(im.`id_image`) = 1 THEN
Concat('https://yourdomain.com ', '/img/p/', INSERT(im.`id_image`, 2, 0, '/'), im.`id_image`, '.jpg')
ELSE ''
end AS "img",
im.cover
FROM ps_product p
LEFT JOIN ps_image im
ON ( im.id_product = p.id_product )
ORDER BY cover DESC) AS aux
GROUP BY id_product;Hay dos aspectos que debes tener en cuenta sobre esta consulta:
- Adapta el nombre de dominio en todos los valores concat que incluyen la URL.
- Incluye el orden de las imágenes para que la imagen de portada siga el orden de las imágenes.
A partir de aquí, solo tendrás que adaptar la consulta para categorías y para cualquier otro campo de imagen que quieras importar en Sales Layer.
9. ¿Qué hago cuando hay un error de sincronización con productos relacionados y productos pack?
La primera vez que se sincroniza un producto pack o un producto relacionado, puede que no se encuentre el vínculo de referencia al producto pack. Esto ocurre porque el producto relacionado todavía no está en la base de datos.
syncOneProduct() > product reference : "myProduct" product type pack. ## Error. Product reference to link does not yet exist ->Array
Para resolver este problema, vuelve a sincronizar y descarga los datos de nuevo usando el plugin conector.
10. Errores de sincronización con ID de catálogo que no existen en la tabla
Cuando veas este mensaje:
syncOneProduct() > ## Error. product reference : "myProduct" The catalog with ID :X for the company with ID: XXXX does not exist in the table. It is possible that it has been deactivated or deleted.Change the state of the category and of the product to invisible,and then back to visible again so that the issue can be resolved.
Ignóralo. No es un error.
11. ¿Qué ocurre cuando hay un error de paginación porque hay demasiados ítems en una página?
Cuando ocurre esto:
storeSyncData() > ##Error.:xxx Msg: Error connection: Empty reply from server
El plugin tiene una paginación alta configurada en el conector para los ítems que está sincronizando.
Para resolverlo, espera a que terminen los procesos de sincronización y vuelve a sincronizar. Esta vez, selecciona un valor de paginación más bajo en el conector.
12. Depurar un ítem a bajo nivel
A partir de la versión 2.1.1 del plugin, es posible depurar ítems concretos con todo detalle. Esto funciona incluso con los registros de depuración desactivados en la sección Diagnóstico.
La funcionalidad se aplica a categorías, productos y variantes.
Para activarla, sigue estos pasos:
- Crea un registro en la tabla slyr_additional_config, que se crea con el prefijo de tabla elegido por el cliente en su instalación de PrestaShop.
- Crea una fila para cada tipo de ítem que quieras depurar. Por ejemplo, crea un registro con configname = {CATEGORY_LOG, PRODUCT_LOG, VARIANT_LOG}, y con save_value = ID:38034|ref:WOOD-TABLE-1000.
En estos registros, puedes añadir:
- IDs internos del ítem de Sales Layer usando ID.
- Referencias de ítems del cliente usando ref.
- El operador | permite añadir varios ítems. La longitud de este campo es de 500 caracteres por defecto.
Como resultado, los detalles de estos ítems se muestran en los registros de depuración.
¿Le ha sido útil este artículo?
¡Qué bien!
Gracias por sus comentarios
¡Sentimos mucho no haber sido de ayuda!
Gracias por sus comentarios
Sus comentarios se han enviado
Agradecemos su esfuerzo e intentaremos corregir el artículo