Preguntas frecuentes
¿Tienes problemas con tu integración de Magento 1? Este FAQ cubre los problemas más comunes y sus soluciones, desde la conversión de moneda hasta errores de sincronización.
Conversión de moneda #
Desde la versión v3.0.3 de la extensión de Magento 1, la Conversión de Moneda está incluida por defecto, si estás utilizando la función estándar de conversión de Magento 1.
Se añade en my.clerk.io -> Designs, con el formateador price_in_currency.
El helper puede añadirse a tu Design de la siguiente manera:
{%raw%}
<div class="clerk-product-price">
{{ product.price_final_excl_tax | price_in_currency }}
</div>{%endraw%}
El helper convertirá automáticamente el precio a la moneda de la sesión actual y añadirá el símbolo de moneda.
Uso de formateadores #
Clerk.js te permite escribir funciones personalizadas en JavaScript que añaden nueva funcionalidad a tus Designs.
Los formateadores pueden añadirse de dos maneras:
A través de my.clerk.io > Developers > Formatters, donde cada formateador puede crearse como entradas separadas.
Como una configuración para Clerk.js, en el tracking-script que se inserta en todas las páginas, donde pueden añadirse varios formateadores a la vez.
Para Magento 1, este archivo contiene el tracking-script:
app->design->frontend->base->default->template->clerk->tracking.phtml
Ejemplo de formateador #
Un ejemplo se puede ver a continuación. Ten en cuenta que es para Clerk V2 (última versión):
Clerk('config', {
key: 'O7UITkJIXqXibeQF9ONobiGGKYYKtbvh',
formatters: {
form_key: function () {
return '<?php echo $this->getFormKey(); ?>';
},
price_in_currency: function(price) {
price = Math.round(price * 100) / 100;
var price_converted = Math.round((price * <?php echo (float)$rates[$currentCurrencyCode]; ?>) * 100) / 100;
var retVal = <?php echo json_encode($currentCurrencySymbol); ?> + ' ' + price_converted.toFixed(2).toString();
return retVal;
},
log_price: function(price) {
console.log(price);
}
}
});
Múltiples formateadores #
Puedes escribir cualquier cantidad de Formatters, 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;
}
}
Uso en designs #
Después de crear tus Formatters, puedes usarlos en tus Designs usando esta sintaxis:
{%raw%}{{ x formatter | attribute }} {{ x | formatter | attribute1 | attribute2 }}{%endraw%}
Esto te permite crear cualquier funcionalidad en tus Designs que necesites.
Autenticación HTTP #
La autenticación HTTP suele usarse en sitios de staging para evitar visitantes no deseados.
Esto bloqueará el Clerk Importer y mostrará un error 401 Unauthorized en el registro de sincronización.
Puedes solucionarlo insertando la información de autenticación en la URL de importación.
En my.clerk.io > Data > Configuration, actualiza tu import URL así:
http://USER:PASS@magento.clerk.io/clerk/api/store/1
Errores comunes de sincronización #
Nota: Recomandamos siempre actualizar la extensión a la última versión para obtener todas las funciones actualizadas de Clerk.
Al importar datos con la extensión de Magento 1, el servidor de tu tienda es responsable de enviar los datos de productos, categorías y ventas a Clerk.
Sin embargo, en algunos casos, la configuración del servidor podría impedir que el Importer tenga acceso, causando un error en Data Sync.
A continuación, una lista de los errores más comunes y cómo solucionarlos.
401 Unauthorized #
Este error ocurre si tu tienda online o entorno de desarrollo requiere autenticación HTTP para acceder.
Esto se soluciona insertando el Username y Password como parte de la URL de importación:
http://username:password@magento.clerk.io/clerk/api/store/1
403 Forbidden #
Este error ocurre si tu servidor bloquea el acceso al importer.
En la mayoría de los casos, solo necesitas whitelist la dirección IP del importer para darle acceso.
La última dirección IP puede encontrarse aquí.
Revisa también que tu public key, private key y import URL sean las correctas para la tienda con la que estás trabajando en my.clerk.io.
¿Qué pasa si ya hice whitelist pero el error persiste?
Hay algunas situaciones en las que hiciste whitelist a la IP del importer y el error sigue ocurriendo.
En estos casos, te recomendamos revisar los siguientes puntos:
La parte de autenticación del body puede ser eliminada de la petición desde el servidor de la tienda.
Límite de tasa del servidor en relación a Cloudflare.
404 Not Found #
Este error ocurre si el importer no pudo acceder al enlace que envía los datos desde la tienda.
En la mayoría de los casos ocurre porque la extensión está:
No instalada en absoluto
Un caché hace que el enlace no se inicie
Primero, asegúrate de que has instalado correctamente la extensión.
En segundo lugar, asegúrate de limpiar el caché de tu tienda antes de intentar una nueva importación.
429 Too Many Requests #
Este error ocurre si tu servidor deniega el acceso al importer debido a demasiadas solicitudes entrantes.
Puedes solucionarlo aumentando el límite de solicitudes de tu servidor o configurando el Page Size a un valor más alto en my.clerk.io > Data > Configuration. Un page size más grande hace que el importer envíe menos solicitudes, pero más grandes.
Si usas el proveedor de hosting Byte.nl, el importer normalmente devuelve este error debido a su rate limiter. En este caso, contacta con Byte.nl y pídeles que whitelist el User-Agent del importer “clerk”.
500 Internal Server Error #
Este error significa que tu servidor encontró un error interno y no pudo especificar qué error ocurrió.
En estos casos, revisa tu Server Log para identificar qué proceso falló y por qué.
En la mayoría de los casos, se debe simplemente a un producto con un atributo inválido, o a una función que se llama incorrectamente en la tienda.
503 Service Unavailable #
Este error suele ser temporal y se debe a que el servidor está demasiado ocupado para manejar la petición.
Intenta de nuevo más tarde.
Si el problema persiste, podría significar que el servidor está sobrecargado de procesos y está cerca de su capacidad máxima.
Verifica la carga del servidor para identificar si es el caso.
Magento API error #
Este error también significa que tu servidor encontró un error interno y no pudo especificar cuál fue el error o el código de error.
En estos casos, revisa tu Server Log para identificar qué proceso falló y por qué.
En la mayoría de los casos, se debe a un producto con un atributo inválido, o que se superó el límite de memoria.
Powerstep no se muestra #
Si el paso Add-To-Basket no está activado, normalmente se debe a dos razones:
Tienes otro popup o función de agregar al carrito habilitado que bloquea la función de Clerk.
Se han insertado los IDs de Elementos incorrectos en la extensión.
Otro popup habilitado #
Primero, revisa tu instalación de Magento para ver si ya tienes un popup o dropdown que se muestra al agregar un producto al carrito.
Estos normalmente pueden impedir que se muestre el paso Add-To-Basket de Clerk.
Si es el caso, desactívalo y prueba de nuevo.
IDs de elementos incorrectos #
Si no tienes otro popup de agregar al carrito, y tu powerstep está activado pero no se muestra, probablemente es porque se han insertado template IDs incorrectos en los ajustes de la extensión de Clerk.
Esto hará que el Powerstep falle.
Para solucionarlo, inicia sesión en tu administrador de Magento y ve a System > Configuration > Clerk > Settings.
Luego elige el Configuration Scope correcto que coincida con tu tienda.
En Power step settings, revisa el campo Templates.
Este campo debe contener los IDs correctos separados por comas, si usas más de uno.
Para asegurarte de que tus IDs sean correctos, inicia sesión en my.clerk.io.
Elige la Store correcta y ve a Recommendations/Search > Elements.
Haz clic en Edit Element para un slider que quieras mostrar en el powerstep.
Revisa la última pestaña “Insert into website” y localiza el código de inserción.
Copia el valor de data-template de ese código en el campo Templates de la extensión de Magento.
Haz clic en Save Config en la extensión de Magento, y el Powerstep debería funcionar después.
Problemas de caché #
Si has activado el popup de powerstep y aún no se muestra al agregar un producto al carrito, el problema suele deberse a Cache.
Ve a System > Cache y limpia todos los Internal y Third Party Caches.
Si no lo soluciona, probablemente estés usando Full Page cache, que solo afecta las páginas que el visitante ya ha visto en su sesión. Desactivarlo tendrá un impacto mínimo en la velocidad de carga.
Una vez desactivado el Full Page Cache, el popup de Clerk debería aparecer.
Si no es así, por favor contacta a Clerk Support desde el icono de live-chat en la esquina inferior derecha y te ayudaremos a encontrar una solución para tu configuración específica.
Sliders de portada cacheados #
Esto suele ocurrir cuando los códigos de inserción se colocan a través de las CMS Pages de Magento, porque la portada está cacheada.
Inserta los códigos directamente en los archivos de la portada a través de FTP.
Esto previene que Magento haga caché de los resultados renderizados.
Imágenes no se muestran #
Cuando la image cache de Magento se borra, ya sea manualmente o automáticamente, todas las rutas de imágenes cambian.
Esto significa que las rutas de imágenes enviadas a Clerk dejan de funcionar.
Esto puede solucionarse fácilmente así:
Inicia sesión en my.clerk.io.
Haz clic en la Store donde faltan imágenes.
Ve a Data.
Haz clic en Start New Data Sync en la esquina superior derecha.
Esto iniciará una nueva sincronización completa de tus productos, lo que hará que Clerk obtenga las rutas de imágenes correctas.
En la extensión de Magento de Clerk v2.1.0, este problema se soluciona iniciando automáticamente una sincronización cuando se borra la caché de imágenes.
Si utilizas una versión antigua de la extensión, recomendamos actualizar a la última versión.
Actualizar a Clerk.js 2 #
Clerk.js 2 es una versión más rápida y flexible de nuestra librería de JavaScript.
Hace más fácil instalar Clerk en cualquier tienda online.
Sin embargo, puesto que las dos versiones funcionan de manera ligeramente diferente, debes seguir estos pasos para hacer la actualización correctamente.
Las dos principales diferencias en Clerk.js 2 son que los Designs en my.clerk.io usan el lenguaje de plantillas Liquid, pero también pueden crearse fácilmente usando el Design Editor.
Crear diseños #
Dado que Clerk.js 2 utiliza un enfoque diferente para los Designs, necesitas crear nuevos.
Puedes crear tus Designs de Clerk.js 2 de dos maneras:
Usa el intuitivo Design Editor para crear nuevos Designs, como se describe en los siguientes puntos.
Convierte tus antiguos Designs. Sigue esta guía para ver cómo hacerlo.
Opción Design Editor #
Ve a my.clerk.io > Recommendations/Search > Designs > New Design.
Elige el tipo de Design.
En el Design Editor, haz clic en cualquiera de los elementos existentes como el nombre, la imagen, el botón, etc. para editarlo, o selecciona nuevos elementos para añadirlos y añadir más información sobre productos al Design.
Haz clic en Publish cuando hayas terminado, y pasa a Step 2 en la guía.
Ve a Recommendations/Search > Elements y cambia tu Clerk Element para que use tu nuevo Design.
Haz clic en Update Element. Esto hará que temporalmente no se muestren en tu tienda online hasta que termines con el Step 2. Elige el nuevo Design para todos los Elements que quieras actualizar.
Ahora estás listo para cambiar a Clerk.js 2.
Actualizar la extensión #
Si ya tienes la última versión de la extensión Magento de Clerk, puedes omitir este paso.
Puedes descargar la última extensión desde este enlace:
https://github.com/clerkio/clerk-magento/releases/latest
Guardar cambios #
Antes de intentar actualizar, asegúrate de que has:
- Guardado los archivos modificados localmente en tu FTP, o
- Hecho una copia de seguridad de cualquier archivo modificado, para poder transferirlo a la nueva extensión.
Normalmente, los archivos que más cambian los desarrolladores son Product.php y Productbase.php, que gestionan los product attributes.
Estos archivos se encuentran aquí:
app->code->community->Clerk->Clerk->Model->Catalog->Product.php
app->code->community->Clerk->Clerk->Model->Catalog->Productbase.php
Desactivar la extensión #
Antes de intentar actualizar, es muy importante que hagas lo siguiente:
Desactiva la extensión antigua en la página System > Configuration > Clerk > Settings de Magento. Simplemente pon Enable en No y haz clic en Save Config.
Luego, desinstálala desde Magento Connect o eliminando los archivos desde FTP si la instalaste directamente ahí.
De lo contrario, tu página de Configuration podría dejar de funcionar y ninguna extensión funcionará después.
Instalar la extensión #
Por último, instala de nuevo la última extensión y sube cualquier archivo que hayas respaldado a tu servidor FTP.
Tu configuración debería mantenerse, incluso al instalar la nueva versión.
Revisa System > Configuration > Clerk para asegurarte de que todo sigue ahí.
¡Ahora tienes la última versión de Clerk para Magento instalada y Clerk.js 2 funcionando en tu tienda online!
La documentación completa para Clerk.js 2 se encuentra aquí:
https://docs.clerk.io/docs/clerkjs-quick-start
Gestión de require.js #
Esto solo aplica al usar la versión v.3.7.2 o inferior de la extensión Clerk de Magento 1.
En algunas configuraciones, Require.js impide que Clerk.js se cargue, lo que significa que no se mostrarán sliders ni resultados de búsqueda.
Cuando esto sucede, se mostrará el siguiente error en tu consola:
Uncaught ReferenceError: Clerk is not defined
Hay dos maneras de manejar Require.js. Ambos enfoques requieren cambios en el tracking-script en este archivo:
app->design->frontend->base->default->template->clerk->tracking.phtml
Incluir en Require.js #
El mejor enfoque es lograr que Require.js reconozca Clerk.
Inserta require(['clerk'], function() {}); al final del tracking script.
Ignorar Require.js #
Si la solución anterior no funciona, es posible ignorar Require.js.
Inserta window.__clerk_ignore_requirejs = true; al principio del tracking script.
Después de usar uno de estos enfoques, Require.js ahora será compatible con Clerk.
Esta página ha sido traducida por una IA útil, por lo que puede contener errores de idioma. Muchas gracias por su comprensión.