Jump to content

Afficher l'éco-taxe en TTC des produits et/ou des combinaisons dans les produits et le panier


Recommended Posts

Bonjour,

 

Tout d'abord, je suis newbie sur Presta, c'est la première boutique que j'essaye de créer,

avec bien du mal concernant l'import des combinaisons !

 

Ayant beaucoup de combinaisons sur chaque produit qui modifient le prix final, une solution simple pour moi est de laisser le prix du produit à 0, ainsi que l'éco-taxe à 0 et appliquer les prix et ecotax sur les déclinaisons via l'importation CSV.

 

Sauf que je ne comprends pas pourquoi les ecotax des déclinaisons n'impactent pas le prix dans la fiche produit et ainsi que dans le panier.

 

Je me suis donc essayé à modifier le code ainsi :

 

Pouvez-vous me dire si j'ai bien fait ?

 

> Bon j'ai vu qu'il fallait faire des override, j'essaierai plus tard, pour l'instant c'est modifs directes dans le code à l'arrache ! LOL

 

Ca donne ce que je souhaite faire, par contre, quand on applique une réduction de 10% sur le TTC, la réduc s'applique en retirant l'ecotax, ce qui fait que ma réduc n'est plus que de 9,84% par exemple, c'est un peu pénible :-)

 

1. Modifier le fichier suivant pour afficher l'écotax TTC de la combinaison sélectionnée dans la fiche produit (l'écotax de la combinaison remplace l'écotax du produit qui est à 0 dans ma base)
/themes/default-bootstrap/product.js

	Ligne 683, ajouter :
	if (combination.ecotax)
	{
		basePriceDisplay = basePriceDisplay + combination.ecotax * (1 + ecotaxTax_rate / 100);
		priceWithDiscountsDisplay = priceWithDiscountsDisplay + combination.ecotax * (1 + ecotaxTax_rate / 100);
	}

	Ligne 771 : (mettre en commentaire les lignes suivantes :
		// If the default product ecotax is overridden by the combination
		//if (combination.ecotax)
		//	ecotax = +combination.ecotax;

	Ligne 782 ajouter :
	if (combination.ecotax)
	{
		ecotax = +combination.ecotax;
		if (!noTaxForThisProduct)
			ecotax = ecotax * (1 + ecotaxTax_rate/100);

		$('#ecotax_price_display').text(formatCurrency(ecotax * currencyRate, currencyFormat, currencySign, currencyBlank));
		$('.price-ecotax').show();
	}

2. Modifier le fichier pour afficher toujours l'écotax dans la ficher produit : (ben si l'eco du produit est à 0, elle s'affiche pas !)

 

    /themes/product.tpl

	Enlever ligne 297 :
							{if $product->ecotax != 0}
	et ligne 302 :
							{/if}

3. Modifier le fichier suivant pour modifier le prix dans la liste des produits :
/classes/Product.php

	Ligne 2759 :
						$sql->select('product_attribute_shop.id_product_attribute, product_attribute_shop.`price` AS attribute_price, product_attribute_shop.`ecotax` AS attribute_ecotax, product_attribute_shop.default_on');

	Ligne 2773 :
						'attribute_price' => (isset($row['attribute_price']) ? $row['attribute_price'] : null),
						'attribute_ecotax' => (isset($row['attribute_ecotax']) ? $row['attribute_ecotax'] : null)

4. Modifier le panier pour afficher les produits TTC avec ecotax :
/classes/Cart.php

Ligne 609, passer la valeur à true :
			$row['price'] = Product::getPriceStatic(
				(int)$row['id_product'],
				false,
				isset($row['id_product_attribute']) ? (int)$row['id_product_attribute'] : null,
				6,
				null,
				false,
				true,
				$row['cart_quantity'],
				false,
				(int)$this->id_customer ? (int)$this->id_customer : null,
				(int)$this->id,
				$address_id,
				$specific_price_output,
				true,
				true,
				$cart_shop_context
			);

Merci la communauté !

Edited by Oopata (see edit history)
  • Like 1
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...