Jump to content

Error Modulo novedades --> PS 8.1.3


qlio

Recommended Posts

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

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

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

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 by Manuel_GT (see edit history)
Link to comment
Share on other sites

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

Posted (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 by qlio (see edit history)
Link to comment
Share on other sites

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

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

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...