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.
    • 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