Hola,
Tengo una tienda virtuemart configurada para que utilice 3 decimales y aunque los muestra en los precios, a la hora de pasar los productos al carro de la compra redondea a 2, aunque sigue mostrando 3. En la imagen adjunta queda claro.
¿Tengo que modificar algo más para que todo trabaje con 3 decimales?
Gracias
Hola,
Para trabajar con 3 decimales en Virtuemart es necesario, además de poner el valor de 3 en el parámetro Decimales de Editar tienda realizar cambios en dos archivos del componente.
El primero hay que realizarlo en el archivo administrator/components/com_virtuemart/html/basket.php
Hay que buscar la línea con el código:
$product_price = round( $product_price, 2 );
y cambiarlo por:
$product_price = round( $product_price, 3 );
Con esto al iniciar el proceso de compra ya se trabajaría con 3 decimales. En el módulo del carrito se seguirán viendo el redondeo a 2 decimales. Para arreglarlo editamos el archivo administrator/components/com_virtuemart/html/shop.basket_short.php y buscamos la línea:
$subtotal = round( $price["product_price"], 2 ) * $cart[$i]["quantity"];
que cambiamos por la siguiente:
$subtotal = round( $price["product_price"], 3 ) * $cart[$i]["quantity"];
Si en lugar de 3 se necesitaran más decimales, en lugar de poner el 3 en el cambio del código ponemos el número que nos interese.