Jump to content

Comment afficher le prix TTC ET HT sur les fiches produits ?


Recommended Posts

Bonjour, je sais que cette question a déjà été posée mais je ne comprends pas car mon template ne possède pas ce document "product-prices", plutôt juste "product"tpl . Comment puis-je changer le code, et surtout quelle partie du code dans ce document ? Ou un autre si ce n'est pas celui-là qu'il faut. 

J'ai par exemple ceci : "     <div class="price">
                                <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}-->
                                        <meta itemprop="priceCurrency" content="{$currency->iso_code}" />
                                        {hook h="displayProductPriceBlock" product=$product type="price"} " 

Et j'imagine que c'est cette partie là qu'il faut travailler ? 

 

Merci beaucoup par avance, ça fait quelques jours que j'essaie de trouver la réponse, en vain.

Link to comment
Share on other sites

Donc pas de "product-price" en 1.6.

 

Je constate que dans votre tpl cette partie est commentée ( <!-- .... --> donc le label n'est pas pris en compte

Citation

                                        <!--{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}-->

Enlevez ces éléments de commentaire et tout devrait rentrer dans l'ordre

                                        {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}

 

Link to comment
Share on other sites

47 minutes ago, Eolia said:

Donc pas de "product-price" en 1.6.

 

Je constate que dans votre tpl cette partie est commentée ( <!-- .... --> donc le label n'est pas pris en compte

Enlevez ces éléments de commentaire et tout devrait rentrer dans l'ordre

                                        {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}

 

Bonjour, merci beaucoup pour votre réponse. J'ai essayé de faire ce que vous m'avez dit, mais j'ai toujours le prix qui s'affiche soit en TTC soit en HT... Je ne comprends pas pourquoi cette option est tellement inaccessible... 

Link to comment
Share on other sites

Ok, je n'avais pas bien compris votre question, vous voulez l'affichage des 2 prix.

Donc là ça va demander un peu plus de travail^^

Tout en haut de votre tpl vous avez l'affectation de productPrice suivant le type de cas (HT ou TTC)

	{if !$priceDisplay || $priceDisplay == 2}
		{assign var='productPrice' value=$product->getPrice(true, $smarty.const.NULL, 6)}
		{assign var='productPriceWithoutReduction' value=$product->getPriceWithoutReduct(false, $smarty.const.NULL)}
	{elseif $priceDisplay == 1}
		{assign var='productPrice' value=$product->getPrice(false, $smarty.const.NULL, 6)}
		{assign var='productPriceWithoutReduction' value=$product->getPriceWithoutReduct(true, $smarty.const.NULL)}
	{/if}

Il faudrait donc faire quelque chose comme ça

	{if !$priceDisplay || $priceDisplay == 2}
	{*} Si les prix sont en TTC, on récupère le HT {*}
		{assign var='productPrice' value=$product->getPrice(true, $smarty.const.NULL, 6)}
		{assign var='productPriceWithoutReduction' value=$product->getPriceWithoutReduct(false, $smarty.const.NULL)}
		{assign var='productPriceHT' value=$product->getPrice(false, $smarty.const.NULL, 6)}
	{elseif $priceDisplay == 1}
	{*} Si les prix sont en HT, on récupère le TTC {*}
		{assign var='productPrice' value=$product->getPrice(false, $smarty.const.NULL, 6)}
		{assign var='productPriceWithoutReduction' value=$product->getPriceWithoutReduct(true, $smarty.const.NULL)}
		{assign var='productPriceTTC' value=$product->getPrice(true, $smarty.const.NULL, 6)}
	{/if}

On a créé 2 nouvelles variables qu'on va pouvoir utiliser partout où le prix s'affiche, par exemple:

<div class="price">
	<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}
			{* bloc rajouté *}
			{if $tax_enabled}
				<br/>
				{if $priceDisplay == 1}{convertPrice price=$productPriceTTC}{l s='tax incl.'}{else}{convertPrice price=$productPriceHT}{l s='tax excl.'}{/if}
			{/if}
			{* fin du bloc rajouté *}
			<meta itemprop="priceCurrency" content="{$currency->iso_code}" />
			{hook h="displayProductPriceBlock" product=$product type="price"} 

 

Link to comment
Share on other sites

19 minutes ago, Eolia said:

Ok, je n'avais pas bien compris votre question, vous voulez l'affichage des 2 prix.

Donc là ça va demander un peu plus de travail^^

Tout en haut de votre tpl vous avez l'affectation de productPrice suivant le type de cas (HT ou TTC)

	{if !$priceDisplay || $priceDisplay == 2}
		{assign var='productPrice' value=$product->getPrice(true, $smarty.const.NULL, 6)}
		{assign var='productPriceWithoutReduction' value=$product->getPriceWithoutReduct(false, $smarty.const.NULL)}
	{elseif $priceDisplay == 1}
		{assign var='productPrice' value=$product->getPrice(false, $smarty.const.NULL, 6)}
		{assign var='productPriceWithoutReduction' value=$product->getPriceWithoutReduct(true, $smarty.const.NULL)}
	{/if}

Il faudrait donc faire quelque chose comme ça

	{if !$priceDisplay || $priceDisplay == 2}
	{*} Si les prix sont en TTC, on récupère le HT {*}
		{assign var='productPrice' value=$product->getPrice(true, $smarty.const.NULL, 6)}
		{assign var='productPriceWithoutReduction' value=$product->getPriceWithoutReduct(false, $smarty.const.NULL)}
		{assign var='productPriceHT' value=$product->getPrice(false, $smarty.const.NULL, 6)}
	{elseif $priceDisplay == 1}
	{*} Si les prix sont en HT, on récupère le TTC {*}
		{assign var='productPrice' value=$product->getPrice(false, $smarty.const.NULL, 6)}
		{assign var='productPriceWithoutReduction' value=$product->getPriceWithoutReduct(true, $smarty.const.NULL)}
		{assign var='productPriceTTC' value=$product->getPrice(true, $smarty.const.NULL, 6)}
	{/if}

On a créé 2 nouvelles variables qu'on va pouvoir utiliser partout où le prix s'affiche, par exemple:

<div class="price">
	<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}
			{* bloc rajouté *}
			{if $tax_enabled}
				<br/>
				{if $priceDisplay == 1}{convertPrice price=$productPriceTTC}{l s='tax incl.'}{else}{convertPrice price=$productPriceHT}{l s='tax excl.'}{/if}
			{/if}
			{* fin du bloc rajouté *}
			<meta itemprop="priceCurrency" content="{$currency->iso_code}" />
			{hook h="displayProductPriceBlock" product=$product type="price"} 

 

