Cuando entramos a los listados de productos en Prestashop 1.7, vemos disponibles solo 5 filtros que podemos apreciar en la siguiente imagen.
En este ejemplo, vamos añadir un filtro nuevo para que el usuario pueda seleccionar la opción de ver los productos por fecha de creación.
Vamos al fichero => /src/Core/Product/Search/SortOrderFactory.php
Y nos encontramos la función “getDefaultSortOrders” con los métodos de ordenación por defecto.
Añadimos dentro de la función (dentro del return) la siguiente línea de código:
(new SortOrder('product', 'date_add', 'desc'))->setLabel( $this->translator->trans('New', array(), 'Shop.Theme.Catalog') ),
Si os fijáis en el código, hemos añadido un nuevo filtro basado en la fecha de creación de los productos (date_add) de forma descendente (desc) con la etiqueta “New”. Por la etiqueta (texto) no os preocupéis que la podéis cambiar desde las traducciones de Prestashop.
Si no funciona, es porque tenéis activo el filtro (navegación por facetas / búsqueda por facetas (ps_facetedsearch)) que vemos en la columna izquierda de la tienda.
Por lo tanto, tenemos que acceder al fichero:
modules/ps_facetedsearch/src/Ps_FacetedsearchProductSearchProvider.php
Donde nos encontramos la función => getAvailableSortOrders()
Y añadiendo la siguiente línea de código (dentro del return de dicha función):
(new SortOrder('product', 'date_add', 'desc'))->setLabel( $this->module->getTranslator()->trans('New', array(), 'Shop.Theme.Catalog') ),
Veremos que ahora podremos visualizar el nuevo filtro de ordenación:
Consideraciones:
- En este “TIP” hemos tocado ficheros “originales”, lo óptimo es crear un override de los mismos siempre que se pueda.
Documento creado bajo Prestashop 1.7.3.3 bajo la plantilla por defecto.