Jump to content

Recommended Posts

Salut à tous !

 

 

J'ai cherché pendant des heures en vain, donc je tente ma chance ! :D :D :D

 

 

Je souhaiterai que les clients ne puissent acheter qu'un seul article par panier. Je sais que certains ont eu des soucis pour pouvoir faire l'inverse (pouvoir mettre plusieur article dans un panier) notamment sur 1.5.1.

 

Sauf qu'ils n'ont résolu lors problème en mettant à jour prestashop.

 

 

Je suis dans l'impasse ! :wacko:

 

 

Merci à tous. :)

 

Alex.

Share this post


Link to post
Share on other sites

Hello,

 

Il n'est pas possible, nativement, de limiter les quantités d'ajout d'un article au panier. Je pense que tu vas avoir besoin d'un développement spécifique ;)

Share this post


Link to post
Share on other sites

Salut Samyha,

 

 

Merci beaucoup pour ces expliquations. Qu'entends-tu par "développement spécifique" ?

 

Aurais-tu une idée dans quel fichier se trouve les codes du panier ?

 

 

Merci !

Share this post


Link to post
Share on other sites

Bonjour, 

 

Ce que samyha veut dire tout simplement c'est que cette option n'est pas disponible par défaut dans prestashop donc tu devras salir tes mains avec le code, 

 

Pour cela il faudra surcharger le frontcontroller "controllers/front/CartController.php" et mettre en place un teste sur le panier si pas vide afficher un message d'erreur sinon le produit sera ajouté

 

Le test est à faire dans la fonction

protected function processChangeProductInCart()

Dedans tu trouveras une variable : 

$cart_products = $this->context->cart->getProducts();

Juste après  "Pas obligatoire" tu mets ton teste 

$nb_cart_products =  $this->context->cart->nbProducts();

if($nb_cart_products>0){
                    $this->errors[] = Tools::displayError('Ton message.');
                    return;
                }

PS : Ma version prestashop 1.5.6.2

  • Like 1

Share this post


Link to post
Share on other sites

Génial Deithso !

 

Je teste et je vous tiens au jus.

 

 

Merci encore ! :) :) :)

  • Like 1

Share this post


Link to post
Share on other sites

Anytime, 

 

en fait j'ai fait une erreur dans le code, il faut utiliser la fonction getProducts() à la place de  nbProducts()

 

Voila la correction 

$nb_cart_products =  count($this->context->cart->getProducts());

if($nb_cart_products>0){
                    $this->errors[] = Tools::displayError('Ton message.');
                    return;
                }
  • Like 1

Share this post


Link to post
Share on other sites

Deithso, merci infiniment cela fonctionne parfaitement. :)

 

J'avais essayé sans succès car je n'avais pas remplacé toute la ligne... seulement "getProducts"

 

$nb_cart_products = count($this->context->cart->getProducts())

 

 

 

Merci encore !

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

×
×
  • Create New...

Important Information

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