Admin27 Posted November 23, 2013 Share Posted November 23, 2013 Antes he actualizado a la versión 1.5.6.1 y encontrado muchos errores que algunos si he podido solucionar.Pero el problema es que no aparecen los productos más venidos al entrar dentro de la sección y lo único que sale es los menos vendidos.He tenido que volver a la versión 1.5.6.0. Link to comment Share on other sites More sharing options...
Paula Martinez Posted November 23, 2013 Share Posted November 23, 2013 Hola, Me llamo Raul Martinez, ¿Con el módulo del lateral o con el listado de productos en la parte central de los productos mas vendidos? ¿Has mirado si en http://forge.prestashop.com/secure/Dashboard.jspa o https://github.com/PrestaShop alguien a comentado el error? Link to comment Share on other sites More sharing options...
Admin27 Posted November 23, 2013 Author Share Posted November 23, 2013 En el modulo lateral sale correctamente, pero cuando entras dentro del modulo donde tienen que salir todos los productos más vendidos, solo sale escrito los menos vendidos. Link to comment Share on other sites More sharing options...
latiendadeajedrez Posted November 25, 2013 Share Posted November 25, 2013 (edited) En el modulo lateral sale correctamente, pero cuando entras dentro del modulo donde tienen que salir todos los productos más vendidos, solo sale escrito los menos vendidos. Mismo problema.... Edited November 26, 2013 by latiendadeajedrez (see edit history) 1 Link to comment Share on other sites More sharing options...
Daviant Posted November 30, 2013 Share Posted November 30, 2013 Mismo problema.... Mismo problema.... Alguna Solución... me pasa lo mismo Link to comment Share on other sites More sharing options...
Admin27 Posted November 30, 2013 Author Share Posted November 30, 2013 No hay ninguna solución, si no ya nos la hubieran dado. Link to comment Share on other sites More sharing options...
nadie Posted November 30, 2013 Share Posted November 30, 2013 He encontrado esto: http://forge.prestashop.com/browse/PSCFV-11120 Donde uno del equipo de Prestashop dice lo siguiente: Sorry I do not reproduce on 1.5.6.1, last fix on that was https://github.com/PrestaShop/PrestaShop/commit/dd05692400fe6c1ab52b3a18a131bc5bed5aa45a#diff-1ed1888eddf4288c842dbeed62847251L92 Regards 1 Link to comment Share on other sites More sharing options...
nadie Posted November 30, 2013 Share Posted November 30, 2013 Tambien he encontrado este tema: http://www.prestashop.com/forums/topic/284674-solvedtop-sellers-are-not-displaying Por cierto, recordar habilitar el reporte de errores: http://www.prestashop.com/forums/topic/232476-%C2%BFqu%C3%A9-hacer-cuando-se-queda-la-pantalla-en-blanco-en-prestashop/?do=findComment&comment=1143435 por ver si os sale un error cuando intentar el listado de los productos mas vendidos. 1 Link to comment Share on other sites More sharing options...
nadie Posted November 30, 2013 Share Posted November 30, 2013 Tambien he encontrado este tema: http://www.prestashop.com/forums/topic/284674-solvedtop-sellers-are-not-displaying Por cierto, recordar habilitar el reporte de errores: http://www.prestashop.com/forums/topic/232476-%C2%BFqu%C3%A9-hacer-cuando-se-queda-la-pantalla-en-blanco-en-prestashop/?do=findComment&comment=1143435 por ver si os sale un error cuando intentar el listado de los productos mas vendidos. Tambien he encontrado esto: https://github.com/PrestaShop/PrestaShop/commit/5f47526ed2fd8d2d6ef82ba1507ae655b122af12 (Cuando en los enlaces de github dice + significa añadir linea, y cuando dice - es quitar linea) 1 Link to comment Share on other sites More sharing options...
Daviant Posted November 30, 2013 Share Posted November 30, 2013 Tambien he encontrado esto: https://github.com/PrestaShop/PrestaShop/commit/5f47526ed2fd8d2d6ef82ba1507ae655b122af12 (Cuando en los enlaces de github dice + significa añadir linea, y cuando dice - es quitar linea) Muchas gracias... siempre ayudando... estoy mirando la información... es compleja para mi, pero con paciencia se logra todo Link to comment Share on other sites More sharing options...
Daviant Posted December 2, 2013 Share Posted December 2, 2013 Muchas gracias... siempre ayudando... estoy mirando la información... es compleja para mi, pero con paciencia se logra todo Apliqué los cambios del enlace, pero sigue sin solucionarse... Link to comment Share on other sites More sharing options...
jesus225 Posted December 10, 2013 Share Posted December 10, 2013 Buenos días, He aplicado la solución que proponen en https://github.com/PrestaShop/PrestaShop/commit/5f47526ed2fd8d2d6ef82ba1507ae655b122af12 y he conseguido corregir el error. Lo extraño es que ese parche es para la versión 1.6 y no para la 1.5.6.1 Link to comment Share on other sites More sharing options...
Admin27 Posted December 10, 2013 Author Share Posted December 10, 2013 Yo estaba pensando en utilizar el modulo de la versión 1.5.6.0 y instalarla en la versión 1.5.6.1 puede que funcione, no? Link to comment Share on other sites More sharing options...
nadie Posted December 13, 2013 Share Posted December 13, 2013 Yo estaba pensando en utilizar el modulo de la versión 1.5.6.0 y instalarla en la versión 1.5.6.1 puede que funcione, no? El parche que confirma que David (https://github.com/PrestaShop/PrestaShop/commit/5f47526ed2fd8d2d6ef82ba1507ae655b122af12) funciona que es el que puse un post mas arriba yo, en principio funciona, ya han habido varios usuarios en el foro y les ha funcionado. Si decides actualizar, deja tu fichero: /classes/ProductSale.php Asi: <?php /* * 2007-2013 PrestaShop * * NOTICE OF LICENSE * * This source file is subject to the Open Software License (OSL 3.0) * that is bundled with this package in the file LICENSE.txt. * It is also available through the world-wide-web at this URL: * http://opensource.org/licenses/osl-3.0.php * If you did not receive a copy of the license and are unable to * obtain it through the world-wide-web, please send an email * to [email protected] so we can send you a copy immediately. * * DISCLAIMER * * Do not edit or add to this file if you wish to upgrade PrestaShop to newer * versions in the future. If you wish to customize PrestaShop for your * needs please refer to http://www.prestashop.com for more information. * * @author PrestaShop SA <[email protected]> * @copyright 2007-2013 PrestaShop SA * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) * International Registered Trademark & Property of PrestaShop SA */ class ProductSaleCore { /* ** Fill the `product_sale` SQL table with data from `order_detail` ** @return bool True on success */ public static function fillProductSales() { $sql = 'REPLACE INTO '._DB_PREFIX_.'product_sale (`id_product`, `quantity`, `sale_nbr`, `date_upd`) SELECT od.product_id, SUM(od.product_quantity), COUNT(od.product_id), NOW() FROM '._DB_PREFIX_.'order_detail od GROUP BY od.product_id'; return Db::getInstance()->execute($sql); } /* ** Get number of actives products sold ** @return int number of actives products listed in product_sales */ public static function getNbSales() { $sql = 'SELECT COUNT(ps.`id_product`) AS nb FROM `'._DB_PREFIX_.'product_sale` ps LEFT JOIN `'._DB_PREFIX_.'product` p ON p.`id_product` = ps.`id_product` '.Shop::addSqlAssociation('product', 'p', false).' WHERE product_shop.`active` = 1'; return (int)Db::getInstance(_PS_USE_SQL_SLAVE_)->getValue($sql); } /* ** Get required informations on best sales products ** ** @param integer $id_lang Language id ** @param integer $page_number Start from (optional) ** @param integer $nb_products Number of products to return (optional) ** @return array from Product::getProductProperties */ public static function getBestSales($id_lang, $page_number = 0, $nb_products = 10, $order_by = null, $order_way = null) { if ($page_number < 0) $page_number = 0; if ($nb_products < 1) $nb_products = 10; $final_order_by = $order_by; $order_table = ''; if (is_null($order_by) || $order_by == 'position' || $order_by == 'price') $order_by = 'sales'; if ($order_by == 'date_add' || $order_by == 'date_upd') $order_table = 'product_shop'; if (is_null($order_way) || $order_by == 'sales') $order_way = 'DESC'; $groups = FrontController::getCurrentCustomerGroups(); $sql_groups = (count($groups) ? 'IN ('.implode(',', $groups).')' : '= 1'); $interval = Validate::isUnsignedInt(Configuration::get('PS_NB_DAYS_NEW_PRODUCT')) ? Configuration::get('PS_NB_DAYS_NEW_PRODUCT') : 20; //Subquery: get product ids in a separate query to (greatly!) improve performances and RAM usage $sql = '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` '.$sql_groups; $products = Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS($sql); $ids = array(); foreach ($products as $product) $ids[$product['id_product']] = 1; $ids = array_keys($ids); $ids = array_filter($ids); sort($ids); $ids = count($ids) > 0 ? implode(',', $ids) : 'NULL'; //Main query $sql = 'SELECT p.*, product_shop.*, stock.out_of_stock, IFNULL(stock.quantity, 0) as quantity, pl.`description`, pl.`description_short`, pl.`link_rewrite`, pl.`meta_description`, pl.`meta_keywords`, pl.`meta_title`, pl.`name`, m.`name` AS manufacturer_name, p.`id_manufacturer` as id_manufacturer, MAX(image_shop.`id_image`) id_image, il.`legend`, ps.`quantity` AS sales, t.`rate`, pl.`meta_keywords`, pl.`meta_title`, pl.`meta_description`, DATEDIFF(p.`date_add`, DATE_SUB(NOW(), INTERVAL '.$interval.' DAY)) > 0 AS new FROM `'._DB_PREFIX_.'product_sale` ps LEFT JOIN `'._DB_PREFIX_.'product` p ON ps.`id_product` = p.`id_product` '.Shop::addSqlAssociation('product', 'p', false).' LEFT JOIN `'._DB_PREFIX_.'product_lang` pl ON p.`id_product` = pl.`id_product` AND pl.`id_lang` = '.(int)$id_lang.Shop::addSqlRestrictionOnLang('pl').' LEFT JOIN `'._DB_PREFIX_.'image` i ON (i.`id_product` = p.`id_product`)'. Shop::addSqlAssociation('image', 'i', false, 'image_shop.cover=1').' LEFT JOIN `'._DB_PREFIX_.'image_lang` il ON (i.`id_image` = il.`id_image` AND il.`id_lang` = '.(int)$id_lang.') LEFT JOIN `'._DB_PREFIX_.'manufacturer` m ON (m.`id_manufacturer` = p.`id_manufacturer`) LEFT JOIN `'._DB_PREFIX_.'tax_rule` tr ON (product_shop.`id_tax_rules_group` = tr.`id_tax_rules_group`) AND tr.`id_country` = '.(int)Context::getContext()->country->id.' AND tr.`id_state` = 0 LEFT JOIN `'._DB_PREFIX_.'tax` t ON (t.`id_tax` = tr.`id_tax`) '.Product::sqlStock('p').' WHERE product_shop.`active` = 1 AND p.`visibility` != \'none\' AND p.`id_product` IN ('.$ids.') GROUP BY product_shop.id_product ORDER BY '.(!empty($order_table) ? '`'.pSQL($order_table).'`.' : '').'`'.pSQL($order_by).'` '.pSQL($order_way).' LIMIT '.(int)($page_number * $nb_products).', '.(int)$nb_products; $result = Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS($sql); if ($final_order_by == 'price') Tools::orderbyPrice($result, $order_way); if (!$result) return false; return Product::getProductsProperties($id_lang, $result); } /* ** Get required informations on best sales products ** ** @param integer $id_lang Language id ** @param integer $page_number Start from (optional) ** @param integer $nb_products Number of products to return (optional) ** @return array keys : id_product, link_rewrite, name, id_image, legend, sales, ean13, upc, link */ public static function getBestSalesLight($id_lang, $page_number = 0, $nb_products = 10, Context $context = null) { if (!$context) $context = Context::getContext(); if ($page_number < 0) $page_number = 0; if ($nb_products < 1) $nb_products = 10; $groups = FrontController::getCurrentCustomerGroups(); $sql_groups = (count($groups) ? 'IN ('.implode(',', $groups).')' : '= 1'); //Subquery: get product ids in a separate query to (greatly!) improve performances and RAM usage $sql = '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` '.$sql_groups.' AND cp.`id_product` IS NOT NULL'; $products = Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS($sql); $ids = array(); foreach ($products as $product) $ids[$product['id_product']] = 1; $ids = array_keys($ids); sort($ids); $ids = array_filter($ids); $ids = count($ids) > 0 ? implode(',', $ids) : 'NULL'; //Main query $sql = 'SELECT p.id_product, pl.`link_rewrite`, pl.`name`, pl.`description_short`, MAX(image_shop.`id_image`) id_image, il.`legend`, ps.`quantity` AS sales, p.`ean13`, p.`upc`, cl.`link_rewrite` AS category, p.show_price, p.available_for_order, p.quantity, p.customizable, IFNULL(pa.minimal_quantity, p.minimal_quantity) as minimal_quantity, p.out_of_stock FROM `'._DB_PREFIX_.'product_sale` ps LEFT JOIN `'._DB_PREFIX_.'product` p ON ps.`id_product` = p.`id_product` '.Shop::addSqlAssociation('product', 'p').' LEFT JOIN `'._DB_PREFIX_.'product_attribute` pa ON (ps.`id_product` = pa.`id_product` AND pa.default_on = 1) LEFT JOIN `'._DB_PREFIX_.'product_lang` pl ON p.`id_product` = pl.`id_product` AND pl.`id_lang` = '.(int)$id_lang.Shop::addSqlRestrictionOnLang('pl').' LEFT JOIN `'._DB_PREFIX_.'image` i ON (i.`id_product` = p.`id_product`)'. Shop::addSqlAssociation('image', 'i', false, 'image_shop.cover=1').' LEFT JOIN `'._DB_PREFIX_.'image_lang` il ON (i.`id_image` = il.`id_image` AND il.`id_lang` = '.(int)$id_lang.') LEFT JOIN `'._DB_PREFIX_.'category_lang` cl ON cl.`id_category` = product_shop.`id_category_default` AND cl.`id_lang` = '.(int)$id_lang.Shop::addSqlRestrictionOnLang('cl').' WHERE product_shop.`active` = 1 AND p.`visibility` != \'none\' AND p.`id_product` IN ('.$ids.') GROUP BY product_shop.id_product ORDER BY sales DESC LIMIT '.(int)($page_number * $nb_products).', '.(int)$nb_products; if (!$result = Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS($sql)) return false; foreach ($result as &$row) { $row['link'] = $context->link->getProductLink($row['id_product'], $row['link_rewrite'], $row['category'], $row['ean13']); $row['id_image'] = Product::defineProductImage($row, $id_lang); $row['allow_oosp'] = Product::isAvailableWhenOutOfStock($row['out_of_stock']); $row['price_tax_exc'] = Product::getPriceStatic( (int)$row['id_product'], false, ((isset($row['id_product_attribute']) && !empty($row['id_product_attribute'])) ? (int)$row['id_product_attribute'] : null), (Product::$_taxCalculationMethod == PS_TAX_EXC ? 2 : 6) ); } return $result; } public static function addProductSale($product_id, $qty = 1) { return Db::getInstance()->execute(' INSERT INTO '._DB_PREFIX_.'product_sale (`id_product`, `quantity`, `sale_nbr`, `date_upd`) VALUES ('.(int)$product_id.', '.(int)$qty.', 1, NOW()) ON DUPLICATE KEY UPDATE `quantity` = `quantity` + '.(int)$qty.', `sale_nbr` = `sale_nbr` + 1, `date_upd` = NOW()'); } public static function getNbrSales($id_product) { $result = Db::getInstance()->getRow('SELECT `sale_nbr` FROM '._DB_PREFIX_.'product_sale WHERE `id_product` = '.(int)$id_product); if (!$result || empty($result) || !key_exists('sale_nbr', $result)) return -1; return (int)$result['sale_nbr']; } public static function removeProductSale($id_product, $qty = 1) { $total_sales = ProductSale::getNbrSales($id_product); if ($total_sales > 1) return Db::getInstance()->execute(' UPDATE '._DB_PREFIX_.'product_sale SET `quantity` = `quantity` - '.(int)$qty.', `sale_nbr` = `sale_nbr` - 1, `date_upd` = NOW() WHERE `id_product` = '.(int)$id_product ); elseif ($total_sales == 1) return Db::getInstance()->delete('product_sale', 'id_product = '.(int)$id_product); return true; } } 1 Link to comment Share on other sites More sharing options...
nadie Posted December 13, 2013 Share Posted December 13, 2013 Buenos días, He aplicado la solución que proponen en https://github.com/PrestaShop/PrestaShop/commit/5f47526ed2fd8d2d6ef82ba1507ae655b122af12 y he conseguido corregir el error. Lo extraño es que ese parche es para la versión 1.6 y no para la 1.5.6.1 No te preocupes, ese parche es valido para la 1.5, por eso te funciona, sale en el branch (canal) de la 1.5, por lo tanto es usable y detectado para la 1.5 Link to comment Share on other sites More sharing options...
nadie Posted December 13, 2013 Share Posted December 13, 2013 Apliqué los cambios del enlace, pero sigue sin solucionarse... ¿Usas la 1.5.6.1? 1 Link to comment Share on other sites More sharing options...
TeNToRi Posted January 6, 2014 Share Posted January 6, 2014 Acabo de actualizar a la versión 1.5.6.1 y he aplicado los cambios (añadir dos lineas) y voilá! funciona a la primera, gracias a todos Link to comment Share on other sites More sharing options...
Recommended Posts