webleads-tracker

e-commerce widget panier: Afficher 0 article(s) au lieu de ne rien afficher

pderathe
Avatar
Bonjour,

Par défaut dans le widget panier le div ayant la classe "productNumber" est masqué lorsque le panier est vide. Quelqu'un saurait comment faire afficher "0 article(s)" au lieu de rien du tout ?

Merci pour votre aide.

Pascal
Artisan du Web en Rhône-Alpes

Fanny
Je pense que la réponse ne va pas te plaire, mais je le fait avec du javascript :
if($("#boxcart a").html().length == 0){
		$("#boxcart a").html("Mon panier : <span class=\"value\">0 article(s)</span>");
	};


Fanny

pderathe
Avatar
Merci Fanny
Si ça fonctionne ça me plaît ;)
Tu l'insères où (dans quel template )? (catalog/cart/cart.html ?)

A+

Pascal
Artisan du Web en Rhône-Alpes

Fanny
Oui mais je crois que le template du widget se trouve "catalog/cart/box_cart.html". A la fin de ton template tu met :
<script type="text/javascript">
$(document).ready(function() {
// le code plus haut
});
</script>

Vérifie bien que le widget à un identifiant "boxcart" et qu'il y a bien un lien dedans sinon il faudra adapter le code.

Fanny

pderathe
Avatar
Merci Fanny pour ce retour rapide

j'ai bien un widget avec l'id "boxcart"
<div id="boxcart" class="......">


j'ai rajouté dans le template cart.html les lignes suivantes :


			<script type="text/javascript">
            $(document).ready(function() {
            if($("#boxcart a").html().length == 0){
                    $("#boxcart a").html("Mon panier : <span class="value">0 article</span>");
                };
            });
            </script>        
 


mais le div.productNumber ne s'affiche toujours pas

Une idée ?
Merci

Pascal
Artisan du Web en Rhône-Alpes

pderathe
Avatar
Merci Fanny pour ce retour rapide

j'ai bien un widget avec l'id "boxcart"
<div id="boxcart" class="......">


j'ai rajouté dans le template cart.html les lignes suivantes :


			<script type="text/javascript">
            $(document).ready(function() {
            if($("#boxcart a").html().length == 0){
                    $("#boxcart a").html("Mon panier : <span class="value">0 article</span>");
                };
            });
            </script>        
 


mais le div.productNumber ne s'affiche toujours pas

Une idée ?
Merci

Pascal
Artisan du Web en Rhône-Alpes

Fanny
En fait ce n'est pas une div "productNumber" qui doit s'afficher mais un span dans la boxcart. Donc tu ne vois rien du tout?
Dans la console firefox as tu un message d'erreur? Sinon peut tu me donner le lien?
Voilà le lien vers notre site où c'est en place : http://www.micro-media.com/editions-bonne-anse/accueil/

Fanny

pderathe
Avatar
Merci Fanny pour ton aide

Il s'agit du site http://roses-orard.com/

quand j'ai un article dans le panier j'ai

<div id="boxcart" class="art-block widget widgetCart panier-haut">
   ...
   <div class="widget-content">
     <div class="productNumber">
     <span class="value">1</span>article(s)
     </div>
     <div class="amount">
     <span class="value">54,45 €</span>
     </div>
     <div class="viewcart">
     ...
     </div>
     <div class="moncompte">
     ...
     </div>
...

et quand le panier est vide
le div.productNumber et le div.amount n'apparaissent plus dans le code source
   <div class="widget-content">
     <div class="viewcart">
     ...
     </div>
     <div class="moncompte">
     ...
     </div>
   </div>

Artisan du Web en Rhône-Alpes

pderathe
Avatar
contenu en double effacé
Artisan du Web en Rhône-Alpes

Fanny
Qu'est ce que tu as activé comme widget pour faire venir le panier? Moi j'ai activé "Widget avec présentation du nombre de produits dans le panier". Parce que le comportement de ton widget et du mien son différent.

pderathe
Avatar
L'option exacte de mon widget panier est "Widget avec présentation du nombre de produits dans le panier et lien vers le détail"
Artisan du Web en Rhône-Alpes

Fanny
Oui en fait je viens de me rendre que cela fonctionne sur un de mes anciens site et pas sur un nouveau, c'est parce que sur l'ancien site le template été simplement :
<div id="boxcart" class="box boxcart" >
    <a ><mx:bloc id="advanced">
        Mon panier : <span class="value"><mx:text id="product_number" /> article(s)</span>
    </mx:bloc id="advanced"></a>
</div>

Donc soit tu peut remettre l'ancien code du template et cela fonctionnera, soit il faut que tu attende que je teste un script plus élaborée pour ce cas de figure.

Fanny

pderathe
Avatar
Tu vas mettre combien de temps pour mettre au point le nouveau script? (je pense que ça dépend de ton planning)
Artisan du Web en Rhône-Alpes

Fanny
D'ici la fin de la semaine je pense que ce sera bon.

Fanny
if($("#boxcart .product_number").length == 0){
		$("#boxcart .widgetContainer").prepend('<div class="vide">0 article(s)</div>');
	};

/edit/Tu peut même mettre
.prepend('<div class="product_number"><span class="value">0</span><span class="label">article(s)</span></div>')

Cela t'evitera de styliser la div/edit/
Cela devrait fonctionner maintenant, après à toi de styliser la div et tu peut également changer le texte.

Fanny

pderathe
Avatar
Bouh !

j'ai rajouté au bas de cart.tml

	<script type="text/javascript">
				$(document).ready(function() {
					if($("#boxcart .product_number").length == 0){
						$("#boxcart .widgetContainer").prepend('<div class="vide">0 article(s)</div>');
					};
				});
         </script>       
 


et ça ne fonctionne toujours : pas le div.productNumber étant désaffiché le contenu du Nb d'article n'apparait pas.

Tu avais raison quand tu disais au tout début que ça n'allait pas me plaire ;)
Artisan du Web en Rhône-Alpes

Fanny
Si si on va y arriver! Dans ton cas en fait il faut que tu appel
if($(".widget-content .product_number").length == 0){
						$(".widget-content").prepend('<div class="vide">0 article(s)</div>');
					};


Dans ton cas les div boxcart n'existe pas.