daseb Posted November 18, 2011 Share Posted November 18, 2011 Hello ! J'ai cherché en vain sur le forum alors je me permets de vous poser mon souci. Je suis en 1.4.1.0 J'ai des produits qui doivent être commandés en quantités minimale. Jusque là pas de soucis, ca se gère dans l'admin. Par contre si on commande plus que la quantité minimale il faut que cela s'incrémente d'autant que la quantité minimale saisie. Je m'explique : Si un produit est paramétré par exemple à une commande minimale de 2 dans l'admin, alors si j'en veux plus le client devra saisir 4, 6, 8, 10 etc... auquel cas le message d'erreur apparaitra (on ne peut saisir que des multiples du nombre de commande minimale). Pour un produit à 4 pieces minimum, ca sera une saisie obligatoire de 8, 16, etc.. Pour un produit à 1 pieces minimum, ca sera 2,3,4,5 etc.. Je pense que c'est très simple à réaliser mais n'étant pas développeur je ne vois pas ou et comment intervenir. J'ai des bonnes base donc pas de souci pour modifier le code et le comprendre un peu, mais là je planche totalement ... C'est assez urgent car la mise en ligne du site est dans 3 semaines pour mon client... Merci beaucoup par avance pour votre aide trés précieuse !! Link to comment Share on other sites More sharing options...
daseb Posted November 21, 2011 Author Share Posted November 21, 2011 Re J'ai fouiner un peu sur le web et je pense avoir trouver la solution en théorie. Avec du javascript il faire un controle sur le champ de saisie et ce avec les modulo. En récupérant la variable minimumquantity qui est renseigné dans le back office, on peut l'injecter dans une fonction javascript pour faire cette vérification à la saisie. D'ailleurs c'est ce qui est réalisé éjà pour la vérification de la quantité minimum. Il faudrait donc juste modifier la fonction javascript existante et faire intervenir un modulo (%). Seul hic je ne sais pas du tout ou se trouve la fonction qui vérifie les quantités minimum et lance l'alert(). Quelqu'un peut-il m'aiguiller ?? Merci !! Link to comment Share on other sites More sharing options...
scalpa0 Posted November 22, 2011 Share Posted November 22, 2011 Bonjour, J'ai le même petit pb que toi, mais pourquoi ne pas faire un lot de 2 produits. Ainsi l'incrément sera toujours par 2. Link to comment Share on other sites More sharing options...
daseb Posted November 22, 2011 Author Share Posted November 22, 2011 Non je ne peux pas car il faut que j'affiche absolument le prix unitaire, avec son prix ht, ttc, et en promo pour attirer le client. Ce sont des produit assez cher et sur la liste des produit il y a une photo du produit et son prix. Si le prix est double , vu que c'est deja trés cher, là les clients vont fuir ! Pas le choix, et c'est le voeux de mon client... Bref je vais essayer demain de m'y mettre. Ce n'est pas compliqué en soit de faire la fonction javascript mais je risque de rentrer en conflit avec celle existente pour les prix minimum. C'est bete, si seulement je savais ou est-ce ce que cette satanée fonction se cache ! J'en ai trouvé une mais elle gere seulement l'affichage css pour afficher en rouge la phrase "veuillez entrer un minimum de XXX" ou un truc du genre. J'ai repéré également ou elle est appelé dans product.tpl. A part ca rien d'autre ... mais ou est géré l'alerte javascript pour les minimum ?? En tout cas si j'y arrive je te fais signe. Si qqun pouvait nous aider... Link to comment Share on other sites More sharing options...
daseb Posted November 24, 2011 Author Share Posted November 24, 2011 Personne pour m'aider à faire une ch'tite fonction javascript pour forcer la saisie de quantité minimum et ses multiples ?? aller ! Soyez sympa !! Link to comment Share on other sites More sharing options...
migoulite Posted November 28, 2011 Share Posted November 28, 2011 je suis exactement dans le même cas et ça m'intéresse aussi. est ce que ça ne se passerai pas dans "CartController.php" situé dans le répertoire "controllers"? Link to comment Share on other sites More sharing options...
daseb Posted November 29, 2011 Author Share Posted November 29, 2011 Je suis toujours sans réponse. Je vais regarder si je trouve quelquechose dans controllers comme tu dis. Link to comment Share on other sites More sharing options...
daseb Posted November 29, 2011 Author Share Posted November 29, 2011 Alors j'ai trouvé un post qui parle du CartController.php et des multiples, ce qu'on cherche à faire. Mais c'est trop complexe pour moi. Pourtant c'est ici qu'il faut faire quelque chose : Dans CartController.php vous avez la fonction preProcess() qui traite les données. À la ligne 108 de mon fichier, vous avez cette ligne : $qty = (int)(abs(Tools::getValue('qty', 1))); Et juste en dessous, les vérifications. Il faut ensuite définir vos quantités. Admettons : - vous avez 3 types de carton : -- A pouvant contenir 3 bouteilles, -- B pouvant contenir 7 bouteilles, -- C pouvant contenir 10 bouteilles. Il vous suffit d'utiliser les maths pour vos conditions : if (A % 3 != 0 OR B % 7 != 0 OR C != % 10 != 0) die ('error'); else die ('success'); Effectivement il y a la ligne 167 les vérifications pour $minimal_quantity. Et on voit que c'est de l'ajax qui gère les messages d'erreurs. C'est juste à ce niveau qu'il faudrait bidouiller un bout de code avec des conditions et des modulos pour checker si la quantité rentrée est non seulement la quantité minimum définie dans l'admin, mais aussi un multiple de cette quantité minimum. C'est bougrement simple je pense pour un développeur... pas pour nous.. A l'aide svp !! Link to comment Share on other sites More sharing options...
daseb Posted November 30, 2011 Author Share Posted November 30, 2011 Bon j'ai réussi à effectué un controle des multiples sur le champ des quantités dans la page product.tpl J'ai modifié product.js comme suit : function checkMinimalQuantity(minimal_quantity) { if ($('#quantity_wanted').val() % minimal_quantity !=0) { $('#quantity_wanted').css('border', '1px solid red'); $('#minimal_quantity_wanted_p').css('color', 'red'); $('#add_to_cart').css('visibility', 'hidden'); } else { $('#quantity_wanted').css('border', '1px solid #BDC2C9'); $('#minimal_quantity_wanted_p').css('color', '#374853'); $('#add_to_cart').css('visibility', 'visible'); } } Par contre c'est du bricolage. Car les boutons panier sur les vignettes d'une liste, ou le champ qtté dans le récapitulatif de la commande, permettent toujours de mettre n'importe quoi. Donc il faut supprimer ces boutons, et le tour et joué ! Ne pas oublié de changer les textes dans la traduction des erreurs. On perd de l'ergonomie mais ca marche. Sinon c'est bete car dans CartController.php il suffirait de faire la même chose, mais je ne sais pas comment faire... Si qqun a une idée ! Je me suis cassé la tête pour le JS plus haut alors que je ne suis absolument pas développeur.Y'en a bien un dans le coin qui pourrait nous aider ? 1 Link to comment Share on other sites More sharing options...
7ecologique Posted January 19, 2012 Share Posted January 19, 2012 En langage php je pense qu'il faudrait utiliser du "Regex" (genre : http://www.siteduzero.com/tutoriel-3-14608-les-expressions-regulieres-partie-1-2.html). Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now