[Magento] Różne sposoby wyświetlania cen produktów

Data dodania wpisu: 26-05-2010

Czasami na jednej stronie produktu w Magento trzeba mieć kilka form wyświetlania ceny (templatek cenowych), konfigurowalnych w specyficzny sposób. Jak zrobić wyświetlanie cen we własnej templatce? Dla produktu standardowo jest zaciągana templatka

/template/catalog/product/price.phtml

By się do tego dobrać, najpierw w bloku modułu katalogu musimy dopisać nową funkcję do pobierania własnej templatki cenowej. W tym celu wystaczy, że dopiszemy w:

app/code/[namespace]/Mage/Catalog/Block/Product/Abstract.php

nową metodę zawierającą dodatkowy parametr $template, który będzie ścieżką relatywną do pliku phtml:

<?php
public function getPriceHtmlRandomTemplate($product, $template) 
    { 
        return $this->_getPriceBlock($product->getTypeId()) 
            ->setTemplate($template) 
            ->setProduct($product) 
            ->toHtml(); 
    }
?>

Jedyne co pozostaje, to wywołać nową metodę w odpowiedniej templatce będącej kontenerem dla ceny produktu na stronie produktowej, np.:

template/catalog/product/view/type/simple.phtml

Kawałek kodu, który dopiszemy to w tym przypadku:

<?php echo $this->getPriceHtmlRandomTemplate($_product, 
'catalog/product/random_price_template.phtml') ?>

, gdzie powyższy plik podany w dodatkowym parametrze, to już dowolnie skonfigurowana templatka wyświetlanej ceny;) I nie potrzeba modyfikować templatki:

template/catalog/product/view/price.phtml

Testowane na Magento 1.3.1.1 i 1.3.2., z pewnością zadziała na każdej innej (nowszej wersji).

Komentarze

Good to see real epxetrsie on display. Your contribution is most welcome.
Comments closed...