Jump to content

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

Link to comment
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.

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