私の問題:
クラスによって提供されるカットダウンされた製品オブジェクトからメインの製品画像を取得する必要があります。Mage_Bundle_Model_Resource_Price_Index
問題を示す私のコード:
$_product = $this->getProduct();
$_options = Mage::helper('core')->decorateArray($this->getOptions());
foreach($_options as $_option):
$_selections = $_option->getSelections();
foreach ($_option->getSelections() as $tmpsel) {
var_dump($tmpsel->getImageUrl());
}
私のプレースホルダー画像を返します:
http://dev.dev/media/catalog/product/cache/7/image/265x/0dc2d03fe217f8c83829496872af24a0/placeholder/default/logo_3.jpg
私の恐ろしくてハックな回避策:
正しい画像の URL を取得するために、まったく新しい製品オブジェクトをロードする必要がありましたが、これは非常に非効率的です。
foreach ($_option->getSelections() as $tmpsel) {
$product = Mage::getModel("catalog/product")->load($tmpsel->getId());
$image = Mage::helper('catalog/image')->init($product, 'image');
var_dump($image."");
}
これは正しく返されます:
http://dev.dev/media/catalog/product/cache/7/image/0dc2d03fe217f8c83829496872af24a0/M/P/MP1428219-107-Main.jpg
私がしたいこと:
catalog/image
選択 ($tmpsel) でヘルパーを使用できるようにしたいのですが、試してみると、プレースホルダー イメージが再び表示されてしまいます。
foreach ($_option->getSelections() as $tmpsel) {
$image = Mage::helper('catalog/image')->init($tmpsel, 'image');
var_dump($image."");
}
追加情報:
ここに追加するのに役立つと思うものは何でも
カットダウン製品のオブジェクトには、画像への参照が含まれています
'small_image' => string '/M/P/MP1428219-107-Main.jpg'
'thumbnail' => string '/M/P/MP1428219-107-Main.jpg'
getSelection() の説明
: ./app/code/core/Mage/Bundle/Model/Resource/Price/Index.php
* Retrieve bundle options with selections and prices by product
この関数は低レベルの SQL を使用してコレクションを生成するため、必要に応じていつでも拡張してオプションを追加できますが、どのオプションかはわかりません。
読んでくれてありがとう、誰かが私にこれを行う良い方法を教えてくれることを願っています。