Magento Display Lared Pricing для каждого продукта на странице корзины

magento.stackexchange https://magento.stackexchange.com/questions/1283

Вопрос

У меня проблема с получением 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:

http://pastebin.com/4wk2p9zu

Это было полезно?

Решение

Я предполагаю, что вы хотите отобразить многоуровневые цены для каждого элемента тележки на странице просмотра тележки, возможно, стоит прояснить это в вашем вопросе.

Похоже, вы пытаетесь вызвать метод 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();?>
  1. На первой строке мы создаем новый блок просмотра продукта и передаем идентификатор продуктов. Важно, чтобы это делается сейчас на этапе создания, скорее после того, как блок создается, чтобы избежать ошибок в методе _preparelayout.
  2. Затем мы установили многоуровневый шаблон ценообразования, вы, вероятно, должны сделать новый шаблон, используемый только для корзины. Возможно checkout/cart/item/tierprices.phtml
  3. Теперь мы можем успешно использовать метод 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');

Спасибо

Лицензировано под: CC-BY-SA с атрибуция
Не связан с magento.stackexchange
scroll top