バージョン1.3.2.1で実行していますが、クライアントのサーバーにはMagento 1.3.0があったため、以前のコードでローカルコピーの画像を表示し、
echo $this->helper('catalog/image')->init($_product)->resize(163, 100);
、クライアントのインストールでは機能しません。
Magentoが返す結果を見ると、バージョン1.3.0は実際にはURLを返しますが、スキンのメディアフォルダーを指します。
画像の絶対画像パスを取得する方法はありますか?
または、Magentoにメディアディレクトリがルート上にあることを通知する他の場所で変更を行う必要がありますか?
echo $_product->getImageUrl();
Productクラスのこのメソッドは、あなたのためのトリックを行う必要があります。
場合によっては、$this->
をMage::
に置き換えることができます。文字列に変換する必要があります。
私の場合、 DirectResize extension(direct link) を使用しているため、コードは次のようになります。
(string)Mage::helper('catalog/image')->init($_product, 'image')->directResize(150,150,3)
比率オプション(3番目のパラメーター)は次のとおりです。
更新:その他の情報とバージョン こちら
一般的な方法、プラグインなしでは(:
(string)Mage::helper('catalog/image')->init($_product, 'image')->resize(150)
「image」を「small_image」または「thumbnail」に置き換えることができます。
私も最近これを行う必要がありました...ここに私がそれを得た方法があります:
$_product->getMediaGalleryImages()->getItemByColumnValue('label', 'LABEL_NAME')->getUrl();
それがあなたを助けることを願っています!
コレクション内のすべての製品のすべての画像データを読み込む方法を以下に示します。現時点では、なぜMage :: getModelからMage :: helperに切り替えて製品をリロードする必要があるのかわかりませんが、それを行う必要があります。私はこのコードをmagentoイメージ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);
}
}
まず、Magento adminでベース画像、小さい画像、およびサムネイル画像が選択されていることを確認する必要があります。
admin-> catalog-> manage product-> product-> image
次に、画像の役割(ベース、スモール、サムネイル)を選択します
次に、画像を使用して呼び出します
echo $ this-> helper( 'catalog/image')-> init($ _ product、 'small_image')-> resize(163、100);
これがお役に立てば幸いです。
<img src='.$this->helper('catalog/image')->init($product, 'small_image')->resize(225, 225).' width=\'225\' height=\'225\'/>
// 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;
}
次のような製品コレクションオブジェクトがある場合:
_$collection = Mage::getModel('catalog/product')->getCollection();
_
これで、イメージパスを取得できない場合は、$_product->getSku()
を使用して製品skuを取得できます
_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();
_
画像タイプを設定する必要があります:small_imageまたは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');
これにより、画像がCDNでホストされている場合でも、画像のURLが表示されます。