In the product list I need to display the product price with and without tax at a time.
I am using the version 1.6 of Prestashop.
Right now the price including tax is displayed in the product list. I want to display the price excluding tax as well.
How can I do that? I have searched for solution and was not able to find a working solution for me.
Find the following block in product-list.tpl
:
{foreach from=$products item=product name=products}
Add this to display price without tax:
{convertPrice price=$product.price_tax_exc}
Make sure that during development Template compilation
is set to Force compilation
and Cache
is set to No
in PrestaShop back-office -> Advanced Parameters
-> Performance
.
In my case it works for default tax excl.:
{convertPrice price=$product->getPrice(false, $smarty.const.NULL)} ({l s='tax excl.'})
I know there is already one accepted answer but I needed more information about how to get a product price.
The Prestashop built-in product class has the getPrice method.
/**
* Get product price
* Same as static function getPriceStatic, no need to specify product id
*
* @param bool $tax With taxes or not (optional)
* @param int $id_product_attribute Product attribute id (optional)
* @param int $decimals Number of decimals (optional)
* @param int $divisor Util when paying many time without fees (optional)
* @return float Product price in euros
*/
public function getPrice($tax = true, $id_product_attribute = null, $decimals = 6,
$divisor = null, $only_reduc = false, $usereduc = true, $quantity = 1)
{
return Product::getPriceStatic((int)$this->id, $tax, $id_product_attribute, $decimals, $divisor, $only_reduc, $usereduc, $quantity);
}
As you can see you can specify if you want it with taxes, the number of decimals given as result, and the number divisor.
So, if you want to get the product price by ID with and without taxes you can achieve it like this
$product = new Product($id_product, $id_language) // Fill with your info
$price_with_taxes = $product->getPrice(true);
$price_wout_taxes = $product->getPrice(false);
As other comments say, if you are inside a template, you can get the product id depending on the view you are modifying.
In product.tpl (the single product view) there is a $product variable. In product-list.tpl you have the $products variable, an array containing all products showing in the list.
Hope this helps.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With