magento - 来自可配置产品的图像,使用简单的产品

时间:2012-08-06 19:00:40

标签: php magento thumbnails

谁能帮我解决这个PHP代码难题? (为了记录,我不是一个php程序员)

我想显示缩略图(用于在销售订单屏幕和新订单邮件中使用)

简单的产品不是问题。 我有这个代码:

<?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>

这很好用。当我有一个与可配置产品相​​关的简单产品时,变得越来越困难。 可配置产品的“孩子”没有包含图像,只有可配置产品。 (见截图,第一个产品是带有图像的可配置产品,其余的都是简单的产品“孩子们”没有照片)

enter image description here

使用上面的代码我只能看到图像的占位符。如何调用可配置产品的图像?

我在专用服务器上使用magento 1.6.2.0(在ubuntu 10.04lts服务器上运行)

1 个答案:

答案 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);
}

假设您已为每个子产品上传了图片。

但是,正如我所说,我对每个属性选项的样本感兴趣,但这并不能满足我的需求。这就是我将图像与属性本身联系起来的原因。