注文メールで商品画像を表示するために、次のコードを template/email/order/items/order/default.phtml に記述しました。
<?php
$_product = Mage::getModel('catalog/product')
->setStoreId($_item->getOrder()->getStoreId())
->load($_item->getProductId());
?>
<img src="<?php echo Mage::helper('catalog/image')
->init($_product, 'image')
->constrainOnly(TRUE)
->keepAspectRatio(TRUE)
->keepFrame(FALSE)
->resize(50,50); ?>"
alt="<?php echo $_item->getName() ?>" />
それは正常に動作します。オーダーメールにリサイズした商品画像を表示します。
ただし、問題が 1 つあります。
製品イメージはmedia/catalog/product/cache ディレクトリから取得されます。また、Magento Admin (システム > キャッシュ管理) からイメージ キャッシュをフラッシュすると、以前に表示されていた製品イメージが注文メールに表示されません。これは、イメージ キャッシュをフラッシュすると、media/catalog/product/cacheディレクトリからすべてのキャッシュ イメージがクリアされるためです。
この問題の適切な解決策は何でしょうか? 注文メールで商品画像を表示するのは良い考えですか?