FAQ
Usando formateadores en diseños #
Clerk.js te permite escribir funciones de javascript personalizadas, que añaden nueva funcionalidad a los Diseños.
Los formateadores se pueden agregar de dos maneras:
- A través de my.clerk.io > Configuraciones > Formateadores, donde cada Formateador puede ser creado como entradas separadas.
- Como una configuración para Clerk.js, en el script de seguimiento que se inserta en todas las páginas, donde se pueden agregar múltiples formateadores a la vez.
Para Prestashop, este archivo contiene el script de seguimiento:
modules->clerk->views->templates->hook->clerk_js.tpl
Un ejemplo se puede ver a continuación. Por favor, ten en cuenta que esta es Clerk V2 (última versión):
<!-- Inicio de la herramienta de personalización de comercio electrónico de Clerk.io - www.clerk.io -->
<script type="text/javascript">
(function(w,d){
var e=d.createElement('script');e.type='text/javascript';e.async=true;
e.src='https://cdn.clerk.io/clerk.js';
var s=d.getElementsByTagName('script')[0];s.parentNode.insertBefore(e,s);
w.__clerk_q=w.__clerk_q||[];w.Clerk=w.Clerk||function(){ w.__clerk_q.push(arguments) };
})(window,document);
Clerk('config', {
key: '{$clerk_public_key}',
collect_email: {$clerk_datasync_collect_emails},
language: '{$language}',
formatters: {
log_price: function(price) {
console.log(price);
}
},
});
</script>
<!-- Fin de la herramienta de personalización de comercio electrónico de Clerk.io - www.clerk.io -->
Puedes escribir cualquier número de Formateadores, separados por comas:
formatters: {
log_price: function(price) {
console.log(price);
},
calculate_discount: function(price,special_price) {
return price-special_price;
},
substring: function(text) {
var short_string = text.substring(0,20);
return short_string;
}
}
Después de crear tus Formateadores, puedes usarlos en tus Diseños utilizando esta sintaxis:
{% raw %}{{ price | log_price }} {{ price | calculate_discount | special_price }}{% endraw %}
Esto te permite crear cualquier funcionalidad en tus Diseños que necesites.
Sincronización con HTTP Auth #
A menudo se utiliza la autenticación HTTP en sitios de staging para evitar visitantes no deseados.
Esto bloqueará el importador de Clerk y mostrará un error de 401 No autorizado en el registro de sincronización.
Puedes verificar fácilmente el importador insertando la información de autenticación en la URL de importación como a continuación, en Sincronización de Datos en my.clerk.io:
https://USER:PASS@www.ewoksRus.com

Errores comunes de sincronización #
Nota: Te aconsejamos que siempre actualices el plugin a la última versión para obtener todas las características actualizadas de Clerk.
Al importar datos con el plugin de PrestaShop de Clerk.io, el servidor de las tiendas web es responsable de enviar los datos de producto, categoría y ventas a Clerk.io.
Sin embargo, en algunos casos, la configuración del servidor puede detener el acceso del importador, causando un error en Sincronización de Datos.
A continuación se muestra una lista de los errores más comunes y cómo solucionarlos.
Error 401 del servidor: No autorizado #
Este error ocurre si tu tienda web/entorno de desarrollo requiere autenticación HTTP para acceder.
Esto se soluciona simplemente insertando el Nombre de usuario y Contraseña como parte de la URL de Importación:
http://username:password@prestashop.clerk.io/clerk/api/store/1
Error 403 del servidor: Prohibido #
Este error ocurre si tu servidor bloquea al importador de acceder. En la mayoría de los casos, simplemente necesitas agregar a la lista blanca la dirección IP del importador para darle acceso.
La última dirección IP se puede encontrar aquí.
También verifica que tu clave pública, clave privada y URL de importación sean correctas para la tienda en la que estás operando dentro de my.clerk.io
En algunos casos, este error también se mostrará si estás utilizando dominios de diferentes idiomas, como http://webshop.com/it. En este caso, asegúrate de incluir el dominio completo que deseas sincronizar:

