Jump to content

Impossible de supprimer un produit personnalisé du panier - 1.6.0.9


Sda33

Recommended Posts

Bonjour,

 

J'ai cherché et trouvé beaucoup de déclarations de ce bug depuis 2009, mais sans solution compatible avec la version 1.6.0.9 que j'utilise.

 

Je propose des produits avec déclinaisons + personnalisés, mais une fois au panier impossible de les supprimer.

 

SUR LA PAGE PANIER

- Si j'essaie de diminuer la quantité à 0 j'ai une jolie fancybox par-dessus la page panier qui me dit :

Vous devez ajouter 1 quantité(s) minimale(s)

 

- Si je clique sur la corbeille j'ai une page blanche avec le message en dur

{"hasError":true,"errors":["Vous devez ajouter 1 quantité(s) minimale(s)"]}

 

SUR LE BLOC PANIER

- Si je clique sur la corbeille j'ai la (toujours) jolie fancybox par-dessus la page panier qui me dit :

Vous devez ajouter 1 quantité(s) minimale(s)

 

Si je mets au panier plusieurs produits identiques (déclinaisons différentes ou pas) avec des personnalisations différentes je peux tout supprimer normalement, sauf le tout dernier.

C'est comme s'il lui fallait obligatoirement un produit personnalisé au panier.

 

J'ai essayé de tout remonter, la tpl shopping-cart-product-line, la classe Cart, le js cart-summary, sans trouver le petit truc qui me bloque la suppression du produit !

 

 

Les seuls forums qui semblaient avoir la solution... la monnaient. Je trouve ça dommage pour une correction de bug.

 

Si vous avez une idée, c'est très volontiers...

Merci pour tout.

 

 

 

Link to comment
Share on other sites

Merci pour ce sage conseil :) mais je ne me sens pas prête à changer de version aujourd'hui...

 

Pour info sans les déclinaisons cela fonctionne très bien. 

Et je ne suis pas à l'aise avec Github, donc si quelqu'un a une solution... merci, et sinon je vais dupliquer mes produits pour contourner la déclinaison.

 

PS : okom3pom je vous dois un grand merci pour votre module de compte à rebours :) 

  • Like 1
Link to comment
Share on other sites

Très franchement, les mises à jour mineures (version 1.6.* vers 1.6.*) se passent vraiment sur Prestashop, via le module 1-click upgrade.

 

Vous devriez vraiment vous y pencher, quitte à dupliquer votre boutique le temps de la migration, le faire en local etc ... beaucoup de solutions pour éviter tout soucis.

 

Et c'est un peu le but des mises à jour de corriger ce genre de soucis. 

Link to comment
Share on other sites

  • 9 months later...

Bonjour,

Sous 1.6.1.6 j'ai un problème similaire. En effet le site vend des articles au mettre carré et c'est un module qui ajoute le produit dans le panier.

Le problème est que dès le deuxième produit ajouté la corbeille disparait et la suppression deviens impossible.
Même sur la page produit il est impossible d'augmenter la quantité. Dès qu'on clique sur + le message suivant s'affiche : "Ce produit n'existe pas dans cette déclinaison. Vous pouvez néanmoins en sélectionner une autre."

Mais, s'est surtout le fait qu'on ne peut pas supprimer un produit du panier qui est gênant, car les clients font beaucoup de simulation de prix.

Avez-vous des idées pour solutionner ce genre du soucis ?

Merci pour votre générosité !

Link to comment
Share on other sites

  • 1 year later...

Si jamais ça peut être utile à quelqu'un, voici comment j'ai réglé le problème présenté initialement

J'ai créé un override sur  CartController.php pour juste surcharger la méthode "processDeleteProductInCart" 

La modification principale qui semble régler le problème est l'ajout d'une clause dans la première requête

Sur la version 1.6.0.9 la requête 

        $customization_product = Db::getInstance()->executeS('SELECT * FROM `'._DB_PREFIX_.'customization`
        WHERE `id_product` = '.(int)$this->id_product.' AND `id_customization` != '.(int)$this->customization_id);

Sur les version 1.6 plus récente

        $customization_product = Db::getInstance()->executeS('SELECT * FROM `'._DB_PREFIX_.'customization`
		WHERE `id_cart` = '.(int)$this->context->cart->id.' AND `id_product` = '.(int)$this->id_product.' AND `id_customization` != '.(int)$this->customization_id);

 

le `id_cart` = '.(int)$this->context->cart->id.'  semble faire la différence ce qui semble logique

La version 1.6.0.9 fait la requête sur les paniers de tous les clients alors que sur la seconde on restreint au panier courant 

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