Как вывести товары-новинки из конкретного товарного раздела?

[10 ноября 2016 г.]    Российская сборка Magento 2.49.12
Magento 2: модули и услуги
#1 Дмитрий Федюк
  • Администратор
  • Иконка
  • Группа: Администратор
  • Сообщений: 8884
  • Регистрация: 20.02.2010

08.05.2010 11:21

1) Чтобы поменить конкретный товар как новинку, нужно на карточке товара административной части заполнить поля Set Product as New from Date и Set Product as New to Date

2) Отобразить новинки из всех товарных разделов можно так (этот код можно добавить в текстовом редакторе CMS):
{{block type="catalog/product_new" name="home.catalog.product.new" alias="product_homepage" template="catalog/product/new.phtml"}}


3) Для отображения новинок из определённого товарного раздела (категории) можно использовать следующий класс-блок (код его неоптимален, но работает):

class Df_Site_Block_Products extends Mage_Catalog_Block_Product_List {

    protected function _getProductCollection() {
	    $needToSetFilters = is_null($this->_productCollection);
	    [b]$this->setCategoryId (3);[/b]
	    $result = parent::_getProductCollection ();
	    if ($needToSetFilters) {
			$todayDate  = Mage::app()->getLocale()->date()->toString(Varien_Date::DATETIME_INTERNAL_FORMAT);
			$result
				->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(4)
				->setCurPage(1)
			;
	    }
        return
            $result
        ;
    }
}


$this->setCategoryId (3); - здесь указываете идентификатор категории
setPageSize(4) - здесь указываете количество отображаемых товаров

Поместите этот класс в свой модуль Magento и вызывайте из layout так:

<block type="site/products" name="products" template="main/products.phtml"/>


main/products.phtml - это шаблон отображения. Можете подставить свой или стандартный, например catalog/product/new.phtml или еще какой-нибудь.

Поделиться темой: