Jump to content

ajouter par multiple un article au niveau de la page produit


Recommended Posts

bonjour , 

je voudrais rebondir sur un ancien sujet en le remettant d'actualité concernant

l'ajout d'article dans le selecteur dans la vue "produit" (quand on est encore sur la page produit! je ne parles pas de la page panier)

 

j'imagine qu'il faut récupérer la variable qu'on définit dans le backof pour les quantités minimum dans les déclinaisons du produit et qu'il faut la ramener dans le code javascript product.js?

mais je ne sais pas comment m'y prendre , je connais mal javascript.

 

faut il aussi intercaller quelque chose dans le productController et dans le product.tpl?pour que les + et - ajoutent bien l'article par multiple dans la vue produit?

please help,

tout ce que j'ai tenté n'a  mené à rien.

 

merci d'avance.

Link to comment
Share on other sites

bonjour , 

je voudrais rebondir sur un ancien sujet en le remettant d'actualité concernant

l'ajout d'article dans le selecteur dans la vue "produit" (quand on est encore sur la page produit! je ne parles pas de la page panier)

 

j'imagine qu'il faut récupérer la variable qu'on définit dans le backof pour les quantités minimum dans les déclinaisons du produit et qu'il faut la ramener dans le code javascript product.js?

mais je ne sais pas comment m'y prendre , je connais mal javascript.

 

faut il aussi intercaller quelque chose dans le productController et dans le product.tpl?pour que les + et - ajoutent bien l'article par multiple dans la vue produit?

please help,

tout ce que j'ai tenté n'a  mené à rien.

 

merci d'avance.

 

Hello,

 

Je ne voudrais pas jouer l'oiseau de mauvaise augure mais a ce que je comprends de ton post, je ne vois pas de lien avec le controller product.

Dès lors que tu sais ajouter les boutons - et + dans ton tpl , les seules connaissances qui te permettent de faire ce que tu veux sont justement des connaissances en javascript et notamment tant qu'à faire sous presta , en jquery.

 

Tu n'as pas besoin de toucher au controller, la quantité minimale est dans l'objet product chargé dans smarty : {$product->minimal_quantity} te retourne la quantité minimale commandable pour un produit donné.

Si tu en as vraiment besoin en javascript, tu peux l'assigner comme variable globale depuis ton tpl. Je n'ai pas vérifié mais je miserais assez gros sur le fait qu'elle existe déja... 

 

Mais sans connaissance javascript la tâche derrière va être ardue :s 

 

On peut orienter, corriger, ou filer des solutions simples et existantes parce qu'on a eu à le faire et qu'on juge  qu'il est facile d'exposer ce qu'on a fait,

mais pas faire "a la place de" .

Il faut vraiment des connaissances en javascript pour mettre en oeuvre ce type de fonctionnement somme toute relativement simple. Le principe étant si j'ai bien compris d'utiliser les clicks +/- pour augmenter ou décrémenter la qté commandée, et je pense faire en sorte que cette quantité cesse de se décrémenter un fois minimal_quantity atteint.

 

Comme le javascript nécessaire est directement lié au thème et à tes tpls, te donner une réponse cohérente revient à faire le taf à ta place sans même savoir si c'est ce que tu veux. :( 

Link to comment
Share on other sites

Ok.j'entends bien mais il est certain qu'il faut modifier des choses dans product.js aurais tu une piste?mon minimum quantité doit me servir d'opérateur d'ajout d'article.tu veux dire que cette variable existe déjà dans le tpl grâce à smarty, que me reste t-il a écrire alors?

Merci de ta réponse.

Link to comment
Share on other sites

Pas seulement dans smarty , le js a également cette valeur :

Sous chrome, vas sur ton site, sur ta fiche produit...de préférence une fiche produit qui a une qté minimal différente de 1...

Tapes F12, et cliques sur l'onglet console.

 

Tu es à présent dans la console javascript. 

Tout en bas tu as un champ de saisie de code javascript avec un > devant (bleu par défaut)

Tapes minimalQuantity dedans : en retour tu devrais avaoir la valeur de la quantité minimale du produit, car cette variable est globale sur cette page.

 

