Jump to content

Affichage de prix HT et déclinaisons


Recommended Posts

J'ai modifié pas mal de choses dans mon fichier product-list.tpl pour afficher le prix HT et TTC, il me reste un problème à résoudre, au niveau des déclinaisons qui ont un impact sur le prix. en effet si je change de taille par ex, le prix augmente mais pas le prix HT, exemple sur ce lien:
http://www.equidepot...on-stubben.html

voici l'extrait de code, ca fait déjà plusieurs mois que je me casse la tête la dessus du coup j'apprécierais vraiment un coup de pouce.
merci.


<span class="our_price_display">

{if $priceDisplay >= 0 && $priceDisplay <= 2}

<span id="our_price_display">{convertPrice price=$productPrice}</span>

{if $tax_enabled && ((isset($display_tax_label) && $display_tax_label == 1) OR !isset($display_tax_label))}

{if $priceDisplay == 1}{l s='tax excl.'}{else}{l s='tax incl.'}{/if}

{/if}

{/if}

</span>

{if $priceDisplay == 2}

<br />

<span id="pretaxe_price"><span id="pretaxe_price_display">{convertPrice price=$product->getPrice(false, $smarty.const.NULL)}</span> {l s='tax excl.'}</span>

{/if}

<br />

{if $priceDisplay != 1}

{convertPrice price=$product->getPrice(false, $smarty.const.NULL)}{l s='tax excl.'}

{/if}

{if $priceDisplay == 1}

{convertPrice price=$product->getPrice(true, $smarty.const.NULL)}{l s='tax incl.'}

{/if}

</br>{assign var='id_group' value=Customer::getDefaultGroupId((int)($cookie->id_customer))}

{if $id_group== 2}

{l s='Reduction incluse'}

{/if}

<br />

</p>

{if $product->specificPrice AND $product->specificPrice.reduction}

<p id="old_price"><span class="bold">

{if $priceDisplay >= 0 && $priceDisplay <= 2}

{if $productPriceWithoutRedution > $productPrice}

<span id="old_price_display">{convertPrice price=$productPriceWithoutRedution/ $group_reduction}</span>

{if $tax_enabled && $display_tax_label == 1}

{if $priceDisplay == 1}{l s='tax excl.'}{else}{l s='tax incl.'}{/if}

{/if}

{/if}

{/if}

</span>

</p>

{/if}

Edited by cockpitinferno (see edit history)
Link to comment
Share on other sites

  • 2 weeks later...
  • 2 weeks later...
  • 2 weeks later...

Salut cockpitinferno,

 

il faut que t'ailles voir dans themes/mon_theme/js/product.js et cherche ce code :

if (productPrice > 0)
  $('#our_price_display').text(formatCurrency(productPrice, currencyFormat, currencySign, currencyBlank));
 else
  $('#our_price_display').text(formatCurrency(0, currencyFormat, currencySign, currencyBlank));

C'est ce code qui permet la modification du prix en fonction du choix de la déclinaison. Il faut faire la même chose pour le prix HT.

Sur ton site, l'id du prix HT est :

pretaxe_price2

Donc faudrait essayer un truc du genre :

var productPriceHT = ps_round(taxExclPrice * tax, 2);
if (productPrice > 0) {
  $('#our_price_display').text(formatCurrency(productPrice, currencyFormat, currencySign, currencyBlank));
  $('#pretaxe_price2').text(formatCurrency(productPriceHT, currencyFormat, currencySign, currencyBlank));
}
else {
  $('#our_price_display').text(formatCurrency(0, currencyFormat, currencySign, currencyBlank));
  $('#pretaxe_price2').text(formatCurrency(0, currencyFormat, currencySign, currencyBlank));
}

 

Bon j'ai pas testé mais ça devrait l'faire !! Testes ça et tiens moi au jus ;)

A+

Link to comment
Share on other sites

merci pour ta réponse, je viens de faire l'essai edit ca fonctionne j'avais pa mis var productpriceHT.

 

:D

 

merci merci merci. ca faisait des mois que je cherchais!!!

 

j'ai juste enlevé la multiplication par tax ce qui donne

var productPriceHT = ps_round(taxExclPrice);

 

il faudra surement que je paufine pour les cas ou le HT est affiché en 1er et le TTC en 2e.

je mettrai les modifs sur ce post (pas le temps tt de suite)

Edited by cockpitinferno (see edit history)
Link to comment
Share on other sites

en fait ca soulève un autre pb.

avec cette modif, quand j'ai une réduction sur un produit, c'est le prix HT sans réduction qui s'affiche.

saurais tu ce qu'il faut modifier pour que a la fois ca soit modifié avec les déclinaisons et à la fois que ca prenne en compte le prix HT avec réduction quand promo.

 

merci

Link to comment
Share on other sites

