Jump to content

Ajout de produit pour première commande


lolo17
 Share

Recommended Posts

Bonjour,

Je recherche le moyen d'ajouter, lors de la 1ère commande d'un client, un produit à son panier "obligatoire". C'est comme une consigne. Pour info c'est un site web proposant la livraison à domicile de panier fruits et lègumes bio, et pour une première commande l'ajout d'un sac en toile de jute est obligatoire (+5€)

Est-ce qu'il existe des modules qui pourraient éventuellement s'appliquer à ce que je recherche ?

J'ai tenté de chercher mais je n'ai rien trouvé de bien...

Merci de votre aide :)

Share this post


Link to post
Share on other sites

Une première solution (je ne sais pas si c'est la meilleure) est de coder l'ajout de ton produit dans un module custom qui implémente un hook comme suit :

- Si le produit existe déjà dans le panier, ne rien faire, sinon l'ajouter. Tu peux prendre plus ou moins n'importe quel hook pour cela (a condition que ce dernier se déclenche sur toutes les pages comme le hook du header par exemple).

 

Quant au code pour ajouter un produit,il serait de cette forme :

 

  $context=Context::getContext();
  $id_cart=(int)$context->cookie->id_cart;
  $cart=new Cart($id_cart);
  $cart->updateQty($quantity, $id_product, null, false);  
 
avec $id_product l'id de ton produit et $quantity, la quantité ("1" pour toi, j'imagine).
 
Pour récupérer le contenu de ton panier et ainsi tester si ton produit existe déjà, il suffit de faire appel à la méthode getProducts de ton objet Cart.
Edited by justtodownloadthings (see edit history)

Share this post


Link to post
Share on other sites

Merci de ton retour. 

 

Pour contourner le problème nous avons inséré un encadré avec image sur la page du panier, informant les clients de cet ajout obligatoire avec lien sur la page du produit en question. Au lieu d'ajouter du code je pense que c'est un bon compromis, puis l'ajout au panier "forcé" dès la première commande n'est toujours pas bien vu...

En tout cas merci pour ta réponse qui me servira pour une prochaine fois :)

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
 Share

×
×
  • Create New...

Important Information

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