Magento:在订单电子邮件中显示产品图片

Muk*_*ain 3 caching product image magento

为了在订单电子邮件中显示产品图像,我在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() ?>" />
Run Code Online (Sandbox Code Playgroud)

它工作正常.它会在电子邮件中显示已调整大小的产品图像

但是,我有一个问题.

media/catalog/product/cache 目录中获取产品映像.并且,如果我们从Magento Admin(系统>缓存管理)刷新图像缓存,则之前显示的产品图像不会显示在订单电子邮件中.这是因为刷新图像缓存将清除media/catalog/product/cache目录中的所有缓存图像.

什么是这个问题的适当解决方案?根据电子邮件显示产品图片是一个好主意吗?

小智 11

试试这个:

<img src="<?php echo Mage::getModel('catalog/product_media_config')
                 ->getMediaUrl($_product->getThumbnail()); ?>" 
 alt="<?php echo $_item->getName() ?>" />
Run Code Online (Sandbox Code Playgroud)

您可以对产品的不同图像使用getSmallImage(),getThumbnail().