Jump to content

Recommended Posts

Bonjour, 

Version Presta : 1.7.5

Sujet : Limiter la commande client à un seul article

Question : J'ai réussi à limiter la quantité par articles (Qty 1), cependant il est toujours possible d'ajouter plusieurs articles dans mon panier. Je me retrouve donc avec 3 articles (1 quantité de chaque)

Je souhaiterais savoir s'il est possible de limiter à 1 article par panier. En gros, le client choisi un produit par commande. Obligé de refaire une commande s'il veut un autre article.

Merci a vous

Share this post


Link to post
Share on other sites

Il faut patcher le CartController.php, pas le choix...

Share this post


Link to post
Share on other sites

Salut Eolia, 

J'ai cherché pas mal de choses concernant le cartcontroller, je n'ai pas trouvé la solution.

Tu saurais a peu pres ce qu'il faudrait faire?

Share this post


Link to post
Share on other sites

En 1.7 je ne sais pas, mais en 1.6 dans la fonction processChangeProductInCart()

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

Ajouter à la suite:

if(count($cart_products) >= 1)
	$this->errors[] = Tools::displayError('Orders are limited to 1 product per cart.', !Tools::getValue('ajax'));

 

Share this post


Link to post
Share on other sites

Comportement bizarre.

Ça met le message comme quoi le produit et ajouté au panier, alors qu'en faite non. Je reste bien avec mon premier produit ajouté au panier.

 

Share this post


Link to post
Share on other sites

A voir comment la 1.7 gère l'affichage/retour des erreurs (regardez le code plus bas dans cette partie et adaptez le patch en conséquence)

Share this post


Link to post
Share on other sites

Franchement je sèche, Cela fait plusieurs semaines que je cherche cela. Tout mon buisness repose sur cette option.

J'ai du dépenser plus de 200e dans des modules pour rien :(

 

Share this post


Link to post
Share on other sites
2 minutes ago, Eolia said:

A voir comment la 1.7 gère l'affichage/retour des erreurs (regardez le code plus bas dans cette partie et adaptez le patch en conséquence)

Malheureusement je ne m'y connais pas vraiment en code.

 

Share this post


Link to post
Share on other sites

plusieurs semaines ? Mince...

Là ca fonctionne car le produit ne peut pas s'ajouter, il reste juste à régler le problème de l'affichage du message :) 

Share this post


Link to post
Share on other sites

ok, en 1.7 c'est donc différent, il suffisait de regarder plus bas comme je vous l'ai dit.

Ca donne donc ça:

        if(count($cart_products) >= 1)  
			$this->{$ErrorKey}[] = $this->trans(
                'Orders are limited to 1 product per cart.',
                array(),
                'Shop.Notifications.Error'
            );

 

Share this post


Link to post
Share on other sites
9 minutes ago, Eolia said:

ok, en 1.7 c'est donc différent, il suffisait de regarder plus bas comme je vous l'ai dit.

Ca donne donc ça:


        if(count($cart_products) >= 1)  
			$this->{$ErrorKey}[] = $this->trans(
                'Orders are limited to 1 product per cart.',
                array(),
                'Shop.Notifications.Error'
            );

 

Je rajoute ce code à la suite de l'autre ?

CartController.php

Edited by Yoni.Saadoun (see edit history)

Share this post


Link to post
Share on other sites

Punaise non !

Vous le mettez A LA PLACE de l'autre. L'autre était pour les versions 1.6, celui-ci est pour votre 1.7

Share this post


Link to post
Share on other sites

Punaise comme vous dites ! (j'ai l'air de vous emmerdez ?)

L'ajout au panier ne marche plus !

 

Share this post


Link to post
Share on other sites

Il faudrait aussi changer le comportement de la boutique en amonts, c'est à dire, envoyer le client directement sur son panier pour finaliser la commande après l'ajout du produit au panier et même sécuriser l'ajout de produit en désactivant l'ajout de produit sur les fiches produits ou sur la liste des produits en mettant un message d'information au client.

Mais cela demande un peux plus de modifications..

Share this post


Link to post
Share on other sites
Just now, Mediacom87 said:

Il faudrait aussi changer le comportement de la boutique en amonts, c'est à dire, envoyer le client directement sur son panier pour finaliser la commande après l'ajout du produit au panier et même sécuriser l'ajout de produit en désactivant l'ajout de produit sur les fiches produits ou sur la liste des produits en mettant un message d'information au client.

Mais cela demande un peux plus de modifications..

Bonjour, 

J'imagine que ce n'est pas simple. Un sujet qui tourne sur les forum depuis plusieurs années et versions de Prestashop.

Si vous vous sentez capable de modifier le code pour arriver a ce que l'on souhaite, nous pouvons rémunérer pour cela.

 

Share this post


Link to post
Share on other sites

Ce n'est pas un sujet aussi simple qu'une ligne de code ...

Résultat souhaité:

Limiter les commandes à un seul produit, un seul article, 1 une quantité !! 1 !!

Chaque commande reçu comporte un seul produit en une seule quantité !

Merci pour vos idées et contributions

Share this post


Link to post
Share on other sites

Bah vous avez dû rater quelque chose dans la copie du code...

Share this post


Link to post
Share on other sites
20 hours ago, Eolia said:

Bah vous avez dû rater quelque chose dans la copie du code...

C'est pourtant pas compliqué de faire Copier / Coller ...

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