Que los productos destacados aparezcan en la home es una buena idea pero que siempre salgan los mismos no es del todo bueno, ni para tus clientes ni para tu SEO, pero aquí verás cómo hacerlos aleatorios, para que cambien cada vez que el cliente pase por la home…
Los productos destacados en la página de inicio (o homefeatured), se generan mediante el módulo del mismo nombre que trabaja directamente sobre la caché, por eso se muestran siempre los mismos productos. Esto tiene dos inconvenientes:
- Tus clientes siempre ven los mismos, lo cual les puede aburrir, además de dar la sensación de que tienes poca rotación de catálogo.
- Google ve poca variación en el contenido de tu home, lo cual puede perjudicar a tu posicionamiento natural (SEO) si en tu home no tienes más variación de productos con otros módulos.
El caso es que si haces que tu módulo de productos destacados muestre una variación «aleatoria» de los mismos, conseguirás que, cada vez que entre el cliente, vea productos distintos, y además Google, cuando haga un rastreo de tu home, también verá contenido diferente, con lo cual dará a la home más relevancia que la que tenía, y en consecuencia, mejorará su posicionamiento.
Cómo hacer aleatorios los productos destacados homefeatured
Muy fácil, deshabilitando la carga de los mismos desde la caché. O lo que es lo mismo: modificando el fichero
Edita el fichero anterior, no sin antes haber hecho una copia de seguridad del mismo, localiza el siguiente código:
public function hookDisplayHome($params) { if (!$this->isCached('homefeatured.tpl', $this->getCacheId())) { $this->_cacheProducts(); $this->smarty->assign( array( 'products' => HomeFeatured::$cache_products, 'add_prod_display' => Configuration::get('PS_ATTRIBUTE_CATEGORY_DISPLAY'), 'homeSize' => Image::getSize(ImageType::getFormatedName('home')), ) ); } return $this->display(__FILE__, 'homefeatured.tpl', $this->getCacheId()); }
Y la sustituimos por este otro:
public function hookDisplayHome($params){
$category = new Category(Context::getContext()->shop->getCategory(), (int)Context::getContext()->language->id);
$nb = (int)(Configuration::get('HOME_FEATURED_NBR'));
/*$products = $category->getProducts((int)Context::getContext()->language->id, 1, ($nb ? $nb : 10));*/
$products = $category->getProducts((int)Context::getContext()->language->id, 1, ($nb ? $nb : 10), 'date_add', 'DESC', false, true, true, $nb);
shuffle($products);
$this->smarty->assign(array(
'products' => $products,
'add_prod_display' => Configuration::get('PS_ATTRIBUTE_CATEGORY_DISPLAY'),
'homeSize' => Image::getSize('home_default'),
));
return $this->display(__FILE__, 'homefeatured.tpl');
}
Guarda los cambios, refresca la home de tu tienda prestashop y comprueba cómo cada vez que refrescas, salen productos diferentes en tus homefeatured.
Por cierto, para los que preguntáis, sí, esta modificación es compatible con Prestashop 1.6
Espero que os haya servido de ayuda, si tenéis cualquier consulta o comentario, podéis dejarlos aquí abajo 🙂