Jump to content

Commande : quantités minimales par multiples


daseb

Recommended Posts

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

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

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

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

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 ? :rolleyes:

  • Like 1
Link to comment
Share on other sites

  • 1 month later...

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