Afișați produsele pe pagina de pornire folosind colecția de filtre Magento după atribut, câmp

Publicat: 2014-10-07

Astăzi, Magesolution revine cu tutorialul Magento despre câteva metode eficiente de a afișa produse pe pagina de pornire folosind Magento Filter Collection By Attribute, Field

Ultima actualizare: tocmai am lansat versiunea 2.0 a temei Claue Multipurpose Magento 2, cu o mulțime de îmbunătățiri ale performanței și funcții exclusive. Verificați această temă acum: Claue Magento Theme 2. 0

claue2_editat (1)

Demo live

Claue – Tema Clean, Minimal Magento 2&1 este un șablon excelent pentru un magazin de comerț electronic modern și curat, cu peste 40 de aspecte de pagină de pornire și o mulțime de opțiuni pentru magazin, blog, portofoliu, machete de locator de magazine și alte pagini utile. Claue versiunea 2.0 vine cu o mulțime de caracteristici exclusive, inclusiv:

  • Bazat pe tema Luma.
  • Îndeplinește toate standardele temei Magento
  • Îmbunătățirea semnificativă a performanței
  • Compatibil cu majoritatea extensiilor de la terți.
  • Complet compatibil cu Magento 2.4.x

Această a doua versiune avansată se diferențiază complet de cea anterioară. Astfel, dacă utilizați Claue versiunea 1 și doriți să actualizați la Claue versiunea 2, nu puteți decât să reconstruiți un nou site web, în ​​loc să actualizați de la versiunea veche. Acum, să revenim la subiectul principal.

Mai întâi, explicați cum Magento filtrează o colecție. Folosiți acest lucru pentru a explica cum Magento filtrează o colecție după atribut, câmp dintr-un model, astfel încât oamenii să învețe să-și scrie propriile colecții.

addAttributeToFilter() este o funcție care poate fi apelată într-o colecție în Magento. În
pe scurt, adaugă o condiție la partea WHERE a interogării MySQL folosită pentru a extrage o colecție din baza de date.
De exemplu:

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

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

'small_image'))

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

->load();

Codul de mai sus ar obține o colecție de produse, fiecare produs având numele, adresa URL,
preț și imagine mică încărcată în matricea de date. Colecția de produse ar fi filtrată și va conține numai produse care au un SKU care începe cu UX.

Filtrare

Ne putem filtra colecțiile cu funcția addFieldToFilter(). În SQL vă puteți gândi la acestea ca la clauze WHERE.
Să presupunem că vrem să obținem un produs cu codul PRODUCT001

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

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

$product = $products->getFirstItem();

Să încercăm condiționalul Greater Than. Pur și simplu furnizați o matrice cu tipul și valoarea condiționată.
Produse mai mari de 100 USD:

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

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

Magento ne oferă o mulțime de filtre condiționate din care să alegem, vedeți:

Codurile de condiție ale filtrului

Cod de atribut Echivalent SQL Descriere
eq =
neq !=
ca CA
nlike NU CA
în IN ()
nin NU ÎN ()
este ESTE
nu nul NU ESTE NUL
nul ESTE NUL
mai multq >=
gt >
lt <
gteq >=
lteq <=
finset FIND_IN_SET()
din >= pentru utilizare cu curmale
la <= pentru utilizare cu curmale
Data flag opțional pentru utilizare cu de la/la pentru a specifica că valoarea de comparație trebuie mai întâi convertită într-o dată
datetime flag opțional pentru utilizare cu de la/la pentru a specifica că valoarea de comparație trebuie mai întâi convertită într-o dată și oră

Dacă o matrice este transmisă, dar nu este specificat niciun cod de atribut, aceasta va fi interpretată ca un grup de condiții SAU care vor fi procesate în același mod.

Dacă nu este specificat niciun cod de atribut, acesta este implicit eq.
addAttributeToFilter Condiționale

Egal: eq

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

Nu este egal – neq

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

Ca – ca

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

Un lucru de remarcat despre asemenea este că puteți include caractere joker SQL, cum ar fi
semn de procente.
Nu Like – nlike

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

În – în

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

Când se utilizează in, parametrul value acceptă o matrice de valori.
Not In – nin

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

NULL – nul

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

Not NULL – notnull

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

Mai mare decât – gt

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

Mai puțin decât – lt

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

Mai mare sau egal cu To- gteq

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

Mai mic sau egal cu – lteq

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

SAU starea

$_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',
)
));

Afișați produsul nou: Utilizarea addAttributeToFilter By Attribute

Pasul 1: În aplicație/cod/local/Mage/Catalog/Bloc/Produs (dacă acest folder nu există, creați-l). Creați fișier bloc (Newproducts.php) care se extinde la

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;
}
}

Pasul 2: În fișierul de aspect (cms.xml) sau în orice pagină CMS, adăugați următorul cod:
Pentru fișierul de aspect (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;

Pentru orice pagină CMS (de exemplu: Pagina de pornire):
Accesați CMS->Pagini, editați pagina de pornire astfel:
Adăugați următorul cod în câmpul 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;

Poza 1

Afișați cele mai vândute produse: Utilizarea addAttibuteToFilter By Attribute

Similar cu afișarea unui produs nou pe pagina principală.
Pasul 1 : În aplicație/cod/local/Mage/Catalog/Bloc/Produs (dacă acest folder nu există, creați-l). Creați fișier bloc (Bestsellers.php) care se extinde la Mage_Catalog_Block_Product_List.
app/code/local/Mage/Catalog/Block/Product/ 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;
 }

}

Pasul 2: În fișierul de aspect (cms.xml) sau în orice pagină CMS, adăugați următorul cod:

