У меня есть скроллер, показывающий коллекцию продуктов, которые в настоящее время продаются, которые я вызываю, используя следующее:
$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();
Затем я запускаю foreach для получения отдельных продуктов:
foreach ($_productCollection as $_product)
Все работает отлично, за исключением цены, которую я обычно звоню с помощью
$this->getPriceHtml($_product, true)
Однако это дает мне пробел. Если я делаю var_dump, я вижу, что и оригинальная цена, и специальная цена доступны, так почему же это не работает? Я использую точно такой же код на моем домашнем шаблоне, который я вызываю на домашней странице CMS, и цена отображается в порядке (с обычной ценой и специальной ценой).
Использование $_ product- > getFinalPrice() отлично работает, но дает мне окончательную "специальную" цену и не показывает первоначальную цену.
Возможно, мне что-то недоставало в моем макете xml, который должен был показывать цены, используя getPriceHtml?