merci pour ta réponse, je viens de faire l'essai edit ca fonctionne j'avais pa mis var productpriceHT.

 

:D

 

merci merci merci. ca faisait des mois que je cherchais!!!

 

j'ai juste enlevé la multiplication par tax ce qui donne

var productPriceHT = ps_round(taxExclPrice);

 

il faudra surement que je paufine pour les cas ou le HT est affiché en 1er et le TTC en 2e.

je mettrai les modifs sur ce post (pas le temps tt de suite)

 

Bon parfait ;)

Par contre, ça ne devrait pas avoir d'impact le fait que tu affiches en 1er ou en 2e tel ou tel prix, du moment que tu conserves les mêmes "id" : #our_price_display et #pretaxe_price2.

 

en fait ca soulève un autre pb.

avec cette modif, quand j'ai une réduction sur un produit, c'est le prix HT sans réduction qui s'affiche.

saurais tu ce qu'il faut modifier pour que a la fois ca soit modifié avec les déclinaisons et à la fois que ca prenne en compte le prix HT avec réduction quand promo.

 

merci

 

As-tu un exemple sur ton site ?

Link to comment
Share on other sites

ah et comment puis je corriger cette erreur?

 

en fait je veux juste que le nouveau prix soit affiché à la fois HT et TTC mais tu as du voir ma version corrigée car j'ai réussi à corriger le pb. sauf pour les pro car dans le cas des pro, c'est le prix HT qui est affiché en 1er et pas le prix TTC en 2e.

 

voilà les dernières modifs que j'ai fait:

 

if (!noTaxForThisProduct)
  var productPricePretaxed = productPrice / tax;
 else
  var productPricePretaxed = productPrice;

if (productPrice > 0) {
  $('#our_price_display').text(formatCurrency(productPrice, currencyFormat, currencySign, currencyBlank));
  $('#pretaxe_price2').text(formatCurrency(productPricePretaxed, currencyFormat, currencySign, currencyBlank));
}
else {
  $('#our_price_display').text(formatCurrency(0, currencyFormat, currencySign, currencyBlank));
  $('#pretaxe_price2').text(formatCurrency(0, currencyFormat, currencySign, currencyBlank));
}
$('#pretaxe_price_display').text(formatCurrency(productPricePretaxed, currencyFormat, currencySign, currencyBlank));

et ca fonctionne sauf pour les pro puisque du coup mon prix TTC (qui prends la place du prix HT grand public) est redivisé une 2e fois par la taxe donc ca donne un prix TTC faux.

il faudrait que j'ajoute une condition pour que quand le groupe a un affichage de tva HT alors ce prix est égal au prix du produit multiplié par la tax et non divisé.

 

j'espère que c'est assez clair :)

Link to comment
Share on other sites

bon bon bon, ca y est je crois que c'est tout bon (j'espère que je vais pas voir des grosses erreurs demain matin :wacko: )

 

voilà le code pour le tpl:

<span class="pretaxe_price2">{if $priceDisplay != 1} <span id="pretaxe_price2">
{convertPrice price=$product->getPrice(false, $smarty.const.NULL)}
</span> {/if}
{if $priceDisplay == 1} <span id="pretaxe_price3">
{convertPrice price=$product->getPrice(true, $smarty.const.NULL)}
</span> {/if}
</span>
<span >{if $priceDisplay != 1} {l s='tax excl.'}
 {/if}
{if $priceDisplay == 1} {l s='tax incl.'}
{/if}

 

et voilà pour le js

//productPrice = ps_round(productPrice * currencyRate, 2);
 if (!noTaxForThisProduct)
  var productPricePretaxed = productPrice / tax;
 else
  var productPricePretaxed = productPrice;

if (productPrice > 0) {
var productPriceTTC = ps_round(productPrice * tax );
$('#our_price_display').text(formatCurrency(productPrice, currencyFormat, currencySign, currencyBlank));
  $('#pretaxe_price2').text(formatCurrency(productPricePretaxed, currencyFormat, currencySign, currencyBlank));
$('#pretaxe_price3').text(formatCurrency(productPriceTTC, currencyFormat, currencySign, currencyBlank));
}
else {
  $('#our_price_display').text(formatCurrency(0, currencyFormat, currencySign, currencyBlank));
  $('#pretaxe_price2').text(formatCurrency(0, currencyFormat, currencySign, currencyBlank));
$('#pretaxe_price3').text(formatCurrency(0, currencyFormat, currencySign, currencyBlank));
}

 

ca a l'air d'être ok, pour ce que je souhaite faire en tt cas.

merci beaucoup ghostom car sans toi j'y serais jamais arrivée. ;)

Link to comment
Share on other sites

ca a l'air d'être ok, pour ce que je souhaite faire en tt cas.

