martes, 3 de diciembre de 2013

Cantidad de productos por páginas

En este post quiero comentar la posibilidad de cambiar la cantidad de productos que podemos seleccionar desde el selector de paginación del product list.



No sé por qué PS no pone solución a esto pero lo que está claro es que tal cual viene por defecto (10, 20, 50) no ayuda a la usabilidad de nuestra tienda, ya que para una correcta visualización con esas opciones implicaría tener configurado una visualización de 2 o 5 productos por línea, si en tu caso usas una cantidad diferente de productos por línea verás que con las configuración de (10,20,50) irás dejando espacios finales en tu lista de productos.

Cualquiera que vea la siguiente imagen pensará que ya no existen más productos en esa categoría y puede dejar de seguir viendo o buscando productos, cuando en realizad hay muchas más páginas.



Lo primero que podemos hacer es cambiar la configuración desde el backoffice, pero esta configuración únicamente afecta a la visualización principal, pero se mantendrán las opciones de ver 10, 20, o 50 productos por página.



La solución es bien sencilla, un override que cambie esos valores por los que nosotros queramos.

Realizaremos un sencillo override a la función "public function pagination($nbProducts = 10)" de la clase "mitienda.com/classes/controller/FrontController.php"

Una vez tengamos preparado nuestro override donde toca "mitienda.com/override/classes/controller/FrontController.php" editaremos la función "public function pagination($nbProducts = 10)" que hemos copiado.

Es muy fácil ya que solo hemos de editar una sola línea

Bien buscamos la siguiente línea

$nArray = (int)Configuration::get('PS_PRODUCTS_PER_PAGE') != 10 ? array((int)Configuration::get('PS_PRODUCTS_PER_PAGE'), 10, 20, 50) : array(10, 20, 50);

Lo cambiaremos por

$nArray = (int)Configuration::get('PS_PRODUCTS_PER_PAGE') != 10 ? array((int)Configuration::get('PS_PRODUCTS_PER_PAGE'), (int)Configuration::get('PS_PRODUCTS_PER_PAGE')*2, (int)Configuration::get('PS_PRODUCTS_PER_PAGE')*3) : array(10, 20, 50);

¿Qué hemos hecho?
Para que PS calcule la cantidad que aparecerá en las opciones de productos por página hemos hecho que coja la variable "PS_PRODUCT_PER_PAGE" (Que configuramos en el backoffice) y la multiplique por "X" en este caso 2 y 3 ya está bien, de esta forma siempre tendremos en todas las opciones una cantidad acorde y nunca tendremos huecos vacíos.

Podéis descargaros el Override desde este enlace. Descargar





No hay comentarios:

Publicar un comentario