Prestashop: Problemas al ordenar productos por precio

Prestashop: Problemas al ordenar productos por precio

Hace poco nos encontramos con un problema en una de las tiendas que gestionamos, al ordenar los productos de una categoría por precio, aunque aparentemente se ordenaban bien, al pasar a la segunda página aparecían productos que deberían estar en la primera.

Investigando un poco vimos que es un problema muy habitual que se lleva arrastrando al menos desde Prestashop 1.4 (nuestro cliente usa Prestashop 1.7 y el problema sigue ahí).

¿Cual es exactamente el problema?

Hay un hilo en el foro de Prestashop que nos puede dar algunas pistas de dónde está exactamente el problema: https://www.prestashop.com/forums/topic/216391-sort-by-lowest-price-not-working-on-paginated-products/

Básicamente se trata de que al ordenar, Prestashop no tiene en cuenta los precios de las combinaciones y cuando tenemos productos cuyo precio depende de estas, el orden en las categorías es erróneo y al cambiar de página se entremezclan productos.

¿Y la solución?

En Prestashop 1.7 y en el caso de nuestro cliente que usa el plugin de búsqueda por facetas (faceted search) y no tiene una gran cantidad de productos, lo más sencillo es anular la consulta paginada a la base de datos y recuperar todos los productos para ordenar globalmente por precio, de esta forma se elimina el error de ordenación por página.

Exactamente modificaremos el siguiente código en el archivo ps_facetedsearch.php del módulo ps_facetedsearch:

Como puede verse, se trata de eliminar el paginado de la consulta “ ‘ LIMIT ‘ . (((int)$page – 1) * $products_per_page . ‘,’ . $products_per_page)” y de recoger los productos correspondientes a la página actual posteriormente a través del array de resultados “$result[‘products’] = array_slice($result[‘products’], (((int)$page – 1) * (int)$products_per_page), (int)$products_per_page);“.

 

Si necesitas ayuda con este u otros problemas de tu tienda no dudes en contactar con nosotros en info@incubalia.com o en el 977 271 598 y estaremos encantados de ayudarte.

 

Artículos relacionados

Deja tu comentario

Tu comentario*

Tu nombre*
Tu sitio web