Agnès_Ts Posted March 12, 2018 Share Posted March 12, 2018 Bonjour, C'est certainement tout bête mais je ne trouve pas : J'ai x photos pour mes produits, et j'aimerais que ça soit, pour tous les produits, la photo en position 1 qui soit reprise pour les commandes et surtout les Bon de livraison. Mais, Prestashop en décide autrement, j'ai l'impression qu'il a gardé en mémoire, pour certains produits, la première photo que j'ai mise et non le réglage de position que j'ai fait ensuite. Y'a t'il une case que je dois cocher, un texte que je doit modifier, un code à changer ? Merci d'avance Agnès Link to comment Share on other sites More sharing options...
Eolia Posted March 12, 2018 Share Posted March 12, 2018 Prestashop ne tient pas compte des positions à ces endroits. Il prend l'image qui est en cover (Couverture). Il vous suffit donc de mettre votre image qui en position 1, également en image de couverture Link to comment Share on other sites More sharing options...
Agnès_Ts Posted March 12, 2018 Author Share Posted March 12, 2018 (edited) Bonjour, Pour mon cas, non, l'image Cover est bien cochée pour chaque produit, mais, si c'est bien celle qu'il reprend pour le panier, ce n'est pas celle qu'il reprend pour la commande ou le BL. J'ai peut être touché quelque chose pour lui demander de reprendre la photo n°1, mais ma mémoire est clairement défaillante, je ne me souviens pas, si je l'ai fait ou pas, et si oui, quel serait le fichier impacté. ( mais il ne me semble pas avoir touché la dedans ) Voici l'image, à gauche le panier avec les images cover, à droite la commande ( idem BL ) avec les photo position 1 pour les 2 premiers produits et une photo, qui se trouve en position 8, (première photo mise ) pour le dernier produit. Merci pour votre intérêt ! Agnès Edited March 12, 2018 by Agnès_Ts (see edit history) Link to comment Share on other sites More sharing options...
Eolia Posted March 12, 2018 Share Posted March 12, 2018 (edited) Ok. Plusieurs choses: - Nativement, Prestashop n'affiche pas les images dans les bons de livraison, donc vous avez du modifier les fichiers de base - L'image utilisée pour les facture est stockée dans le répertoire temporaire /img/temp Le code va la chercher de cette manière: $name = 'product_mini_'.(int)$order_detail['product_id'].(isset($order_detail['product_attribute_id']) ? '_'.(int)$order_detail['product_attribute_id'] : '').'.jpg'; $path = _PS_PROD_IMG_DIR_.$order_detail['image']->getExistingImgPath().'.jpg'; Ce sont les mêmes images qui sont utilisées dans le listing produits du BO. Il faut savoir que ces images (product_mini_xxxx_xxx.jpg) sont générées à chaque affichage du listing justement, uniquement si elles n'existent pas déjà. Une seule image est créée par produit. Si vous modifiez les positions par la suite, cette miniature n'est pas mise à jour tant qu'elle est présente. Le seul cas où celle-ci est mise à jour, c'est si vous modifiez la couverture. (Voir la fonction processImage() dans productController.php) Il faut donc aller dans /img/temp et supprimer tous les product_mini pour forcer la regénération ou modifier la fonction ajaxProcessUpdateImagePosition() comme suit: public function ajaxProcessUpdateImagePosition() { if ($this->tabAccess['edit'] === '0') { return die(Tools::jsonEncode(array('error' => $this->l('You do not have the right permission')))); } $res = false; if ($json = Tools::getValue('json')) { $res = true; $json = stripslashes($json); $images = Tools::jsonDecode($json, true); foreach ($images as $id => $position) { $img = new Image((int)$id); $img->position = (int)$position; if($position == 1) { Image::deleteCover($img->id_product); $img->cover = 1; } $res &= $img->update(); } } if ($res) { $this->jsonConfirmation($this->_conf[25]); $id_product = Db::getInstance()->getValue('SELECT id_product FROM '._DB_PREFIX_.'image_shop WHERE id_image = '.(int)$id.' AND id_shop = '.(int)Context::getContext()->shop->id); @unlink(_PS_TMP_IMG_DIR_.'product_'.$id_product.'.jpg'); @unlink(_PS_TMP_IMG_DIR_.'product_mini_'.$id_product.'_'.Context::getContext()->shop->id.'.jpg'); } else { $this->jsonError(Tools::displayError('An error occurred while attempting to move this picture.')); } } Edited March 12, 2018 by Eolia (see edit history) 1 1 Link to comment Share on other sites More sharing options...
Agnès_Ts Posted March 12, 2018 Author Share Posted March 12, 2018 (edited) Génial !! Extra ! vous êtes génial Merci vraiment, j'ai pris l'option 1, je mets en cover mon Image[1], je supprime les product_mini_xxxx_0.jpg qui ne sont pas ok pour quelques produits et Prestashop me génère la bonne vignette, puis je remets la vraie cover. [ en fait, dans temp, j'ai 3 product_mini_ par Produit ) Tous mes Ti Sac ont retrouvé / vont retrouver leur maquette, je suis ravie ! Merci Agnès Edited March 12, 2018 by Agnès_Ts (see edit history) Link to comment Share on other sites More sharing options...
Eolia Posted March 12, 2018 Share Posted March 12, 2018 il y a une heure, Agnès_Ts a dit : [ en fait, dans temp, j'ai 3 product_mini_ par Produit ) Auriez-vous ou êtes-vous en multi-shop ? le dernier chiffre correspond au n° du shop. Link to comment Share on other sites More sharing options...
Agnès_Ts Posted March 12, 2018 Author Share Posted March 12, 2018 (edited) Houla non, du tout, mais bien 3 pour chaque produit Product_mini_IDP_0.jpg correspond à ma photo 1 Product_mini_IDP_1.jpg correspond à ma cover Product_mini_IDP.jpg est le parfait duplicata de la _0 pas bon signe ? Prestashop utilise la IDP_1.jpg pour le panier et la liste des produits dans le BO et la IDP_0.jpg pour la vignette des produits dans Order, facture et BL l'autre, je ne sais pas Edited March 12, 2018 by Agnès_Ts (see edit history) Link to comment Share on other sites More sharing options...
Eolia Posted March 12, 2018 Share Posted March 12, 2018 La 3ème ne devrait pas être là (peut-être créée par un override ou un module) Pour la 0, il doit y avoir des endroits dans le code de votre boutique ou l'id_shop n'est pas défini et donc ça met null donc 0 Rien de grave (et pas très étonnant pour du code Prestashop^^) Link to comment Share on other sites More sharing options...
Agnès_Ts Posted March 12, 2018 Author Share Posted March 12, 2018 Pas de module, juste touché quelque chose pour que la photo position 3 apparaisse en rollover, mais du coup la 0 m'intéresse, donc c'est très bien, surtout si ce n'est pas grave Merci beaucoup en tout cas. 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