Jump to content

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)
Link to comment
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
Link to comment
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,

Link to comment
Share on other sites

  • 5 months later...

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

Link to comment
Share on other sites

  • 8 months later...

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

Link to comment
Share on other sites

  • 3 years later...

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