Sklepy, również te internetowe, starają się wyeksponować niektóre produkty chociażby dla szybszego ich sprzedania. W tym celu na stronie tworzone są obszary, gdzie takie produkty są promowane. System Magento w swojej podstawowej postaci nie oferuje niestety takich mechanizmów, natomiast posiada kilka nieużywanych bloków odpowiadających za listę produktów. Mogą one okazać się bardzo przydatne, jeśli tylko w odpowiedni sposób je dostosujemy.
Jednym z nich jest blok, który może posłużyć do wyświetlenia promowanych produktów a zlokalizowany jest w:
./app/code/core/Mage/Catalog/Block/Product/List/Promotion.php
W zasadzie jest to wbudowana funkcjonalność produktu, oparta i reagująca na atrybut „promowane”. Zatem aby wszystko zaczęło działać prawidłowo należy, zgodnie z instrukcją poniżej, taki atrybut utworzyć w:
Catalog>>Attributes>>Manage Attributes>>Create New Attribute
Teraz musimy dodać utworzony atrybut do zestawu atrybutów używanych w sklepie. W tym celu musimy przejść do:
Catalog>>Attributes>>Manage Attribute Sets
Od tej chwili, edytując lub dodając nowy produkt, w grupie General pojawi się atrybut Promotion, który należy ustawić jeśli chcemy dodać ten produkt do promowanych.
Pozostało jeszcze stworzyć nowy plik promotion.phtml i umieścić w nim poniższy kod:
[cc lang=”php”] < ?php $_productCollection=$this->getLoadedProductCollection();< ?php $i=0; foreach ($_productCollection as $_product): ?>
< ?php endforeach ?>
[/cc]
Następnie plik wzbogacamy o odpowiednie style i kopiujemy do:
./app/design/frontend/default/{twoj_szablon}/template/catalog/product/
Ostatnim etapem pracy jest wyświetlenie produktów oznaczonych jako promowane w jednym z bloków strony. Aby tego dokonać należy do pliku:
./app /design/frontend/default/{twoj_szablon}/layout/catalog.xml
dodać w odpowiednie miejsce poniższego kodu:
[cc lang=”xml”] [/cc]
Mariusz (12 rok temu)
Błąd – $this-/>helper powinno być $this->helper ale i tak nie dzialczy 🙁
Seb (12 rok temu)
działa tylko wyświetla się w kategori
Tomek (12 rok temu)
Po poprawieniu $this-/>helper na $this->helper u mnie działa (1.5.1.0).
W pliku phtml tag powinien znajdować się poza pętlą foreach.
Tomek (12 rok temu)
Po poprawieniu $this-/>helper na $this->helper u mnie działa (1.5.1.0).
W pliku phtml tag „ul” powinien znajdować się poza pętlą foreach.
Piotr (12 rok temu)
Dzięki za wychwycenie błędu, kod został już poprawiony i przy okazji przetestowany na magento w wersji 1.6.2.0, działa bez zarzutu.