it-swarm.com.de

Wie erhalte ich das Image eines Produkts in Magento?

Ich arbeite mit Version 1.3.2.1, Ich hatte jedoch auf meinem Server-Server Magento 1.3.0so.

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

funktioniert nicht bei der Installation des Clients.

Bei der Überprüfung der Ergebnisse, die von Magento zurückgegeben werden, gibt Version 1.3.0 tatsächlich eine URL zurück, obwohl sie auf den Medienordner der Skin verweist.

Gibt es eine Möglichkeit, den absoluten Bildpfad für das Bild abzurufen?
Oder sollte ich woanders Änderungen vornehmen, die Magento mitteilten, dass sich das Medienverzeichnis im Stammverzeichnis befinden sollte?

46
lock
echo $_product->getImageUrl();

Diese Methode der Product-Klasse sollte den Trick für Sie tun.

53
silvo

In einigen Fällen können Sie versuchen, $this-> durch Mage:: zu ersetzen. Sie müssen in einen String konvertieren.

In meinem Fall verwende ich die DirectResize-Erweiterung(direkte Verbindung) , daher lautet mein Code folgendermaßen:

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

Die Ratio-Optionen (3. Parameter) sind: 

  • nicht proportional Das Bild wird an den Werten für Breite und Höhe angepasst. 
  • proportional, basierend auf dem Width-Wert 2
  • proportional, basierend auf dem Height-Wert 3
  • proportional für das neue Bild kann in die Werte für Breite und Höhe passen. 4
  • proportional. Das neue Bild wird einen Bereich mit den Werten für Breite und Höhe abdecken.

Update: andere Infos und Versionen hier


Der übliche Weg, ohne Plugin wäre:

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

Sie können 'image' durch 'small_image' oder 'thumbnail' ersetzen.

32
Ricardo Martins

Ich musste das kürzlich auch tun ... so bin ich dazu gekommen:

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

Hoffe das hilft dir!

13
Remy

Auf diese Weise habe ich festgestellt, dass alle Bilddaten für alle Produkte in einer Sammlung geladen werden. Ich bin im Moment nicht sicher, warum es notwendig ist, von Mage :: getModel zu Mage :: Helper zu wechseln und das Produkt neu zu laden, aber es muss getan werden. Ich habe diesen Code aus der magento image soap api zurückentwickelt, daher bin ich mir ziemlich sicher, dass er korrekt ist.

Ich habe es so eingestellt, dass Produkte mit einem Vendor-Code von "39" geladen werden. Sie können dies jedoch in ein beliebiges Attribut ändern oder einfach alle Produkte laden oder eine beliebige Sammlung laden (einschließlich der Sammlungen in den HTML-Dateien, in denen die aktuell aktiven Produkte angezeigt werden der Bildschirm!)

$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);
    }

}
8
Mitch Thompson

Zuerst müssen Sie überprüfen, ob das Basisbild, das kleine Bild und das Miniaturbild im Magento-Administrator ausgewählt sind.

admin-> Katalog-> Produkt verwalten> Produkt-> Image

Wählen Sie dann Ihre Bildrollen aus (Basis, klein, Miniaturansicht).enter image description here

Dann rufen Sie das Bild mit auf 

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

Hoffe das hilft dir. 

5
Gowri
// 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;


}
4
Suma Gowda
<img src='.$this->helper('catalog/image')->init($product, 'small_image')->resize(225, 225).' width=\'225\' height=\'225\'/>
4
Arthur Yakovlev

Wenn Sie das Produktsammlungsobjekt haben, wie:

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

Jetzt können Sie mit $_product->getSku() eine Produktsku erhalten, wenn Sie den Image-Pfad nicht mit aufrufen können 

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

Oder 

$_product->getImageUrl();

Dann können Sie einen kleinen Code hinzufügen 

$productModel = Mage::getModel('catalog/product');
$_prod = $productModel->loadByAttribute('sku', $_product->getSku()); 
$_prod->getImageUrl();
3
Shiv Kumar Sah

Sie benötigen den eingestellten Bildtyp: small_image oder image 

echo $this->helper('catalog/image')->init($_product, 'small_image')->resize(163, 100);
2
alex
$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 
2
Vikrant 33

holen Sie sich Produktbilder in Magento anhand der Produkt-ID

    $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'];
            }
1
(string)Mage::helper('catalog/image')->init($product, 'image');

dadurch erhalten Sie eine Image-URL, auch wenn das Image auf CDN gehostet wird.

0
Hari Krishnan