[Skip to main content](#vessel-content)

#   Ecraser le panier au lieu d'utiliser updatecart

##

- **[bart31](/forum/user/28720-bart31 "View bart31's Profile")**
- [![bart31's Avatar](https://www.hikashop.com/media/kunena/core/svg/person.svg)](/forum/user/28720-bart31 "View bart31's Profile") Topic Author
- [ Offline](/forum/user/28720-bart31)

Less More

- Posts: 27
- Thank you received: 0
-
-

13 years 1 day ago [\#132213](#132213) by [bart31](/forum/user/28720-bart31 "View bart31's Profile")  *[Ecraser le panier au lieu d'utiliser updatecart](/forum/5-support-en-francais-french-support-/863586-ecraser-le-panier-au-lieu-dutiliser-updatecart#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 &quot;item&quot; 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 :  '; echo '      ...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 ?")* was created by *[bart31](/forum/user/28720-bart31 "View bart31's Profile")*

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 :

&lt;form action="/component/hikashop/checkout/product/updatecart" method="post" name="hikashop_product_form" enctype="multipart/form-data"&gt;';
echo '&lt;input type="hidden" name="product_id" value="167" /&gt;
&lt;input type="hidden" name="cart_type" id="type" value="cart"/&gt;
&lt;input type="hidden" name="add" value="1"/&gt;
&lt;input type="hidden" name="ctrl" value="product"/&gt;
&lt;input type="hidden" name="task" value="updatecart"/&gt;
&lt;input type="hidden" id="exemplaires" name="data[item][exemplaires]" value="'.$testvalex.'" /&gt;
...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](/login?return=aHR0cHM6Ly93d3cuaGlrYXNob3AuY29tL2ZvcnVtLzUtc3VwcG9ydC1lbi1mcmFuY2Fpcy1mcmVuY2gtc3VwcG9ydC0vODYzNTg2LWVjcmFzZXItbGUtcGFuaWVyLWF1LWxpZXUtZHV0aWxpc2VyLXVwZGF0ZWNhcnQ/dG1wbD1tYXJrZG93bg==) or [Create an account](/component/users/registration?Itemid=101) to join the conversation.

- **[Xavier](/forum/user/4105-xavier "View Xavier's Profile")**
- [![Xavier's Avatar](https://www.hikashop.com/media/kunena/avatars/resized/size144/users/avatar4105.png)](/forum/user/4105-xavier "View Xavier's Profile")
- [ Offline](/forum/user/4105-xavier)

Less More

- Posts: 13201
- Thank you received: 2322
-
-
-
- [](http://www.kidiweb.fr)
-

13 years 1 day ago [\#132244](#132244) by [Xavier](/forum/user/4105-xavier "View Xavier's Profile")  Replied by *[Xavier](/forum/user/4105-xavier "View Xavier's Profile")* on topic *[Ecraser le panier au lieu d'utiliser updatecart](/forum/5-support-en-francais-french-support-/863586-ecraser-le-panier-au-lieu-dutiliser-updatecart#132244 "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 &quot;item&quot; 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 :  '; echo '      ...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 ?")*

Bonjour,

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

The following user(s) said Thank You: [bart31](/forum/user/28720-bart31 "View bart31's Profile")

Please [Log in](/login?return=aHR0cHM6Ly93d3cuaGlrYXNob3AuY29tL2ZvcnVtLzUtc3VwcG9ydC1lbi1mcmFuY2Fpcy1mcmVuY2gtc3VwcG9ydC0vODYzNTg2LWVjcmFzZXItbGUtcGFuaWVyLWF1LWxpZXUtZHV0aWxpc2VyLXVwZGF0ZWNhcnQ/dG1wbD1tYXJrZG93bg==) or [Create an account](/component/users/registration?Itemid=101) to join the conversation.

- **[bart31](/forum/user/28720-bart31 "View bart31's Profile")**
- [![bart31's Avatar](https://www.hikashop.com/media/kunena/core/svg/person.svg)](/forum/user/28720-bart31 "View bart31's Profile") Topic Author
- [ Offline](/forum/user/28720-bart31)

Less More

- Posts: 27
- Thank you received: 0
-
-

13 years 1 day ago [\#132245](#132245) by [bart31](/forum/user/28720-bart31 "View bart31's Profile")  Replied by *[bart31](/forum/user/28720-bart31 "View bart31's Profile")* on topic *[Ecraser le panier au lieu d'utiliser updatecart](/forum/5-support-en-francais-french-support-/863586-ecraser-le-panier-au-lieu-dutiliser-updatecart#132245 "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 &quot;item&quot; 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 :  '; echo '      ...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 ?")*

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

Please [Log in](/login?return=aHR0cHM6Ly93d3cuaGlrYXNob3AuY29tL2ZvcnVtLzUtc3VwcG9ydC1lbi1mcmFuY2Fpcy1mcmVuY2gtc3VwcG9ydC0vODYzNTg2LWVjcmFzZXItbGUtcGFuaWVyLWF1LWxpZXUtZHV0aWxpc2VyLXVwZGF0ZWNhcnQ/dG1wbD1tYXJrZG93bg==) or [Create an account](/component/users/registration?Itemid=101) to join the conversation.

- **[bart31](/forum/user/28720-bart31 "View bart31's Profile")**
- [![bart31's Avatar](https://www.hikashop.com/media/kunena/core/svg/person.svg)](/forum/user/28720-bart31 "View bart31's Profile") Topic Author
- [ Offline](/forum/user/28720-bart31)

Less More

- Posts: 27
- Thank you received: 0
-
-

13 years 1 day ago [\#132270](#132270) by [bart31](/forum/user/28720-bart31 "View bart31's Profile")  Replied by *[bart31](/forum/user/28720-bart31 "View bart31's Profile")* on topic *[Ecraser le panier au lieu d'utiliser updatecart](/forum/5-support-en-francais-french-support-/863586-ecraser-le-panier-au-lieu-dutiliser-updatecart#132270 "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 &quot;item&quot; 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 :  '; echo '      ...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 ?")*

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](/login?return=aHR0cHM6Ly93d3cuaGlrYXNob3AuY29tL2ZvcnVtLzUtc3VwcG9ydC1lbi1mcmFuY2Fpcy1mcmVuY2gtc3VwcG9ydC0vODYzNTg2LWVjcmFzZXItbGUtcGFuaWVyLWF1LWxpZXUtZHV0aWxpc2VyLXVwZGF0ZWNhcnQ/dG1wbD1tYXJrZG93bg==) or [Create an account](/component/users/registration?Itemid=101) to join the conversation.

- **[Xavier](/forum/user/4105-xavier "View Xavier's Profile")**
- [![Xavier's Avatar](https://www.hikashop.com/media/kunena/avatars/resized/size144/users/avatar4105.png)](/forum/user/4105-xavier "View Xavier's Profile")
- [ Offline](/forum/user/4105-xavier)

Less More

- Posts: 13201
- Thank you received: 2322
-
-
-
- [](http://www.kidiweb.fr)
-

13 years 14 hours ago [\#132375](#132375) by [Xavier](/forum/user/4105-xavier "View Xavier's Profile")  Replied by *[Xavier](/forum/user/4105-xavier "View Xavier's Profile")* on topic *[Ecraser le panier au lieu d'utiliser updatecart](/forum/5-support-en-francais-french-support-/863586-ecraser-le-panier-au-lieu-dutiliser-updatecart#132375 "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 &quot;item&quot; 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 :  '; echo '      ...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 ?")*

Bonjour,

Vous pouvez utiliser le code suivant dans votre fonction: Code:

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

The following user(s) said Thank You: [bart31](/forum/user/28720-bart31 "View bart31's Profile")

Please [Log in](/login?return=aHR0cHM6Ly93d3cuaGlrYXNob3AuY29tL2ZvcnVtLzUtc3VwcG9ydC1lbi1mcmFuY2Fpcy1mcmVuY2gtc3VwcG9ydC0vODYzNTg2LWVjcmFzZXItbGUtcGFuaWVyLWF1LWxpZXUtZHV0aWxpc2VyLXVwZGF0ZWNhcnQ/dG1wbD1tYXJrZG93bg==) or [Create an account](/component/users/registration?Itemid=101) to join the conversation.

- **[bart31](/forum/user/28720-bart31 "View bart31's Profile")**
- [![bart31's Avatar](https://www.hikashop.com/media/kunena/core/svg/person.svg)](/forum/user/28720-bart31 "View bart31's Profile") Topic Author
- [ Offline](/forum/user/28720-bart31)

Less More

- Posts: 27
- Thank you received: 0
-
-

13 years 14 hours ago [\#132389](#132389) by [bart31](/forum/user/28720-bart31 "View bart31's Profile")  Replied by *[bart31](/forum/user/28720-bart31 "View bart31's Profile")* on topic *[Ecraser le panier au lieu d'utiliser updatecart](/forum/5-support-en-francais-french-support-/863586-ecraser-le-panier-au-lieu-dutiliser-updatecart#132389 "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 &quot;item&quot; 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 :  '; echo '      ...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 ?")*

: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)](/media/kunena/emoticons/9.png "B)")

Please [Log in](/login?return=aHR0cHM6Ly93d3cuaGlrYXNob3AuY29tL2ZvcnVtLzUtc3VwcG9ydC1lbi1mcmFuY2Fpcy1mcmVuY2gtc3VwcG9ydC0vODYzNTg2LWVjcmFzZXItbGUtcGFuaWVyLWF1LWxpZXUtZHV0aWxpc2VyLXVwZGF0ZWNhcnQ/dG1wbD1tYXJrZG93bg==) or [Create an account](/component/users/registration?Itemid=101) to join the conversation.

Board Categories HikaShop Install &amp; Update Product &amp; Category Display Content Creation Sales and Orders Orders management Reports &amp; Statistics Customers Checkout Payment Methods Shipping Methods Import &amp; Export (CSV, XLS…) Specific Features Affilation Taxes Wishlist Vote Carousel &amp; Slider Mass Actions Filters &amp; Search Discount &amp; Coupon Feature Request Integrations Showcase General Talk about HikaShop Development HikaShop 3.0 Beta Translation Commercial Jobs HikaShop Components HikaMarket Market: Feature requests Market: How to? Market: Bug Report HikaSerial General talk about HikaSerial Serial: Bug Report Serial: How to? Support en Français de HikaSerial (French Support) HikaSubscription HikaAuction Auction: Feature requests Auction: How to? Auction: Bug report Hikashop around the world Support en Français (French Support) Russian FAQ. Курс выживания с Hikashop. Частые вопросы и о Расширения Hikashop Наши сайты на Hikashop 日本語版サポート(Japanese Support) Thai German Archives Bug Report How to?

[](/forum/topics/feed/mode-topics?format=feed&type=rss)

Time to create page: 0.051 seconds

[Powered by](/forum/credits) [Kunena Forum](https://www.kunena.org)
