如何在Magento中获得产品图片?

我在版本1.3.2.1上运行,但在我的客户端的服务器上,他们有Magento 1.3.0,所以我以前的代码显示图像为我的本地副本,

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

,不适用于客户端的安装。

看看他们的Magento返回的结果,版本1.3.0实际上返回一个URL,虽然它指向皮肤的媒体文件夹。

有没有办法获得图像的绝对图像path?
还是应该在其他地方做出更改,告诉Magento媒体目录应该位于根目录?

 echo $_product->getImageUrl(); 

产品类的这个方法应该为你做窍门。

你可以尝试在某些情况下用Mage::replace$this-> 。 你需要转换为string。

在我的情况下,我使用DirectResize扩展 (直接链接) ,所以我的代码是这样的:

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

比率选项(第三参数)是:

  • 没有比例。 图像的宽度和高度值将被调整。
  • 比例,基于宽度值2
  • 比例,基于高度值3
  • 新图像的比例可以适合宽度和高度值。 4
  • 成比例的。 新图像将覆盖宽度和高度值的区域。

更新: 这里的其他信息和版本


常见的方式, 没有插件将是

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

你可以用'small_image'或者'thumbnail'replace'image'。

我最近也需要这样做…下面是我如何做到这一点:

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

希望能帮到你!

这是我发现加载集合中所有产品的所有图像数据的方式。 目前我不确定为什么需要从Mage :: getModel切换到Mage :: helper并重新加载产品,但是必须完成。 我已经从magento image soap api中反向devise了这个代码,所以我很确定它是正确的。

我已经设置了加载供应商代码等于'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); } } 

首先,你需要validation的基础,小和Magentopipe理员select缩略图图像。

admin-> catalog->pipe理产品 – >产品 – >图像

然后select你的图像angular色(基地,小,缩略图) 在这里输入图像说明

然后你使用图像调用

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

希望这可以帮助你。

 // 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\'/> 

如果您拥有产品集合对象,如:

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

现在你可以使用$_product->getSku()获得产品sku,如果你无法获取图像path

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

要么

 $_product->getImageUrl(); 

然后你可以添加一些代码

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

你需要设置图像types:small_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 

使用产品ID在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']; } 
 (string)Mage::helper('catalog/image')->init($product, 'image'); 

这会给你图像的url,即使图像托pipe在CDN上。