Magento 自定义追加销售图片未显示

Magento custom Upsell image not showing

我遇到了一个问题,我无法将名为 upsell 的自定义属性显示为我的加售图片。

属性信息
属性代码:加售
范围: 商店视图
店主的目录输入类型: 媒体图片
适用于: 所有产品类型

我已经在 skin/frontend/.../images/catalog/product/placeholder/

中创建了缩略图

这是显示图像的代码

<img src="<?php echo $this->helper('catalog/image')->init($_item, 'upsell')->constrainOnly(FALSE)->keepAspectRatio(TRUE)->keepFrame(FALSE)->resize(150); ?>" alt="<?php echo $this->htmlEscape($_item->getName()) ?>" />

如果我将 ($_item, 'upsell') 更改为 ($_item, 'thumbnail'),它会显示正确的缩略图。

我是不是在创建属性的过程中遗漏了什么?

ayTo调用您可以使用的图像: $this->helper('catalog/image')->init($_product,'product_details_image')->resize()

完整的脚本是:

<?php
$_detailsImg = $this->helper('catalog/image')->init($_product,'product_details_image')->resize(); 

if ($_detailsImg != 'no_selection'):
    $_detailsImg ='<img src="'.$this->helper('catalog/image')->init($_product, 'product_details_image')->resize().'" alt="'.$this->htmlEscape($this->getImageLabel()).' "/>';
    echo $_helper->productAttribute($_product, $_detailsImg , 'product_details_image');
endif;

?>

请将 product_details_image 更改为您的属性图片代码。

如果您没有为产品分配图像,您将收到此错误:找不到图像文件。在(变量/报告) 所以要解决这个问题,请创建一个与属性代码 (product_details_image.jpg) 同名的图像作为占位符并将其添加到: skin/frontend/base/default/images/catalog/product/placeholder/ 您也可以将它添加到您的皮肤文件夹中。这就对了。

编辑:

我会再次重写 upsell.phtml,获取所有 id,将其添加到调用产品集合的数组中,按 id 过滤,然后您就可以调用任何属性,包括媒体图像 - 我可以确认这有效对我来说

编辑:

这听起来可能很愚蠢,但我找不到任何其他方法,我不得不为每个产品加载集合我希望有人能找到其他方法。

我确实尝试调用一个集合并使用产品 ID(向上销售产品 ID)过滤它,但它没有用。

<?php if(count($this->getItemCollection()->getItems())): 
    $items = $this->getItemCollection()->getItems();
    ?>
<div class="box-up-sell">
    <ul class="products-grid up-sell-grid">
        <?php foreach ($items as $item):  ?>
            <li class="item">
                <?php $product = Mage::getModel('catalog/product')->load($item->getId()); ?>
                <span><?php echo $product->getName(); ?></span>
                <img src="<?php echo Mage::helper('catalog/image')->init($product, 'measurements_guide_image')->resize(200, 200); ?>" alt="">
            </li>
        <?php endforeach ?>
    </ul>
</div>
<?php endif ?>

您需要将此媒体属性添加到产品平面设置中:

    <frontend>
    <product>
        <collection>
            <attributes>
                  <upsell/>
            </attributes>
        </collection>
    </product>
</frontend>

在我的模块 config.xml 的这段代码中,然后你需要从索引管理中重新索引。