Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to display product price with and without tax at a time in product list for Prestashop?

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.

like image 979
Leo T Abraham Avatar asked Apr 23 '14 07:04

Leo T Abraham


3 Answers

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.

like image 177
yenshirak Avatar answered Nov 14 '22 02:11

yenshirak


In my case it works for default tax excl.:

{convertPrice price=$product->getPrice(false, $smarty.const.NULL)} ({l s='tax excl.'})
like image 39
PawelW Avatar answered Nov 14 '22 04:11

PawelW


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.

like image 2
José Manuel Blasco Avatar answered Nov 14 '22 02:11

José Manuel Blasco