Ecraser le panier au lieu d'utiliser updatecart

  • Posts: 27
  • Thank you received: 0
10 years 5 months ago #132213

Bonjour,

j'utilise Hikashop pour un module un peu particulier :
- j'ai un formulaire assez complexe de calcul de tarif pour un produit d'impression personnalisé
- j'ai de l'autre côté Hikashop avec des champs custom "item" qui sont renseignés lors de la validation du formulaire, puis on retrouve le process de commande classique.

Or, j'ai un problème lorsque le client s'y reprend à plusieurs fois pour faire son devis : s'il valide une première fois son formulaire, tout va bien, j'ai un produit dans le panier et tout roule, mais s'il sort du process de commande et refait un devis (au lieu par exemple de réaccéder directement à son récap en passant par le module de panier), il se retrouve avec 2 lignes distinctes, ce que je voudrais empêcher.

En gros voilà ce que je passe en POST :

<form action="/component/hikashop/checkout/product/updatecart" method="post" name="hikashop_product_form" enctype="multipart/form-data">';
echo '<input type="hidden" name="product_id" value="167" />
<input type="hidden" name="cart_type" id="type" value="cart"/>
<input type="hidden" name="add" value="1"/>
<input type="hidden" name="ctrl" value="product"/>
<input type="hidden" name="task" value="updatecart"/>
<input type="hidden" id="exemplaires" name="data[item][exemplaires]" value="'.$testvalex.'" />
...etc

J'appelle donc la fonction updatecart, qui fonctionne comme prévu. Or, je voudrais que le nouveau produit ainsi généré vienne écraser celui qui se trouve dans le panier au lieu de créer une nouvelle ligne avec tous les champs item correspondants. Je ne sais pas si je suis clair ?

Donc ma question au final : y-a-t-il un moyen simple, avec une fonction déjà existante ou à retoucher, ou est-ce qu'il faut que je reprenne tout le code ?

Please Log in or Create an account to join the conversation.

  • Posts: 13201
  • Thank you received: 2322
10 years 5 months ago #132244

Bonjour,

Je pense que le plus simple est de créer un plugin basé sur la fonction "onBeforeCartUpdate(&$cartClass,&$cart,$product_id,$quantity,$add,$type,$resetCartWhenUpdate,$force,&$do)". Et dans cette fonction vider le panier en mettant $resetCartWhenUpdate a "true".

The following user(s) said Thank You: bart31

Please Log in or Create an account to join the conversation.

  • Posts: 27
  • Thank you received: 0
10 years 5 months ago #132245

Merci pour la réponse rapide et précise, je vais regarder ça de ce pas !

Please Log in or Create an account to join the conversation.

  • Posts: 27
  • Thank you received: 0
10 years 5 months ago #132270

Re-bonjour,

alors en fait pas de problème pour le plugin, en me basant sur la page d'aide et sur un plugin déjà développé, j'ai pu en créer un nouveau, zipper les fichiers et l'intégrer dans joomla.

Par contre au niveau du code je suis très limité et j'ai beaucoup de mal à comprendre la syntaxe que je dois utiliser, une fois dans la fonction, pour simplement passer $resetCartWhenUpdate à la valeur true, sachant que je voudrais ne toucher à rien d'autre dans les paramètres ? Désolé si ça ne fait pas partie de vos attributions, je comprends bien que c'est une aide en PHP que je demande, plus qu'une aide sur Hikashop, mais toute piste serait la bienvenue au moins pour démarrer.

Please Log in or Create an account to join the conversation.

  • Posts: 13201
  • Thank you received: 2322
10 years 5 months ago #132375

Bonjour,

Vous pouvez utiliser le code suivant dans votre fonction:

		$cartClass = hikashop_get('class.cart');
		$cartClass->resetCart(false);

The following user(s) said Thank You: bart31

Please Log in or Create an account to join the conversation.

  • Posts: 27
  • Thank you received: 0
10 years 5 months ago #132389

:woohoo: Wow, un grand grand merci, ça a l'air de fonctionner parfaitement !

L'occasion pour moi de remercier pour votre super support utilisateurs, vraiment impressionant pour la réactivité et le professionnalisme. Je ne suis client que depuis quelques semaines, mais déjà convaincu B)

Please Log in or Create an account to join the conversation.

Time to create page: 0.074 seconds
Powered by Kunena Forum