Magento自定义Upsell图像无法显示

时间:2015-06-17 16:12:28

标签: php magento e-commerce magento-1.9.1

我遇到问题,我无法获取名为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'),则会显示正确的缩略图。

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

2 个答案:

答案 0 :(得分:0)

ayTo调用可以使用的图像:     $ this-&gt; helper('catalog / image') - &gt; init($ _ product,'product_details_image') - &gt; 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更改为您的属性图片代码。

如果您没有为产品分配图像,则会出现此错误:找不到图像文件。 in(var / reports) 所以要修复此问题,请创建一个与属性代码(product_details_image.jpg)同名的图像作为占位符并将其添加到: 皮肤/前端/碱/默认/图像/目录/产品/占位符/ 您也可以将它添加到您的皮肤文件夹中。这就对了。

修改

我会再次重写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 ?>

答案 1 :(得分:0)

您需要将此媒体属性添加到产品展示设置:

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

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