2010-03-18 59 views
45

我在1.3.2.1版本, 運行,但我的客戶的服務器上他們的Magento 1.3.0 所以我以前的代碼,以我的本地副本顯示圖像,如何在Magento中獲取產品圖片?

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

,不會對工作客戶端的安裝。

看着他們的Magento返回的結果,1.3.0版本實際上會返回一個URL,儘管它指向了皮膚的媒體文件夾。

有沒有辦法獲得圖像的絕對圖像路徑?
或者我應該在其他地方進行更改,以告訴Magento媒體目錄應位於根目錄上?

+1

我的壞,它不從皮膚目錄 它正巧,它加載默認無圖像中發現(在皮膚上的文件夾)的情況下,產品的形象沒有找到 – lock 2010-03-19 01:21:30

+0

(串)法師加載圖像:: helper('catalog/image') - > init($ product,'image'); – 2017-04-21 11:56:20

回答

2

您需要設定的圖像類型:small_image或圖像

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

我用這個替換了我的線,問題仍然存在:( – lock 2010-03-19 06:05:51

+0

我也有同樣的問題,在IE瀏覽器和Chrome。 但在FF,Safari和Opera的作品 – itsazzad 2011-08-17 15:08:28

51
echo $_product->getImageUrl(); 

的產品類的這個方法應該做的伎倆爲您服務。

+6

不要忘了添加這個: - > addAttributeToSelect('image' ) – 2013-05-31 01:32:07

+0

謝謝,它也幫助我 – 2014-02-18 08:43:21

+0

@HaydenThing你是救星! – AlbertSamuel 2016-05-11 00:59:03

13

最近,我需要做的這個問題,以及......這裏就是我得到了它:

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

希望幫助你!

+1

這是完美的。方便獲得產品視圖外的特定圖像(產品橫幅,說)。 – pspahn 2012-03-28 19:40:20

+0

Cool。Works像一個魅力。謝謝。 – 2012-04-24 06:00:55

5

首先您需要驗證在Magento管理員中選擇的基礎,小和縮略圖圖像。

管理 - >目錄 - >管理產品 - >產品 - >圖像

然後選擇你的形象角色(基地,小,縮略圖)enter image description here

然後調用使用

圖像

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

希望這可以幫助你。

+1

resize does not work,still it shows 210 x 210 image。試圖清除緩存和索引 – 2015-08-13 04:29:29

31

在某些情況下,您可以嘗試用Mage::代替$this->。你需要轉換爲字符串。

在我的情況我使用DirectResize extension(direct link),所以我的代碼是這樣的:

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

比率選項(第三個參數)爲:

  • 沒有成比例的。圖像的寬度和高度值將被調整。
  • 成比例的,基於所述寬度值2
  • 成比例的,基於所述高度值3
  • 比例爲新的圖像可以容納在寬度和高度值。 4
  • 成比例。新圖像將覆蓋寬度和高度值的區域。

更新:其他信息和版本here


的常用方法,無插件將

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

您可以替換'形象 'small_image' 或'縮略圖」。

+1

在你看來,爲什麼'圖像'將無法正常工作,'small_image'將在我的設置?'圖像'總是顯示標準的Magento圖像(但在我的產品中,我指定了所有三個圖像,基本,小和拇指)。直到幾天前,'形象'在起作用,然後突然停下來。沒有更新或其他後端更改。 – 2015-01-23 07:51:15

4
// 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; 


} 
2
$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 
8

這裏是我發現加載集合中的所有產品的所有圖像數據的方式。目前我不確定爲什麼需要從Mage :: getModel切換到Mage :: helper並重新加載產品,但必須完成。我已經從magento image soap api逆向設計了這段代碼,所以我很確定它的正確性。

我已經設置爲加載供應商代碼等於'39'的產品,但您可以將其更改爲任何屬性,或者只加載所有產品,或者加載所需的任何集合(包括phtml文件中的集合顯示產品目前在屏幕上)

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

} 
3

如果你的產品集合對象,如:!使用$_product->getSku()

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

現在你可以得到產品SKU,如果你不能與

0獲得圖片路徑
echo $this->helper('catalog/image')->init($_product,'small_image')->resize(135); 

或者

$_product->getImageUrl(); 

然後你可以使用的產品ID添加一些代碼

$productModel = Mage::getModel('catalog/product'); 
$_prod = $productModel->loadByAttribute('sku', $_product->getSku()); 
$_prod->getImageUrl(); 
4
<img src='.$this->helper('catalog/image')->init($product, 'small_image')->resize(225, 225).' width=\'225\' height=\'225\'/> 
1

Magento中獲取產品圖片

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

這會給你圖像的網址,即使圖像託管在CDN上。