Jump to content

Excluir una categoría del módulo "Mejores ventas"


Recommended Posts

Buenas tardes.

Si alguien ve mi bloque de mejores ventas "www.libreriaquercus.com" aparecen bastantes artículos de una categoría que ya no vendemos y por eso está desactivada (pero no eliminada). Necesitaría poder excluirla del módulo para que aparezcan en la lista solamente artículos de categorías que vendamos actualmente.

 

¡Adjunto foto!

 

muchas gracias a tod@s!!

 

Sergio.

 

Plantilla "default". Prestashop 1.5.6.

post-569959-0-14744300-1400610073_thumb.jpg

Link to comment
Share on other sites

Ventura, he tratado de guiarme con el post que me has indicado, pero algo he debido de hacer mal porque ahora si activo el módulo me sale la página en blanco.

El error es: Fatal error: Class 'ProductSale' not found in /furanet/sites/libreriaquercus.com/web/htdocs/modules/blockbestsellers/blockbestsellers.php on line 184

 

Creo que el problema está en que las versiones de Prestashop no coinciden, porque el código era algo distinto. Recuerdo que mi versión es la 1.5.6.0.

 

He eliminado el módulo y vuelto a descargar desde Prestashop, pero sigue pasando lo mismo. Ahora mismo lo tengo desactivado.

 

Alguna idea sobre esta "catástrofe"??

Edited by libreriaquercus (see edit history)
Link to comment
Share on other sites

Hecho! Ventura, muchas gracias.

Ahora seguimos... En el post #5 del enlace dice lo siguiente (traduzco):

 

[] Necesitarás cambiar la función getBestSalesLight en classes/ProductSale.php a:

static public function getBestSalesLight($id_lang, $pageNumber = 0, $nbProducts = 10, $id_category = 0){ global $link, $cookie; if ($pageNumber < 0) $pageNumber = 0; if ($nbProducts < 1) $nbProducts = 10; $result = Db::getInstance()->ExecuteS(' SELECT p.id_product, pl.`link_rewrite`, pl.`name`, pl.`description_short`, i.`id_image`, il.`legend`, ps.`quantity` AS sales, p.`ean13`, cl.`link_rewrite` AS category FROM `'._DB_PREFIX_.'product_sale` ps LEFT JOIN `'._DB_PREFIX_.'product` p ON ps.`id_product` = p.`id_product` LEFT JOIN `'._DB_PREFIX_.'product_lang` pl ON (p.`id_product` = pl.`id_product` AND pl.`id_lang` = '.intval($id_lang).') LEFT JOIN `'._DB_PREFIX_.'image` i ON (i.`id_product` = p.`id_product` AND i.`cover` = 1) LEFT JOIN `'._DB_PREFIX_.'image_lang` il ON (i.`id_image` = il.`id_image` AND il.`id_lang` = '.intval($id_lang).') LEFT JOIN `'._DB_PREFIX_.'category_lang` cl ON (cl.`id_category` = p.`id_category_default` AND cl.`id_lang` = '.intval($id_lang).') WHERE p.`active` = 1' . ($id_category == 0 ? '' : ' AND p.`id_category_default` = '.$id_category) . ' AND p.`id_product` IN ( SELECT cp.`id_product` FROM `'._DB_PREFIX_.'category_group` cg LEFT JOIN `'._DB_PREFIX_.'category_product` cp ON (cp.`id_category` = cg.`id_category`) WHERE cg.`id_group` '.(!$cookie->id_customer ? '= 1' : 'IN (SELECT id_group FROM '._DB_PREFIX_.'customer_group WHERE id_customer = '.intval($cookie->id_customer).')').' ) GROUP BY p.`id_product` ORDER BY sales DESC LIMIT '.intval($pageNumber * $nbProducts).', '.intval($nbProducts)); if (!$result) return $result; foreach ($result AS &$row) { $row['link'] = $link->getProductLink($row['id_product'], $row['link_rewrite'], $row['category'], $row['ean13']); $row['id_image'] = Product::defineProductImage($row); } return $result;}

Después debes cambiar la línea 35 de modules/blockbestsellers.php a:

$bestsellers = ProductSale::getBestSalesLight(intval($params['cookie']->id_lang), 0, 5, $_GET['id_category']);

 

 

1. Reemplazo todas las líneas de "getBestSalesLight" ProductSale.php, tal y como dice... todo bien...

2. Pero tengo dudas en la línea 35 del módulo blockbestsellers.php. Tengo la sensación de que se trata de otra versión, ya que la línea 35 de mi módulo es:     public function __construct()     y si la cambio me vuelvo a quedar con la pantalla en blanco.

 

 

Saludos.

Link to comment
Share on other sites

  • nadie locked this topic
Guest
This topic is now closed to further replies.
×
×
  • Create New...