Jump to content

Module cart modifié qui marche que sur une seule page....


whitedesign

Recommended Posts

(message posté par erreur sur le forum englische, si jamais un modo peut le supprimer.... désolé)

Bonjour à tous,

Premier topic sur ce forum pour soumettre un problème à la communauté et qui me rend "dingue"...

J'utilise presta depuis longtemps sur mes projets et je me débrouille toujours pour bricoler en fonction des besoins du client (j'utilise également made simple basé lui aussi sur Smarty et donc je ne suis pas déphasé)

Cette fois, mon client souhaite que le block cart latéral fasse apparaître plus d'infos, dans l'ordre :

total produits HT,
total port HT
total HT
total TTC.

J'ai donc modifié le module bloc cart pour faire apparaître les dites valeurs.

Mon problème c'est que ce bloc latéral fonctionne niquel quand je suis sur la page order.php mais sur toutes les autres pages du site, sans exception, il affiche certaines valeurs fausses..... :/

En l'espèce le total produit HT m'affiche le total livraisons et le total TTC est identique au HT.... Dés que je clique sur panier et que j'arrive sur la page de récap du panier (order.php) hop, les valeurs renvoyées sont les bonnes.....

J'imagine bien que c'est un problème de déclaration de variables mais j'avoue sécher totalement....

Avez-vous une piste à explorer ou une idée lumineuse pour me dépatouiller?

J'ai annexé les images pour que vous compreniez mieux ce que je veux dire. Dans les deux cas les paniers sont identiques c'est juste la page sur laquelle le bloc s'affiche qui diffère.

Le site n'est pas encore en prod bien sur, il est accessible à cette adresse si jamais:

http://www.panneauxexpress.com/site.php

Merci d'avance!

Bastien

42416_B4X7N6d36y2Pwk0oFrw7_t

42417_qyBFRAFtlGosfPRISqy8_t

Link to comment
Share on other sites

bonjour, merci de votre réponse.

Alors non, je l'ai laissé tel quel, j'ai juste rajouté deux lignes de code dans mon bloc cart, voici comment il se présente



Total produits HT
{displayPrice price=$total_products}



Expédition HT
{$shipping_cost}



Total HT
{displayPrice price=$total_price_without_tax}



Total TTC
{displayPrice price=$total_price}




Une idée?!

;)

nb: j'ai volontairement laissé les classes de style équivalentes pour le moment, à terme bien sur je vais utiliser des classes de nom différentes)

Link to comment
Share on other sites

le fichier js envoie les données suivant le nom des classes.
Par conséquent si toutes les classes sont les mêmes, les données affichées seront les mêmes, qu'importe les variables utilisées dans le fichier .tpl (en l'occurence le blockcart.tpl).
Si vous modifiez ces classes, il faut les renseigner dans le fichier .js

Link to comment
Share on other sites

Le code n'est pas équivalent, de mémoire le fichier .js n'est pas appelé sur la order.php page (exclusion par une condition if page-name=order) donc n'envoie pas de données à afficher donc les variables demandées par le tpl priment.

Link to comment
Share on other sites

Bon c'est chaud en fait... y'a des incidences sur plusieurs fichiers, je perds pied.

Si je comprends bien, le fichier ajax-cart.js met en place une fonction de refresh de certaines variables (ligne 504 de mon fichier):

//update general cart informations everywere in the page
   updateCartEverywhere : function(jsonData) {
       $('.ajax_cart_total').text(jsonData.productTotal);
       $('.ajax_cart_shipping_cost').text(jsonData.shippingCost);
       $('.cart_block_wrapping_cost').text(jsonData.wrappingCost);
       $('.ajax_block_cart_total').text(jsonData.total);



Donc seules les variables du fichier json ci-dessus rappelées et contenues dans les balises de classe précitées seront rafraichies.?

Dans mon fichier json ligne 68 je trouve:

'shippingCost': '{$shipping_cost|html_entity_decode:2:'UTF-8'}',
'wrappingCost': '{$wrapping_cost|html_entity_decode:2:'UTF-8'}',
'nbTotalProducts': '{$nb_total_products}',
'total': '{$total|html_entity_decode:2:'UTF-8'}',
'productTotal': '{$product_total|html_entity_decode:2:'UTF-8'}',



J'ai rajouté le code suivant à la suite:

'total_products_wt': '{$total_products_wt|html_entity_decode:2:'UTF-8'}',
'total_price_without_tax': '{$total_price_without_tax|html_entity_decode:2:'UTF-8'}',




Ensuite dans mon fichier ajax-cart j'ai ajouté:

//update general cart informations everywere in the page
   updateCartEverywhere : function(jsonData) {
       $('.ajax_cart_total').text(jsonData.productTotal);
       $('.ajax_cart_shipping_cost').text(jsonData.shippingCost);
       $('.cart_block_wrapping_cost').text(jsonData.wrappingCost);
       $('.ajax_block_cart_total').text(jsonData.total);

$('.cart_block_total_wt').text(jsonData.total_products_wt);
$('.total_price_without_tax').text(jsonData.total_price_without_tax);



Enfin j'ai modifié mon fiochier blockcart.tpl pour intégrer les nouvelles classes destinées à être rafraichies:



Total produits HT
{$total_products_wt}





Expédition HT
{$shipping_cost}

           {if $show_wrapping}

{l s='Wrapping' mod='blockcart'}
{if $priceDisplay == 1}{convertPrice price=$cart->getOrderTotal(false, 6)}{else[spam-filter]{/if}

           {/if}

Total HT
{$total_price_without_tax}


Total TTC
{displayPrice price=$total_price}



Mais rien... :/ C'est vide de chez vide à l'affichage...

j'ai loupé un truc?

Merci de votre aide, j'aimerai plutôt passer un WE rando VTT qu'un WE derrière mon pc.... ;)

Link to comment
Share on other sites

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