Criar listagem de produtos novos, mais visualizados e mais vendidos no magento
2 ) Adicionar o seguinte código:
<?php
/**
* Lista Produtos novos
* @author Carlos Gartner <carlos@trezo.com.br>
*/
class Mage_Catalog_Block_Product_New extends Mage_Catalog_Block_Product_List
{
/**
* Retrieve loaded category collection
*
* @return Mage_Eav_Model_Entity_Collection_Abstract
**/
protected function _getProductCollection()
{
$todayDate = Mage::app()->getLocale()->date()->toString(Varien_Date::DATETIME_INTERNAL_FORMAT);
$collection = Mage::getResourceModel('catalog/product_collection');
$collection->setVisibility(Mage::getSingleton('catalog/product_visibility')->getVisibleInCatalogIds());
$collection = $this->_addProductAttributesAndPrices($collection)
->addStoreFilter()
->addAttributeToFilter('news_from_date', array('date' => true, 'to' => $todayDate))
->addAttributeToFilter('news_to_date', array('or'=> array(
0 => array('date' => true, 'from' => $todayDate),
1 => array('is' => new Zend_Db_Expr('null')))
), 'left')
->addAttributeToSort('news_from_date', 'desc')
->setPageSize($this->getTotal())
->setCurPage(1);
$this->setProductCollection($collection);
return $collection;
}
}
<?php echo $this->getLayout()->createBlock('catalog/product_new')->setTotal('12')->setTemplate('home/tab-item.phtml')->toHtml(); ?>
2 ) Adicionar o seguinte código:
<?php
/**
* Lista Produtos Mais Vendidos
* @author Carlos Gartner <carlos@trezo.com.br>
*/
class Mage_Catalog_Block_Product_Bestseller extends Mage_Catalog_Block_Product_List
{
public function __construct() {
parent::__construct();
$storeId = Mage::app()->getStore()->getId();
$products = Mage::getResourceModel('reports/product_collection')
->addOrderedQty()
->addAttributeToSelect('*')
->addAttributeToSelect(array('name', 'price', 'small_image'))
->setStoreId($storeId)
->addStoreFilter($storeId)
->setOrder('ordered_qty', 'desc'); // most best sellers on top
Mage::getSingleton('catalog/product_status')->addVisibleFilterToCollection($products);
Mage::getSingleton('catalog/product_visibility')->addVisibleInCatalogFilterToCollection($products);
$products->setPageSize(3)->setCurPage(1);
$this->setProductCollection($products);
}
/**
* Retrieve loaded category collection
**/
protected function _getProductCollection()
{
return $this->getProductCollection();
}
}
<?php echo $this->getLayout()->createBlock('catalog/product_bestseller')->setTotal('12')->setTemplate('home/tab-item.phtml')->toHtml(); ?>
2 ) Adicionar o seguinte código:
<?php
/**
* Lista Produtos Mais visualizados
* @author Carlos Gartner <carlos@trezo.com.br>
*/
class Mage_Catalog_Block_Product_Mostviewed extends Mage_Catalog_Block_Product_List
{
public function __construct() {
parent::__construct();
$storeId = Mage::app()->getStore()->getId();
$products = Mage::getResourceModel('reports/product_collection')
->addOrderedQty()
->addAttributeToSelect('*')
->addAttributeToSelect(array('name', 'price', 'small_image'))
->setStoreId($storeId)
->addStoreFilter($storeId)
->addViewsCount();
Mage::getSingleton('catalog/product_status')->addVisibleFilterToCollection($products);
Mage::getSingleton('catalog/product_visibility')->addVisibleInCatalogFilterToCollection($products);
$products->setPageSize($this->getTotal())->setCurPage(1);
$this->setProductCollection($products);
}
/**
* Retrieve loaded category collection
*
* @return Mage_Eav_Model_Entity_Collection_Abstract
**/
protected function _getProductCollection()
{
return $this->getProductCollection();
}
}
<?php echo $this->getLayout()->createBlock('catalog/product_mostviewed')->setTotal('12')->setTemplate('home/tab-item.phtml')->toHtml(); ?>