J'exécute la version 1.3.2.1, Mais sur le serveur de mon client, ils avaient Magento 1.3.0so.
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 de l'enveloppe.
Existe-t-il un moyen d'obtenir le chemin absolu de l'image?
Ou devrais-je apporter des modifications ailleurs qui indiqueraient à Magento que le répertoire des supports doit se trouver à la racine?
echo $_product->getImageUrl();
Cette méthode de la classe Product devrait faire l'affaire pour vous.
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 ressemble à ceci:
(string)Mage::helper('catalog/image')->init($_product, 'image')->directResize(150,150,3)
Les options de ratio (3ème paramètre) sont:
Mise à jour: autres informations et versions ici
La manière courante, sans plugin serait:
(string)Mage::helper('catalog/image')->init($_product, 'image')->resize(150)
Vous pouvez remplacer "image" par "small_image" ou "miniature".
J'ai récemment eu besoin de faire cela aussi…
$_product->getMediaGalleryImages()->getItemByColumnValue('label', 'LABEL_NAME')->getUrl();
J'espère que cela vous aide!
Voici comment j'ai trouvé pour charger toutes les données d'image de tous les produits d'une collection. Je ne suis pas sûr pour le moment pourquoi il est nécessaire de passer de Mage :: getModel à Mage :: helper et de recharger le produit, mais cela doit être fait. J'ai procédé à une ingénierie inverse de ce code à partir de l'api soap image de magento, je suis donc presque certain qu'il est correct.
Je l'ai configuré pour charger les produits avec un code de fournisseur égal à '39', mais vous pouvez le remplacer par n'importe quel attribut, ou simplement charger tous les produits, ou charger la collection de votre choix (y compris les collections des fichiers phtml affichant les produits en cours). l'écran!)
$collection = Mage::getModel('catalog/product')->getCollection();
$collection->addFieldToFilter(array(
array('attribute'=>'vendor_code','eq'=>'39'),
));
$collection->addAttributeToSelect('*');
foreach ($collection as $product) {
$prod = Mage::helper('catalog/product')->getProduct($product->getId(), null, null);
$attributes = $prod->getTypeInstance(true)->getSetAttributes($prod);
$galleryData = $prod->getData('media_gallery');
foreach ($galleryData['images'] as &$image) {
var_dump($image);
}
}
Vous devez d’abord vérifier que la base, la petite image et la vignette sont bien sélectionnées dans l’administrateur de Magento.
admin-> catalogue-> gérer le produit-> produit-> image
Ensuite, sélectionnez vos rôles d'image (base, petite, miniature)
Ensuite, vous appelez l'image en utilisant
echo $ this-> helper ('catalogue/image') -> init ($ _ product, 'small_image') -> resize (163, 100);
J'espère que cela vous aide.
// 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;
}
<img src='.$this->helper('catalog/image')->init($product, 'small_image')->resize(225, 225).' width=\'225\' height=\'225\'/>
Si vous avez un objet de collection de produits comme:
$collection = Mage::getModel('catalog/product')->getCollection();
Maintenant, vous pouvez obtenir le produit en utilisant $_product->getSku()
si vous ne pouvez pas obtenir le chemin de l'image avec
echo $this->helper('catalog/image')->init($_product,'small_image')->resize(135);
Ou
$_product->getImageUrl();
Ensuite, vous pouvez ajouter un petit code
$productModel = Mage::getModel('catalog/product');
$_prod = $productModel->loadByAttribute('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) { ?>
<a href = '<?php echo $model->load($_product->getData("entity_id"))->getUrl_path(); ?>'> <img src= '<?php echo $model->load($_product->getData("entity_id"))->getImageUrl(); ?>' width="75px" height="75px"/></a>
<?php echo "<br/>".$model->load($_product->getData("entity_id"))->getPrice()."<br/>". $model->load($_product->getData("entity_id"))->getSpecial_price()."<br/>".$model->load($_product->getData("entity_id"))->getName()?>
<?php
obtenir des images de produit 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_attribute_media_api");
$mediaApiItems = $mediaApi->items($loadpro->getId());
foreach ($mediaApiItems as $item) {
//for getting existing Images
echo $item['file'];
}
(string)Mage::helper('catalog/image')->init($product, 'image');
cela vous donnera l'URL de l'image, même si l'image est hébergée sur CDN.