qlio Posted February 27 Share Posted February 27 No funciona correctamente, no se porque se ha quedado estancado en los id_product 2614, 2615, 2616 y 2617. https://tienda.indumentariasanjorge.es/es/ Pero tanto en el catálogo del back como consultando ps_product existen otros productos mas actuales... lanzo: SELECT * FROM `ps8_product` ORDER BY `ps8_product`.`date_upd` DESC y el resultado son los siguientes id_product: 2625, 2626, 2627, 2628, 2617, 2615, 2616, 2614... etc. ¿Por que no pone los id 2625, 2626, 2627, 2628 como novedades? Gracias. Link to comment Share on other sites More sharing options...
Knowband Plugins Posted February 27 Share Posted February 27 ¿Has probado a limpiar el caché? Prestashop guarda estos datos en la caché. Link to comment Share on other sites More sharing options...
qlio Posted February 27 Author Share Posted February 27 Gracias por la respuesta, si varias veces. No es tema de cache. Link to comment Share on other sites More sharing options...
Knowband Plugins Posted February 28 Share Posted February 28 Si se siente cómodo editando código, Edite el archivo, es decir, module/ps_newproducts/ps_newproducts.php Prueba a cambiar la función public function renderWidget($hookName, array $configuration) { if (!$this->isCached($this->templateFile, $this->getCacheId('ps_newproducts'))) { $variables = $this->getWidgetVariables($hookName, $configuration); if (empty($variables)) { return false; } $this->smarty->assign($variables); } return $this->fetch($this->templateFile, $this->getCacheId('ps_newproducts')); } a public function renderWidget($hookName, array $configuration) { //if (!$this->isCached($this->templateFile, $this->getCacheId('ps_newproducts'))) { $variables = $this->getWidgetVariables($hookName, $configuration); if (empty($variables)) { return false; } $this->smarty->assign($variables); //} return $this->fetch($this->templateFile); } Link to comment Share on other sites More sharing options...
qlio Posted February 28 Author Share Posted February 28 Gracias por la respuesta, pero no era por un tema de cache. Pasa algo mas... He cambiado la función siguiente tus indicaciones para q no recoja los valores de la cache, pero el resultado no varía. En https://tienda.indumentariasanjorge.es/ debería mostrar las 4 últimos productos pero no lo hace, desde https://tienda.indumentariasanjorge.es/es/novedades si están correctamente ordenados. Link to comment Share on other sites More sharing options...
Manuel_GT Posted February 28 Share Posted February 28 (edited) Hola @qlio La consulta del módulo es mucho mas compleja de lo que escribes. Hace join con varias tablas y podría ser que la falta de datos en alguna de las provoque que no aparezcan los productos que mencionas. Si tienes curiosidad, la consulta que trae los productos se encuentra en el método estático "getNewProducts" de la clase Product La consulta empieza con un $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`, pl.`available_now`, pl.`available_later`, image_shop.`id_image` id_image, il.`legend`, m.`name` AS manufacturer_name, (DATEDIFF(product_shop.`date_add`, DATE_SUB( "' . $now . '", INTERVAL ' . $nb_days_new_product . ' DAY ) ) > 0) as new' ); $sql->from('product', 'p'); $sql->join(Shop::addSqlAssociation('product', 'p')); $sql->leftJoin( 'product_lang', 'pl', ' p.`id_product` = pl.`id_product` AND pl.`id_lang` = ' . (int) $id_lang . Shop::addSqlRestrictionOnLang('pl') ); $sql->leftJoin('image_shop', 'image_shop', 'image_shop.`id_product` = p.`id_product` AND image_shop.cover=1 AND image_shop.id_shop=' . (int) $context->shop->id); $sql->leftJoin('image_lang', 'il', 'image_shop.`id_image` = il.`id_image` AND il.`id_lang` = ' . (int) $id_lang); $sql->leftJoin('manufacturer', 'm', 'm.`id_manufacturer` = p.`id_manufacturer`'); Como verás la creación de la consulta es bastante larga y continua..... Fíjate que utiliza product_shop.date_add en lugar product.date_upd de para el cálculo de la fecha que decide si el producto es o no una novedad. $sql->where('product_shop.`active` = 1'); if ($front) { $sql->where('product_shop.`visibility` IN ("both", "catalog")'); } $sql->where('DATEDIFF(product_shop.`date_add`, DATE_SUB( "' . $now . '", INTERVAL ' . $nb_days_new_product . ' DAY ) ) > 0'); Espero te sirva Edited February 28 by Manuel_GT (see edit history) Link to comment Share on other sites More sharing options...
Zitarka Posted March 1 Share Posted March 1 Hola, Has revisado la configuración del módulo? A veces en los módulos que muestran algún tipo de producto, como destacados, novedades, etc. Existe la opción de seleccionar si se quiere que se muestren productos al azar, solo de alguna categoría o incluso indicar que productos quieres que se muestren, con lo que si en la configuración se le pide que muestre los productos por ejemplo A y B al módulo de novedades, puedes crear después los productos C,D,E... que siempre te mostrará A y B mientras no cambies su configuración. Espero haberme explicado bien Saludos Link to comment Share on other sites More sharing options...
qlio Posted March 3 Author Share Posted March 3 (edited) Hola Manuel_GT, gracias revisaré la consulta porque creo q el error se origina por un tema de datos. Creo tener acotado el problema al crear un artículo copiándolo de otro. Edited March 3 by qlio (see edit history) Link to comment Share on other sites More sharing options...
qlio Posted March 3 Author Share Posted March 3 Hola zitarka, en ente módulo únicamente puedes indicarle el número de productos q quieres mostrar, 4, 8, etc. y los días q quieres q un artículo se marque como novedad. Link to comment Share on other sites More sharing options...
Manuel_GT Posted March 3 Share Posted March 3 12 minutes ago, qlio said: Hola Manuel_GT, gracias revisaré la consulta porque creo q el error se origina por un tema de datos. Creo tener acotado el problema al crear un artículo copiándolo de otro. Si. Fíjate en los valores de la tabla product_shop que es la que usa en el where de la consulta. Espero te sirva Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now