Tras la actualización de versión de PHP de nuestros servidores algunas tiendas prestashop en la versión 1.4 han visto como su buscador ha dejado de funcionar correctamente.

Para solucionar esta incidencia se debe actualizar Prestashop a la versión 1.5 o aplicar este parche:

Hosting Web

En el fichero classes/Search.php debemos quitar o comentar el siguiente código:

 foreach ($words AS $key => $word)
if (!empty($word) AND strlen($word) >= (int)Configuration::get('PS_SEARCH_MINWORDLEN'))
{
$word = str_replace('%', '\\%', $word);
$word = str_replace('_', '\\_', $word);
$intersectArray[] = 'SELECT id_product
FROM '._DB_PREFIX_.'search_word sw
LEFT JOIN '._DB_PREFIX_.'search_index si ON sw.id_word = si.id_word
WHERE sw.id_lang = '.(int)$id_lang.'
AND sw.word LIKE
'.($word[0] == '-'
? ' \''.pSQL(Tools::substr($word, 1, PS_SEARCH_MAX_WORD_LENGTH)).'%\''
: '\''.pSQL(Tools::substr($word, 0, PS_SEARCH_MAX_WORD_LENGTH)).'%\''
);
if ($word[0] != '-')
$scoreArray[] = 'sw.word LIKE \''.pSQL(Tools::substr($word, 0, PS_SEARCH_MAX_WORD_LENGTH)).'%\'';
}
else
unset($words[$key]);

Y en su lugar incluir este otro:

$intersectArray[] = 'SELECT distinct p.id_product FROM ps_product p LEFT JOIN ps_product_lang pl ON (p.id_product = pl.id_product AND pl.id_lang = '.(int)$id_lang.') WHERE pl.name LIKE \'%'.pSQL($expr).'%\'';

Con esto debe estar solucionado el problema.

Accede a más

En Hoswedaje te ofrecemos más información acerca de como conseguir plantillas gratis de Prestashop y de como inslatarlas. Te dejamos estos artículos y si necesitas ayuda contacta con nosotros.

➡  Si estas interesado en el plantillas gratis de PrestaShop 1.5 pincha aquí.

➡  Si estas interesado en instalar plantillas en PrestaShop pincha aquí.