Jump to content

Création d'une fonction dans le panier


Kur0

Recommended Posts

Bonjour,
 
J'ai du créer une fonction qui consiste a avoir au moins 5 article dans son panier pour pourvoir commandé sauf si il y a un pack, car si il y a un pack le client est autoriser a commander, cette fonction a été réaliser en JS.

J'ai étudié toute les fonctions qui permettent ce traitement mais je n'ai pas trouvé mon bonheur.
 
Mon besoin est lorsque l'on supprime un article de la commande, la fonction doit ce relancé pour pouvoir soustraire la quantité du produit au total de la commande.

Pour plus de détails voici la fonction:

function nbProd(action) {
	total = 0;
	/*ICI le code de la fonction DELELETE*/


	/*Verifie si il y a au moins l'un des pack defini*/
	if (document.getElementById('product_11') || document.getElementById('product_12') || document.getElementById('product_13') || document.getElementById('product_14') || document.getElementById('product_15') || document.getElementById('product_16')){
		alert("il y a un pack" ); 
	}

	else{
		alert("il n' y a pas de pack");

		/*Calcul la quantité de tout les produit*/
		result = document.getElementsByClassName("cart_quantity_input");
		

		//alert('atteint la boucle');

		for(var i= 0; i < result.length; i++){

			//alert('rentre dans la boucle for');

			 if(result[i].value != null){	//additionne toute les valeurs et ne prend pas en compte les valeur null
		    	total =total + parseInt(result[i].value);
		    	//alert('calcul terminer');
		    	
		  	}  
		} 
		//alert('sortie de la boucle for');

		 // si l'action est egal a augmente, alors nous prenons le total + 1
		if (action == 'augmente'){
			total=total +1;
		}

		// sinon si l'action est egal a diminue, alors nous prenon le total  -1
		else if(action == 'diminue'){
			total = total - 1;

		}
		
		alert(total);
		/* si le total des produit est inférieur à 5, alors on cache les adresses les livraison et la methode de paiement*/
		if (total < 5){
		  	  /* document.getEleentById('opc_account').style.display="none"; 				//id du bloc adresse qui est caché	
		  	  document.getElementById('opc_delivery_methods').style.display="none";		//id du bloc methode de livraison qui est caché
			  document.getElementById('opc_payment_methods').style.display="none";	*/	//id du bloc methode de paiement qui est caché
			 document.getElementById('product_cart_min_hidden').style.display="none";
			  alert('Vous devez avoir 5 articles minimum pour commander.');
		}
		/* sinon si le total des produit est superieur à 5, alors on affiche les adresses les livraison et la methode de paiement*/
		else if(total >= 5){
			document.getElementById('product_cart_min_hidden').style.display="block";
			  
		}
	}
	
}

Je vous remercie pour l'aide que vous m'apporterez. Cela me permettrait de finir mon projet et de pouvoir le présenter lors d'une épreuve importante de mes examens finaux de mon diplôme.

Cordialement,
Kuro

PS: Je travail sous Prestashop 1.6.0.11

Link to comment
Share on other sites

Bonjour,

 

Mon besoin est lorsque l'on supprime un article de la commande, la fonction doit ce relancé pour pouvoir soustraire la quantité du produit au total de la commande.

function nbProd(action) {
	total = 0;
	/*ICI le code de la fonction DELETE*/

 

- Supprimez la fonction interne delete /* ICI LE CODE... */ de votre function nbProd

(Plus les functions sont courtes, mieux c'est.)

La function delete d'un article est native, et elle se trouve dans votre ajax-cart.js et summary-cart.js

Lorsque le visiteur surprime un article, delete est appelé, et en callback la function refreshCart s’exécute.

A la fin du callback vous pouvez appeler à nouveau votre function nbProd.

Link to comment
Share on other sites

Bonjour, 

 

Je vous remercie de votre aide, j'ai fais les tests ce matin tout est opérationnel, ça me fais un problème en moins.

 

Et grâce a vous j'ai pu apprendre d'avantage de chose sur l'ajax  :D

 

Encore merci pour avoir pris le temps de vous consacré à mon problème, maintenant j'ai toute les clés en main pour pouvoir terminé mon Projet, Merci ! (bien que je l'ai dis plusieurs fois, mais je ne le dirai jamais assez.)

 

En espérant que ce problème va aider d'autre personne et que j'en apprenne plus dans ce forum grâce à vous ^^ .

  • Like 1
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...