要在订购电子邮件中显示产品图片,我在模板/电子邮件/订单/ 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() ?>" />
工作正常。它会在电子邮件中显示已调整大小的产品图片。
但是,我有一个问题。
产品图片来自 media / catalog / product / cache 目录。并且,如果我们从Magento Admin 系统&gt; 刷新图像缓存 缓存管理)然后显示之前显示的产品图像 没有在电子邮件中显示。这是因为刷新图像缓存会 清除 media / catalog / product / cache 目录中的所有缓存图像。
这个问题的解决方案是什么?根据电子邮件显示产品图片是一个好主意吗?
答案 0 :(得分:11)
试试这个:
<img src="<?php echo Mage::getModel('catalog/product_media_config')
->getMediaUrl($_product->getThumbnail()); ?>"
alt="<?php echo $_item->getName() ?>" />
您可以对产品的不同图像使用getSmallImage(),getThumbnail()。