1.4.8b Bug du module panier

Inscrire dans ce forum tous les types de problèmes que vous rencontrez avec OpenCart

1.4.8b Bug du module panier

Messagepar Marc » 26 Août 2010, 12:19

Bonjour,

Voici le bug constaté :

Ce bug n'existe pas tel que décrit dans ce post. La solution n'est donc pas valide... voir plus bas le véritable problème.

Version : 1.4.8b fr août 2010
Lors de l'ajout d'un produit il glisse dans le panier (via AJAX). Total, sous-total, boutons "voir le panier" et bouton "commander" apparaissent dans le module panier.
Si je recharge la page en allant par exemple sur une autre rubrique, le total et les boutons disparaissent et la présentation des produits est légèrement différente :(

Raison trouvée :
La gestion en AJAX a été pensée générique et tient compte des réglages de l'interface d'administration (Extension->totaux commandes).
Mais le modèle du panier est géré en statique, le total utilisé n'étant pas définit dans le contrôleur correspondant et les boutons n'étant pas ajouté lorsque le panier est plein.

Solution (bidouille) proposée :
Mon but est d'avoir une présentation identique de mon module panier avec l'ajout AJAX.
Ceci est proposé en attendant que ce bug soit corrigé dans la version officielle.

3 fichiers à modifier :
  • catalog/view/theme/votre_theme/template/module/cart.tpl
  • catalog/language/french/module/cart.php
  • catalog/controller/module/cart.php

catalog/view/theme/votre_theme/template/module/cart.tpl
Ligne 19, remplacer :
Code: Tout sélectionner
    <div style="text-align: right;"><?php echo $text_subtotal; ?>
      &nbsp;<?php echo $subtotal; ?>
   </div>

Par :
Code: Tout sélectionner
   <!-- Modfié par mfrerebeau le 26/08/2010 pour permettre un affichage identique en AJAX et en appel standard-->
    <div style="text-align: right;">
      <span style="font-weight: bold;"><?php echo $text_subtotal; ?></span><?php echo $totals[1]["text"]; ?>
   </div>
   <div style="padding-top: 5px; text-align: center; clear: both;">
      <a href="<?php echo $view; ?>"><?php echo $text_view; ?></a>
       |
      <a href="<?php echo $checkout; ?>"><?php echo $text_checkout; ?></a>
   </div>   
   <!-- FIN Modifications par mfrerebeau le 26/08/2010 pour permettre un affichage identique en AJAX et en appel standard-->


Ligne 8, après :
Code: Tout sélectionner
    <table cellpadding="2" cellspacing="0" style="width: 100%;">
      <?php foreach ($products as $product) { ?>
      <tr>

Ajouter :
Code: Tout sélectionner
      <!-- Ajouté par mfrerebeau le 26/08/2010 pour permettre un affichage identique en AJAX et en appel standard-->
       <td width="1" valign="top" align="left">
         <span class="cart_remove" id="remove_ <?php echo $product['key']?>" />&nbsp;</span>
      </td>
      <!-- FIN Ajouté par mfrerebeau le 26/08/2010 pour permettre un affichage identique en AJAX et en appel standard-->


catalog/language/french/module/cart.php
Ligne 6, remplacer :
Code: Tout sélectionner
$_['text_subtotal']      = 'Sous-total :';

Par :
Code: Tout sélectionner
$_['text_subtotal']      = 'Total :'; // Modifié par mfrerebeau le 28/08/2010 pour avoir la même présentation en AJAX et en chargement normal


catalog/controller/module/cart.php[/list]
Ligne 168, remplacez :
Code: Tout sélectionner
            foreach ($total_data as $total) {
               $output .= '<tr>';
              $output .= '<td align="right"><span class="cart_module_total"><b>' . $total['title'] . '</b></span></td>';
              $output .= '<td align="right"><span class="cart_module_total">' . $total['text'] . '</span></td>';
               $output .= '</tr>';
            }

Par :
Code: Tout sélectionner
         $output .= '<tr>';
         $output .= '<td align="right"><span class="cart_module_total"><b>' . $total_data[1]['title'] . '</b></span></td>';
         $output .= '<td align="right"><span class="cart_module_total">' . $total_data[1]['text'] . '</span></td>';
         $output .= '</tr>';
           
         $output .= '</table>';
            $output .= '<div style="padding-top:5px;text-align:center;clear:both;"><a href="' . $view . '">' . $this->language->get('text_view') . '</a> | <a href="' . $checkout . '">' . $this->language->get('text_checkout') . '</a></div>';


C'est terminé !


Discussion sur la modification :
Pour ceux qui veulent aller plus loin ou me faire des retours... La discussion est ouverte ! ;)

Je ne suis pas très satisfait de cette bidouille qui ne prend pas en compte les préférences de l'interface non plus. Mais au moins le module panier s'affiche pareil tout le temps. :roll:
J'ai choisi de ne plus afficher le sous-total dans le module panier (voir dernière modif) car j'ai noté un autre bug : si je désactive le sous-total dans l'interface, mon total est du coup toujours = 0... Donc je ne le désactive pas mais je supprime son affichage dans l'appel AJAX.

Je pense qu'il y aurait beaucoup à redire sur cet appel AJAX qui ne prend pas en compte la vue. En effet, l'appel AJAX impose une présentation dans le contrôleur du module... Or cela devrait utiliser la vue pour cela...
Mais je m'égare : cela est à développer dans un autre sujet... :P
Seul on va plus vite, ensemble on va plus loin...
Image
Avatar de l’utilisateur
Marc
 
Messages: 105
Inscrit le: 03 Août 2010, 14:08
Localisation: France - Tours

Re: [parti-RESOLU] 1.4.8b Bug du module panier

Messagepar Marc » 26 Août 2010, 16:43

Bon heu... Je crois que je me suis un peu emballé là.... :oops:
J'ai utilisé bêtement les modèles que j'avais utilisés avec la 1.4.7 .... Et dans la 1.4.8 certaines fonctionnalités ne marchent pas... curieux ... :roll:

Bref, j'ai pas pas encore remis tout ça en ordre mais ce topic n'est peut-être pas du tout utile :cry:
Seul on va plus vite, ensemble on va plus loin...
Image
Avatar de l’utilisateur
Marc
 
Messages: 105
Inscrit le: 03 Août 2010, 14:08
Localisation: France - Tours

Re: [parti-RESOLU] 1.4.8b Bug du module panier

Messagepar Imaxine » 27 Août 2010, 12:40

mfrerebeau a écrit:Voici le bug constaté :
Version : 1.4.8b fr août 2010
Lors de l'ajout d'un produit il glisse dans le panier (via AJAX). Total, sous-total, boutons "voir le panier" et bouton "commander" apparaissent dans le module panier.
Si je recharge la page en allant par exemple sur une autre rubrique, le total et les boutons disparaissent et la présentation des produits est légèrement différente :(
Il doit y avoir surement un décalage de version car je viens de tester à l'instant et cela ne se produit pas chez moi.
Imaxine
 
Messages: 3023
Inscrit le: 27 Juil 2009, 19:28

Re: [parti-RESOLU] 1.4.8b Bug du module panier

Messagepar Marc » 30 Août 2010, 11:33

Imaxine a écrit:Il doit y avoir surement un décalage de version car je viens de tester à l'instant et cela ne se produit pas chez moi.

C'est effectivement le cas. Mes fichiers modèles étaient ceux de la version 1.4.7. Les fonctionnalité 1.4.8b n'étaient donc pas présentes dans les fichiers modèles.

Cependant, même avec les bons modèles, j'ai bien un bug dès le moment où je désactive le sous-total dans l'interface d'admin (Extension->totaux commandes).
En effet le total affiché reste alors à 0 (dans le module cart comme dans le panier complet)...

Avez-vous remarqué ça chez vous ?
Est-ce normal (peut-être ais-je mal compris la fonctionnalité) ?
Avez-vous vu ce bug sur le forum (français ou anglais) ? Si oui, pouvez-vous me mettre le lien car je ne l'ai pas vu...
Seul on va plus vite, ensemble on va plus loin...
Image
Avatar de l’utilisateur
Marc
 
Messages: 105
Inscrit le: 03 Août 2010, 14:08
Localisation: France - Tours

Re: [parti-RESOLU] 1.4.8b Bug du module panier

Messagepar Imaxine » 30 Août 2010, 12:02

En effet, après un test, je remarque ce bug de total à zéro dans la sidebox du panier ainsi que de la page panier, lors de la désactivation du sous-total dans l'admin > Extension > Total commande > Sous-total.

Avant de signaler ce dysfonctionnement sur le forum Anglais, nous allons d'abord vérifier si cela n'a pas fait l'objet d'une correction sur la nouvelle version.

Sujet à suivre.....
Imaxine
 
Messages: 3023
Inscrit le: 27 Juil 2009, 19:28

Re: 1.4.8b Bug du module panier

Messagepar snickers » 01 Sep 2010, 10:45

Le problème vient du fait que le total des produits est calculé dans la foncton getSubTotal() dans le fichier : "/systeme/library/cart.php

La fonction qui logiquement devrait faire ce travail (getTotal()) récupère la variable $total qui est remplis dans la fonction getSubTotal().

Cependant dans le cas de la désactivation du sous total, cette ligne
Code: Tout sélectionner
$total += $this->cart->getSubTotal();
n'est pas appelé puisque la condition n'est pas vraie voir fichier "/catalog/model/total/sub_total.php"

Du coup le total est calculé à partir d'un montant initial de 0, alors qu'il devrait être calculé à partir du total des produits.

La solution la plus simple est de déplacer cette ligne :
Code: Tout sélectionner
$total += $this->cart->getSubTotal();
après le if dans "/catalog/model/total/sub_total.php".

Ainsi le sous total ne s'affichera pas car le tableau n'est pas crée pour lui, mais la variable $total contiendra bien le total des produits...

Je ne sais pas si je me suis bien exprimé mais j'espère vous avoir aidé. Je ne pense pas que mon correctif ait une quelconque répercussion sur autre chose mais je vais continuer à tester et je vous tiens au courant.

:)
Dernière édition par snickers le 01 Sep 2010, 12:26, édité 1 fois au total.
snickers
 
Messages: 8
Inscrit le: 01 Sep 2010, 10:34

Re: 1.4.8b Bug du module panier

Messagepar Marc » 01 Sep 2010, 11:24

Bien vu
ça me semble être une bonne correction en attendant le correctif dans les futures versions.
Seul on va plus vite, ensemble on va plus loin...
Image
Avatar de l’utilisateur
Marc
 
Messages: 105
Inscrit le: 03 Août 2010, 14:08
Localisation: France - Tours

Re: 1.4.8b Bug du module panier

Messagepar Imaxine » 01 Sep 2010, 12:21

As-tu testé cette modification, car il me semble que cela risque plutôt de doubler le montant total (Total + Sous-total) ?
Imaxine
 
Messages: 3023
Inscrit le: 27 Juil 2009, 19:28

Re: 1.4.8b Bug du module panier

Messagepar snickers » 01 Sep 2010, 12:26

Oui j'ai testé, et ça fonctionne.

J'ai du mal m'exprimer, il ne faut pas simplement copier coller la ligne en dessous du if , mais la déplacer en dessous du if.
J'édite mon message de suite.
snickers
 
Messages: 8
Inscrit le: 01 Sep 2010, 10:34

Re: 1.4.8b Bug du module panier

Messagepar Marc » 02 Sep 2010, 16:49

J'ai effectué plusieurs tests, je ne vois pas de souci.
Par ailleurs le raisonnement me semble parfaitement correct. :)
Seul on va plus vite, ensemble on va plus loin...
Image
Avatar de l’utilisateur
Marc
 
Messages: 105
Inscrit le: 03 Août 2010, 14:08
Localisation: France - Tours


Retour vers Rapports de Problèmes

Qui est en ligne ?

Utilisateur(s) parcourant actuellement ce forum : Aucun utilisateur inscrit et 0 invité(s)

cron
Copyright © 2009-2013 OpenCart France - Tous droits réservés