Pentru fișierul de aspect (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;

Pentru orice pagină CMS (de exemplu: Pagina de pornire):
Accesați CMS->Pagini, editați pagina de pornire astfel:
Adăugați următorul cod în câmpul 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; 

Poza 2

Afișați produsele cu atribut sau câmp personalizat

Crearea unui atribut – Prezentare

  1. Conectați-vă la panoul de administrare Magento
  2. Navigați la „Gestionați atributele” sub Catalog -> Atribute -> Gestionați atributele
  3. În dreapta sus, faceți clic pe „Adăugați un nou atribut”
  4. Acum vă aflați pe pagina de editare a atributelor și pe fila Proprietăți. Arata cam asa:

Fila Proprietăți

Poza 3

Fila Frontend

Imaginea 4

  • Identificator de atribut: Acesta este numele atributului folosit de sistem. Spațiile nu pot fi folosite în acest câmp. Vom scrie prezentate.
  • Domeniu de aplicare: aceasta determină nivelul magazinului la care acest atribut se va salva pentru toate produsele. Dacă alegeți Global și modificați Featured pentru produsul 123 din magazinul A în Da, produsele 123 prezentate în magazinul B (și în orice alte magazine) se vor actualiza, de asemenea, la Da.
  • Tip de intrare în catalog: Acesta descrie ce fel de date va stoca atributul. Ceea ce este setat aici determină modul în care va avea loc introducerea datelor pentru acest atribut. Vom folosi Da/Nu deoarece dorim să selectăm valoarea pentru.
  • Valoare implicită: puteți selecta o valoare care se va completa automat pentru produsele noi.
  • Valoare unică: dacă „da”, datele salvate în acest atribut trebuie să fie unice pentru fiecare produs. În acest caz, vom spune „nu”, deoarece mai multe caracteristici pot avea aceeași caracteristică.
  • Valori necesare: Dacă „da”, vi se va solicita să selectați datele din acest câmp de atribut atunci când salvați un produs care îl folosește. Validare de intrare:
  • Aplicați la: Aceasta determină pentru ce tipuri de produse va afișa acest atribut. De exemplu, prețul nu ar avea sens într-un produs grupat, deoarece fiecare produs simplu asociat produsului grupat va avea propriul preț. Prin urmare, puteți seta prețul să nu se aplice produselor grupate și nu vă veți zgâria la ce numere să scrieți acolo.
  • Utilizare în căutarea rapidă/avansată: Dacă „da”, datele salvate în acest atribut vor putea fi căutate în front-end în căutarea rapidă și, respectiv, în căutarea avansată.
  • Comparabil pe front-end: dacă „da”, acest atribut va fi afișat într-o comparație de produse, atâta timp cât cel puțin un produs din lista de comparare conține o valoare pentru acest atribut.
  • Utilizare în navigarea stratificată: dacă „se pot filtra”, aceste date vor fi disponibile ca filtru în navigarea stratificată a Magento. Filtrabil (cu rezultate) înseamnă că numai valorile care sunt asociate unor produse specifice dintr-o anumită pagină de categorie vor fi afișate în meniul de navigare pe straturi. Filtrabil (fără rezultate) înseamnă că toate valorile existente pentru un atribut vor fi afișate în meniu, chiar dacă utilizarea acestuia ca filtru nu va produce niciun rezultat. Există o condiție pentru a utiliza atributele în navigarea stratificată – Tipul de intrare trebuie să fie Dropdown, Selectare multiplă sau Preț.
  • Poziție: Aceasta determină poziția acestui atribut în meniul Nav stratificat.
  • Vizibil pe paginile de catalog pe front-end: dacă „nu”, acest atribut nu va fi afișat în pagina de informații despre produs. „Vizibilitatea” controlează doar dacă atributul este afișat sau nu în front-end. Rețineți – dacă setați un atribut la „Vizibil: Nu” și îl lăsați ca „Comparabil: Da”, acest atribut va apărea în continuare în comparație

Gestionați eticheta / Opțiuni

Imaginea 5

Sub această filă, puteți introduce eticheta pentru atribut în front-end. Dacă controlați magazinele în mai multe limbi, puteți introduce eticheta în fiecare limbă în această filă. Dacă eticheta unui magazin este goală, acest magazin va căuta eticheta implicită și o va folosi pe aceasta. Aici vom introduce „Featured” sub „Implicit”.

Aplicați un atribut pentru seturile de atribute – Implicit

  1. Conectați-vă la panoul de administrare Magento
  2. Navigați la „Gestionați atributele” sub Catalog -> Atribute -> Gestionați seturile de atribute
  3. Faceți clic pe „Implicit” sau pe orice set de atribute.
  4. Acum vă aflați pe pagina de editare a setului de atribute și mutați Featured la Grup General sau orice grup. Arata cam asa:

Imaginea 6

Aplicarea unui produs

Acum, pentru a aplica acest atribut selectabil unui produs, trebuie doar să îl adăugați la un set de atribute și să creați un produs nou folosind acest set. Mai jos este un exemplu simplificat al filei General de creare a unui produs nou în administrator:

Imaginea 7

Similar cu afișarea unui produs nou pe pagina principală.

Pasul 1: În aplicație/cod/local/Mage/Catalog/Bloc/Produs (dacă acest folder nu există, creați-l). Creați fișier bloc (Featured.php) care se extinde la Mage_Catalog_Block_Product_List.

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

În acest cod următor, se utilizează addAttributeToFilter pentru atributul de filtru Featured și se utilizează addFieldToFilter pentru câmpul de filtrare SKU al produsului care are valoare SKU precum „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;

Pentru orice pagină CMS (de exemplu: Pagina de pornire):
Accesați CMS->Pagini, editați pagina de pornire astfel:
Adăugați următorul cod în câmpul 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;

Poza 8

Vă rugăm să vă împărtășiți impresiile și ideile în comentarii de mai jos!