This mod does the following
- fetch all the products in a category
- dispaly them below the main picture in product view
- no need to set the related products (if your products are within the same category)
- go to app/design/frontend/your-package/your-theme/template/catalog/list/related.phtml ( make a backup of this one )
- overwrite all the codes in your related.phtml with this one
<?php
$_product = $this->getProduct();
if ($_product) {
// get collection of categories this product is associated with
$categories = $_product->getCategoryCollection()
->setPage(1, 1)
->addFieldToFilter('parent_id',"2")
->load();
// if the product is associated with any category
if ($categories->count())
foreach ($categories as $_category){
$cur_category = Mage::getModel('catalog/category')->load($_category->getId());
$prodCollection = Mage::getResourceModel('catalog/product_collection')->addCategoryFilter($_category);
Mage::getSingleton('catalog/product_status')
->addVisibleFilterToCollection($prodCollection);
Mage::getSingleton('catalog/product_visibility')
->addVisibleInCatalogFilterToCollection($prodCollection);
if($prodCollection->count() > 1) :
?><div class="related-product">
<div class="block-title">
<h4><?php echo $this->__('More from this artist...') ?></h4>
</div>
<?php $products = Mage::getResourceModel('catalog/product_collection')
->addCategoryFilter($_category)
->addAttributeToSelect('small_image'); ?>
<ol class="mini-products-list" id="block-related">
<div class="block-content">
<?php foreach ( $products as $productModel ){
$_product = Mage::getModel('catalog/product')->load($productModel->getId());
$width=100; $height=100;
$_imageUrl = $this->helper('catalog/image')->init($productModel, 'small_image')->resize($width, $height);
$currentUrl = $this->helper('core/url')->getCurrentUrl(); //SPLIT THE URL FOR QUERY STRING<br />
$rel_product = explode( "?", $currentUrl);
//SPLIT THE URL FOR CATEGORY
$cprod_url = explode( "/", $_product->getProductUrl()); //ASSIGN THE STRIPPED URL TO A VARIABLE
$isyan = $cprod_url[0].'//'.$cprod_url[2].'/'.$cprod_url[4]; //WE WILL HIDE THE PRODUCT THAT IS CURRENTLY BEING VIEWED FROM DISPLAYING ON THE RELATED PRODUCTS
if( $_product->getProductUrl() != $rel_product[0] && $isyan != $rel_product[0]){
?>
<li class="item">
<a href="<?php echo $isyan ?>" class="product-image" title="<?php echo $this->htmlEscape($_product->getName()) ?>"><img src=<?=$_imageUrl ?> width="<?=$width?>" height="<?=$height?>"/></a>
</li>
<?php }
}
?>
</div>
</ol>
</div>
<?php endif;
}
}
?>Hope this helps! Godbless!
Hi Christian!
ReplyDeleteWhich version is this for please? excellent thank you, but the url is not working in 1.6.1.
Many thanks!