0

この PHP コードのパズルを解くのを誰が手伝ってくれますか? (記録のために、私はphpプログラマーではありません)

サムネイルを表示したい(受注画面や新規受注メールで利用するため)

シンプルな製品は問題ありません。私はこれのためのこのコードを持っています:

<?php //added for sending image with order
$product = Mage::getModel('catalog/product')
->setStoreId($_item->getOrder()->getStoreId())
->load($_item->getProductId());     ?>
<p align="center"><img src="<?php echo Mage::helper('catalog/image')->init($product, 'small_image')->resize(135); ?>" width="135" height="135" alt="" /></p>

これはうまくいきます。難しいのは、構成可能な製品に関連する単純な製品がある場合です。構成可能な製品の「子」にはイメージが含まれず、構成可能な製品のみが含まれます。(スクリーンショットを参照してください。最初の製品は画像付きの構成可能な製品で、残りは写真のない単純な製品「子」です)

ここに画像の説明を入力

上記のコードでは、画像のプレースホルダーのみが表示されます。構成可能な製品のイメージを呼び出すにはどうすればよいですか?

専用サーバー(ubuntu 10.04ltsサーバーで実行)でmagento 1.6.2.0を使用しています

4

1 に答える 1

1

私はちょうどこの問題を解決しました。これが私の解決策です。

私が遭遇した問題は、あなたのように、構成可能な親の子製品に画像がリンクされていないことでした(これらの製品の画像をアップロードできます...)。親製品のバリエーションを駆動する属性に画像を追加し、代わりにそれらの画像を出力するというルートを取りました。

私のソリューションは configurable.phtml テンプレートに関連付けられており、JS を使用して適切な詳細を引き出します (Magento は、バンドルとは異なり、構成可能な製品を表すために多くの JS を使用します)。

幸運を。これは苦痛です。

(そして、なぜ Magento がすぐにこれをサポートしないのか、私にはわかりません。私にとって不可欠な機能のように思えます...)

アップデート


まあ、それはあなたが何をしようとしているのかに本当に依存します。子製品ごとに 1 つの画像だけが必要な場合は、次のようなものを試すことができます。

$spImages = array();
foreach ($this->getAllowProducts() as $_sp) {
    $spImages[$_sp->getId()] = 
        (string)$this->helper('catalog/image')
            ->init($_sp, 'small_image')
            ->resize(40,40);
}

各子製品の画像をアップロードしたと仮定します。

しかし、前述したように、私は各属性オプションの見本に興味がありましたが、これは私のニーズには合いませんでした. そのため、画像を属性自体に関連付けました。

于 2012-08-06T19:08:59.290 に答える