This is pretty sad the way its been implemented, but here is how you support 3 decimal places in Prestashop v1.5. Keep in mind, this is a global site change, so it will impact currencies that are only 2 decimal places. All Prices will be shown with 3 decimals if you make this change. To summarize, you would need to make the following changes to use a 3 decimal place price. Read below for more details 1) Change the config/defines.inc.php define('_PS_PRICE_DISPLAY_PRECISION_', 3); 2) Override Tools::ps_round so the precision is switched globally from 2 to 3 3) Search for the usage of string_format, and ensure 3f is used instead of 2f. I only get 2 hits when I search, which is prices.tpl and AdminRangePriceController.php The detailed explanation 1. Change the config/defines.inc.php There is a config file named defines.inc.php, which has a setting _PS_PRICE_DISPLAY_PRECISION_ define('_PS_PRICE_DISPLAY_PRECISION_', 2); This is used by the Tools::displayPrice function in conjunction with the currency format to show the price on a majority of the site. I changed the 2 to a 3 on a local test site and it seems to be working 90%. 2. Override Tools::ps_round There are still some places where only 2 decimals are showing, and that is because of functions like Product::getPriceStatic and Product::priceCalculation also do decimal formatting, and instead of using the above setting, they hard coded 2. So in the AdminProductsController, where the product price is entered, rounds the price to 2 decimal Product::getPriceStatic($this->_list[$i]['id_product'], true, null, 2, null, false, true, 1, true); Those functions just pass the decimal value to Tools::ps_round, so a simple override of the ps_round function, you could do if ($precision==2) $precision=3 3. Search for the usage of string_format The last thing I could find is within the actual smarty templates, there is also price formatting. For example, in prices.tpl (which is used to show the admin product price), they are using string_format:'%.2f' This is taking the 3 decimal price, and formatting it to 2 decimal, so changing it to string_format:'%.3f' fixes that display issue. I suppose you could just remove the string_format entirely, but that will result in showing the full 6 decimal places
is this the one u mean?