Productos destacados aleatorios en prestashop 1.6
Productos Destacados o Populares, como se llaman en prestashop 1.6, aleatorios.
Para poner los productos populares aleatoriamente, o sea, que cambien cada vez que se cargue la página debemos hacer lo siguiente:
Nos vamos a modulos/homefeatures y editamos el fichero homefeatured.php
Buscamos lo siguiente en el fichero:
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 lo sustituimos por lo siguiente:
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'); }
Guardamos cambios en el fichero y recargamos nuestra página.
Ya tenemos nuestros productos mostrados aleatoriamente.
Hola!!
Llegué a tu página porque justo ando buscando como rotar automáticamente los productos destacados.
Probé tu consejo y no me funciona ¿A qué crees que se podría deber?
Muchas gracias de antemano por tu tiempo y ayuda
Un cordial saludo
Iván
Hola, Estas utilizando prestashop 1.6, verdad?
Si es así debes ir a la siguiente ruta: raiz/modules/homefeatured y editar el fichero homefeatured.php
En este fichero busca el método: public function hookDisplayHome($params)
Una vez lo tengas localizado sustitúyelo por el método completo que tongo en el post y listo, debe funcionar.
Si sigues teniendo problemas dimelo y lo miramos.
Recuerda que si utilizas prestashop 1.5 no sirve este método, dímelo y te digo como es para la version 1.5
Un saludo.
Hola!
He sustituido el código que pones aquí arriba y no me funciona. Es el archivo raiz/modules/homefeatured/homefeatured.php.
No es un dato relevante que use un theme de pago verdad?
Muchas gracias!
Hola, si es un theme de pago lo mas seguro es que el modulo de homefeatured este modificado para adaptarse a la plantilla de pago, por lo que los archivos que hay en raiz/modules/homefeatured/homefeatured.php quedan invalidados por los archivos que hay en raiz/themes/nombre-plantilla/modules/homefeatured/homefeatured.php, es decir prestashop da prioridad a los archivos de los módulos que hay instalados en el theme.
Lo que puedes probar es lo siguiente:
Primero que todo hacer una copia de seguridad por si acaso no funciona correctamente que puedas volver a tenerlo todo como lo tienes ahora.
Y lo segundo es buscar el código y sustituirlo en la ruta del theme, o sea en: raiz/themes/nombre-plantilla/modules/homefeatured/homefeatured.php
Prueba y me cuentas, pero ya no te puedo asegurar que funcione al 100%, depende del desarrollo del theme.
Muchas Gracias. Saludos.
Si que funciona perfectamente… pero cuidado a la hora de actualizar el modulo… lo vuelve a poner sin ramdom…. Gracias por el aporte…. pasate por http://www.eskalartienda.com y mira que guay ha kedado…
Productos destacados se esconden y no he podido solucionar el problema.
funciono perfecto gracias, como hago para que los productos destacados no desaparezcan del home
Funciona genial, muchas gracias!
Pero quiero rizar el rizo, tengo 600 y pico de productos, como puedo hacerlo para que en ese random solo salgan los 100 últimos?
Un saludo y muchas gracias.
Funciona, Gracias