[1.6.1.17] Données erronées dans le tableau de bord



  • En version 1.6.1.17, les CA journaliers sont "évolutifs" en fonction de la dernière date de changement de statut d'une commande.

    Pour retrouver le fonctionnement normal, soit:

    Le bug report est ici: http://forge.prestashop.com/browse/PSCSX-9335



  • Petit patch correctif pour les produits les plus vus dans cette page également (Bug si dates sélectionnées == date du jour et ne trie pas les résultats dans l'ordre souhaité)
    Dans dashproducts.php ligne 482, remplacez le bloc else par celui-ci

    		else {
    			return Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS('
    			SELECT p.id_object, pv.counter
    			FROM `'._DB_PREFIX_.'page_viewed` pv
    			LEFT JOIN `'._DB_PREFIX_.'date_range` dr ON pv.`id_date_range` = dr.`id_date_range`
    			LEFT JOIN `'._DB_PREFIX_.'page` p ON pv.`id_page` = p.`id_page`
    			LEFT JOIN `'._DB_PREFIX_.'page_type` pt ON pt.`id_page_type` = p.`id_page_type`
    			WHERE pt.`name` = \'product\'
    			'.Shop::addSqlRestriction(false, 'pv').'
    			AND DATE_FORMAT(dr.`time_start`, "%Y-%m-%d") >= "'.pSQL($date_from).'"
    			AND DATE_FORMAT(dr.`time_end`, "%Y-%m-%d") <= "'.pSQL($date_to).'"
    			ORDER BY pv.counter DESC
    			LIMIT '.(int)$limit);
    		}
    

  • legacy

    @eolia Salut , mon code commence comme ca ( { else )

    le tien ( else { ) le quel est bon ? merci



  • { else c'est impossible en php...


  • legacy

    Salut ok, je t'envoi le code que j'ai ou le fichier ?

    dashproducts.php

    Je confirme j'ai ca :

    }
    else
    return Db::getInstance(PS_USE_SQL_SLAVE)->executeS('
    SELECT p.id_object, pv.counter
    FROM '._DB_PREFIX_.'page_viewed pv
    LEFT JOIN '._DB_PREFIX_.'date_range dr ON pv.id_date_range = dr.id_date_range
    LEFT JOIN '._DB_PREFIX_.'page p ON pv.id_page = p.id_page
    LEFT JOIN '._DB_PREFIX_.'page_type pt ON pt.id_page_type = p.id_page_type
    WHERE pt.name = 'product'
    '.Shop::addSqlRestriction(false, 'pv').'
    AND dr.time_start BETWEEN "'.pSQL($date_from).'" AND "'.pSQL($date_to).'"
    AND dr.time_end BETWEEN "'.pSQL($date_from).'" AND "'.pSQL($date_to).'"
    LIMIT '.(int)$limit);
    }

    public function getMostSearchTerms($date_from, $date_to, $limit = 10)
    {
    	if (!Module::isInstalled('statssearch'))
    		return array();


  • On est bien d'accord, j'ai la même chose^^
    0_1522416237289_3a9627af-d101-4c52-8056-004a143b20d8-image.png

    Donc tu remplaces le bloc else avec le code que je t'ai fourni plus haut...


  • legacy

    @eolia Merci ^^ Bonne pâques



  • Je n'arrive pas à comprendre qu'il faille polluer pendant 3 jours le topic pour quelque chose qui se résout d'un simple test A/B en 2 mn et qui au final consiste à faire très exactement ce qui est écrit. Ni plus, ni moins


  • legacy

    Ce message a été supprimé !