Показывать товары с пользовательским атрибутом на домашней странице


В моем магазине я создаю атрибут, код которого admin_rating для каждого продукта, и он имеет три значения: Отличное, Хорошее и Среднее. Затем на домашней странице у меня есть окно, в котором я хочу показать продукты, чья цена превосходна.

Я искал об этом, я протестировал это решение , но оно показало мне следующее: "Нет продуктов, соответствующих выбранному. Это статический блок CMS, отображаемый, если категория пуста. Вы можете разместить свой собственный контент здесь".

То, что я делаю, это:

В app/code/local/Mage Я добавил папку Catalog и создал в ней этот файл:

app/code/local/Mage/Catalog/Block/Product/Featured.php

Затем я добавил этот код в Featured.php:

<?php

class Mage_Catalog_Block_Product_Featured extends Mage_Catalog_Block_Product_List {
    protected function _getProductCollection() {
        if (is_null($this->_productCollection)) {
            $collection = Mage::getResourceModel('catalog/product_collection')
            ->addAttributeToSelect(Mage::getSingleton('catalog/config')->getProductAttributes())
            ->addStoreFilter()
            ->addPriceData()
            ->addTaxPercents()
            ->addUrlRewrite()
            ->addAttributeToFilter('admin_rating', array('eq' => 'Excellent'))
            ->addFieldToFilter('sku', array('like', '10'))
            ->setPageSize($this->get_prod_count())
            ->setCurPage($this->get_cur_page());
            Mage::getSingleton('catalog/product_status')->addVisibleFilterToCollection($collection);
            Mage::getSingleton('catalog/product_visibility')->addVisibleInCatalogFilterToCollection($collection);
            $this->setProductCollection($collection);
        }
        return $collection;
    }
}

И в app\design\frontend\base\default\layout\cms.xml добавил в него этот код:

<cms_index_index translate="label">
    <label>CMS Home Page</label>
    <reference name="content">
        <block type="catalog/product_featured" name="product_featured" template="catalog/product/list.phtml">
        <block type="catalog/product_list_toolbar" name="product_list_toolbar" template="catalog/product/list/toolbar.phtml">
            <block type="page/html_pager" name="product_list_toolbar_pager"/>
        </block>
        <action method="addColumnCountLayoutDepend"><layout>empty</layout><count>6</count></action>
        <action method="addColumnCountLayoutDepend"><layout>one_column</layout><count>5</count></action>
        <action method="addColumnCountLayoutDepend"><layout>two_columns_left</layout><count>4</count></action>
        <action method="addColumnCountLayoutDepend"><layout>two_columns_right</layout><count>4</count></action>
        <action method="addColumnCountLayoutDepend"><layout>three_columns</layout><count>3</count></action>
        <action method="setToolbarBlockName"><name>product_list_toolbar</name></action>
    </block>
    </reference>
</cms_index_index>

Затем, поскольку я хочу показать продукты на домашней странице, я добавил код ниже в home cms page в серверной части:

<reference name="content">
     <block type="catalog/product_featured" name="product_featured" template="catalog/product/list.phtml">
         <block type="catalog/product_list_toolbar" name="product_list_toolbar" template="catalog/product/list/toolbar.phtml">
            <block type="page/html_pager" name="product_list_toolbar_pager"/>
         </block>
         <action method="addColumnCountLayoutDepend"><layout>empty</layout><count>6</count></action>
         <action method="addColumnCountLayoutDepend"><layout>one_column</layout><count>5</count></action>
         <action method="addColumnCountLayoutDepend"><layout>two_columns_left</layout><count>4</count></action>
         <action method="addColumnCountLayoutDepend"><layout>two_columns_right</layout><count>4</count></action>
         <action method="addColumnCountLayoutDepend"><layout>three_columns</layout><count>3</count></action>
         <action method="setToolbarBlockName"><name>product_list_toolbar</name></action>
     </block>
</reference>

Почему в нем не отображаются продукты? Где я ошибаюсь?

Author: Elham Gdz, 2015-07-13

1 answers

Если вы хотите показывать их только на домашней странице, почему бы не использовать другой подход? Просто создайте три категории - Отличные, Хорошие и Средние. Соответствующим образом распределите необходимые продукты по этим категориям.

В CMS -Страницы - Домашняя страница просто добавьте это:

{block type="catalog/product_list" category_id="8" template="catalog/product/custom.phtml"}} 

Измените category_id на идентификатор категории "Отлично". Настройте catalog/product/custom.phtml в соответствии с вашими потребностями.

Вот и все.

 2
Author: Sharif, 2015-07-13 08:24:20