Получите многоуровневые цены на домашней странице/внешний вид продукта
Я сделал блок .phtml, который должен отображать самую низкую цену по параметру sku
{{block type="core/template" sku="theproductsku" template="getlowestprice.phtml"}}
И getlowestprice.phtml выглядит так
$_product = Mage::getModel('catalog/product')->loadByAttribute('sku',$this->sku);
$price=$prod->getPrice();
Хотя получение цены работает просто отлично, получение цены уровня, как я использовал в представлении продукта, не работает:
$prices = $this->getTierPrices($_product);
($цены равны НУЛЮ)
Существует ли какой-либо обходной путь для получения цен уровня за пределами представления продукта?
3 answers
$custom = Mage::getModel('catalog/product')->loadByAttribute('sku',$this->sku); var_dump($custom->getTierPrice());
Чтобы просто получить цены всех уровней, вы можете попробовать следующее:
$prices = $product->getFormatedTierPrice();
Причина, по которой ваш вызов $this->getTierPrices($_product);
не работает, заключается в том, что вы блокируете его не того типа, который расширяет Mage_Catalog_Block_Product_Abstract
, который содержит эту функцию getTierPrices
.
Что вы могли бы сделать, так это использовать эту функцию, чтобы создать свой собственный блок, который расширяет это, а затем использовать это вместо core/template
Создайте свой собственный пользовательский блок
$_tierPricing = $this->getLayout()->createBlock(
'catalog/product_view',
'product.tierprices',
array(
'product_id' => $yourproductId
)
);
$_tierPricing->setTemplate('catalog/product/view/tierprices.phtml');
<?php echo $_tierPricing->getTierPriceHtml();?>