Some of our questions and answers

This is a short list of some questions and answers. Type one or more keywords above to find what your are looking for.

Facturación

Soy un autónomo en Francia, por lo que al ser una empresa muy pequeña no pago el IVA (artículo 293 B de la ley fiscal francesa). Si compruebas el precio verás que no hay IVA ni impuestos incluidos en él. Por eso no tengo ningún número de identificación fiscal ni de IVA.

Page Cache Ultimate JPresta Speed Pack

Estos usuarios falsos son creados por Page Cache Ultimate para anonimizar la caché (nuevo método). No debe borrarlos (se crearán de nuevo).

No habrá muchos de estos usuarios falsos, probablemente menos de 5, depende del número de grupos y de las diferencias de visualización entre ellos.

No están activos, por lo que no perturbarán sus estadísticas.

Page Cache Ultimate JPresta Speed Pack

Si tienes un tema de Anvato, esto es lo que debes hacer para evitar que el carrito se abra cada vez que se actualice.

Copia el archivo /modules/an_theme/views/js/sidebarcart.js en tu tema para poder seguir actualizándolo sin perder las modificaciones, en /themes//modules/an_theme/views/js(crea carpetas si es necesario)

En este archivo, reemplaza la línea:

if (prestashop.page.page_name != 'cart' && prestashop.page.page_name != 'checkout') {

Por

if (prestashop.page.page_name != 'cart' && prestashop.page.page_name != 'checkout' && requestData.action!='refresh') {

A continuación, borra la caché de la página de Performances y la caché de tu navegador para que puedas probar.

Page Cache Ultimate JPresta Speed Pack

Si su tema utiliza la etiqueta "widgetblock" como lo hace el tema de Warehouse, entonces necesita borrar la caché en la página de Performances después de habilitar el Page Cache para que la plantilla se compile de nuevo.

Page Cache Ultimate

All our modules can run on LiteSpeed Web Server since it supports the Apache .htaccess file.

However, the HTML cache feature (Page Cache Ultimate) is not compatible with the LiteSpeed Cache Plugin since they are both working on the same layer of cache.

Which one should you choose?

LiteSpeed Cache is a generic cache which does not handle all different contexts of Prestashop. Which taxes are applied? Is there a flash sale comming up? Should I display a different content for this user because he belongs to a specific user group? Did this visitor accept cookies? etc.

Page Cache Ultimate has been created for Prestashop and it is only dedicated to this platform, it handles all different contexts and can also upgrade fast if a new Prestashop feature is out.

WebP JPresta Speed Pack

If you are using Nginx, then make sure your configuration is as follow:

Nginx configuration for Speed Pack module

"Proxy mode" must be ON, other options must be OFF.

Page Cache Ultimate JPresta Speed Pack

Si utiliza el módulo PageSpeed Apache desarrollado por Google (x-mod-pagespeed), debe desactivar la siguiente opción para que no anule las directivas de caché del navegador añadidas por Page Cache:

ModPagespeedModifyCachingHeaders off
Facturación JPresta Cache Warmer

Puedes encontrar tu factura en tu cuenta de JPresta en el menú "Historial y detalles del pedido".

Si no la ves asegúrate de haber registrado una dirección en tu cuenta para que se pueda generar la factura.

Page Cache Ultimate JPresta Speed Pack

No, es muy recomendable mantener la caché de Smarty activada. Esto acelerará las páginas que no tienen caché y también las páginas en las que la caché aún no se ha generado.

Page Cache Ultimate JPresta Speed Pack

Para recuperar sus estilos sólo tiene que borrar el caché de "Page Cache Ultimate".

Para evitar este problema puede ir en "Modo avanzado", en la configuración de "Page Cache Ultimate", luego en "Clave de caché" habilitar "Insertar versión CSS y JS en clave de caché".

Page Cache Ultimate JPresta Speed Pack

To avoid the cookie notice to appear 1 second, then disappear, you must override the javascript file of the iqitcookielaw module.

To do it, create a file with the following content:

$(document).ready(function () {
 if (getCookie('cookielaw_module') != 1) {
  $("#iqitcookielaw").addClass('iqitcookielaw-showed');
 }
 $("#iqitcookielaw-accept").click(function (event) {
  event.preventDefault();
  $("#iqitcookielaw").removeClass('iqitcookielaw-showed');
  setcook();
 });
});

function setcook() {
 var name = 'cookielaw_module';
 var value = '1';
 var today = new Date();
 var expire = new Date();
 expire.setTime(today.getTime() + 3600000 * 24 * 14);
 document.cookie = name + "=" + escape(value) + ";path=/;" + ((expire == null) ? "" : ("; expires=" + expire.toGMTString()))
}

function getCookie(cname) {
 var name = cname + "=";
 var ca = document.cookie.split(';');
 for (var i = 0; i != ca.length; i++) {
  var c = ca[i];
  while (c.charAt(0) == ' ') c = c.substring(1);
  if (c.indexOf(name) != -1) return c.substring(name.length, c.length);
 }
 return "";
}

And place it in the theme (or child theme if you have one): /themes/warehouse/modules/iqitcookielaw/views/js/front.js

Then clear the cache in the Performances page.

Page Cache Ultimate JPresta Speed Pack

When the cache is created, the page is anonymized, that means it is displayed without any information about the visitor displaying the page.

Modules that display content relative to the current visitor can be marked as dynamic, that means the content will be refreshed (replaced) by a background request in the browser that will carry the context of the current visitor.

If you check the option "Display nothing in cache" then the module will not be called to display its content in this hook during the creation of the cache. However, the content will be displayed as other dynamic modules (with background request).

Page Cache Ultimate JPresta Speed Pack

If the products list is reloaded each time you display a page with a products list then you can fix this by modifying the file /warehouse/modules/ps_shoppingcart/ps_shoppingcart.js as follow:

How to fix warehouse theme

Sustituir esta línea:

prestashop.emit('updateFacets', window.location.href);

Por:

if (event.reason && event.reason.linkAction != 'refresh') {
    prestashop.emit('updateFacets', window.location.href);
}
Page Cache Ultimate JPresta Speed Pack

Actualice su módulo "Cookies - Ley de cookies GDPR (bloquear antes del consentimiento)" a la versión 1.5.6 como mínimo.

Actualice "Page Cache Ultimate" a la versión mínima 7.9.39 para una compatibilidad total con el módulo cookiesplus.

Para Prestashop 1.7

  1. Deshabilite ambos módulos (esto también funciona si aún no están instalados)
  2. En el archivo /modules/cookiesplus/override_17/classes/Hook.php, cambie el nombre de la función coreCallHook a coreCallHook_off y la función coreRenderWidget a coreRenderWidget_off (de hecho, Page Cache Ultimate ejecutará el procesamiento apropiado si el módulo cookiesplus está activado).
  3. Puedes reactivar (o instalar) los 2 módulos.
WebP

Si, después de instalar el módulo, algunas imágenes de su tienda ya no se muestran, como el logotipo, las imágenes de las páginas CMS, las imágenes del back office, etc., esto se debe al archivo .htaccess del directorio /img. Este archivo bloquea cualquier script PHP, incluso si es una redirección (el script no está realmente en este directorio).

Para corregir este problema debe cambiar el nombre del archivo /img/.htaccess por /img/.htaccess.off

Las modificaciones realizadas en un módulo, en el tema, en CSS o en Javascript no pueden detectarse automáticamente, por lo que es necesario borrar la caché para ver los cambios.

Hay 3 maneras de borrar la caché

  1. En la configuración del módulo "Page Cache Ultimate", vaya al menú "Estadísticas". Puede filtrar las páginas afectadas por sus modificaciones. A continuación, haga clic en el botón "Borrar caché" en la parte inferior de la tabla.
  2. Haga clic en el botón "Borrar caché" en la configuración del módulo "Page Cache Ultimate" arriba y a la derecha de la pantalla, esto borrará la caché de todas las páginas.
  3. Utilice la URL que encontrará en el menú "API" en la configuración del módulo "Page Cache Ultimate"
Page Cache Ultimate JPresta Speed Pack

En la configuración del carrito de la compra, en la sección "Acción de añadir al carrito", desactive la opción "Abrir el carrito".

Creative Element - shopping cart options

JPresta Origin

Si está utilizando el módulo "SuperTinyMCE PRO" desarrollado por Liewebs entonces debe añadir una excepción en la configuración de este módulo para el controlador "JprestaThemeConfiguratorLive". También asegúrese de tener al menos la versión 1.2.2 del módulo "JPresta - Theme Configurator".

WebP JPresta Speed Pack

Sí, todas las imágenes de su tienda se convertirán automáticamente al formato WEBP. Incluso las imágenes de CMS u otros módulos como blog.

Page Cache Ultimate JPresta Speed Pack

Esto es normal, cuando la caché no está disponible la visualización es tan lenta como sin la caché.

Sólo debe vaciar la caché cuando sea necesario (modificación de CSS o Javascript, para las plantillas elija la opción "Recompilar archivos de plantilla si se han actualizado" en la página "Rendimiento").

WebP JPresta Speed Pack

¡SÍ usted todavía necesita un módulo WEBP para Prestashop! Debido a que la función tiene un error en PS 8.0. Se debe fijar en PS 8.1 pero voy a comprobar esto tan pronto como se libera porque no sé si las imágenes JPG se mostrará a los navegadores que no pueden leer el formato WEBP como Safari (iPhone).

WebP JPresta Speed Pack

Ha sido muy complicado encontrar una configuración que funcione bien. No soy experto en la configuración de nginx así que supongo que hay otra manera de hacerlo. Si quieres mejorar esta configuración ponte en contacto conmigo, ¡estaré encantado de actualizar este post para ayudar a otras personas!

Aquí está mi solución (sea amable).

Antes de la sección "server", coloca este código:

map $http_accept $webp_enable {
	default 0;
	"~*webp" 1;
}

Nos dirá si el navegador del visitante puede leer imágenes WEBP.

Probablemente tengas varias líneas de "rewrite" para todas las imágenes, coloca el siguiente código justo antes:

# Jpresta Speedpack
if ($webp_enable = 1) {
	# Rewrite images URL using a specific extension ".webp_compressor" so we can have specific rules to compress the image/svg
	# if the webp file is not already created.
	rewrite "^/c/([0-9]+)(\-[_a-zA-Z0-9-]*)/(.*)\.jpg$" /img/c/$1$2.webp_compressor last;
	rewrite "^/c/([_a-zA-Z-]+)/(.*)\.jpg$" /img/c/$1.webp_compressor last;
	rewrite "^/([0-9])(\-[_a-zA-Z0-9-]*)?/(\P{M}\p{M}*)*\.jpg$" /img/p/$1/$1$2.webp_compressor last;
	rewrite "^/([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?/(\P{M}\p{M}*)*\.jpg$" /img/p/$1/$2/$1$2$3.webp_compressor last;
	rewrite "^/([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?/(\P{M}\p{M}*)*\.jpg$" /img/p/$1/$2/$3/$1$2$3$4.webp_compressor last;
	rewrite "^/([0-9])([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?/(\P{M}\p{M}*)*\.jpg$" /img/p/$1/$2/$3/$4/$1$2$3$4$5.webp_compressor last;
	rewrite "^/([0-9])([0-9])([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?/(\P{M}\p{M}*)*\.jpg$" /img/p/$1/$2/$3/$4/$5/$1$2$3$4$5$6.webp_compressor last;
	rewrite "^/([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?/(\P{M}\p{M}*)*\.jpg$" /img/p/$1/$2/$3/$4/$5/$6/$1$2$3$4$5$6$7.webp_compressor last;
	rewrite "^/([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?/(\P{M}\p{M}*)*\.jpg$" /img/p/$1/$2/$3/$4/$5/$6/$7/$1$2$3$4$5$6$7$8.webp_compressor last;
	rewrite "^/([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?/(\P{M}\p{M}*)*\.jpg$" /img/p/$1/$2/$3/$4/$5/$6/$7/$8/$1$2$3$4$5$6$7$8$9.webp_compressor last;  
	# all other images
	rewrite "^(.+)\.jpg$" $1.webp_compressor last;   
}

location ~* ^(.+)\.webp_compressor$ {
	# Indicates to proxies that the file content/format depends (Vary) on the "Accept" header
	add_header Vary Accept;

	# Indicates to proxies that the file can be cached for the max duration
	add_header Pragma public;
	add_header Cache-Control "public, must-revalidate, proxy-revalidate";
	expires max;

	# Indicates to nginx not to log access
	access_log off;
	log_not_found off;

	# Try to serve the WEBP file directly or compress the image
	set $url_webp_compressor "/modules/jprestaspeedpack/controllers/front/webp.php?src=$1.jpg";
	try_files $1.webp $url_webp_compressor;
}

ADVERTENCIA: si está utilizando el módulo de compresión WEBP independiente, debe reemplazar 'jprestaspeedpack' por 'jprestawebp'.

¡Ponte en contacto conmigo si necesitas ayuda o si puedes mejorar el script!

Page Cache Ultimate JPresta Speed Pack

Si la lista de selección de divisas ya no funciona, compruebe estas 2 opciones:

La opción "Ignorar URLs que coincidan con esta regex" debe incluir ".*SubmitCurrency=1.*", por ejemplo ".*[\?&]q=.*|.*SubmitCurrency=1.*"

La opción "Parámetros de URL ignorados" no debe incluir "submitcurrency,id_currency"

También puede desactivar la caché del navegador, porque si el visitante cambia la divisa después de ver varias páginas, si vuelve a esas páginas, se mostrará la divisa original.

No olvide borrar el módulo y la caché del navegador después de estos cambios.

JPresta Cache Warmer
Unable to get cache-warmer informations from the shop (maybe the module is disabled or uninstalled): Read timed out

Si ves este error en el log del cache-wamer, significa que hay un timeout cuando el cache-warmer recupera las páginas para calentarse. Para evitar este tiempo de espera, en la configuración de Page Cache Ultimate, haga clic en "Modo avanzado", luego en el menú en "Opciones" y establezca un valor más bajo para "Tiempo máximo de ejecución en segundos".

WebP JPresta Speed Pack

sí, los navegadores que no puedan leer el formato WEBP obtendrán el formato original (JPG/PNG).

Page Cache Ultimate JPresta Speed Pack

Cuando modificas un producto, una categoría, una página de CMS, un precio, el stock, etc. la caché se actualiza automáticamente.

Cuando agrega, elimina o modifica un módulo, debe borrar el caché manualmente porque esto no se puede detectar automáticamente. Por ejemplo, cuando modificas el slider de la página de inicio.

Cuando modifica el CSS o una plantilla de su tema, debe borrar el caché manualmente porque esto no se puede detectar automáticamente.

Cuando sincronizas o modificas tu catálogo, tus precios y/o tus stocks usando una aplicación externa, probablemente necesitarás borrar el caché manualmente o con un script porque los ganchos de Prestashop no se ejecutan.

Para borrar la caché de páginas específicas, puedes usar las URL CRON/API que encontrarás en el menú "API" en la configuración de Page Cache Ultimate. También puede usar la tabla de estadísticas para filtrar las páginas que desea actualizar, luego haga clic en el botón "Borrar caché (solo archivos)".

También tenga en cuenta que la memoria caché del navegador no se puede borrar, por eso está limitada en el tiempo.

Page Cache Ultimate JPresta Speed Pack

Esto ocurre porque el enlace de inicio de sesión se carga dinámicamente y por lo tanto el parámetro "back" que hace referencia a la URL actual se establece con la URL de los módulos dinámicos.

Para evitar este problema, vaya a la configuración de Page Cache Ultimate, en el menú "Módulos dinámicos y widgets", en la parte inferior añada el siguiente código javascript en el campo "Javascript a ejecutar":

if (!prestashop_pc.customer.is_logged) {
$('header a').each(function() {
$(this).attr('href').replace('ajax%3Dtrue', '').replace('page_cache_dynamics_mods%3D=1', '')
});
}

Borra la caché y debería solucionarse el problema.

Page Cache Ultimate JPresta Speed Pack

estos directorios se crean cuando la caché no se puede borrar completamente en PHP porque es demasiado larga y fallará con un error de tiempo de espera. Así que en lugar de borrar el directorio de caché, simplemente se renombra con este sufijo.

Puedes borrar todos estos directorios con el sufijo please_delete_me pero te recomiendo hacerlo directamente en la consola del servidor porque será demasiado largo hacerlo por FTP.

Page Cache Ultimate JPresta Speed Pack

Estos hooks son para desarrolladores de módulos, contacta con el soporte si necesitas ayuda.

Aquí hay un ejemplo de cómo implementar las funciones de los hooks:

    /**
     * Called each time a page is displayed so this must remain very fast!
     * @param $params Empty array
     * @return mixed The datas you will need in hookActionJPrestaRestoreSpecificCacheKeyInfos()
     */
    public function hookActionJPrestaGetSpecificCacheKeyInfos($params) {
        // Let's say that the cookie 'test' modify the content of the page, we indicates to the cache manager
        // to generate a cache key that depends on the value of this cookie
        return $_COOKIE['test'];
    }

    /**
     * This function is called by Page Cache Ultimate when the cache-warmer service want to generate the cache of a
     * specific context. In this case we must restore the context so the content is the good one.
     * @param $params $params['specifics'] contains the datas returned by the hook 'ActionJPrestaGetSpecificCacheKeyInfos'
     */
    public function hookActionJPrestaRestoreSpecificCacheKeyInfos($params)
    {
        // Here we will just modify the $_COOKIE value, we don't need to send the cookie to the browser with function
        // setcookie, we just want the remaining PHP code to execute to get the correct value of the cookie.
        $_COOKIE['test'] = $params['specifics'];
    }

JPresta Cache Warmer

La duración de los calentamientos depende de 3 factores:

  • El número de páginas a generar: los primeros warmups suelen contener muchas páginas, lo cual es normal, y este número irá disminuyendo a medida que avancen los warmups
  • El número máximo de bots que haya definido: por defecto es de 30, pero puede reducirlo a 5 bots para aligerar la carga del servidor, aunque evidentemente esto alargará el tiempo de cada calentamiento
  • El TTFB de las páginas sin la caché: si el tiempo de respuesta del servidor es largo sin la caché (> 3s), es posible que deba analizar la lentitud de Prestashop
JPresta Cache Warmer

Es probable que su proveedor de alojamiento considere a los bots calentadores de caché como bots de SPAM. Para que funcione, debe indicar en la configuración de su proveedor de alojamiento que el user-agent "JPresta-Cache-Warmer" está permitido.

JPresta Cache Warmer

Comparado con el número de productos y categorías que tienes, no pensabas que tendrías tantas páginas que generar, ¡y es normal!

El calentador de caché generará las páginas de tu tienda Prestashop en diferentes contextos. Por ejemplo, tendrás un contexto para móviles, otro para ordenadores, uno para visitantes y otro para clientes conectados, etc.

Así que el número de páginas se multiplica por el número de contextos.

JPresta Cache Warmer

Si su suscripción sólo incluye un calentamiento, entonces sí, puede especificar la hora del calentamiento.

Si el paquete de suscripción incluye varios calentamientos, puede especificar la hora de inicio del primer calentamiento y los siguientes se ejecutarán a intervalos regulares.

JPresta Cache Warmer

JPresta-Cache-Warmer utiliza servidores de Amazon (AWS) para garantizar un servicio estable y eficiente independientemente del número de suscriptores.

Si desea que su proveedor de alojamiento no prohíba los robots calentadores de caché, debe autorizar las solicitudes de las siguientes IPS: 18.119.72.109 y 18.189.172.189

JPresta Cache Warmer

Cuando se utilizan estadísticas nativas de Prestashop, para evitar que el calentador de caché se incluya en las estadísticas basta con añadir este override en /override/classes/Connection.php:

class Connection extends ConnectionCore
{
public static function setNewConnection($cookie)
{
if (isset($_SERVER['HTTP_USER_AGENT'])
&& preg_match('/JPresta-Cache-Warmer/i', $_SERVER['HTTP_USER_AGENT'])) {
// Este es el cache-warmer : no registre la conexión
return false;
}
return parent::setNewConnection($cookie);
}
}

Page Cache Ultimate JPresta Speed Pack

El módulo Elementos Creativos le permite editar partes de su tienda con enlaces/botones que se muestran directamente en su tienda cuando está conectado a su admin Prestashop. Para preservar esta funcionalidad, la caché está desactivada con el motivo "editing-with-creative-element". Tenga la seguridad, sus visitantes se benefician de la caché, es sólo los usuarios conectados a la administración que no tienen una caché. Para obtener la caché, basta con mostrar la tienda en una pestaña privada de su navegador.

Page Cache Ultimate JPresta Speed Pack

Lo primero es asegurarte de que tienes la última versión del módulo porque lo estoy mejorando constantemente para reducir el consumo de memoria, tanto en la base de datos como en el disco duro.

Lo segundo es ejecutar una purga periódicamente (cada 2 o 3 días). Una purga elimina de la caché las páginas que ya no existen o cuyo contexto ya no existe. Esto no afecta al rendimiento de la caché. Puede realizar una purga manualmente mediante un botón situado bajo la tabla de estadísticas de la caché, o programando una tarea CRON con la URL que aparece en el menú "API (URL CRON)" de la configuración del módulo.

Finalmente, si hay directorios en /var/cache/pagecache que terminan en "please_delete_me" entonces puede borrarlos. Se trata de una caché antigua que PHP no ha podido borrar por completo (demasiado larga).

Page Cache Ultimate

Al intentar instalar Page Cache Ultimate aparece el mensaje de error "Este archivo no parece ser un archivo .zip de módulo válido"? Es normal, ya que el archivo zip contiene varios archivos zip que permiten instalar este módulo en función de la versión de Prestashop: PS-1.5/1.6, PS1.7/8 y Thirtybees.

Por lo tanto, debe extraer e instalar el archivo zip que se adapte a su tienda.

WebP JPresta Speed Pack

El módulo no llama al Hook que permite la actualización.

Debe modificar la función imageResize() en el archivo /modules/prestablog/prestablog.php:

Reemplace esto

         return ImageManager::write('jpg', $imagen_dest, $archivo_después);

Por esto

         $ret = ImageManager::write('jpg', $imagen_destino, $archivo_después);

Hook::exec('actionOnImageResizeAfter', ['dst_file' => $file_after, 'file_type' => 'jpg']);

return $ret;

después tus imágenes se actualizarán.

Page Cache Ultimate JPresta Speed Pack

La caché estática sólo puede utilizarse si se conoce el contexto del visitante. El contexto contiene una serie de informaciones que no pueden deducirse únicamente a partir de la URL: moneda, grupos de usuarios, elección de cookies, impuestos que deben aplicarse, etc.

Este contexto se almacena en una cookie llamada "jpresta_cache_context" que se añade cuando el usuario visualiza una 1ª página. Una vez que la cookie está presente, se puede utilizar la caché estática.

Page Cache Ultimate JPresta Speed Pack

Vaya a la configuración del módulo, en el menú "Sistema de caché" asegúrese de que "Prestashop Static!" está seleccionado. Si ya está marcada, seleccione "Sistema de archivos estándar" y guardar, a continuación, seleccione "Prestashop estática" y guardar de nuevo. Esto reactivará la caché estática.

Page Cache Ultimate JPresta Speed Pack

El mensaje "precios específicos para clientes" significa que está conectado a un usuario que tiene reglas de precios específicas, por lo que no tiene sentido crear una caché, ya que sólo él podrá beneficiarse de ellas. Es preferible crear grupos de usuarios y crear reglas de precios para estos grupos.