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 的这段代码中,然后你需要从索引管理中重新索引。
我遇到了一个问题,我无法将名为 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 的这段代码中,然后你需要从索引管理中重新索引。