Il existe également des valeurs par déclinaisons accessibles depuis une variable tableau combinations.

La procédure pour en lire le contenu est similaire : console...

 

Si ton thème a conservé les boutons + et - pour modifier cette quatité , il te reste à intercepter le code lié au click sur ces boutons et le multiplier par minimalQuantity.

 

Mais là à ce stade c'est difficile de pouvoir en dire plus.

 

Il te faut appréhender le javascript un minimum et la console js de chrome par exemple,  sans quoi on ne peut pas t'orienter mieux. 

 

Je ne pourrai pas aller jusqu'à te donner un code tout fait qu'il faudrait que je fasse pour le coup, n'ayant pas eu à réaliser ce type précis de demandes, et qui sortirait un peu du cadre de l'entraide et qui plus est n'aurai que peu de chance de coller directement à ton thème.

 

 

Mais bon je peux difficilement faire plus , ne serait-ce déja que parce que je n'ai pas le lien de ton site, mais de plus parce que product.js peut varier selon les thèmes (et ne s'en prive pas).

Link to comment
Share on other sites

Ne t'inquiète pas, je suis quand même en formation de dev et actuellement en stage pour te dire.

Je sais lire javascript c'est pas un soucis , c'est plus pour ensuite l'appliquer je manque de pratique.

 

j'ai testé ce que tu m'a dis  dans le code product.js (multiplier par minimal quantity) mais ça ne marche pas

 

(dans le cas pour diminuer la quantité d'article):

 

 // The button to decrement the product value

 

 $('input[name=+fieldName+]').val(currentVal  *minimalQuantity).trigger('keyup');

 

la console de debug de js me retourne:

Uncaught SyntaxError: Unexpected token *

 

:(

Link to comment
Share on other sites

Ne t'inquiète pas, je suis quand même en formation de dev et actuellement en stage pour te dire.

Je sais lire javascript c'est pas un soucis , c'est plus pour ensuite l'appliquer je manque de pratique.

 

j'ai testé ce que tu m'a dis  dans le code product.js (multiplier par minimal quantity) mais ça ne marche pas

 

(dans le cas pour diminuer la quantité d'article):

 

 // The button to decrement the product value

 

 $('input[name=+fieldName+]').val(currentVal  *minimalQuantity).trigger('keyup');

 

la console de debug de js me retourne:

Uncaught SyntaxError: Unexpected token *

 

:(

 

Bon et comme ça : 

// The button to increment the product value
$(document).on('click', '.product_quantity_up', function(e){
	e.preventDefault();
	fieldName = $(this).data('field-qty');
	var currentVal = parseInt($('input[name='+fieldName+']').val());
	if (!allowBuyWhenOutOfStock && quantityAvailable > 0)
		quantityAvailableT = quantityAvailable;
	else
		quantityAvailableT = 100000000;
	if (!isNaN(currentVal) && currentVal < quantityAvailableT)
		$('input[name='+fieldName+']').val(currentVal + minimalQuantity).trigger('keyup');
	else
		$('input[name='+fieldName+']').val(intval(quantityAvailableT/minimalQuantity)*minimalQuantity);

	$('#quantity_wanted').change();
});
 // The button to decrement the product value
$(document).on('click', '.product_quantity_down', function(e){
	e.preventDefault();
	fieldName = $(this).data('field-qty');
	var currentVal = parseInt($('input[name='+fieldName+']').val());
	if (!isNaN(currentVal) && currentVal > 1)
		$('input[name='+fieldName+']').val(currentVal - minimalQuantity).trigger('keyup');
	else
		$('input[name='+fieldName+']').val(minimalQuantity);

	$('#quantity_wanted').change();
});
Link to comment
Share on other sites

merci pour ta proposition mais ça ne marche toujours pas...

 

là j'en arrive à un point où je me tate à désinstaller le thème et le réinstaller

on a un thème qui n'est pas le thème par défaut, 

selon certains thèmes ça doit être plus compliquer à modifier le code que sur d'autre j'imagine.

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