Jump to content

Page Panier, ajouter l'économie réalisée


Recommended Posts

Bonjour.

 

Je suis sous Prestashop 1.6.0.9

Sur ma page panier, j'ai le total produit et le total de ma commande qui s'affiche et qui tient compte des remises éventuelles qu'il y a sur chaque produit.

Je souhaite rajouter un bloc avec "Economie réalisée" : il s'agit de la différence entre le total des produits sans remise et le total des produits avec les remises éventuelles.
Est-ce que qqn a déjà fait ça ?

Je ne sais pas par quel bout prendre ce problème ?

Que dois-je modifier ?

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

  • 11 months later...

3 fichiers à modifier (ou overrider) :

/controllers/ParentOrderController.php 

/themes/votre-theme/shopping-cart.tpl

/themes/votre-theme/order-payment.tpl

 

 

 

ParentOrderController.php, function _assignSummaryInformations()

Juste avant : 

foreach ($summary['products'] as $key => &$product)

 

Ajouter :

$totalDiscountPrice = 0;

 

Et juste après :

$product['is_discounted'] = $product['price_without_specific_price'] != $product['price_wt'];

 

Ajouter : (Pas dans le else)

$totalDiscountPrice = $totalDiscountPrice + (($product['price_without_specific_price'] * $product['cart_quantity']) - ($product['price_wt'] * $product['cart_quantity']));

 

/themes/votre-theme/shopping-cart.tpl

Juste avant :

{if $total_shipping_tax_exc <= 0 && !isset($virtualCart)} (l : 236)

 

Ajouter :

<tr class="cart_total_price">
     <td class="label">Total de vos économies :</td>
     <td class="price-discount price">{displayPrice price=$totalPriceDiscount}</td>
</tr>

 

/themes/votre-theme/order-payment.tpl

Juste avant :

{if $total_shipping_tax_exc <= 0 && !isset($virtualCart)} (l : 219)

 

Ajouter :

<tr class="cart_total_price">
     <td class="label">Total de vos économies :</td>
     <td class="price-discount price">{displayPrice price=$totalPriceDiscount}</td>
</tr>
Edited by HananeF (see edit history)
Link to comment
Share on other sites

Ca ne fonctionne pas.

La variable $totalPriceDiscount reste toujours vide.

Pour tester, au lieu de 

$totalDiscountPrice = 0;

j'ai mis 

$totalDiscountPrice = 3;

et idem pour le $totalDiscountPrice = $totalDiscountPrice + (($product['price_without_specific_price'] * $product['cart_quantity']) - ($product['price_wt'] * $product['cart_quantity']));

j'ai mis

$totalDiscountPrice = 3;

J'ai fait une surcharge et bien supprimé le fichier class_index.php

Link to comment
Share on other sites

En fait, j'avais bien essayé mais j'ai vu où était l'erreur. J'ai bêtement copier/coller votre code et il y avait une erreur :

au début votre variable s'appelle totalDiscountPrice 

et à la fin c'est devenu : totalPriceDiscount

inversion de Price et Discount.

 

Une fois cette erreur corrigée et avec l'assignation de la variable cela fonctionne.

Mais afin que ce soit pleinement opérationnel, il faut également modifier le cart-summary.js

afin que le montant soit mis à jour si le client modifie son panier ( ce que j'ai fait) et là, c'est parfait.

Merci en tous les cas pour votre aide.

Link to comment
Share on other sites

il y avait une erreur :

au début votre variable s'appelle totalDiscountPrice 

et à la fin c'est devenu : totalPriceDiscount

inversion de Price et Discount.

 

C'est inexact de parler d'une erreur dans le code donné au départ à ce niveau.

C'est simplement que la variable PHP s'appelle totalDiscountPrice et que la variable SMARTY s'appelle totalPriceDiscount

Il n'y a strictement aucun lien de parenté entre leur nom hormis au moment de l'assignation.

 

Donc il n'y a pas besoin de "renommer" les variables mais simplement de bien assigner comme dans mon précédent message où la variable SMARTY créée est bien nommée 'totalPriceDiscount'

$this->context->smarty->assign('totalPriceDiscount', $totalDiscountPrice);

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

Trop tard, j'ai déjà fini d'intégrer ce que je voulais et ça fonctionne à 100%.

pas de soucis l'important c’est que vous ayez pu réussir à faire ce que vous vouliez.

 

Le montant économisé se met il bien à jour lors du changement de quantité des produits directement dans le panier ?

Link to comment
Share on other sites

  • 5 months later...

Bonjour DJform,

 

Merci pour ce topic car je cherche depuis un moment une solution, dommage que ceci ne soit pas natif  :) 

Pouvez-vous remettre en détails les modifications que vous avez effectué pour que ceci fonctionne svp. Ce serait GRANDEMENT sympathique  ;)  

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