Answers:
该方法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和$idSuffix变量的参数是可选的getPriceHtml方法。
public function getPriceHtml($product, $displayMinimalPrice = false, $idSuffix = '')将$idSuffix在价格模板用于完成的CSS ID <span>周边的实际价格,例如标签:   
<span class="price" id="price-excluding-tax-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>">