francky600 Posted October 12 Share Posted October 12 Bonjour à tous, Je rencontre un problème étrange sur ma boutique PrestaShop 1.6. Dans l'onglet "Quantités disponibles à la vente" de la page produit du back office, le nom du produit affiché ne correspond pas à la ligne de quantité. Ce bug semble isolé à cette page, car les quantités dans la base de données sont correctes et correspondent bien aux déclinaisons appropriées. Je n'ai pas apporté de modifications aux fichiers PHP et TPL depuis 2017. Pensez-vous que ce problème pourrait être lié à une mise à jour de PHP ou MySQL, ou à un module ? Pourrait-il s'agir d'une base de données corrompue ou d'un ID manquant ? Je joins une image pour illustrer le souci. Merci d'avance pour votre aide ! Link to comment Share on other sites More sharing options...
Eolia Posted October 12 Share Posted October 12 (edited) Parce OVH a forcé le passage en Mysql8 et que celui-ci ne tient plus compte implicitement de l'ordre par défaut de l'auto incrément. Vous êtes donc passé en MySQL 8 et votre version Prestashop n'est pas compatible. Il faut patcher la fonction Product::getAttributesResume() en ajoutant un ORDER BY à cette 1ère requête: $combinations = Db::getInstance()->executeS(' SELECT pa.*, product_attribute_shop.* FROM `'._DB_PREFIX_.'product_attribute` pa '.Shop::addSqlAssociation('product_attribute', 'pa').' WHERE pa.`id_product` = '.(int)$this->id.' GROUP BY pa.`id_product_attribute` ORDER BY pa.`id_product_attribute` '); ligne ajoutée: ORDER BY pa.`id_product_attribute` Idem pour la requête qui suit: $lang = Db::getInstance()->executeS('SELECT pac.id_product_attribute, GROUP_CONCAT(agl.`name`, \''.pSQL($attribute_value_separator).'\',al.`name` ORDER BY agl.`id_attribute_group` SEPARATOR \''.pSQL($attribute_separator).'\') as attribute_designation FROM `'._DB_PREFIX_.'product_attribute_combination` pac LEFT JOIN `'._DB_PREFIX_.'attribute` a ON a.`id_attribute` = pac.`id_attribute` LEFT JOIN `'._DB_PREFIX_.'attribute_group` ag ON ag.`id_attribute_group` = a.`id_attribute_group` LEFT JOIN `'._DB_PREFIX_.'attribute_lang` al ON (a.`id_attribute` = al.`id_attribute` AND al.`id_lang` = '.(int)$id_lang.') LEFT JOIN `'._DB_PREFIX_.'attribute_group_lang` agl ON (ag.`id_attribute_group` = agl.`id_attribute_group` AND agl.`id_lang` = '.(int)$id_lang.') WHERE pac.id_product_attribute IN ('.implode(',', $product_attributes).') GROUP BY pac.id_product_attribute ORDER BY pac.id_product_attribute '); ligne ajoutée: ORDER BY pac.id_product_attribute Edited December 2 by Eolia (see edit history) Link to comment Share on other sites More sharing options...
francky600 Posted October 12 Author Share Posted October 12 Eolia, un immense merci ! Depuis que je suis sur ce forum (depuis 2012), tu es toujours là pour aider la communauté. Merci infiniment, problème résolu en 2s ! 👏🙏 Link to comment Share on other sites More sharing options...
Eolia Posted October 12 Share Posted October 12 Regardez du côté de PhenixSuite si vous ne voulez plus ce genre de soucis 1 Link to comment Share on other sites More sharing options...
Divine Posted October 13 Share Posted October 13 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