El módulo de búsqueda por facetas de PrestaShop (ps_facetedsearch) ó navegación por facetas, es un módulo nativo de PrestaShop que muestra un bloque con diferentes criterios disponibles para que el visitante de tu tienda pueda filtrar los productos, principalmente atributos, características y rangos de precios. Es muy útil para ayudar a los clientes a encontrar fácilmente un producto.
Sin embargo, este módulo genera una caché que se acumula en dos tablas:
- ps_layered_price_index
- ps_layered_filter_block
Estas tablas, pueden crecer en tamaño si no se limpian regularmente y se reconstruyen sus índices.
Si tienes una tienda con muchas combinaciones y variaciones de productos, la tabla "ps_layered_filter_block" puede ocupar varios gigabytes (GB) de espacio, lo cual puede degenerar en una pérdida de rendimiento de tu web y de velocidad de carga, o peor aún, en una falta de espacio en tu cuenta de hosting.
Para solucionar este problema, hay que limpiar la caché (Clear Cache) desde el propio módulo:
Una vez limpiada la caché, procederemos a reconstruir el índice de precios y reconstruir todo los atributos y características.
Haciendo esta operación, la tabla que ocupaba mucho espacio lo liberará.
El problema de esto, es que en un futuro volverá a ocurrir de nuevo.
¿Cómo automatizar la tarea de limpiar la tabla regularmente?
Lo ideal es que esta tarea se automatice para no estar pendiente de hacerlo de manera manual.
Para ellos pincharemos con el botón derecho en el botón de "Clear Cache" o cualquiera de las otras opciones y lo abriremos en una nueva ventana.
Cogeremos la url que vemos en el navegador que será del tipo:
Para reconstruir todo el indice de precios:
https://tudominio .com/modules/ps_facetedsearch/ps_facetedsearch-price-indexer.php?token=12345678abcdefghijk
Para limpiar la cache:
https://tudominio .com/modules/ps_facetedsearch/ps_facetedsearch-clear-cache.php?token=12345678abcdefghijk
Y crearemos un cronjob en cPanel con esa url y usando la opción "/usr/bin/curl --user-agent cPanel-Cron" como indicamos en éste tutorial de cronjobs para cPanel.
La periodicidad podemos ponerla una vez por semana por ejemplo: