Pokaż produkty na stronie głównej za pomocą kolekcji filtrów Magento według atrybutu, pola

Opublikowany: 2014-10-07

Dzisiaj Magesolution powraca z samouczkiem Magento o kilku skutecznych metodach wyświetlania produktów na stronie głównej za pomocą kolekcji filtrów Magento według atrybutu, pola

Najnowsza aktualizacja: Właśnie wydaliśmy wersję 2.0 uniwersalnego motywu Claue Magento 2, z kilkoma ulepszeniami wydajności i wyjątkowymi funkcjami. Sprawdź teraz ten motyw: Claue Magento Theme 2. 0

claue2_edited (1)

Demo na żywo

Claue – czysty, minimalistyczny motyw Magento 2&1 to doskonały szablon dla nowoczesnego i przejrzystego sklepu eCommerce z ponad 40 układami strony głównej i mnóstwem opcji dla sklepu, bloga, portfolio, układów lokalizatora sklepów i innych przydatnych stron. Claue w wersji 2.0 zawiera szereg ekskluzywnych funkcji, w tym:

  • Opierając się na motywie Luma.
  • Poznaj wszystkie standardy Magento Theme
  • Znacząca poprawa wydajności
  • Kompatybilny z większością rozszerzeń innych firm.
  • W pełni kompatybilny z Magento 2.4.x

Ta druga zaawansowana wersja całkowicie różni się od poprzedniej. Tak więc, jeśli używasz Claue w wersji 1 i chcesz zaktualizować Claue w wersji 2, możesz tylko odbudować nową stronę internetową, a nie aktualizować ze starej wersji. Wróćmy teraz do głównego tematu.

Najpierw wyjaśnij, jak Magento filtruje kolekcję. Użyj tego, aby wyjaśnić, jak Magento filtruje kolekcję według atrybutu, pola w modelu, aby ludzie mogli nauczyć się pisać własne kolekcje.

addAttributeToFilter() to funkcja, którą można wywołać na kolekcji w Magento. w
w skrócie, dodaje warunek do części WHERE zapytania MySQL używanej do wyodrębnienia kolekcji z bazy danych.
Na przykład:

$_products = Mage::getModel ('catalog/product')->getCollection()

->addAttributeToSelect(array('name', 'product_url',

'small_image'))

->addAttributeToFilter('sku', array('like' => 'UX%'))

->load();

Powyższy kod otrzyma kolekcję produktów, a każdy produkt będzie miał swoją nazwę, adres URL,
cena i mały obrazek załadowany do swojej tablicy danych. Kolekcja produktów zostałaby przefiltrowana i zawierałaby tylko produkty, których kod SKU zaczyna się od UX.

Filtracja

Nasze kolekcje możemy filtrować za pomocą funkcji addFieldToFilter(). W SQL można je traktować jako klauzule WHERE.
Powiedzmy, że chcemy otrzymać produkt po sku PRODUCT001

$products = Mage::getModel('catalog/product')->getCollection();

$products->addAttributeToFilter('sku','PRODUCT001');

$product = $products->getFirstItem();

Wypróbujmy tryb warunkowy Większy niż. Po prostu podaj tablicę z typem warunkowym i wartością.
Produkty powyżej 100 USD:

$products = Mage::getModel('catalog/product')->getCollection();

$products->addAttributeToFilter('price', array('gt' => '100'));

Magento daje nam wiele warunkowych filtrów do wyboru:

Kody stanu filtra

Kod atrybutu Odpowiednik SQL Opis
równ =
neq !=
lubić LUBIĆ
nie lubię NIE JAK
w W ()
nin NIE W ()
jest JEST
Nie jest zerem NIE JEST NULL
zero JEST NULL
więcejq >=
g >
to <
gteq >=
lteq <=
finset ZNAJDŹ_IN_SET()
z >= do użytku z datami
do <= do użytku z datami
Data opcjonalna flaga do użycia z od/do, aby określić, że wartość porównania powinna najpierw zostać przekonwertowana na datę
data i godzina opcjonalna flaga do użycia z od/do, aby określić, że wartość porównania powinna najpierw zostać przekonwertowana na datę i godzinę

Jeśli przekazano tablicę, ale nie określono kodu atrybutu, zostanie ona zinterpretowana jako grupa warunków OR, które będą przetwarzane w ten sam sposób.

Jeśli nie określono kodu atrybutu, domyślnie jest to eq.
Warunki warunkowe addAttributeToFilter

Równa się: eq

$_collection-&amp;gt;addAttributeToFilter('status', array('eq' =&amp;gt; 1));

Nie równa się – neq

$_collection-&amp;gt;addAttributeToFilter('sku', array('neq' =&amp;gt; 'test-product'));

Polub – polub

$_collection-&amp;gt;addAttributeToFilter('sku', array('like' =&amp;gt; 'UX%'));

Należy zwrócić uwagę na to, że możesz dołączyć znaki wieloznaczne SQL, takie jak
znak procentu.
Nie lubię – nlike

$_collection-&amp;gt;addAttributeToFilter('sku', array('nlike' =&amp;gt; 'err-prod%'));

W W

$_collection-&amp;gt;addAttributeToFilter('id', array('in' =&amp;gt; array(1,4,74,98)));

Podczas używania in, parametr value akceptuje tablicę wartości.
Nie w – nin

$_collection-&amp;gt;addAttributeToFilter('id', array('nin' =&amp;gt; array(1,4,74,98)));

Zero zero

$_collection-&amp;gt;addAttributeToFilter('description', 'null');

Not NULL – not null

$_collection-&amp;gt;addAttributeToFilter('description', 'notnull');

Większy niż – gt

$_collection-&amp;gt;addAttributeToFilter('id', array('gt' =&amp;gt; 5));

Mniej niż – lt

$_collection-&amp;gt;addAttributeToFilter('id', array('lt' =&amp;gt; 5));

Większe lub równe Togteq

$_collection-&amp;gt;addAttributeToFilter('id', array('gteq' =&amp;gt; 5));

Mniej niż lub równa się – lteq

$_collection-&amp;gt;addAttributeToFilter('id', array('lteq' =&amp;gt; 5));

LUB warunek

$_collection-&amp;gt;addAttributeToFilter(array(
array(
'attribute' =&amp;gt; 'field_name',
'in' =&amp;gt; array(1, 2, 3),
),
array(
'attribute' =&amp;gt; 'date_field',
'from' =&amp;gt; '2010-09-10',
)
));

Pokaż nowy produkt: Używanie addAttributeToFilter By Attribute

Krok 1: W app/code/local/Mage/Catalog/Block/Product (jeśli ten folder nie istnieje, utwórz go). Utwórz plik blokowy (Newproducts.php), który rozciąga się na

Mage_Catalog_Block_Product_List.

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

&amp;lt;?php

class Mage_Catalog_Block_Product_Newproducts extends Mage_Catalog_Block_Product_List {
protected function _getProductCollection() {
 if (is_null($this-&amp;gt;_productCollection)) {
 $todayDate = Mage::app()-&amp;gt;getLocale()-&amp;gt;date()-&amp;gt;toString(Varien_Date::DATETIME_INTERNAL_FORMAT);
 $collection = Mage::getResourceModel('catalog/product_collection')
 -&amp;gt;addAttributeToSelect(Mage::getSingleton('catalog/config')-&amp;gt;getProductAttributes())
 -&amp;gt;addStoreFilter()
 -&amp;gt;addPriceData()
 -&amp;gt;addTaxPercents()
 -&amp;gt;addUrlRewrite()
 -&amp;gt;addAttributeToFilter('news_from_date', array('date' =&amp;gt; true, 'to' =&amp;gt; $todayDate))
 -&amp;gt;addAttributeToFilter('news_to_date', array('or' =&amp;gt; array(
 0 =&amp;gt; array('date' =&amp;gt; true, 'from' =&amp;gt; $todayDate),
 1 =&amp;gt; array('is' =&amp;gt; new Zend_Db_Expr('null')))
 ), 'left')
 -&amp;gt;addAttributeToSort('news_from_date', 'desc')
 -&amp;gt;setPageSize($this-&amp;gt;get_prod_count())
 -&amp;gt;setCurPage($this-&amp;gt;get_cur_page());
 Mage::getSingleton('catalog/product_status')-&amp;gt;addVisibleFilterToCollection($collection);
 Mage::getSingleton('catalog/product_visibility')-&amp;gt;addVisibleInCatalogFilterToCollection($collection);
 $this-&amp;gt;setProductCollection($collection);
}
return $collection;
}
}

Krok 2: W pliku układu (cms.xml) lub dowolnej stronie CMS dodaj następujący kod:
Dla pliku układu (cms.xml):

&amp;lt;cms_index_index translate=&amp;quot;label&amp;quot;&amp;gt;
 &amp;lt;label&amp;gt;CMS Home Page&amp;lt;/label&amp;gt;
 &amp;lt;reference name=&amp;quot;content&amp;quot;&amp;gt;
 &amp;lt;block type=&amp;quot;catalog/product_newproducts&amp;quot; name=&amp;quot;product_new&amp;quot; template=&amp;quot;catalog/product/list.phtml&amp;quot;&amp;gt;
 &amp;lt;block type=&amp;quot;catalog/product_list_toolbar&amp;quot; name=&amp;quot;product_list_toolbar&amp;quot; template=&amp;quot;catalog/product/list/toolbar.phtml&amp;quot;&amp;gt;
 &amp;lt;block type=&amp;quot;page/html_pager&amp;quot; name=&amp;quot;product_list_toolbar_pager&amp;quot;/&amp;gt;
 &amp;lt;/block&amp;gt;
 &amp;lt;action method=&amp;quot;addColumnCountLayoutDepend&amp;quot;&amp;gt;&amp;lt;layout&amp;gt;empty&amp;lt;/layout&amp;gt;&amp;lt;count&amp;gt;6&amp;lt;/count&amp;gt;&amp;lt;/action&amp;gt;
 &amp;lt;action method=&amp;quot;addColumnCountLayoutDepend&amp;quot;&amp;gt;&amp;lt;layout&amp;gt;one_column&amp;lt;/layout&amp;gt;&amp;lt;count&amp;gt;5&amp;lt;/count&amp;gt;&amp;lt;/action&amp;gt;
 &amp;lt;action method=&amp;quot;addColumnCountLayoutDepend&amp;quot;&amp;gt;&amp;lt;layout&amp;gt;two_columns_left&amp;lt;/layout&amp;gt;&amp;lt;count&amp;gt;4&amp;lt;/count&amp;gt;&amp;lt;/action&amp;gt;
 &amp;lt;action method=&amp;quot;addColumnCountLayoutDepend&amp;quot;&amp;gt;&amp;lt;layout&amp;gt;two_columns_right&amp;lt;/layout&amp;gt;&amp;lt;count&amp;gt;4&amp;lt;/count&amp;gt;&amp;lt;/action&amp;gt;
 &amp;lt;action method=&amp;quot;addColumnCountLayoutDepend&amp;quot;&amp;gt;&amp;lt;layout&amp;gt;three_columns&amp;lt;/layout&amp;gt;&amp;lt;count&amp;gt;3&amp;lt;/count&amp;gt;&amp;lt;/action&amp;gt;
 &amp;lt;action method=&amp;quot;setToolbarBlockName&amp;quot;&amp;gt;&amp;lt;name&amp;gt;product_list_toolbar&amp;lt;/name&amp;gt;&amp;lt;/action&amp;gt;
 &amp;lt;/block&amp;gt;
 &amp;lt;/reference&amp;gt;
 &amp;lt;/cms_index_index&amp;gt;

Dla dowolnej strony CMS (np. Strona główna):
Przejdź do CMS->Strony, edytuj stronę główną w następujący sposób:
Dodaj następujący kod do pola Layout Update XML:

&amp;lt;reference name=&amp;quot;content&amp;quot;&amp;gt;
 &amp;lt;block type=&amp;quot;catalog/product_newproducts&amp;quot; name=&amp;quot;product_new&amp;quot; template=&amp;quot;catalog/product/list.phtml&amp;quot;&amp;gt;
 &amp;lt;block type=&amp;quot;catalog/product_list_toolbar&amp;quot; name=&amp;quot;product_list_toolbar&amp;quot; template=&amp;quot;catalog/product/list/toolbar.phtml&amp;quot;&amp;gt;
 &amp;lt;block type=&amp;quot;page/html_pager&amp;quot; name=&amp;quot;product_list_toolbar_pager&amp;quot;/&amp;gt;
 &amp;lt;/block&amp;gt;
 &amp;lt;action method=&amp;quot;addColumnCountLayoutDepend&amp;quot;&amp;gt;&amp;lt;layout&amp;gt;empty&amp;lt;/layout&amp;gt;&amp;lt;count&amp;gt;6&amp;lt;/count&amp;gt;&amp;lt;/action&amp;gt;
 &amp;lt;action method=&amp;quot;addColumnCountLayoutDepend&amp;quot;&amp;gt;&amp;lt;layout&amp;gt;one_column&amp;lt;/layout&amp;gt;&amp;lt;count&amp;gt;5&amp;lt;/count&amp;gt;&amp;lt;/action&amp;gt;
 &amp;lt;action method=&amp;quot;addColumnCountLayoutDepend&amp;quot;&amp;gt;&amp;lt;layout&amp;gt;two_columns_left&amp;lt;/layout&amp;gt;&amp;lt;count&amp;gt;4&amp;lt;/count&amp;gt;&amp;lt;/action&amp;gt;
 &amp;lt;action method=&amp;quot;addColumnCountLayoutDepend&amp;quot;&amp;gt;&amp;lt;layout&amp;gt;two_columns_right&amp;lt;/layout&amp;gt;&amp;lt;count&amp;gt;4&amp;lt;/count&amp;gt;&amp;lt;/action&amp;gt;
 &amp;lt;action method=&amp;quot;addColumnCountLayoutDepend&amp;quot;&amp;gt;&amp;lt;layout&amp;gt;three_columns&amp;lt;/layout&amp;gt;&amp;lt;count&amp;gt;3&amp;lt;/count&amp;gt;&amp;lt;/action&amp;gt;
 &amp;lt;action method=&amp;quot;setToolbarBlockName&amp;quot;&amp;gt;&amp;lt;name&amp;gt;product_list_toolbar&amp;lt;/name&amp;gt;&amp;lt;/action&amp;gt;
 &amp;lt;/block&amp;gt;
 &amp;lt;/reference&amp;gt;

Obrazek 1

Pokaż produkt bestsellerów: Korzystanie z addAttibuteToFilter By Attribute

Podobny do pokazania nowego produktu na stronie głównej.
Krok 1 : W app/code/local/Mage/Catalog/Block/Product (jeśli ten folder nie istnieje, utwórz go). Utwórz plik bloku (Bestsellers.php), który rozciąga się na Mage_Catalog_Block_Product_List.
aplikacja/kod/lokalny/Mag/Katalog/Blok/Produkt/Bestsellers.php

&amp;lt;?php

class Mage_Catalog_Block_Product_Bestsellers extends Mage_Catalog_Block_Product_List {

protected function _getProductCollection() {
 if (is_null($this-&amp;gt;_productCollection)) {
 $storeId = Mage::app()-&amp;gt;getStore()-&amp;gt;getId();
 $collection = Mage::getResourceModel('reports/product_collection')
 -&amp;gt;addOrderedQty()
 -&amp;gt;addAttributeToSelect('*')-&amp;gt;setStoreId($storeId)
 -&amp;gt;addStoreFilter($storeId)
 -&amp;gt;addUrlRewrite()
 -&amp;gt;setPageSize($this-&amp;gt;get_prod_count())
 -&amp;gt;setCurPage($this-&amp;gt;get_cur_page())
 -&amp;gt;setOrder('ordered_qty', 'desc');
 Mage::getSingleton('catalog/product_status')-&amp;gt;addVisibleFilterToCollection($collection);
 Mage::getSingleton('catalog/product_visibility')-&amp;gt;addVisibleInCatalogFilterToCollection($collection);
 $this-&amp;gt;setProductCollection($collection);
 }
 return $collection;
 }

}

Krok 2: W pliku układu (cms.xml) lub dowolnej stronie CMS dodaj następujący kod:

Dla pliku układu (cms.xml):

&amp;lt;cms_index_index translate=&amp;quot;label&amp;quot;&amp;gt;
 &amp;lt;label&amp;gt;CMS Home Page&amp;lt;/label&amp;gt;
 &amp;lt;reference name=&amp;quot;content&amp;quot;&amp;gt;
 &amp;lt;block type=&amp;quot;catalog/product_bestsellers&amp;quot; name=&amp;quot;product_bestseller&amp;quot; template=&amp;quot;catalog/product/list.phtml&amp;quot;&amp;gt;
 &amp;lt;block type=&amp;quot;catalog/product_list_toolbar&amp;quot; name=&amp;quot;product_list_toolbar&amp;quot; template=&amp;quot;catalog/product/list/toolbar.phtml&amp;quot;&amp;gt;
 &amp;lt;block type=&amp;quot;page/html_pager&amp;quot; name=&amp;quot;product_list_toolbar_pager&amp;quot;/&amp;gt;
 &amp;lt;/block&amp;gt;
 &amp;lt;action method=&amp;quot;addColumnCountLayoutDepend&amp;quot;&amp;gt;&amp;lt;layout&amp;gt;empty&amp;lt;/layout&amp;gt;&amp;lt;count&amp;gt;6&amp;lt;/count&amp;gt;&amp;lt;/action&amp;gt;
 &amp;lt;action method=&amp;quot;addColumnCountLayoutDepend&amp;quot;&amp;gt;&amp;lt;layout&amp;gt;one_column&amp;lt;/layout&amp;gt;&amp;lt;count&amp;gt;5&amp;lt;/count&amp;gt;&amp;lt;/action&amp;gt;
 &amp;lt;action method=&amp;quot;addColumnCountLayoutDepend&amp;quot;&amp;gt;&amp;lt;layout&amp;gt;two_columns_left&amp;lt;/layout&amp;gt;&amp;lt;count&amp;gt;4&amp;lt;/count&amp;gt;&amp;lt;/action&amp;gt;
 &amp;lt;action method=&amp;quot;addColumnCountLayoutDepend&amp;quot;&amp;gt;&amp;lt;layout&amp;gt;two_columns_right&amp;lt;/layout&amp;gt;&amp;lt;count&amp;gt;4&amp;lt;/count&amp;gt;&amp;lt;/action&amp;gt;
 &amp;lt;action method=&amp;quot;addColumnCountLayoutDepend&amp;quot;&amp;gt;&amp;lt;layout&amp;gt;three_columns&amp;lt;/layout&amp;gt;&amp;lt;count&amp;gt;3&amp;lt;/count&amp;gt;&amp;lt;/action&amp;gt;
 &amp;lt;action method=&amp;quot;setToolbarBlockName&amp;quot;&amp;gt;&amp;lt;name&amp;gt;product_list_toolbar&amp;lt;/name&amp;gt;&amp;lt;/action&amp;gt;
 &amp;lt;/block&amp;gt;
&amp;lt;/reference&amp;gt;
 &amp;lt;/cms_index_index&amp;gt;

Dla dowolnej strony CMS (np. Strona główna):
Przejdź do CMS->Strony, edytuj stronę główną w następujący sposób:
Dodaj następujący kod do pola Layout Update XML:

&amp;lt;reference name=&amp;quot;content&amp;quot;&amp;gt;

&amp;lt;block type=&amp;quot;catalog/product_bestsellers&amp;quot; name=&amp;quot;product_bestseller&amp;quot; template=&amp;quot;catalog/product/list.phtml&amp;quot;&amp;gt;

&amp;lt;block type=&amp;quot;catalog/product_list_toolbar&amp;quot; name=&amp;quot;product_list_toolbar&amp;quot; template=&amp;quot;catalog/product/list/toolbar.phtml&amp;quot;&amp;gt;

&amp;lt;block type=&amp;quot;page/html_pager&amp;quot; name=&amp;quot;product_list_toolbar_pager&amp;quot;/&amp;gt;

&amp;lt;/block&amp;gt;

&amp;lt;action method=&amp;quot;addColumnCountLayoutDepend&amp;quot;&amp;gt;&amp;lt;layout&amp;gt;empty&amp;lt;/layout&amp;gt;&amp;lt;count&amp;gt;6&amp;lt;/count&amp;gt;&amp;lt;/action&amp;gt;

&amp;lt;action method=&amp;quot;addColumnCountLayoutDepend&amp;quot;&amp;gt;&amp;lt;layout&amp;gt;one_column&amp;lt;/layout&amp;gt;&amp;lt;count&amp;gt;5&amp;lt;/count&amp;gt;&amp;lt;/action&amp;gt;

&amp;lt;action method=&amp;quot;addColumnCountLayoutDepend&amp;quot;&amp;gt;&amp;lt;layout&amp;gt;two_columns_left&amp;lt;/layout&amp;gt;&amp;lt;count&amp;gt;4&amp;lt;/count&amp;gt;&amp;lt;/action&amp;gt;

&amp;lt;action method=&amp;quot;addColumnCountLayoutDepend&amp;quot;&amp;gt;&amp;lt;layout&amp;gt;two_columns_right&amp;lt;/layout&amp;gt;&amp;lt;count&amp;gt;4&amp;lt;/count&amp;gt;&amp;lt;/action&amp;gt;

&amp;lt;action method=&amp;quot;addColumnCountLayoutDepend&amp;quot;&amp;gt;&amp;lt;layout&amp;gt;three_columns&amp;lt;/layout&amp;gt;&amp;lt;count&amp;gt;3&amp;lt;/count&amp;gt;&amp;lt;/action&amp;gt;

&amp;lt;action method=&amp;quot;setToolbarBlockName&amp;quot;&amp;gt;&amp;lt;name&amp;gt;product_list_toolbar&amp;lt;/name&amp;gt;&amp;lt;/action&amp;gt;

&amp;lt;/block&amp;gt;

&amp;lt;/reference&amp;gt; 

Zdjęcie2

Pokaż produkty z niestandardowym atrybutem lub polem

Tworzenie atrybutu – Polecane

  1. Zaloguj się do panelu administracyjnego Magento
  2. Przejdź do „Zarządzaj atrybutami” w Katalog -> Atrybuty -> Zarządzaj atrybutami
  3. W prawym górnym rogu kliknij „Dodaj nowy atrybut”
  4. Jesteś teraz na stronie edycji atrybutu i karcie Właściwości. To wygląda tak:

Zakładka Właściwości

Zdjęcie3

Karta interfejsu

Zdjęcie 4

  • Identyfikator atrybutu: jest to nazwa atrybutu używanego przez system. W tym polu nie można używać spacji. Napiszemy polecane.
  • Zakres: Określa poziom sklepu, na którym ten atrybut zapisze dla wszystkich produktów. Jeśli wybierzesz opcję Globalna i zmienisz opcję Polecane dla produktu 123 w sklepie A na Tak, produkt 123 prezentowany w sklepie B (i we wszystkich innych sklepach) również zostanie zaktualizowany na Tak.
  • Typ danych wejściowych katalogu: Opisuje rodzaj danych, które będą przechowywane w atrybucie. To, co jest tutaj ustawione, określa sposób wprowadzania danych dla tego atrybutu. Użyjemy Yes/No, ponieważ chcemy wybrać wartość.
  • Wartość domyślna: Możesz wybrać wartość, która będzie automatycznie wypełniana dla nowych produktów.
  • Wartość unikalna: Jeśli „tak”, dane zapisane w tym atrybucie muszą być unikalne dla każdego produktu. W takim przypadku powiemy „nie”, ponieważ wiele funkcji może mieć tę samą funkcję.
  • Wymagane wartości: Jeśli „tak”, będziesz musiał wybrać dane w tym polu atrybutu podczas zapisywania produktu, który ich używa. Walidacja danych wejściowych:
  • Zastosuj do: Określa, dla jakich typów produktów będzie wyświetlany ten atrybut. Na przykład cena nie miałaby sensu w przypadku produktu zgrupowanego, ponieważ każdy prosty produkt powiązany z produktem zgrupowanym będzie miał własną cenę. Dlatego możesz ustawić cenę tak, aby nie dotyczyła zgrupowanego produktu, a nie będziesz drapał się po głowie, jakie cyfry tam wpisać.
  • Użyj w szybkim/zaawansowanym wyszukiwaniu: Jeśli „tak”, dane zapisane w tym atrybucie będzie można przeszukiwać w interfejsie odpowiednio w szybkim wyszukiwaniu i zaawansowanym wyszukiwaniu.
  • Porównywalny w interfejsie: Jeśli „tak”, ten atrybut będzie wyświetlany w porównaniu produktów, o ile co najmniej jeden produkt na liście porównawczej zawiera wartość tego atrybutu.
  • Użyj w nawigacji warstwowej: Jeśli „możliwe do filtrowania”, te dane będą dostępne jako filtr w nawigacji warstwowej Magento. Możliwość filtrowania (z wynikami) oznacza, że ​​w menu Nawigacja warstwowa będą wyświetlane tylko wartości powiązane z określonymi produktami na stronie danej kategorii. Filtrowalne (brak wyników) oznacza, że ​​wszystkie istniejące wartości atrybutu będą wyświetlane w menu, nawet jeśli użycie tego jako filtru nie przyniesie żadnych wyników. Istnieje jeden warunek używania atrybutów w nawigacji warstwowej — typem danych wejściowych musi być lista rozwijana, wybór wielokrotny lub cena.
  • Pozycja: Określa pozycję tego atrybutu w menu Nawigacja warstwowa.
  • Widoczny na stronach katalogu w interfejsie: Jeśli „nie”, ten atrybut nie będzie wyświetlany na stronie informacji o produkcie. „Widoczność” kontroluje tylko, czy atrybut jest wyświetlany w interfejsie użytkownika. Pamiętaj – jeśli ustawisz atrybut na „Widoczny: Nie” i pozostawisz go jako „Porównywalny: Tak”, ten atrybut będzie nadal widoczny w porównaniu

Zarządzaj etykietą / opcjami

Zdjęcie5

Na tej karcie możesz wprowadzić etykietę atrybutu w interfejsie użytkownika. Jeśli kontrolujesz sklepy w wielu językach, możesz wpisać etykietę w każdym języku na tej karcie. Jeśli etykieta sklepu jest pusta, ten sklep użyje etykiety domyślnej i użyje tej. Tutaj wpiszemy „Polecane” pod „Domyślne”.

