Search the Community
Showing results for tags 'page panier'.
-
Bonjour, Sur un site utilisant prestashop 1.6.1.23, je souhaiterai que l'ordre des produits affichés dans la page panier soit toujours le même à savoir l'ordre ID produit croissant. Actuellement, l'ordre est le produit avec la modification la plus récente en dernier. Cela pose un problème ergonomique aux utilisateurs s'ils modifient les quantités et recharge cette page avec l 'ordre modifié. Quelqu'un sait-il comment l'on peut gérer cela ? Cordialement, AM
-
Voici une petite modification qui n'est certainement pas cruciale, mais qui peut être très utile. But de la manip : - Afficher le poids total des produits du panier sur la page "panier" - Mettre à jour ce poids lorsqu'on ajoute, supprime, ou change la quantité d'un produit dans la page Je précise que j'ai recherché sur le forum, mais je n'ai pas trouvé de solution complète (affichage initial + mise à jour) 4 fichiers à modifier (ou overrider) : /controllers/ParentOrderController.php (affichage initial de la page panier) /classes/Cart.php (mise à jour des infos dans la page) /themes/votre-theme/js/cart-summary.js (gestion de la mise à jour des infos) /themes/votre-theme/shopping-cart.tpl (template d'affichage de la page panier) Je donne ici les modifications sur les fichiers originaux, mais on peut utiliser la fonctionnalité override pour Cart.php et ParentOrderController.php (En cherchant un peu vous trouverez certainement comment "overrider" ces fichiers afin de conserver vos fichiers originaux de Prestashop) ParentOrderController.php, function _assignSummaryInformations() Juste après : 'productNumber' => self::$cart->nbProducts(), Ajouter : 'totalWeight' => str_replace('.', ',', self::$cart->getTotalWeight()), Cart.php, function getSummaryDetails() Juste après : 'total_products' => $this->getOrderTotal(false, Cart::ONLY_PRODUCTS), Ajouter : 'total_weight' => str_replace('.', ',', $this->getTotalWeight()), cart-summary.js, function updateCartSummary(json) Juste après : $('#summary_products_quantity').html(nbrProducts+' '+(nbrProducts > 1 ? txtProducts : txtProduct)); Ajouter : $('#summary_products_weight').html(json.total_weight+' Kg'); shopping-cart.tpl, ~ligne 69 Remplacer : <p>{l s='Your shopping cart contains'} <span id="summary_products_quantity">{$productNumber} {if $productNumber == 1}{l s='product'}{else}{l s='products'}{/if}</span></p> Par : <p>{l s='Your shopping cart contains'} <span id="summary_products_quantity">{$productNumber} {if $productNumber == 1}{l s='product'}{else}{l s='products'}{/if}</span> {l s='for a total weight of'} <span id="summary_products_weight">{$totalWeight} Kg</span></p> Enfin il ne vous reste plus qu'à aller dans votre BO => Outils => Traductions => Traductions du Front-Office, et traduire "for a total weight of" en "pour un poids total de" Ce qui donne ce résultat : Bien sur, vous pouvez pousser les modifs dans shopping-cart.tpl pour coller à la mise en forme de votre thème ou pour placer l'information ailleurs dans la page. Il suffira juste de conserver le code <span id="summary_products_weight">{$totalWeight} Kg</span> PS: Une nouvelle fois, et sans vouloir critiquer, on se demande pourquoi cette fonctionnalité, tout de même assez simple à mettre en place, n'est pas incluse directement dans Prestashop (avec une petite option en BO "Afficher le poids total sur la page panier" pour ceux que ça n'intéresse pas...)