Comment obtenir l’image d’un produit dans Magento?

Je cours sur la version 1.3.2.1, mais sur le serveur de mon client, Magento 1.3.0 était utilisé, donc mon code précédent pour afficher les images de ma copie locale,

echo $this->helper('catalog/image')->init($_product)->resize(163, 100); 

, ne fonctionne pas sur l’installation du client.

En regardant les résultats renvoyés par leur Magento, la version 1.3.0 renvoie en réalité une URL bien qu’elle pointe vers le dossier multimédia du skin.

Y a-t-il un moyen d’obtenir le chemin de l’image absolu pour l’image?
Ou devrais-je apporter des modifications ailleurs qui diraient à Magento que le répertoire des médias devrait être à la racine?

 echo $_product->getImageUrl(); 

Cette méthode de la classe de produit devrait vous aider.

Vous pouvez essayer de remplacer $this-> par Mage:: dans certains cas. Vous devez convertir en chaîne.

Dans mon cas, j’utilise l’extension DirectResize (lien direct) , mon code est donc le suivant:

 (ssortingng)Mage::helper('catalog/image')->init($_product, 'image')->directResize(150,150,3) 

Les options de ratio (3ème paramètre) sont:

  • aucune proportionnelle. L’image sera redimensionnée aux valeurs Largeur et Hauteur.
  • proportionnel, basé sur la valeur de largeur 2
  • proportionnel, basé sur la valeur de hauteur 3
  • proportionnelle à la nouvelle image peut tenir dans les valeurs Largeur et Hauteur. 4
  • proportionnel. La nouvelle image couvrira une zone avec les valeurs Largeur et Hauteur.

Mise à jour: autres infos et versions ici


La manière commune, sans plugin serait :

 (ssortingng)Mage::helper('catalog/image')->init($_product, 'image')->resize(150) 

Vous pouvez remplacer ‘image’ par ‘small_image’ ou ‘thumbnail’.

J’ai récemment eu besoin de faire ça aussi … voici comment je l’ai eu:

 $_product->getMediaGalleryImages()->getItemByColumnValue('label', 'LABEL_NAME')->getUrl(); 

Espérons que cela vous aide!

Voici comment j’ai trouvé pour charger toutes les données d’image pour tous les produits d’une collection. Je ne suis pas sûr pour le moment pourquoi il faut passer de Mage :: getModel à Mage :: helper et recharger le produit, mais cela doit être fait. J’ai inversé ce code à partir de l’api de soap de magento image, donc je suis sûr que c’est correct.

Je l’ai configuré pour charger des produits avec un code fournisseur égal à ’39’ mais vous pouvez changer cela en n’importe quel atsortingbut, ou simplement charger tous les produits, ou charger n’importe quelle collection (y compris les collections dans les fichiers phtml) l’écran!)

 $collection = Mage::getModel('catalog/product')->getCollection(); $collection->addFieldToFilter(array( array('atsortingbute'=>'vendor_code','eq'=>'39'), )); $collection->addAtsortingbuteToSelect('*'); foreach ($collection as $product) { $prod = Mage::helper('catalog/product')->getProduct($product->getId(), null, null); $atsortingbutes = $prod->getTypeInstance(true)->getSetAtsortingbutes($prod); $galleryData = $prod->getData('media_gallery'); foreach ($galleryData['images'] as &$image) { var_dump($image); } } 

Tout d’abord, vous devez vérifier que la base, les petites images et les vignettes sont sélectionnées dans Magento admin.

admin-> catalogue-> gérer le produit-> produit-> image

Ensuite, sélectionnez vos rôles d’image (base, petit, miniature) entrer la description de l'image ici

Ensuite, vous appelez l’image en utilisant

echo $ this-> helper (‘catalog / image’) -> init ($ _ product, ‘small_image’) -> redimensionner (163, 100);

J’espère que cela vous aidera.

 // Let's load the category Model and grab the product collection of that category $product_collection = Mage::getModel('catalog/category')->load($categoryId)->getProductCollection(); // Now let's loop through the product collection and print the ID of every product foreach($product_collection as $product) { // Get the product ID $product_id = $product->getId(); // Load the full product model based on the product ID $full_product = Mage::getModel('catalog/product')->load($product_id); // Now that we loaded the full product model, let's access all of it's data // Let's get the Product Name $product_name = $full_product->getName(); // Let's get the Product URL path $product_url = $full_product->getProductUrl(); // Let's get the Product Image URL $product_image_url = $full_product->getImageUrl(); // Let's print the product information we gathered and continue onto the next one echo $product_name; echo $product_image_url; } 
 init($product, 'small_image')->resize(225, 225).' width=\'225\' height=\'225\'/> 

Si vous avez l’object de collection de produits comme:

 $collection = Mage::getModel('catalog/product')->getCollection(); 

Maintenant, vous pouvez obtenir le produit sku en utilisant $_product->getSku() si vous ne pouvez pas obtenir de chemin d’image avec

 echo $this->helper('catalog/image')->init($_product,'small_image')->resize(135); 

Ou

 $_product->getImageUrl(); 

Ensuite, vous pouvez append un petit code

 $productModel = Mage::getModel('catalog/product'); $_prod = $productModel->loadByAtsortingbute('sku', $_product->getSku()); $_prod->getImageUrl(); 

Vous devez définir le type d’image: small_image ou image

 echo $this->helper('catalog/image')->init($_product, 'small_image')->resize(163, 100); 
 $model = Mage::getModel('catalog/product'); //getting product model $_products = $model->getCollection(); //getting product object for particular product id foreach($_products as $_product) { ?> load($_product->getData("entity_id"))->getUrl_path(); ?>'> load($_product->getData("entity_id"))->getImageUrl(); ?>' width="75px" height="75px"/> ".$model->load($_product->getData("entity_id"))->getPrice()."
". $model->load($_product->getData("entity_id"))->getSpecial_price()."
".$model->load($_product->getData("entity_id"))->getName()?>

obtenir des images de produits dans Magento en utilisant l’identifiant du produit

  $product_id = $_POST['product_id']; $storeId = Mage::app()->getStore()->getId(); $loadpro = Mage::getModel('catalog/product')->load($product_id); $mediaApi = Mage::getModel("catalog/product_atsortingbute_media_api"); $mediaApiItems = $mediaApi->items($loadpro->getId()); foreach ($mediaApiItems as $item) { //for getting existing Images echo $item['file']; } 
 (ssortingng)Mage::helper('catalog/image')->init($product, 'image'); 

Cela vous donnera une image URL, même si l’image est hébergée sur CDN.