【问题标题】:Magento: Displaying product image in order emailMagento:在订单电子邮件中显示产品图片
【发布时间】:2012-09-01 22:32:28
【问题描述】:

为了在订单邮件中显示产品图片,我在 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 (System > 缓存管理) 那么之前显示的产品图片就是 未显示在订单电子邮件中。这是因为刷新图像缓存会 清除 media/catalog/product/cache 目录中的所有缓存图像。

什么是这个问题的合适解决方案?在订单电子邮件中显示产品图片是否是个好主意?

【问题讨论】:

    标签: image magento caching product


    【解决方案1】:

    试试这个:

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

    您可以使用 getSmallImage()、getThumbnail() 获取产品的不同图像。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-06-16
      • 2021-02-10
      • 1970-01-01
      • 2013-08-11
      • 2017-01-13
      • 2021-01-04
      相关资源
      最近更新 更多