Hola @lorena_89, como bien comenta @antonioonline, tu enfoque de override en SearchController es problemático para implementar una funcionalidad de "Block Search Pro" robusta. La razón principal es que parent::initContent() ya está estableciendo $this->products y $this->nbProducts basándose en la búsqueda estándar, y cualquier manipulación posterior directa sin reajustar la paginación y el total de resultados correctamente causará inconsistencias.
Para PrestaShop 1.7.8.4, aunque podrías intentar usar el hook actionProductSearchAfter para manipular los resultados, si tu lógica de filtro es compleja (por ejemplo, con múltiples criterios o reordenación de relevancia), te encontrarás con las limitaciones de que el hook ya opera sobre un array de resultados y no sobre la consulta SQL original. Esto hace que sea difícil modificar la lógica de búsqueda de forma eficiente.
Aquí te dejo un pequeño ajuste a tu override que al menos te permitiría manipular los productos después de la búsqueda principal, aunque no es una solución completa para una búsqueda avanzada:
class SearchController extends SearchControllerCore
{
public function postProcess()
{
parent::postProcess();
// Los productos ya han sido cargados por parent::postProcess()
// Es mejor manipularlos aquí, pero no afecta la consulta original.
if (is_array($this->products) && Tools::getValue('custom_filter')) {
$filtered_products = array_filter($this->products, function ($product) {
// Ejemplo: filtrar solo si el producto tiene una característica específica
Este snippet te permite modificar la lista $this->products y el contador $this->nbProducts después de la búsqueda, pero sigue siendo una solución de parche. Para una verdadera funcionalidad de búsqueda avanzada, con filtros dinámicos, autocompletado inteligente, búsqueda por características o atributos específicos, y que sea mantenible a largo plazo sin romper en actualizaciones, la mejor práctica es utilizar un módulo especializado. Los overrides manuales para este tipo de características terminan siendo frágiles y costosos de mantener.
Existen soluciones dedicadas para esto, como un módulo para herramienta de búsqueda precisa que ya implementan toda la lógica necesaria de forma robusta y compatible con las actualizaciones de PrestaShop. Te ahorrará muchos dolores de cabeza y te dará una funcionalidad mucho más profesional.