我想显示缩略图(用于在销售订单屏幕和新订单邮件中使用)
简单的产品不是问题。 我有这个代码:
<?php //added for sending image with order
$product = Mage::getModel('catalog/product')
->setStoreId($_item->getOrder()->getStoreId())
->load($_item->getProductId()); ?>
<p align="center"><img src="<?php echo Mage::helper('catalog/image')->init($product, 'small_image')->resize(135); ?>" width="135" height="135" alt="" /></p>
这很好用。当我有一个与可配置产品相关的简单产品时,变得越来越困难。 可配置产品的“孩子”没有包含图像,只有可配置产品。 (见截图,第一个产品是带有图像的可配置产品,其余的都是简单的产品“孩子们”没有照片)
使用上面的代码我只能看到图像的占位符。如何调用可配置产品的图像?
我在专用服务器上使用magento 1.6.2.0(在ubuntu 10.04lts服务器上运行)
答案 0 :(得分:1)
我刚刚解决了这个问题。 Here is my solution
我遇到的问题是,与您一样,图片未链接到可配置父级的子产品(您可以上传这些产品的图片......)。我采取了将图像添加到驱动父产品变体的属性的路线,并为它们输出图像。
我的解决方案与configurable.phtml模板绑定,并使用JS来提取正确的细节(Magento使用大量的JS来表示可配置的产品,与bundle不同)。
祝你好运。这是一种痛苦。(为什么Magento不支持这种开箱即用的方式,我永远不会知道。看起来对我来说似乎是必不可少的功能......)
更新
嗯 - 这实际上取决于你想要做什么。如果您只想为每个子产品创建一个图像,您可以尝试以下方法:
$spImages = array();
foreach ($this->getAllowProducts() as $_sp) {
$spImages[$_sp->getId()] =
(string)$this->helper('catalog/image')
->init($_sp, 'small_image')
->resize(40,40);
}
假设您已为每个子产品上传了图片。
但是,正如我所说,我对每个属性选项的样本感兴趣,但这并不能满足我的需求。这就是我将图像与属性本身联系起来的原因。