Zastosuj atrybut do zestawów atrybutów – Domyślny

  1. Zaloguj się do panelu administracyjnego Magento
  2. Przejdź do „Zarządzaj atrybutami” w Katalog -> Atrybuty -> Zarządzaj zestawami atrybutów
  3. Kliknij „Domyślne” lub dowolny zestaw atrybutów.
  4. Jesteś teraz na stronie edycji Zestawu atrybutów i przenosisz Polecane do Grupy Ogólne lub dowolnej grupy. To wygląda tak:

Zdjęcie6

Aplikowanie do produktu

Teraz, aby zastosować ten wybieralny atrybut do produktu, po prostu dodaj go do zestawu atrybutów i utwórz nowy produkt przy użyciu tego zestawu. Poniżej uproszczony przykład zakładki Ogólne tworzenia nowego produktu w admin:

Zdjęcie 7

Podobny do pokazania nowego produktu na stronie głównej.

Krok 1: W app/code/local/Mage/Catalog/Block/Product (jeśli ten folder nie istnieje, utwórz go). Utwórz plik bloku (Featured.php), który rozciąga się na Mage_Catalog_Block_Product_List.

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

W poniższym kodzie użyj addAttributeToFilter dla atrybutu filtra Featured i użyj addFieldToFilter dla SKU pola filtra produktu o wartości sku, takiej jak „PROD0003”.

&amp;lt;?php

class Mage_Catalog_Block_Product_Featured extends Mage_Catalog_Block_Product_List {

protected function _getProductCollection() {
 if (is_null($this-&amp;gt;_productCollection)) {
 $collection = Mage::getResourceModel('catalog/product_collection')
 -&amp;gt;addAttributeToSelect(Mage::getSingleton('catalog/config')-&amp;gt;getProductAttributes())
 -&amp;gt;addStoreFilter()
 -&amp;gt;addPriceData()
 -&amp;gt;addTaxPercents()
 -&amp;gt;addUrlRewrite()
 -&amp;gt;addAttributeToFilter('featured', array('eq' =&amp;gt; 1))
 -&amp;gt;addFieldToFilter('sku', array('like', 'PROD0003'))
 -&amp;gt;setPageSize($this-&amp;gt;get_prod_count())
 -&amp;gt;setCurPage($this-&amp;gt;get_cur_page());
 Mage::getSingleton('catalog/product_status')-&amp;gt;addVisibleFilterToCollection($collection);
 Mage::getSingleton('catalog/product_visibility')-&amp;gt;addVisibleInCatalogFilterToCollection($collection);
 $this-&amp;gt;setProductCollection($collection);
 }
 return $collection;
 }

}
Step 2: In layout file(cms.xml) or any CMS Page add following code:
For layout file(cms.xml):
&amp;lt;cms_index_index translate=&amp;quot;label&amp;quot;&amp;gt;
 &amp;lt;label&amp;gt;CMS Home Page&amp;lt;/label&amp;gt;
 &amp;lt;reference name=&amp;quot;content&amp;quot;&amp;gt;
 &amp;lt;block type=&amp;quot;catalog/product_featured&amp;quot; name=&amp;quot;product_featured&amp;quot; template=&amp;quot;catalog/product/list.phtml&amp;quot;&amp;gt;
 &amp;lt;block type=&amp;quot;catalog/product_list_toolbar&amp;quot; name=&amp;quot;product_list_toolbar&amp;quot; template=&amp;quot;catalog/product/list/toolbar.phtml&amp;quot;&amp;gt;
 &amp;lt;block type=&amp;quot;page/html_pager&amp;quot; name=&amp;quot;product_list_toolbar_pager&amp;quot;/&amp;gt;
 &amp;lt;/block&amp;gt;
 &amp;lt;action method=&amp;quot;addColumnCountLayoutDepend&amp;quot;&amp;gt;&amp;lt;layout&amp;gt;empty&amp;lt;/layout&amp;gt;&amp;lt;count&amp;gt;6&amp;lt;/count&amp;gt;&amp;lt;/action&amp;gt;
 &amp;lt;action method=&amp;quot;addColumnCountLayoutDepend&amp;quot;&amp;gt;&amp;lt;layout&amp;gt;one_column&amp;lt;/layout&amp;gt;&amp;lt;count&amp;gt;5&amp;lt;/count&amp;gt;&amp;lt;/action&amp;gt;
 &amp;lt;action method=&amp;quot;addColumnCountLayoutDepend&amp;quot;&amp;gt;&amp;lt;layout&amp;gt;two_columns_left&amp;lt;/layout&amp;gt;&amp;lt;count&amp;gt;4&amp;lt;/count&amp;gt;&amp;lt;/action&amp;gt;
 &amp;lt;action method=&amp;quot;addColumnCountLayoutDepend&amp;quot;&amp;gt;&amp;lt;layout&amp;gt;two_columns_right&amp;lt;/layout&amp;gt;&amp;lt;count&amp;gt;4&amp;lt;/count&amp;gt;&amp;lt;/action&amp;gt;
 &amp;lt;action method=&amp;quot;addColumnCountLayoutDepend&amp;quot;&amp;gt;&amp;lt;layout&amp;gt;three_columns&amp;lt;/layout&amp;gt;&amp;lt;count&amp;gt;3&amp;lt;/count&amp;gt;&amp;lt;/action&amp;gt;
 &amp;lt;action method=&amp;quot;setToolbarBlockName&amp;quot;&amp;gt;&amp;lt;name&amp;gt;product_list_toolbar&amp;lt;/name&amp;gt;&amp;lt;/action&amp;gt;
 &amp;lt;/block&amp;gt;
