如何在magento的产品视图页面中显示相关产品?

时间:2014-04-30 09:33:21

标签: magento

我希望在简短描述后在产品视图页面中显示相关产品。 我在app / design / frontend / default / your_theme / layout / catalog.xml页面中添加了以下代码

<block type="catalog/product_list_related" name="catalog.product.related" as="related" template="catalog/product/list/related.phtml"/> `under <reference name="content">` section.

并评论以下代码

 <reference name="right">
            <block type="catalog/product_list_related" name="catalog.product.related" before="-" template="catalog/product/list/related.phtml"/>
        </reference>

之后我创建了一个related.phtml页面并将其放在app/design/frontend/default/your_theme/template/catalod/product/list/部分。 通过编写此代码app/design/frontend/default/your_theme/template/catalod/product/view.phtml<?php echo $this->getChildHtml('related'); ?>页面中调用此related.phtml页面。还清除缓存。然后它也无法调用页面 如果有人知道这一点,请帮助我。 谢谢!

4 个答案:

答案 0 :(得分:8)

您好我有自定义代码来获取相关产品,您可以在要显示相关产品的地方添加此代码

<?php
foreach ($_product->getRelatedLinkCollection() as $link) {
$dats= $link->getLinkedProductId();
}
if($dats)
{
?>
<div class="block block-related">
<div class="block-title">
<strong><span><?php echo $this->__('Related Products') ?></span></strong>
</div>
<div class="block-content">
<ol class="mini-products-list" id="block-related">
<?php $bk=1;
foreach ($_product->getRelatedLinkCollection() as $link) {
if($bk=='4'){ break; }
else{
$relatedData[$link->getLinkedProductId()]['position'] = $link->getPosition();
$itsProducts[] = $link->getLinkedProductId();

$model = Mage::getModel('catalog/product') ;//getting product model

$_product = $model->load($link->getLinkedProductId()); 
//getting product object for particular product id

//echo $_product->getShortDescription(); //product's short description
//echo $_product->getDescription(); // product's long description
//echo $_product->getName(); //product name
//echo $_product->getPrice(); //product's regular Price
//echo $_product->getSpecialPrice(); //product's special Price
//echo $_product->getProductUrl(); //product url
//echo $_product->getImageUrl(); //product's image url
//echo $_product->getSmallImageUrl(); //product's small image url
//echo $_product->getThumbnailUrl(); //product's thumbnail image url  ?>

<li class="item">
<div class="product">
<a href="<?php echo $_product->getProductUrl(); ?>">
<img src="<?php echo $_product->getImageUrl(); ?>"
width="110" height="110" alt="1"/>    </a>
<div class="product-details">
<h2 class="product-name-related">
<a title="<?php echo $_product->getName(); ?>"href="
<?php echo  $_product->getProductUrl(); ?>">
<?php echo $_product->getName(); ?></a><div class="price-box">
<?php echo '$'.number_format($_product->getPrice(),2); ?></div></h2>
<button class="button btn-cart" onclick="setLocation('
<?php echo  Mage::helper('checkout/cart')->getAddUrl($_product); ?>')"
title="Add to  Cart" type="button"><span><span>Add to Cart</span></span></button>
</div>
</div>
</li>
<?php
$bk++;
}
}    
?>
</ol>
</div>
</div>
<?php
}
?>

答案 1 :(得分:2)

尝试添加

<block type="catalog/product_list_related" name="catalog.product.related" as="related" template="catalog/product/list/related.phtml"/>

下的

<block type="catalog/product_view" name="product.info" template="catalog/product/view.phtml">

如下所示catalog.xml

<reference name="content">
            <block type="catalog/product_view" name="product.info" template="catalog/product/view.phtml">
                <block type="catalog/product_list_related" name="catalog.product.related" as="related" template="catalog/product/list/related.phtml"/>

其余的看起来很好。清除缓存并查看其是否有效

修改:我建议不要编辑catalog.xml文件,而是在local.xml文件夹中创建app/design/frontend/your_package/your_theme/layout文件,并在此文件中添加代码,以下

<catalog_product_view>
    <reference name="product.info">
        <block type="catalog/product_list_related" name="catalog.product.related" as="related" template="catalog/product/list/related.phtml"/>
    </reference>
    <reference name="right">
        <remove name="catalog.product.related"/>
    </reference>
</catalog_product_view>

请参阅here如何创建local.xml文件

答案 2 :(得分:2)

从view.phtml

中删除对block related_products的引用
<?php //echo $this->getChildHtml('related_products') ?>

然后将其添加到view.phtml

中的任何位置
<?php echo $this->getBlockHtml('catalog.product.related'); ?>

答案 3 :(得分:0)

使用以下代码展示相关产品以及产品视图页。

<catalog_product_view>
    <remove name="catalog.product.related" />
    <reference name="product.info">
        <block type="catalog/product_list_related" name="catalog.product.related" as="related" template="catalog/product/list/related.phtml"/>
    </reference>
</catalog_product_view>

然后在view.phtml中调用此

<?php
echo $this->getLayout()->getBlock(‘catalog.product.related’)->toHtml()
?>