Tampilan harga produk
Metode getPriceHtml()ini didefinisikan dalam kelas blok Mage_Catalog_Block_Product_Abstract.
Metode ini menggunakan penyaji harga yang tergantung pada jenis produk:
$type_id = $product->getTypeId(); // e.g. simple, configurable, bundle, grouped, ...
$this->_preparePriceRenderer($type_id)
Penyaji harga adalah blok dengan templat terkait. Keduanya tergantung pada jenis produk.
Jika tidak ada blok atau template yang ditentukan untuk jenis produk yang ditentukan, itu default ke catalog/product_priceblok dan catalog/product/price.phtmltemplate.
Di mana penentu harga dan templat untuk jenis produk ditentukan?
Blok harga dan penyaji biasanya ditentukan menggunakan tata letak XML, sehingga modul yang menambahkan jenis produk baru dapat dengan mudah menambahkan penyaji mereka sendiri juga. Sebagai contoh. produk yang dibundel menambahkan renderer harganya sebagai berikut dalam bundle.xmlfile tata letak:
<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>
Templat harga khusus atau penyaji
Menggunakan mekanisme yang sama juga memungkinkan untuk mengganti penyaji default. Jika Anda hanya ingin mengubah template, dan tetap menggunakan tipe blok harga default, cukup panggil addPriceBlockTypefile layout dengan blok default (lihat di atas) dan template Anda.
Merender blok harga
Kode untuk benar-benar membuat blok harga terlihat seperti ini:
$this->_preparePriceRenderer($type_id)
->setProduct($product)
->setDisplayMinimalPrice($displayMinimalPrice)
->setIdSuffix($idSuffix)
->toHtml();
The $displayMinimalPricedan $idSuffixvariabel argumen opsional dengan getPriceHtmlmetode.
public function getPriceHtml($product, $displayMinimalPrice = false, $idSuffix = '')
The $idSuffixdigunakan dalam template harga untuk menyelesaikan id CSS dari <span>tag seputar harga sebenarnya, misalnya:
<span class="price" id="price-excluding-tax-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>">