为了在订单电子邮件中显示产品图片,我在 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() ?>" />
它工作正常。它在订单电子邮件中显示调整大小的产品图像。
但是,我有一个问题。
产品图像是从media/catalog/product/cache 目录中获取的。而且,如果我们从 Magento Admin (系统 > 缓存管理)刷新图像缓存,那么之前显示的产品图像不会显示在订单电子邮件中。这是因为刷新图像缓存会清除media/catalog/product/cache目录中的所有缓存图像。
这个问题的适当解决方案是什么?在订单电子邮件中显示产品图片是个好主意吗?