merci beaucoup ghostom car sans toi j'y serais jamais arrivée. ;)

 

Ok parfait !!

De rien, c'est bien à ça qu'ça sert une communauté !! ;)

 

Tu peux ajouté un [RESOLU] à ton sujet alors.

 

++

Link to comment
Share on other sites

  • 1 month later...

je n'ai pas touché à product list. tpl puisque le choix des déclinaisons ne se fait pas sur cette page. donc pas besoin d'y toucher.

tu as ta déclinaison par défaut avec ton prix dnas product list (en général le moins cher) et c'est seulement quand tu vas sur la page produit que tu chane de déclinaison pour une plus chère éventuellement.

Link to comment
Share on other sites

  • 4 months later...

Bonjour,

 

j'ai affiché les prix HT et TTC sur le récapitulatif de la commande,

mais j'ai un petit problème, si je modifié la quantité le prix TTC se modifie et le prix HT ne se modifie pas

qui a une solution ce problème ?

et merci :)

Link to comment
Share on other sites

  • 2 months later...
  • 2 months later...

Bonjour,

 

J'ai appliqué cette méthode et cela fonctionne bien.

Sauf pour les déclinaisons ou il y un changement de prix.

Même si je change via le menu déroulant la déclianaison, le prix ne change pas, en effet il devrait y avoir une url de ce type :

http:/monsite.fr/lampes-uv/71-lampes-avec-culot-douille-2g11-.html#/puissance-55w

chez moi elle reste en http:/monsite.fr/lampes-uv/71-lampes-avec-culot-douille-2g11-.html

 

auriez vous rencontrer le même problème ?

Link to comment
Share on other sites

  • 1 year later...

je crois que j'ai trouvé, toujours dans product.js

j'ai modifié la ligne 667

remplacé ca:

    $('#our_price_display').text(formatCurrency(priceWithDiscountsDisplay * currencyRate, currencyFormat, currencySign, currencyBlank));

par

var priceWithDiscountsDisplay2 = priceWithDiscountsWithoutTax;

	$('#our_price_display').text(formatCurrency(priceWithDiscountsDisplay * currencyRate, currencyFormat, currencySign, currencyBlank));
	$('#pretaxe_price2').text(formatCurrency(priceWithDiscountsDisplay2, currencyFormat, currencySign, currencyBlank));

est ce quun pourrait me dire si c'est bon?

 

Link to comment
Share on other sites

  • 2 months later...
  • 2 months later...
Voila ce que j'ai rajouté, en rouge:
Fichier product.tpl
<p class="our_price_display" itemprop="offers" itemscope itemtype="http://schema.org/Offer">
{if $product->quantity > 0}<link itemprop="availability" href="http://schema.org/InStock"/>{/if}
{if $priceDisplay >= 0 && $priceDisplay <= 2}
<span id="our_price_display" itemprop="price">{convertPrice price=$productPrice}</span>
{if $tax_enabled  && ((isset($display_tax_label) && $display_tax_label == 1) || !isset($display_tax_label))}
{if $priceDisplay == 1}{l s='tax excl.'}{else}{l s='tax incl.'}{/if}
{/if}
<br>
<span id="pretaxe_price2" itemprop="priceHT" style="font-size: 12px; color: #a7a7a7;">
                                        {convertPrice price=$product->getPrice(false, $smarty.const.NULL)} {l s='tax excl.'}
                                        </span>
                                        
<meta itemprop="priceCurrency" content="{$currency->iso_code}" />
{hook h="displayProductPriceBlock" product=$product type="price"}
{/if}
</p>

 

 

 
Fichier product.js
J'ai remplacé ligne 728:
$('#our_price_display').text(formatCurrency(priceWithDiscountsDisplay * currencyRate, currencyFormat, currencySign, currencyBlank)).trigger('change');
 

 

 

par

 
var priceWithDiscountsDisplay2 = priceWithDiscountsWithoutTax;
 
$('#our_price_display').text(formatCurrency(priceWithDiscountsDisplay * currencyRate, currencyFormat, currencySign, currencyBlank)).trigger('change');
$('#pretaxe_price2').text(formatCurrency(priceWithDiscountsDisplay2, currencyFormat, currencySign, currencyBlank)).trigger('change');
 

 

 

Edited by RobyNaish (see edit history)
Link to comment
Share on other sites

  • 1 month later...

Bonjour à tous et merci pour les précédents postes, j'ai également une version 1.6.0.9 et je cherche à faire la même chose mais dans le sens inverse.

 

Je m'explique :

- Mes prix sont affichés en HT sur mon site et je cherche à préciser entre parenthèse le prix TTC.

- J'utilise les déclinaisons et j'aimerai que le prix TTC se mette à jour lorsque je change de déclinaisons (comme mon prix HT actuellement).

 

quelqu'un aurait-il une idée?

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...