Jump to content
admin974

Remise en pourcentage arrondi et sans décimale

Recommended Posts

Bonjour,

 

J'ai ajouter ceci sur version 1.5.3.1

 

 {if $product.specific_prices.reduction_type == 'percentage'}
	  <s>{convertPrice price=$product.price_without_reduction} </s>
{/if}

{number_format(((($product.price_without_reduction - $product.price) / $product.price_without_reduction) * 100), 0)}%

 

Cela fonctionne tres bien sur product_list.tpl et les produits phares en page d'accueil. C'est exactement ce que je veut, mais voila sur fiche produit ( product.tpl ) ca marche pas du tout.

 

J'ai une page blanche avec seulement le nom et le prix du produit qui s'affiche en front office.

 

Quelqu'un sait il comment reprendre ce code pour product.tpl

 

Merci

Edited by admin974 (see edit history)

Share this post


Link to post
Share on other sites

Parce que sur product-list.tpl quand tu utilises la variable $product c'est en fait un item de $productS que tu utilises.

Dans cette partie de code, tu es en train de lister un tableau foreach et pour lister les éléments tu utilises le point. Par exemple:

$product.price

 

Dans le fichier product.tpl, la variable $product est un objet chargé par smarty et donc la syntaxe utilise la flèche pour récupérer les éléments de cet objet: $product->price

 

A toi d'adapter ton code en conséquence et de récupérer les éléments voulus. Attention, il ne suffit peut-être pas de changer les . en ->.

Il faut voir quels éléments tu peux charger de l'objet $product.

Pour cela, en début de code, places {debug} et quand tu chargeras ta page produit tu verras un tableau apparaître avec toutes les variables. Tu pourras alors voir quels sont les éléments chargés dans l'objet $product.

Edited by franckm1000 (see edit history)
  • Like 1

Share this post


Link to post
Share on other sites

Bonjour,

 

Tout d'abord, merci beaucoup pour le {debug} je ne le savait pas et ca me sera encore utile Je passe de virtuemart à presta et suis un peu dérouté.

 

 

Dans ce bloc de code

 

 <p id="reduction_percent" {if !$product->specificPrice OR $product->specificPrice.reduction_type != 'percentage'} style="display:none;"{/if}><span id="reduction_percent_display">{if $product->specificPrice AND $product->specificPrice.reduction_type == 'percentage'}-{$product->specificPrice.reduction*100}% {/if}</span></p>

 

j'ai remplacer

-{$product->specificPrice.reduction*100}%

 

par

-{round(($product->specificPrice.reduction*100),0)}% ( Solution aussi donnée par Raph59 )

 

Ca fonctionne, mais fallait aussi enlever les class css ( <p id="" et span id="" ) car sinon la remise arrondi se charge bien mais celle non arrondi la remplace aussitôt même le cache vidé.

 

Merci encore,

Share this post


Link to post
Share on other sites

Bonsoir,

un petit déterrage de topic, juste pour indiquer que ce petit bout de code :

 

Remplacer :

{$product->specificPrice.reduction*100}

 

Par :

{round(($product->specificPrice.reduction*100),0)}

 

Fonctionne très bien sous PS 1.4.9.

 

Merci

Share this post


Link to post
Share on other sites

Bonjour à tous,

Le problème c'est que si on enlève la class CSS reduction_percent_display qui est appliquée au span,

Alors le prix ne s'adapte plus en fonction des déclinaison... Il prend le premier pourcentage de la première déclinaison et ne bouge plus...

Merci de m'éclairer... :)

Share this post


Link to post
Share on other sites

bonjour,

avez vous trouvé une solution car j'ai le même soucis

merci d'avance

ludo

Share this post


Link to post
Share on other sites

Ca se passe dans le product.tpl mais aussi dans le le product.js si vous êtes en 1.6 

Share this post


Link to post
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...

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More