¿Qué pasa si ya he agregado a la lista blanca pero el mismo error sigue ocurriendo?
Hay algunas instancias en las que has agregado a la lista blanca la dirección IP del importador, y el error persiste, entonces te recomendamos que mires en estas áreas:
La parte de autenticación del cuerpo puede ser eliminada de la solicitud del servidor de la tienda.
Límite de tasa para el servidor en relación con cloudflares.
Verifica si la URL del importador tiene https incluido.
Error 404 del servidor: No encontrado #
Este error ocurre si el importador no pudo acceder al enlace que nos envía datos desde la tienda web. En la mayoría de los casos, ocurre porque la extensión está:
No instalada en absoluto
Un caché causa que el enlace no se inicialice
Primero asegúrate de que has instalado el módulo correctamente.
En segundo lugar, asegúrate de vaciar el caché de tu tienda web antes de intentar una nueva importación.
Error 429 del servidor: Demasiadas solicitudes #
Este error ocurre si tu servidor niega el acceso al importador debido a demasiadas solicitudes entrantes.
Puedes solucionar esto aumentando el límite de solicitudes para tu servidor o configurando el Tamaño de Página a un valor más alto en el importador de Clerk.io, lo que hace que el importador realice menos solicitudes, pero más grandes:

Si estás utilizando el proveedor de alojamiento Byte.nl, el importador generalmente devuelve este error debido a su limitador de tasa. En este caso, simplemente contacta a Byte.nl y pídeles que agreguen a la lista blanca el User-Agent del importador " clerk".
Error 500 del servidor interno #
Este error significa que tu servidor encontró un error interno y no pudo especificar qué error ocurrió.
En estos casos, puedes revisar tu Registro del Servidor para identificar qué proceso falló y por qué. En la mayoría de los casos, es simplemente debido a un producto con un atributo inválido, o una función que se llama incorrectamente en la tienda web.
Si tienes instalada la Aplicación de Facebook Pixel, se sabe que causa un error 500. Intenta desactivar la aplicación y ejecutar una nueva sincronización. Si luego funciona, mantén la aplicación desactivada y copia manualmente el Facebook Pixel a tu archivo principal de tema en su lugar.
También puedes intentar activar el Modo de Depuración en Prestashop, que imprimirá el mensaje de error exacto cuando obtengas un error 500.
SIEMPRE activa el Modo de Depuración desde FTP, para evitar ser bloqueado potencialmente del Panel de Administración de Prestashop. Consulta cómo hacerlo con FTP.
Error 503 del servidor: Servicio no disponible #
Este error es generalmente temporal, y es causado por el servidor que está demasiado ocupado para manejar la solicitud. Intenta nuevamente un poco más tarde.
Si el problema continúa ocurriendo, podría significar que el servidor está sobrecargado con procesos y está cerca de su capacidad máxima.
Verifica la carga del servidor, para identificar si este es el caso.
520: El servidor web devolvió un error desconocido #
Generalmente, este error es devuelto por CloudFlare, y a menudo ocurre debido a un cuello de botella en Prestashop que causa problemas con tamaños de página más altos.
Para solucionarlo, simplemente establece tu Tamaño de Página a 50 y ejecuta una nueva sincronización:

Respuesta inválida recibida de Prestashop #
Este error es a menudo causado al usar el Módulo de Facebook Pixel, que inserta un pixel en la parte superior de todos los archivos en Prestashop.
Esto a menudo causará que la Sincronización de Datos falle, porque el pixel interfiere con los datos que Clerk.io se supone que debe recibir de Prestashop.
Solucionar este problema es bastante fácil: solo necesitas hacer un pequeño ajuste en pspixel.php, que es el archivo que genera el pixel.
A menudo se encuentra en uno de las siguientes 4 rutas:
- /modules/pspixel/pspixel.php
- /modules/alcapixel/alcapixel.php
- /modules/facebookpixel/facebookpixel.php
- /modules/canonicalseo/canonicalseo.php
En el archivo, alrededor de la línea 196, necesitas insertar la siguiente línea de código dentro de la función pública hookHeader($params):
if (strpos($_SERVER['REQUEST_URI'], '/module/clerk/') !== false) {
return;
}
Para soportar la nueva sincronización de datos:
if (Tools::getValue('module') == 'clerk') {
return;
}
Al final, el archivo debería verse así:

Esto eliminará el pixel específicamente de los enlaces que Clerk.io utiliza para importar datos de Prestashop.
Desactivando CCC #
CCC ( Concatenar, Combinar y Cache) es una funcionalidad integrada de PrestaShop que te permite reducir el número de solicitudes de tu plantilla y luego almacenarlas en caché.
A veces, esta funcionalidad puede interferir con nuestro proceso de Sincronización de Datos y bloquearlo.
Si estás experimentando errores de Sincronización de Datos, por favor abre tu backend de PrestaShop y visita la sección llamada
Parámetros Avanzados –> Rendimiento
luego ve a la sección llamada
CCC (Combinar, Comprimir y Caché)

