如何在类别视图页面上获得促销产品(特价)。产品必须来自相同的类别或子类别。感谢。
答案 0 :(得分:1)
首先,您必须从
编辑list.phtml
应用程序/设计/前端/ YOURPACKAGE / YOURTHEME /模板/目录/产品/ list.phtml
并在文件开头
下面写下代码 $_productCollection=$this->getLoadedProductCollection()
// 请记住,您必须对此行发表评论
Mage::getSingleton('core/session', array('name' => 'frontend'));
$_productCollection = Mage::getResourceModel('catalogsearch/advanced_collection')
->addAttributeToSelect(Mage::getSingleton('catalog/config')->getProductAttributes())
->addMinimalPrice()
->addStoreFilter();
Mage::getSingleton('catalog/product_status')->addVisibleFilterToCollection($_productCollection);
Mage::getSingleton('catalog/product_visibility')->addVisibleInSearchFilterToCollection($_productCollection);
$todayDate = date('m/d/y');
$tomorrow = mktime(0, 0, 0, date('m'), date('d'), date('y'));
$tomorrowDate = date('m/d/y', $tomorrow);
$currentCategory = Mage::registry('current_category');
$_productCollection->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')
->addAttributeToFilter('category_id', array(
array('finset' => $currentCategory->getId()))
;
并对此行发表评论
$_productCollection=$this->getLoadedProductCollection();
如果您有任何疑问,请告诉我
答案 1 :(得分:-1)
最简单的方法是复制List块并添加所需的过滤器。
您可能需要将Magento管理区域中的属性修改为“在产品列表中显示”。
例如:
{{block type="catalog/product_list" template="catalog/product/list.phtml"}}
这将使用List块为您过滤集合,让我们复制一下:
应用程序/代码/核心/法师/目录/砌块/产品/ list.php的 到
应用程序/代码/本地/法师/目录/砌块/产品/ Mylist.php 现在让我们修改Block以使用我们的自定义属性,这样的东西应该可以工作(未经测试)
Mylist.php
class Mage_Catalog_Block_Product_Mylist extends Mage_Catalog_Block_Product_List
{
/**
* Retrieve loaded category collection
*
* @return Mage_Eav_Model_Entity_Collection_Abstract
*/
protected function _getProductCollection()
{
$collection = parent::_getProductCollection();
$todayDate = Mage::app()->getLocale()->date()->toString(Varien_Date::DATETIME_INTERNAL_FORMAT);
$collection->addAttributeToFilter('special_from_date', array('date' => true, 'to' => $todayDate))
->addAttributeToFilter('special_to_date', array('or'=> array(
0 => array('date' => true, 'from' => $todayDate),
1 => array('is' => new Zend_Db_Expr('null')))
), 'left')
->addAttributeToSort('special_from_date', 'desc');
return $collection;
}
}
现在您可以简单地使用新块:
{{block type="catalog/product_mylist" template="catalog/product/list.phtml"}}
感谢(参考):How to filter product list by custom attribute on category page of Magento?