Featured products on Magento frontpage

Featured Image

Featured Products by Inchoo blog articleNote: This is one of our older posts that describes how to add featured product to the Magento home page. Meanwhile, we developed a Magento Community extension: Featured Products by Inchoo. We advise you to use it with Magento Connect in case you need featured products functionality.

Old article content is below:

This tutorial was developed with the help from brandondrew‘s Magento wiki post How To Create a Featured Product. Original tutorial placed featured products in each category to the top of category display. This one will place them to the Magento frontpage as I believe this is something many users will require.

What is featured product?
The Featured Product is a product with an attribute added from the administrative UI. When the administrator selects “Yes” in the “Featured” attribute, that product will be displayed in a content block on the category page.

Take a look at TeraFlex Suspensions to see this work in action on live site.

Step-by-step guide

Step 1: Create new Featured attribute

Create a new attribute by going to Catalog > Attributes > Manage Attributes > Add New Attribute.

Attribute Properties

  • Attribute Identifier: featured
  • Scope: Store View
  • Catalog Input Type for Store Owner: Yes/No
  • Unique Value (not shared with other products): No
  • Values Required: No
  • Input Validation for Store Owner: None
  • Apply To: All Product Types

Front End Properties

  • Use in quick search: No
  • Use in advanced search: Yes
  • Comparable on Front-end: No
  • Use In Layered Navigation (Can be used only with catalog input type ‘Dropdown’): No
  • Visible on Catalog Pages on Front-end: Yes

Manage Label/Options

  • Default: Featured Product
  • English: Featured Product

Save the new attribute and go to Catalog ? Attributes ? Manage Attributes Sets to add the attribute to the default feature set.

Step 2: Create new block class that will instantiate the featured product

Create a new file, and directories: app/code/local/MyCompany/Catalog/Block/Product/Featured.php

< ?php
class MyCompany_Catalog_Block_Product_Featured extends Mage_Catalog_Block_Product_Abstract
{
public function getFeaturedProducts() {
$resource = Mage::getSingleton('core/resource');
$read = $resource->getConnection('catalog_read');
$productEntityIntTable = (string)Mage::getConfig()->getTablePrefix() . 'catalog_product_entity_int';
$eavAttributeTable = $resource->getTableName('eav/attribute');
$categoryProductTable = $resource->getTableName('catalog/category_product');

$select = $read->select()
->distinct(true)
->from(array('cp'=>$categoryProductTable), 'product_id')
->join(array('pei'=>$productEntityIntTable), 'pei.entity_id=cp.product_id', array())
->joinNatural(array('ea'=>$eavAttributeTable))
->where('pei.value=1')
->where('ea.attribute_code="featured"');

$res = $read->fetchAll($select);
return $res;
}
}
?>

Step 3: Extend Mage_Page_Block_Html

Create a new file, and directories: app/code/local/MyCompany/Page/Block/Html.php

< ?php

class MyCompany_Mage_Page_Block_Html extends Mage_Page_Block_Html
{
public function getFeaturedProductHtml()
{
return $this->getBlockHtml('product_featured');
}
}

Step 4: Add new blocks to the app/etc/local.xml

Add the following inside the config global tag:

<blocks>
<catalog>
<rewrite>
<product_featured>MyCompany_Catalog_Block_Product_Featured</product_featured>
</rewrite>
</catalog>
</blocks>

Step 5: echo featured products HTML

Place the following code to the file: app/design/frontend/default/default/template/catalog/product/featured.phtml

< ?php $featured_products = $this->getFeaturedProducts(); ?>
< ?php shuffle($featured_products); ?>
<div class="box recently" style="padding-left:15px; padding-right:15px;">
<h3>< ?php echo $this->__('Featured Products') ?></h3>
<div class="listing-type-grid  catalog-listing">
< ?php $_collectionSize = count($featured_products) ?>
<table cellspacing="0" class="recently-list" id="product-list-table">
< ?php $i=0; foreach ($featured_products as $_res): ?>
< ?php $_product = Mage::getModel('catalog/product')->load($_res['product_id']); ?>
< ?php if ($i++%3==0): ?>
<tr>
< ?php endif ?>
<td>
<div>
<a href="<?php echo $_product->getProductUrl() ?>" title="< ?php echo $this->htmlEscape($_product->getName()) ?>">
<img class="product-image" src="<?php echo $this-/>helper('catalog/image')->init($_product, 'small_image')->resize(135, 135); ?>" width="135" height="135" alt="< ?php echo $this->htmlEscape($_product->getName()) ?>" />
</a>
</div>
<p><a class="product-name" href="<?php echo $_product->getProductUrl() ?>" title="< ?php echo $this->htmlEscape($_product->getName()) ?>)">< ?php echo $this->htmlEscape($_product->getName()) ?></a></p>
< ?php echo $this->getReviewsSummaryHtml($_product, 'short') ?>
</td>
< ?php if ($i%3==0 &amp;amp;amp;amp;amp;&amp;amp;amp;amp;amp; $i!=$_collectionSize): ?>
</tr>
< ?php endif ?>
< ?php endforeach ?>
< ?php for($i;$i%3!=0;$i++): ?>
<td class="empty-product">&amp;amp;amp;amp;amp;nbsp;</td>
< ?php endfor ?>
< ?php if ($i%3==0): ?>

< ?php endif ?>
</table>
<script type="text/javascript">decorateTable('product-list-table')</script>
</div>
</div>

Step 6: Add Featured Products block to the frontpage

As the last step, you have to place featured product box to the frontpage. So, go to Magento administration to CMS> Manage Pages and select home page (or any other if you wish to place featured products in separate page)
Place the following line in Content area:

{{block type="catalog/product_featured" name="product_featured" as="product_featured" template="catalog/product/featured.phtml}}

Note: Why you copy/paste the code, be sure that you replace < ?php with proper openings. My existing WordPress module is not perfect.

106
Top

Enjoyed this post?

Subscribe to our RSS Feed, Follow us on Twitter and spread it to your friends!

Author

Tomislav is an owner and CEO of Inchoo. Enjoys traveling, traditional cuisine (from most cultures), good wine and strong rakija.

Other posts from this author

Discussion 106 Comments

1 2 3
Add Comment
  1. Toni Anicic

    @Jessica,

    This code is really old (like 2008 old) and has not been tested with Magento 1.4, we have no idea if it will work at all. This is why you should use the extension instead.

  2. Tanveer Abbas

    Hi
    I m tanveer Abbas. i m new new user in magneto. i want to facing some problems

    1- plz help me how i can create new menu and any place of page
    2- plz help me how i create catalog and show products in front page.
    3- plz help me how i can manage front hand in breadcrum and products

    i m sure and confident that u will help me in solving this problems and u will teach me and tell me step by step. i shall be thankful

    your faithful Tanver Abbas
    my email address is that tanveerabbas123@yahoo.com

    PLZ REPLY ME AS SOON AS POSSIBLE

  3. I am still trying to figure out how to display the price using this method. any suggestions?

  4. Hello!

    I want to use the featured products extension.
    The installation worked out smooth!

    But now it just shows four random products and not only the featured ones…. So all my products are featured!

    I’m running Magento 1.4.2
    And i got no clue how to solve it.

    Please help me out!

    Thanx a lot in advance!

    Grtz,
    Tyn

  5. rahul

    hi iam new for magento… can u plz tell me is it work for magento 1.5 version? can u plz tell to me any free feature product extension for magento 1.5….

    Thanks.

  6. jaam

    this code work for me thanks.a lot.

1 2 3

Add Your Comment

Please wrap all source codes with [code][/code] tags.
Top