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

      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