Magento Display Lared Pricing для каждого продукта на странице корзины
Вопрос
У меня проблема с получением tierPriceHtml
Чтобы отобразить для каждого элемента на странице корзины.
Это то, что у меня есть внутри checkout/cart/item/default.phtml
:
$custom = Mage::getModel('catalog/product')->load($_item->getProductId());
$tierPrice = $custom->getTierPriceHtml();
echo $tierPrice;
Однако это ничего не повторит. Я также попробовал это без повезло:
echo $this->getTierPriceHtml()
Как я могу это сделать? Должен ли я сделать что -нибудь, чтобы изменить файл Checkout.xml, чтобы отобразить его?
Вот весь мой файл заказа/cart/item/default.phtml:
Решение
Я предполагаю, что вы хотите отобразить многоуровневые цены для каждого элемента тележки на странице просмотра тележки, возможно, стоит прояснить это в вашем вопросе.
Похоже, вы пытаетесь вызвать метод getTierPrice()
от Mage_Catalog_Model_Product
класс вместо Mage_Catalog_Block_Product_Abstract
учебный класс.
Вы можете создать свой собственный блок, который расширяется Mage_Catalog_Block_Product_Abstract
Но самый простой способ достичь того, что вы хотите, - это создать новый экземпляр Mage_Catalog_Block_Product_View
для каждого предмета.
Добавьте это после $_item = $this->getItem();
Inside Checkout/cart/item/default.phtml:
$_tierPricing = $this->getLayout()->createBlock(
'catalog/product_view',
'product.tierprices',
array(
'product_id' => $_item->getProductId()
)
);
$_tierPricing->setTemplate('catalog/product/view/tierprices.phtml');
А потом, где вы хотите поставить информацию о ценах:
<?php echo $_tierPricing->getTierPriceHtml();?>
- На первой строке мы создаем новый блок просмотра продукта и передаем идентификатор продуктов. Важно, чтобы это делается сейчас на этапе создания, скорее после того, как блок создается, чтобы избежать ошибок в методе _preparelayout.
- Затем мы установили многоуровневый шаблон ценообразования, вы, вероятно, должны сделать новый шаблон, используемый только для корзины. Возможно
checkout/cart/item/tierprices.phtml
- Теперь мы можем успешно использовать метод GetTierPriceHtml ().
Другие советы
Я смог получить множество многоуровневых цен для продукта, подобного этому:
$custom = Mage::getModel('catalog/product')->load($_item->getProductId());
var_dump($custom->getTierPrice());
С этим вы можете отформатировать массив во что -то легко читаемое. Вот пример вывода из моей демонстрации:
array(3) {
[0]=>
array(7) {
["price_id"]=>
string(2) "11"
["website_id"]=>
string(1) "0"
["all_groups"]=>
string(1) "1"
["cust_group"]=>
int(32000)
["price_qty"]=>
string(6) "5.0000"
["price"]=>
string(8) "599.0000"
["website_price"]=>
string(8) "599.0000"
}
[1]=>
array(7) {
["price_id"]=>
string(2) "12"
["website_id"]=>
string(1) "0"
["all_groups"]=>
string(1) "1"
["cust_group"]=>
int(32000)
["price_qty"]=>
string(7) "10.0000"
["price"]=>
string(8) "499.0000"
["website_price"]=>
string(8) "499.0000"
}
[2]=>
array(7) {
["price_id"]=>
string(2) "13"
["website_id"]=>
string(1) "0"
["all_groups"]=>
string(1) "1"
["cust_group"]=>
int(32000)
["price_qty"]=>
string(7) "15.0000"
["price"]=>
string(8) "399.0000"
["website_price"]=>
string(8) "399.0000"
}
}
Реализация предлагается jharrison.au работать, но если вы хотите использовать другой дизайн по цене уровня в корзине, вы должны изменить
$_tierPricing->setTemplate('catalog/product/view/tierprices.phtml');
за
$_tierPricing->setTierPriceTemplate('catalog/product/view/tierprices.phtml');
Спасибо