desactiva todas sus subfuncionalidades, luego guarda, vacía la caché de PrestaShop y ¡disfruta!
P.D.: puedes lograr el mismo nivel de compresión de datos - y así el rendimiento de carga de la página - utilizando un CDN o un módulo dedicado de PrestaShop que imponga la misma compresión y combinación de bibliotecas.
Actualizando a Clerk.js 2 #
Clerk.js 2 es una versión más rápida y flexible de nuestra biblioteca de JavaScript que hace que instalar Clerk.io en cualquier tienda web sea muy fácil.
Sin embargo, dado que las dos versiones funcionan de manera ligeramente diferente, necesitas seguir estos pasos para actualizar con éxito.
Las dos principales diferencias en Clerk.js 2 son que los Diseños en my.clerk.io utilizan el Liquid lenguaje de plantillas, pero también se pueden crear fácilmente utilizando el Editor de Diseños.
Paso 1: Convertir Diseños #
Dado que Clerk.js 2 tiene un enfoque diferente para los Diseños, necesitas crear nuevos.
Puedes crear tus Diseños de Clerk.js 2 de una de dos maneras:
1. Usa el intuitivo Editor de Diseños para crear nuevos Diseños, como se describe en los siguientes puntos.
2. Convierte tus antiguos Diseños. Sigue esta guía para ver cómo hacerlo.
1.1 Comienza yendo a my.clerk.io y luego Recomendaciones > Búsqueda > Diseños > Nuevo Diseño

1.2 En la siguiente pantalla, dale a tu Diseño un Nombre (recomendamos agregar " V2" para que sea obvio que estás usando Clerk.js2).
1.3. Elige el Tipo de Diseño.
1.4. Cuando hayas terminado, haz clic en Crear Diseño.

1.5. En el Editor de Diseños, haz clic en cualquiera de los elementos existentes como el nombre, imagen, botón, etc. para editarlo, o arrastra y suelta nuevos elementos al Diseño para agregar más información sobre los productos.
1.6. Haz clic en Guardar Diseño cuando hayas terminado y ve al Paso 2 en la guía.

1.7. Por último, ve a Recomendaciones / Búsqueda -> Contenido y cambia tu Clerk.io Contenido para usar tu nuevo Diseño.
1.8. Haz clic en Actualizar Contenido. Esto hará que temporalmente no aparezcan en tu tienda web hasta que termines con
Paso 2. Elige el nuevo Diseño para todo el Contenido que debe ser actualizado.

1.9. ¡Listo! Ahora estás listo para cambiar a Clerk.js 2.
Paso 2: Actualizando tu módulo #
ADVERTENCIA: Recuerda hacer copias de seguridad de cualquier archivo modificado, ya que serán sobrescritos.
Comienza descargando la última versión desde este enlace:
https://github.com/clerkio/clerk-prestashop/releases/latest

Luego inicia sesión en tu administrador de Prestashop y ve a Módulos y Servicios -> Módulos y Servicios

En esta página, haz lo siguiente:
2.1. Haz clic en Agregar Nuevo Módulo
2.2. Haz clic en Elegir un archivo y sube el archivo clerk.zip que acabas de descargar
2.3. Haz clic en Subir este módulo

PrestaShop ahora mostrará un mensaje de éxito, confirmando que tu módulo ha sido actualizado.
Ahora tienes la última versión de Clerk.io para PrestaShop instalada, y Clerk.js 2 está funcionando en tu tienda web.
La documentación completa para Clerk.js 2 se puede encontrar aquí:
https://docs.clerk.io/docs/clerkjs-quick-start
Manejo de require.js #
Esta guía solo se aplica cuando se utiliza hasta v.4.4.1 de la extensión Clerk de Prestashop.
En algunas configuraciones, Require.js detiene la carga de Clerk.js, lo que significa que no se mostrarán deslizadores ni resultados de búsqueda.
Cuando esto sucede, se mostrará el siguiente error en tu consola:
Uncaught ReferenceError: Clerk is not defined
Hay dos formas de manejar Require.js. Ambos enfoques requieren que realices cambios en el script de seguimiento en este archivo:
modules->clerk->views->hook->visitor_tracking.tpl
Incluir “clerk” en Require.js #
El mejor enfoque es intentar hacer que Require.js reconozca Clerk.io.
Puedes hacer esto insertando require([‘clerk’], function() {}); en la parte inferior del script de seguimiento:

Ignorar Require.js #
Si la solución anterior no funciona, es posible ignorar Require.js.
Puedes hacer esto insertando window.__clerk_ignore_requirejs = true;
en la parte superior del script de seguimiento:

Después de usar uno de estos enfoques, Require.js ahora será compatible con Clerk.io.
Esta página ha sido traducida por una IA útil, por lo que puede contener errores de idioma. Muchas gracias por su comprensión.