magento之定制产品特价页面
一般情况下,我们都需要有个页面来专门显示所有特价商品的页面,下面介绍一种使用magento自带的“catalog/product/list.phtml”模板来显示特价商品的方法,也是目前最好的一个方法了:
第一步:建立Block文件/app/code/local/Mage/Catalog/Block/Product/Special.php ,具体代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | class Mage_Catalog_Block_Product_Special extends Mage_Catalog_Block_Product_List { /** * Retrieve loaded category collection * * @return Mage_Eav_Model_Entity_Collection_Abstract */ protected function _getProductCollection() { $todayDate = date('m/d/y'); $tomorrow = mktime(0, 0, 0, date('m'), date('d')+1, date('y')); $tomorrowDate = date('m/d/y', $tomorrow); $collection = Mage::getResourceModel('catalogsearch/advanced_collection') ->addAttributeToSelect(Mage::getSingleton('catalog/config')->getProductAttributes()) ->addMinimalPrice() ->addStoreFilter(); Mage::getSingleton('catalog/product_status')->addVisibleFilterToCollection($collection); Mage::getSingleton('catalog/product_visibility')->addVisibleInSearchFilterToCollection($collection); $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'); return $collection; } } |
2) 建立一个CMS的page页面,编辑如下Block代码到你的内容页面里:
1 | {{block type="catalog/product_special" template="catalog/product/list.phtml"}} |
或者更新你的layout来实现,我一般是用这个方法,因为我的content是用的富文本编辑器 ,一些代码的特殊字符没办法编辑进去,还需要暂时关闭FCKeditor,所以我通常喜欢下面这个方法:
1 |
3) 这样就OK了,是不是很简单。
参考资料:
http://www.magentocommerce.com/boards/viewthread/16098/P15/
Leave a Comment