Mam scroller pokazano kolekcję produktów aktualnie w sprzedaży, które ja nazywam przy użyciu następujących:
$todayDate = Mage::app()->getLocale()->date()->toString(Varien_Date::DATETIME_INTERNAL_FORMAT);
$_productCollection = Mage::getResourceModel('reports/product_collection')
->addAttributeToSelect('*')
->addAttributeToFilter('visibility', $visibility)
->setPageSize(4) // Only return 4 products
->addAttributeToFilter('special_from_date', array('date' => true, 'to' => $todayDate))
->addAttributeToFilter('special_to_date', array('or'=> array(
0 => array('date' => true, 'from' => $todayDate),
1 => array('is' => new Zend_Db_Expr('null')))
), 'left')
->addAttributeToSort('special_from_date', 'desc');
$_productCollection->load();
I wtedy uruchomić foreach aby uzyskać poszczególne produkty:
foreach ($_productCollection as $_product)
wszystko działa poprawnie, z wyjątkiem ceny, które zwykle połączenie przy użyciu
$this->getPriceHtml($_product, true)
Jednak to daje mi puste. Jeśli robię var_dump, widzę, że zarówno pierwotna cena, jak i specjalna cena są dostępne, więc dlaczego to nie działa? Używam dokładnie tego samego kodu na moim szablonie strony głównej, który nazywam CMS na stronie głównej, a cena jest wyświetlana w porządku (przy przecenionej cenie i wyświetlonej cenie specjalnej).
Używanie $ _product-> getFinalPrice() działa dobrze, ale tylko daje mi ostateczną "specjalną" cenę i nie pokazuje pierwotnej ceny.
Czy może brakuje mi czegoś w moim układzie xml, który jest potrzebny do pokazania cen za pomocą getPriceHtml?
Do jakiego bloku odnosi się "$ this"? – clockworkgeek