&amp;lt;/reference&amp;gt;
 &amp;lt;/cms_index_index&amp;gt;

Dla dowolnej strony CMS (np. Strona główna):
Przejdź do CMS->Strony, edytuj stronę główną w następujący sposób:
Dodaj następujący kod do pola Layout Update XML:

&amp;lt;reference name=&amp;quot;content&amp;quot;&amp;gt;
 &amp;lt;block type=&amp;quot;catalog/product_featured&amp;quot; name=&amp;quot;product_featured&amp;quot; template=&amp;quot;catalog/product/list.phtml&amp;quot;&amp;gt;
 &amp;lt;block type=&amp;quot;catalog/product_list_toolbar&amp;quot; name=&amp;quot;product_list_toolbar&amp;quot; template=&amp;quot;catalog/product/list/toolbar.phtml&amp;quot;&amp;gt;
 &amp;lt;block type=&amp;quot;page/html_pager&amp;quot; name=&amp;quot;product_list_toolbar_pager&amp;quot;/&amp;gt;
 &amp;lt;/block&amp;gt;
 &amp;lt;action method=&amp;quot;addColumnCountLayoutDepend&amp;quot;&amp;gt;&amp;lt;layout&amp;gt;empty&amp;lt;/layout&amp;gt;&amp;lt;count&amp;gt;6&amp;lt;/count&amp;gt;&amp;lt;/action&amp;gt;
 &amp;lt;action method=&amp;quot;addColumnCountLayoutDepend&amp;quot;&amp;gt;&amp;lt;layout&amp;gt;one_column&amp;lt;/layout&amp;gt;&amp;lt;count&amp;gt;5&amp;lt;/count&amp;gt;&amp;lt;/action&amp;gt;
 &amp;lt;action method=&amp;quot;addColumnCountLayoutDepend&amp;quot;&amp;gt;&amp;lt;layout&amp;gt;two_columns_left&amp;lt;/layout&amp;gt;&amp;lt;count&amp;gt;4&amp;lt;/count&amp;gt;&amp;lt;/action&amp;gt;
 &amp;lt;action method=&amp;quot;addColumnCountLayoutDepend&amp;quot;&amp;gt;&amp;lt;layout&amp;gt;two_columns_right&amp;lt;/layout&amp;gt;&amp;lt;count&amp;gt;4&amp;lt;/count&amp;gt;&amp;lt;/action&amp;gt;
 &amp;lt;action method=&amp;quot;addColumnCountLayoutDepend&amp;quot;&amp;gt;&amp;lt;layout&amp;gt;three_columns&amp;lt;/layout&amp;gt;&amp;lt;count&amp;gt;3&amp;lt;/count&amp;gt;&amp;lt;/action&amp;gt;
 &amp;lt;action method=&amp;quot;setToolbarBlockName&amp;quot;&amp;gt;&amp;lt;name&amp;gt;product_list_toolbar&amp;lt;/name&amp;gt;&amp;lt;/action&amp;gt;
 &amp;lt;/block&amp;gt;
&amp;lt;/reference&amp;gt;

Zdjęcie8

Podzielcie się swoimi wrażeniami i pomysłami w komentarzach poniżej!