I am testing my Magento development chops using a theme, and I wanted to have a filter that shows products from a particular brand. There is already a widget for showing "new_products" to show.
What I am trying to figure out is what causes the script to pull in a particular product type. Here is the code for pulling in the widget through CMS:
<div class="new_product">{{widget type="filterproducts/list" type_filter="new_products" column_count="4" limit_count="4" thumbnail_width="150" thumbnail_height="150" template="custom_template" custom_theme="filterproducts/new_products_home.phtml"}}</div>
Now when I pull up that new_products_home.phtml file I see:
<?php $_productCollection=$this->getProductCollection(); $_helper = $this->helper('catalog/output'); $_collectionSize = $_productCollection->count(); $_columnCount = $this->getColumnCount(); $thumbnailWidth = $this->getThumbnailWidth(); $thumbnailHeight = $this->getThumbnailHeight(); ?> <?php if(!$_productCollection->count()): ?> <p class="note-msg"><?php echo $this->__('There are no products matching the selection.') ?></p> <?php else: ?> <div class="category-products"> <?php $i=0; foreach ($_productCollection as $_product): ?> <?php if ($i++%$_columnCount==0): ?> <ul class="products-grid"> <?php endif ?> <li class="item<?php if(($i-1)%$_columnCount==0): ?> first<?php elseif($i%$_columnCount==0): ?> last<?php endif; ?>"> <a href="<?php echo $_product->getProductUrl() ?>" title="<?php echo $this->stripTags($this->getImageLabel($_product, 'small_image'), null, true) ?>" class="product-image"><img src="<?php echo $this->helper('catalog/image')->init($_product, 'small_image')->resize($thumbnailWidth,$thumbnailHeight); ?>" width="<?php echo $thumbnailWidth;?>" height="<?php echo $thumbnailHeight;?>" alt="<?php echo $this->stripTags($this->getImageLabel($_product, 'small_image'), null, true) ?>" /></a> <h2 class="product-name"><a href="<?php echo $_product->getProductUrl() ?>" title="<?php echo $this->stripTags($_product->getName(), null, true) ?>"><?php echo $_helper->productAttribute($_product, $_product->getName(), 'name') ?></a></h2> <!--span class="sku"><?php //echo $_product->getSku() ?></span--> <?php echo $this->getReviewsSummaryHtml($_product, 'short') ?> <?php echo $this->getPriceHtml($_product, true) ?> <div class="actions"> <?php if($_product->isSaleable()): ?> <button type="button" title="<?php echo $this->__('Add to Cart') ?>" class="button btn-cart" onclick="setLocation('<?php echo $this->getAddToCartUrl($_product) ?>')"><span><span><?php echo $this->__('Add to Cart') ?></span></span></button> <?php else: ?> <p class="availability out-of-stock"><span><?php echo $this->__('Out of stock') ?></span></p> <?php endif; ?> <!--ul class="add-to-links"> <?php //if ($this->helper('wishlist')->isAllow()) : ?> <li><a href="<?php //echo $this->helper('wishlist')->getAddUrl($_product) ?>" class="link-wishlist"><?php // echo $this->__('Add to Wishlist') ?></a></li> <?php //endif; ?> <?php //if($_compareUrl=$this->getAddToCompareUrl($_product)): ?> <li><span class="separator">|</span> <a href="<?php //echo $_compareUrl ?>" class="link-compare"><?php //echo $this->__('Add to Compare') ?></a></li> <?php //endif; ?> </ul--> </div> </li> <?php if ($i%$_columnCount==0 || $i==$_collectionSize): ?> </ul> <?php endif ?> <?php endforeach ?> <script type="text/javascript">decorateGeneric($$('ul.products-grid'), ['odd','even','first','last'])</script> </div> <?php endif; ?>
Although it is not pulling in REAL products from the theme, can someone help me with learning how to pull in specific brands? Where do I setup the brands? How does it become a "filter" and how would it work with this script?
I appreciate the help!
Pass the brand id in widget as brand_id="150". To access this in phtml file, put code $this->getBrandId(). But you need to filter collection with conditions based on this to get proper result.