これは、製品リストにimage
属性がロードされていないためです。通常、属性の編集時にこれを変更できますが、この属性の設定を編集することはできません。ストック属性だからだと思う。
TLDR;あなたが特定されるまで
UPDATE catalog_eav_attribute SET used_in_product_listing = 1 WHERE attribute_id = 106;
**警告、あなたはこの^^^クエリを実行してはならないcatalog_product
エンティティのためのあなたのimage
ATTRIBUTE_IDは106です!
いくつかの答えは、この方法を示唆している:あなたはこれを行うべきではありません
$_product = Mage::getModel('catalog/product')->load($_item->getProduct()->getId());
echo $this->helper('catalog/image')->init($_product, 'image')->resize(38, 38);
!これは、あなたが完全な製品の負荷を行うためです!これは効率的ではなく、さらに悪いことにループ内で実行される可能性が最も高いです!叫んで申し訳ありません!
私は通常、直接DBを編集容認していないが、この場合には、それは私のための最も簡単な解決策だった:
# First make sure we are using all the right IDs, who knows, I have seen some fubar'ed deployments
SELECT entity_type_id FROM eav_entity_type WHERE entity_type_code = 'catalog_product';
# 10
SELECT attribute_id FROM eav_attribute WHERE attribute_code = 'image' AND entity_type_id = 10;
# 106
# Now that we know the exact attribute_id....
UPDATE catalog_eav_attribute SET used_in_product_listing = 1 WHERE attribute_id = 106;
今すぐimage
属性データが自動的にすることができます、その後、ページを一覧表示する製品にロードされます
echo $this->helper('catalog/image')->init($_product, 'image');
最高の部分は、ループ全体で商品を読み込んでいないことです!これまでに行ったことはありません
**私は、これがMagentoの方法ではないと言う人がいることを知っているので、コマンドを実行するSQLセットアップスクリプトを持つモジュールを作成する方法もあります。
ようこそスタックオーバーフロー。それは絶対に自己回答になります(http://meta.stackexchange.com/questions/12513/should-i-not-answer-my-own-questions/12519#12519)あなた自身の質問ですが、投稿してください質問自体の中ではなく、実際の答えとして。これにより、回答を投票/承認することができ、「未回答」リストをより明確にするのに役立ちます。 –