如何在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上。