Jump to content
Sign in to follow this  
pierrot-01

Interdire certaines quantités ou imposer multiples ?

Recommended Posts

Bonjour,

 

Je me trouve confronté à un problème lié aux quantités de produits qu'un client peut commander.

La boutique propose des vins divers, j'indique sur chaque page produit que le client est invité à faire attention à la quantité de bouteilles qu'il commande, de sorte que ce soit toujours 1, 2, ou 3, ou un multiple de 6 ensuite.

 

En revanche, rien n'empêche réellement le visiteur de prendre 17 bouteilles (par exemple). Et ça devient un casse tête pour le conditionnement, les cartons étant normalisés voir préemballés par le caviste.

 

D'où la question :

- est-il possible, lors de la validation du panier, d'interdire certaines quantités, autrement dit toutes celles qui ne sont pas les multiples prédéfinis ?

ou

- est-il possible de faire un contrôle sur la quantité de bouteilles de sorte que si la quantité est supérieure à 3, il faut que ce soit un multiple de 6 (résultat de la division par 6 = entier par exemple) ?

 

Grand merci à ceux ou celles qui pourront éclairer ma lanterne.

 

Pierre

Share this post


Link to post
Share on other sites

Bonjour,

 

Il faut modifier le code de Prestashop, mais cela me semble jouable de contrôler les quantités lors de la validation du panier. Vous vous y connaissez en développement ?

Share this post


Link to post
Share on other sites

Bonjour,

 

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');

 

PS: petit cours sur les modulos : ils affichent les restes d'une division :

 

10 % 7 = 3.

7 % 7 = 0.

Share this post


Link to post
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
Sign in to follow this  

×
×
  • Create New...

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More