カートページの各製品のMagentoディスプレイ階層式価格
質問
私は問題を抱えています 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();
内部チェックアウト/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();?>
- 最初の行で、新しい製品ビューブロックを作成し、製品のIDに渡します。 これは、_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');
ありがとう