在类别视图页面上显示销售产品Magento

时间:2014-05-10 07:42:40

标签: magento magento-1.7

如何在类别视图页面上获得促销产品(特价)。产品必须来自相同的类别或子类别。感谢。

2 个答案:

答案 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?