製品価格表示
メソッドgetPriceHtml()はブロッククラスで定義されMage_Catalog_Block_Product_Abstractます。
このメソッドは、製品タイプに依存する価格レンダラーを使用します。
$type_id = $product->getTypeId(); // e.g. simple, configurable, bundle, grouped, ...
$this->_preparePriceRenderer($type_id)
価格レンダラーは、テンプレートが関連付けられたブロックです。どちらも製品タイプに依存します。  
指定した製品タイプにブロックまたはテンプレートが定義されていない場合、デフォルトでcatalog/product_priceブロックとcatalog/product/price.phtmlテンプレートが使用されます。
製品タイプの価格レンダラーとテンプレートはどこで定義されていますか?
通常、価格ブロックとレンダラーはレイアウトXMLを使用して指定されるため、新しい製品タイプを追加するモジュールは独自のレンダラーも簡単に追加できます。例えば。バンドルされた製品は、bundle.xmlレイアウトファイルに次のように価格レンダラーを追加します。  
<default>
    <reference name="catalog_product_price_template">
        <action method="addPriceBlockType">
            <type>bundle</type>
            <block>bundle/catalog_product_price</block>
            <template>bundle/catalog/product/price.phtml</template>
        </action>
    </reference>
</default>
カスタム価格テンプレートまたはレンダラー
同じメカニズムを使用して、デフォルトのレンダラーをオーバーライドすることもできます。テンプレートを変更するだけで、デフォルトの価格ブロックタイプを保持する場合addPriceBlockTypeは、デフォルトブロック(上記を参照)とテンプレートを使用してレイアウトファイルを呼び出します。
価格ブロックのレンダリング
価格ブロックを実際にレンダリングするコードは次のようになります。  
$this->_preparePriceRenderer($type_id)
    ->setProduct($product)
    ->setDisplayMinimalPrice($displayMinimalPrice)
    ->setIdSuffix($idSuffix)
    ->toHtml();
変数は、オプションの引数にしている方法。$displayMinimalPrice$idSuffixgetPriceHtml
public function getPriceHtml($product, $displayMinimalPrice = false, $idSuffix = '')
$idSuffixCSSのID完了するために、価格のテンプレートで使用され<span>、たとえば、実際の価格を囲むタグを:   
<span class="price" id="price-excluding-tax-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>">