D'accord, je comprends, merci beaucoup. Donc si je change juste cette partie (ajoute les nouvelles variables) ce sera suffisant ? Ou faudra t-il changer d'autres fichiers tpl en rapport avec le prix, et autres parties de ce fichier là ? ( Je n'ai pas assez de connaissances dans la programmation, même si je comprends de mieux en mieux comment cela fonctionne ) 

Link to comment
Share on other sites

vous modifiez le bloc du haut qui ajoute les 2 variables et vous ajoutez ce que je vous ai donné dans le bloc du prix

{* bloc rajouté *}
			{if $tax_enabled}
				<br/>
				{if $priceDisplay == 1}{convertPrice price=$productPriceTTC}{l s='tax incl.'}{else}{convertPrice price=$productPriceHT}{l s='tax excl.'}{/if}
			{/if}
			{* fin du bloc rajouté *}

 

Link to comment
Share on other sites

23 minutes ago, Eolia said:

vous modifiez le bloc du haut qui ajoute les 2 variables et vous ajoutez ce que je vous ai donné dans le bloc du prix

{* bloc rajouté *}
			{if $tax_enabled}
				<br/>
				{if $priceDisplay == 1}{convertPrice price=$productPriceTTC}{l s='tax incl.'}{else}{convertPrice price=$productPriceHT}{l s='tax excl.'}{/if}
			{/if}
			{* fin du bloc rajouté *}

 

Ok, c'est fait, merci bcp, par contre je ne sais pas si je dois juste transférer ce fichier modifié vers le serveur, et ça suffira ( sur filezilla donc ) pour ajouter cette modification...

Link to comment
Share on other sites

2 hours ago, Eolia said:

Ben oui, si vous ne l'envoyez pas sur le serveur rien ne sera pris en compte.

Il faut aussi que vos paramètres (dans "Paramètres avancés => Performances") soit réglé comme suit:

image.png.8c813cdc9f6eb15ee7581656b7f9da3d.png

Ok, c'est fait, mais je crois que cette méthode ne marche pas, ça m'a déformé la page un peu mais pas de HT et TTC ensemble. : 

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

2 hours ago, seb3 said:

Ok, c'est fait, mais je crois que cette méthode ne marche pas, ça m'a déformé la page un peu mais pas de HT et TTC ensemble. :

Et maintenant que j'ai transféré l'ancien fichier (non modifié ) pour revenir à la normale, c'est toujours déformé ! qu'est ce que je vais faire, je ne comprends pas, j'ai poirtant fait "overwrite" le nouveau fichier ...?

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

29 minutes ago, seb3 said:

Et maintenant que j'ai transféré l'ancien fichier (non modifié ) pour revenir à la normale, c'est toujours déformé ! qu'est ce que je vais faire, je ne comprends pas, j'ai poirtant fait "overwrite" le nouveau fichier ...?

En plus maintenant je n'arrive plus à me connecter sur le serveur, qu'est ce que cela pourrait signifier ? 

Link to comment
Share on other sites

Pour la connexion, aucun rapport avec le tpl de la page produit.

Votre page semble normale là.

Avec quel éditeur avez-vous modifié le fichier svp ? De préférence Notepad++ car les éditeurs de base (notepad, bloc-note, etc...) déforment l'encodage

Link to comment
Share on other sites

11 minutes ago, Eolia said:

Pour la connexion, aucun rapport avec le tpl de la page produit.

Votre page semble normale là.

Avec quel éditeur avez-vous modifié le fichier svp ? De préférence Notepad++ car les éditeurs de base (notepad, bloc-note, etc...) déforment l'encodage

non, pas normale, car les produits doivent d'afficher horizontalement. Et le prix a droite, pas en bas de l'image. Ca doit être ça, car j'ai utilisé le bloc notes, maintenant je veiux juste revenir en arrière....

Link to comment
Share on other sites

Hum... vous aviez dû toucher à autre chose car en css la colonne de droite est forcée à 100%.

Si je le décoche c'est ok

image.thumb.png.6178cd9b3b02ebbe76702a2de3c5ed6f.png

Quand on met à jour la cache ça prend toutes les modifications qui ont pû être faites auparavant.

Link to comment
Share on other sites

2 minutes ago, Eolia said:

Hum... vous aviez dû toucher à autre chose car en css la colonne de droite est forcée à 100%.

Si je le décoche c'est ok

image.thumb.png.6178cd9b3b02ebbe76702a2de3c5ed6f.png

Quand on met à jour la cache ça prend toutes les modifications qui ont pû être faites auparavant.

Donc qu'est ce que je dois faire ...? J'essaie de suivre les conseils sur l'autre topic que je viens de créer et suppriemr prod et dev dans le cache, est ce correct ? 

Link to comment
Share on other sites

4 minutes ago, Eolia said:

Hein ????

Il n'y a pas de répertoires /dev et /prod en 1.6 !

Ouvrez votre fichier product.css dans votre thème (avec Notepad++) et supprimez le width:100%; pour .pb-right-column

Ok, ça l'explique, ils pensent surement que c'est une version plus récente. Je ne sais pas si c'est une bonne idée, j'ai peur de changer encore quelque chose... comment supprimer le cache alors ? ( si ça va faire revenir l'ancienne version ? ) 

Link to comment
Share on other sites

4 minutes ago, Eolia said:

supprimer le cache ne fait pas revenir à l'ancienne version, au contraire ça rafraichit les données (tpl, css et js)

Envoyez-moi ici (transfert de fichier ci-dessous) votre product.tpl et votre product.css

 

l'ancienne version ? ok, merci . je les envoie par mp ..

Link to comment
Share on other sites

9 minutes ago, Eolia said:

supprimer le cache ne fait pas revenir à l'ancienne version, au contraire ça rafraichit les données (tpl, css et js)

Envoyez-moi ici (transfert de fichier ci-dessous) votre product.tpl et votre product.css

 

Je le trouve pas le css, il devrait etre dans quel dossier ?

Link to comment
Share on other sites

6 minutes ago, Eolia said:

Il semblerait que c'est ok à présent avec les fichiers que je vous ai renvoyé ?

https://hifi-video.fr/amplificateur-integre/h190-amplificateur-integre-16

Oui, merci bcp, je vous ai répondu dans le mp. Par contre comme j'ai dit il y a encore un petit problème par rapport à la police du prix et l'affichage des produits de la catégorie "même catégorie". ( verticaux ) et je me demande pourquoi ça a changé alors qu'on n'a fait que changer le prix ttc et ht... 

Link to comment
Share on other sites

Ok, lors des éditions des MP je n'ai pas de notifications.

il y a 13 minutes, seb3 a dit :

je me demande pourquoi ça a changé alors qu'on n'a fait que changer le prix ttc et ht...

Je vous ai répondu plus haut à ce sujet:

Citation

supprimer le cache ne fait pas revenir à l'ancienne version, au contraire ça rafraichit les données (tpl, css et js)

Donc il devait y avoir des fichiers modifiés qui n'avaient jamais été pris en compte.

 

Si vos icônes étaient comme ça avant:

image.png.de7f30994c87949b3371431affa1d692.png

Il faut commenter la partie en texte dans le fichier /themes/votre theme/modules/socialsharing.tpl

Ca devrait donner quelque chose comme ça:

{if $PS_SC_TWITTER || $PS_SC_FACEBOOK || $PS_SC_GOOGLE || $PS_SC_PINTEREST}

	<p class="socialsharing_product list-inline no-print">
		{if $PS_SC_FACEBOOK}
			<button data-type="facebook" type="button" class="btn btn-default btn-facebook social-sharing">
				<i class="icon-facebook-square"></i> 
				<!--{l s="Share" mod='socialsharing'}-->
			</button>
		{/if}
		{if $PS_SC_TWITTER}
			<button data-type="twitter" type="button" class="btn btn-default btn-twitter social-sharing">
				<i class="icon-twitter-square"></i> 
				<!--{l s="Tweet" mod='socialsharing'}-->
			</button>
		{/if}
		{if $PS_SC_PINTEREST}
			<button data-type="pinterest" type="button" class="btn btn-default btn-pinterest social-sharing">
				<i class="icon-pinterest-square"></i> 
				<!--{l s="Pinterest" mod='socialsharing'}-->
			</button>
		{/if}
		{if $PS_SC_GOOGLE}
			<button data-type="google-plus" type="button" class="btn btn-default btn-google-plus social-sharing">
				<i class="icon-google-plus-square"></i> 
				<!--{l s="Google+" mod='socialsharing'}-->
			</button>
		{/if}
	</p>
{/if}

Pour les produits de la même catégorie il doit manquer la classe "bxslider" sur la balise ul du module /themes/votre theme/modules/productscategory.tpl

	<div class="block_content">
		<ul id="ttproductscategory-carousel" class="tt-carousel product_list bxslider clearfix">
          ...

 

Link to comment
Share on other sites

  • 2 years later...
On 10/7/2021 at 11:24 AM, Eolia said:

Ok, je n'avais pas bien compris votre question, vous voulez l'affichage des 2 prix.

Donc là ça va demander un peu plus de travail^^

Tout en haut de votre tpl vous avez l'affectation de productPrice suivant le type de cas (HT ou TTC)

	{if !$priceDisplay || $priceDisplay == 2}
		{assign var='productPrice' value=$product->getPrice(true, $smarty.const.NULL, 6)}
		{assign var='productPriceWithoutReduction' value=$product->getPriceWithoutReduct(false, $smarty.const.NULL)}
	{elseif $priceDisplay == 1}
		{assign var='productPrice' value=$product->getPrice(false, $smarty.const.NULL, 6)}
		{assign var='productPriceWithoutReduction' value=$product->getPriceWithoutReduct(true, $smarty.const.NULL)}
	{/if}

Il faudrait donc faire quelque chose comme ça

	{if !$priceDisplay || $priceDisplay == 2}
	{*} Si les prix sont en TTC, on récupère le HT {*}
		{assign var='productPrice' value=$product->getPrice(true, $smarty.const.NULL, 6)}
		{assign var='productPriceWithoutReduction' value=$product->getPriceWithoutReduct(false, $smarty.const.NULL)}
		{assign var='productPriceHT' value=$product->getPrice(false, $smarty.const.NULL, 6)}
	{elseif $priceDisplay == 1}
	{*} Si les prix sont en HT, on récupère le TTC {*}
		{assign var='productPrice' value=$product->getPrice(false, $smarty.const.NULL, 6)}
		{assign var='productPriceWithoutReduction' value=$product->getPriceWithoutReduct(true, $smarty.const.NULL)}
		{assign var='productPriceTTC' value=$product->getPrice(true, $smarty.const.NULL, 6)}
	{/if}

On a créé 2 nouvelles variables qu'on va pouvoir utiliser partout où le prix s'affiche, par exemple:

<div class="price">
	<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}
			{* bloc rajouté *}
			{if $tax_enabled}
				<br/>
				{if $priceDisplay == 1}{convertPrice price=$productPriceTTC}{l s='tax incl.'}{else}{convertPrice price=$productPriceHT}{l s='tax excl.'}{/if}
			{/if}
			{* fin du bloc rajouté *}
			<meta itemprop="priceCurrency" content="{$currency->iso_code}" />
			{hook h="displayProductPriceBlock" product=$product type="price"} 

 

Bonjour à tous, super cela fonctionne pour afficher les prix HT et TTC en même temps sur la page produit. Cependant, le prix TTC ne se mets pas à jour comme le HT lors du choix d'une déclinaison qui a un impact sur le prix.

Pour le HT qui fonctionne ça se passe visiblement ici dans product.js :
 

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');
    }


Une idée pour "l'adapter" et que ça fonctionne également sur le prix TTC ?

Merci par avance :)

Link to comment
Share on other sites

Je crois que je suis arrivé à ce que je voulais avec :

Dans product.tpl j'ai rajouté un span avec l'id our_price_display_ttc :

 

 <span id="our_price_display_ttc">{convertPrice price=$productPriceTTC}</span> {l s='tax incl.'}

et dans product.js je vais chercher cette id et utilise la variable priceWithDiscountsWithTax :
 

$('#our_price_display_ttc').text(formatCurrency(priceWithDiscountsWithTax, currencyFormat, currencySign, currencyBlank)).trigger('change');

ça a l'air de fonctionner je ne sais pas si c'est la meilleure méthode.

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