To create a new page with products have special price only, you need to create a new block that filters discounted products.
Let’s create this file, Special.php in local/Mage/Catalog/Product/Block/ directory. You will have to create this directory path if it’s not already there.
Using below code to create new block
<?php class Mage_Catalog_Block_Product_Special extends Mage_Catalog_Block_Product_List { protected function _getProductCollection() { if (is_null($this->_productCollection)) { $categoryID = $this->getCategoryId(); if($categoryID) { $category = new Mage_Catalog_Model_Category(); $category->load($categoryID); // this is category id $collection = $category->getProductCollection(); } else { $collection = Mage::getResourceModel('catalog/product_collection'); } $todayDate = date('m/d/y'); $tomorrow = mktime(0, 0, 0, date('m'), date('d')+1, date('y')); $tomorrowDate = date('m/d/y', $tomorrow); Mage::getModel('catalog/layer')->prepareProductCollection($collection); $collection->addAttributeToSort('created_at', 'desc'); $collection->addStoreFilter(); $collection->addAttributeToFilter('special_from_date', array('date' => true, 'to' => $todayDate)) ->addAttributeToFilter('special_to_date', array('or'=> array( 0 => array('date' => true, 'from' => $tomorrowDate), 1 => array('is' => new Zend_Db_Expr('null'))) ), 'left'); $numProducts = $this->getNumProducts() ? $this->getNumProducts() : 0; $collection->setPage(1, $numProducts)->load(); $this->_productCollection = $collection; } return $this->_productCollection; } }
Revisions
- June 20, 2017 @ 16:07:29 [Current Revision] by Sharing Solution
- June 20, 2017 @ 16:07:29 by Sharing Solution
No comments yet.