aide prestashop PhenixSuite Help
    • Catégories
    • Récent
    • Mots-clés
    • Populaire
    • Utilisateurs
    • Groupes
    • Recherche
    • S'inscrire
    • Se connecter

    Images sur les BL ne s'affichent pas

    Planifier Épinglé Verrouillé Déplacé Bugs & Améliorations
    13 Messages 2 Publieurs 2.2k Vues 2 Watching
    Charger plus de messages
    • Du plus ancien au plus récent
    • Du plus récent au plus ancien
    • Les plus votés
    Répondre
    • Répondre à l'aide d'un nouveau sujet
    Se connecter pour répondre
    Ce sujet a été supprimé. Seuls les utilisateurs avec les droits d'administration peuvent le voir.
    • eoliaE Hors-ligne
      eolia
      dernière édition par

      C'est le champ 'image_tag' normalement.
      Dans HTMLTemplateDeliverySlip.php si vous n'avez pas d'override:

              if(Configuration::get('PS_PDF_IMG_DELIVERY')) {
                  foreach($order_details as &$order_detail) {
                      if($order_detail['image'] != null) {
                          $name = 'product_mini_'.(int)$order_detail['product_id'].'_'
                              .(isset($order_detail['product_attribute_id']) ? (int)$order_detail['product_attribute_id'] : 0)
                              .'_'.$this->context->shop->id.'.jpg';
                          $path = _PS_PROD_IMG_DIR_.$order_detail['image']->getExistingImgPath().'.jpg';
      
                          $order_detail['image_tag'] = ImageManager::thumbnail($path, $name, 250, 'jpg', false);
      
                          if(file_exists(_PS_TMP_IMG_DIR_.$name)) {
                              $order_detail['image_tag'] = preg_replace('/alt=""/', 'width="45" height="45"', $order_detail['image_tag'], 1);
                          }
                      }
                  }
                  unset($order_detail);
              }
      

      Créateur de PhenixSuite. Pour plus d'infos : https://eoliashop.com

      1 réponse Dernière réponse Répondre Citer 0
      • T Hors-ligne
        tcdsmax
        dernière édition par

        le code est identique.
        Du coup cela signifie que je n'ai peut-être pas de miniature ?

        1 réponse Dernière réponse Répondre Citer 0
        • T Hors-ligne
          tcdsmax
          dernière édition par

          Du coup, vue que j'ai souvent des petits trucs qui déconnent ici et là, est-ce que ce serait pas mieux que je reparte d'une installation fraiche avec phenixSuite ?
          Et ensuite, ré-importer les tables et images produits, etc....

          Et si oui, avez-vous une astuce pour faire ça au mieux? ou un module, etc...

          merci d'avance.

          1 réponse Dernière réponse Répondre Citer 0
          • eoliaE Hors-ligne
            eolia
            dernière édition par

            Non, il faut trouver la cause.
            La liste des produits est générée par Order::getProductsDetail() dans laquelle sont assignées les images avec la fonction Order::setProductImageInformations().
            A voir si vous n'avez pas de surcharge (override) de la classe Order sur ces fonctions.
            Car si aucune image n'est trouvée les miniatures ne peuvent pas être générées.

                protected function setProductImageInformations(&$product)
                {
                    if(isset($product['product_attribute_id']) && $product['product_attribute_id']) {
                        $id_image = Db::getInstance()->getValue('
                            SELECT `image_shop`.id_image
                            FROM `'._DB_PREFIX_.'product_attribute_image` pai
                            '.Shop::addSqlAssociation('image', 'pai', true).'
                            INNER JOIN `'._DB_PREFIX_.'image` i
                                ON(i.`id_image` = pai.`id_image`)
                            WHERE pai.`id_product_attribute` = '.(int)$product['product_attribute_id']. '
                            ORDER by i.`position` ASC
                        ');
                    }
            
                    if(!isset($id_image) || !$id_image) {
                        $cover = Product::getCover($product['product_id']);
                        if(isset($cover['id_image']))
                            $id_image = (int)$cover['id_image'];
                    }
            
                    $product['image'] = null;
                    $product['image_size'] = null;
            
                    if(isset($id_image)) {
                        $product['image'] = new Image($id_image);
                    }
                }
            

            Créateur de PhenixSuite. Pour plus d'infos : https://eoliashop.com

            1 réponse Dernière réponse Répondre Citer 0
            • T Hors-ligne
              tcdsmax
              dernière édition par

              Si c'est bien la fonction qui se trouve dans le fichier classes/order/Order.php
              il y a une petite différence au niveau de la liaison dans la requete :

              protected function setProductImageInformations(&$product)
              {
              if(isset($product['product_attribute_id']) && $product['product_attribute_id']) {
              $id_image = Db::getInstance()->getValue('
              SELECT image_shop.id_image
              FROM '._DB_PREFIX_.'product_attribute_image pai
              '.Shop::addSqlAssociation('image', 'pai', true).'
              LEFT JOIN '._DB_PREFIX_.'image i
              ON(i.id_image = pai.id_image)
              WHERE pai.id_product_attribute = '.(int)$product['product_attribute_id']. '
              ORDER by i.position ASC
              ');
              }

                  if(!isset($id_image) || !$id_image) {
                      $cover = Product::getCover($product['product_id']);
                      if(isset($cover['id_image']))
                          $id_image = (int)$cover['id_image'];
                  }
              
                  $product['image'] = null;
                  $product['image_size'] = null;
              
                  if(isset($id_image)) {
                      $product['image'] = new Image($id_image);
                  }
              }
              

              Et si les overides sont forcément dans le dossier override à la racine.
              La seule chose qui est présente pour le fichier override/classes/order/Order.php, c'est ça :

              class Order extends OrderCore
              {
              /*
              * module: vosfacturesapp
              * date: 2024-01-16 10:48:43
              * version: 2.4.14
              */
              public function setInvoice($use_existing_payment = false)
              {
              require_once(PS_MODULE_DIR.'vosfacturesapp/vosfacturesapp.php');
              $module = new VosFacturesApp();
              if ($module->sendInvoice($this->id, false, true)) {
              parent::setInvoice($use_existing_payment);
              }
              }
              }

              1 réponse Dernière réponse Répondre Citer 0
              • eoliaE Hors-ligne
                eolia
                dernière édition par

                Vous pouvez mettre le INNER (qui force à ne ramener QUE ce qui matche) pour tester.
                Si toujours rien il faudra debuguer pas à pas pour trouver à quel endroit ça ne matche pas.

                Créateur de PhenixSuite. Pour plus d'infos : https://eoliashop.com

                1 réponse Dernière réponse Répondre Citer 0
                • T Hors-ligne
                  tcdsmax
                  dernière édition par

                  j'ai remis exactement comme l'exemple que vous m'avez envoyé, et ça ne change rien. les images ne s'affichent toujours pas.

                  1 réponse Dernière réponse Répondre Citer 0
                  • eoliaE Hors-ligne
                    eolia
                    dernière édition par

                    Et en exécutant directement la requête en base de données (en remplaçant '.DB_PREFIX.' par votre préfixe) ?

                    Créateur de PhenixSuite. Pour plus d'infos : https://eoliashop.com

                    1 réponse Dernière réponse Répondre Citer 0
                    • T Hors-ligne
                      tcdsmax
                      dernière édition par

                      @eolia a dit dans Images sur les BL ne s'affichent pas :

                      $product['product_attribute_id']

                      J'ai voulu essayer, mais du coup, je ne sais pas quoi mettre comme valeur pour $product['product_attribute_id'].
                      Ce champ n'existe pas dans la table product.

                      1 réponse Dernière réponse Répondre Citer 0
                      • eoliaE Hors-ligne
                        eolia
                        dernière édition par

                        Pouvez-vous m'envoyer un accès ftp par mail à eolia@eoliashop.com ?
                        Ca ira plus vite 😉

                        Créateur de PhenixSuite. Pour plus d'infos : https://eoliashop.com

                        1 réponse Dernière réponse Répondre Citer 0
                        • eoliaE Hors-ligne
                          eolia
                          dernière édition par

                          Ok, trouvé et corrigé.
                          Il y avait un mélange entre les 2 variables de configuration d'affichage des images pour les factures et/ou bon de livraison.
                          Le correctif sera appliqué dans la 26 (fonctionnel chez vous en attendant).

                          Créateur de PhenixSuite. Pour plus d'infos : https://eoliashop.com

                          1 réponse Dernière réponse Répondre Citer 0
                          • T Hors-ligne
                            tcdsmax
                            dernière édition par

                            super,
                            merci bcp

                            1 réponse Dernière réponse Répondre Citer 0
                            • Premier message
                              Dernier message
                            bug
                            26 sujets
                            1.6
                            24 sujets
                            front-office
                            11 sujets
                            1.5
                            8 sujets
                            1.7
                            5 sujets
                            système
                            4 sujets
                            administration
                            3 sujets
                            hack
                            3 sujets
                            module
                            3 sujets
                            performance
                            3 sujets
                            smtp
                            3 sujets
                            transporteurs
                            3 sujets
                            dashboard
                            2 sujets
                            https
                            2 sujets
                            paypal
                            2 sujets
                            promotions
                            2 sujets