Saltar al contenido
Codifíca.me | Desarrollo web | Programación

[Solución] mostrar precios con impuestos en las productos con combinaciones

8 diciembre, 2016

[Solución] Precio con impuestos en las productos con combinaciones en prestashop

Si utilizáis prestashop con productos que tienen atributos y combinaciones, os encontraréis con el problema de que los productos no se muestran con impuestos aunque tengas configurado tu prestashop para mostrar los productos con impuestos.

Pues bien, antes de volverte loco con las configuraciones de tu tienda online te diré que más abajo tienes la solución a tu problema , y que esto es un bug de prestashop que se ha repetido en diversas versiones de prestashop

Si tu versión es anterior a 1.6.1 la solución es la siguiente, encuentra este fichero product.js que es el encargado de mostrar los precios de tus productos.

La ruta es:
tu-tienda/themes/nombre_de_tu_tema/js/

y el archivo que tienes que editar se llama product.js

Encuentra estas lineas y cambialas por las que pongo más abajo:

Encuentra estas:

if (!selectedCombination['unavailable'] && productShowPrice == 1)
{
  var tax = (taxRate / 100) + 1;
  var taxExclPrice = (specific_price ? (specific_currency ? specific_price : specific_price * currencyRate) : productPriceTaxExcluded) + selectedCombination['price'] * currencyRate;

Cámbialas por estas:

if (!selectedCombination['unavailable'] && productShowPrice == 1)
{
  var tax = (taxRate / 100) + 1;
  var taxExclPrice = (specific_price ? (specific_currency ? specific_price : specific_price * currencyRate) : productPriceTaxExcluded) + selectedCombination['price'];
En cambio si tu versión de prestashop es superior a 1.6, el cambio que tendrás que hacer es el siguiente, solo tendrás que comentar un trozo de código:

Encuentra estas:

	if (priceWithDiscountsDisplay > 0)
	{
    if(findSpecificPrice()){
      $('#our_price_display').text(findSpecificPrice()).trigger('change');
    }
    else{
      $('#our_price_display').text(formatCurrency(priceWithDiscountsDisplay, currencyFormat, currencySign, currencyBlank)).trigger('change');
    }
	}
	else
	{
		$('#our_price_display').text(formatCurrency(0, currencyFormat, currencySign, currencyBlank)).trigger('change');
	}

Y cámbialas por estas

	if (priceWithDiscountsDisplay > 0)
	{
    if(findSpecificPrice()){
      $('#our_price_display').text(findSpecificPrice()).trigger('change');
    }
    else{
      //$('#our_price_display').text(formatCurrency(priceWithDiscountsDisplay, currencyFormat, currencySign, currencyBlank)).trigger('change');
    }
	}
	else
	{
		$('#our_price_display').text(formatCurrency(0, currencyFormat, currencySign, currencyBlank)).trigger('change');
	}

opencart to prestashop

Y listo, estas soluciones nos ha fucionado correctamente en estas versiones, aunque no se si tendrá algún problema con otras versiones o con otros themes, esto ya corre de tu cuenta.
Suerte!