Forum CMS Made Simple FR
[Résolu] Comment vider automatiquement le panier Cart2 ? - Version imprimable

+- Forum CMS Made Simple FR (https://forum.cmsmadesimple.fr)
+-- Forum : Général (https://forum.cmsmadesimple.fr/forum-3.html)
+--- Forum : Modules, Tags (https://forum.cmsmadesimple.fr/forum-14.html)
+--- Sujet : [Résolu] Comment vider automatiquement le panier Cart2 ? (/thread-3969.html)



[Résolu] Comment vider automatiquement le panier Cart2 ? - adrienj - 16/02/2017

Bonjour,

Comment vider le panier Cart2 de la suite commerce de CMSMS sans que l'internaute ne clique sur un bouton "Vider le panier" ?

J'ai trouvé une réponse qui date de 2010 sur le forum de cmsmadesimple.org avec le tag {session_erase var='cgcart'}, mais ça ne marche pas.

Sinon, je vois qu'il y a une fonction prévue pour ça dans /module/Cart2/Cart2.module.php
Code :
[== PHP ==]
  public function EraseCart($adddata = '')
  {
    if( isset($_SESSION[$this->_key]) ) {
      cg_ecomm_cart::on_cart_adjusted('before',$adddata);
      unset($_SESSION[$this->_key]);
      $this->_items = array();
      $this->_calculated = 0;
      cg_ecomm_cart::on_cart_adjusted('after',$adddata);
    }
  }

Mais je ne sais pas comment l'appeler depuis un gabarit Smarty. J'ai essayé {$Cart2->EraseCart()} mais ça me donne :
Fatal error: Call to a member function EraseCart() on null in /home/adrien/test/lib/smarty/sysplugins/smarty_internal_templatebase.php(165) : eval()'d code on line 163

Est-ce possible d'appeler une fonction d'un module depuis un gabarit Smarty ?


[Résolu] Comment vider automatiquement le panier Cart2 ? - adrienj - 17/02/2017

Bon, j'aurais bien aimé pouvoir effacer le panier du client depuis Smarty avec une simple balise du genre {cart2_smarty::EraseCart()} comme on peut le faire avec FEU, mais ça ne semble pas prévu.
J'ai donc résolu mon problème avec une UDT que j'ai appelé {empty_cart} :
Code :
[== PHP ==]
## UDT empty_cart pour CMSMS 2.x
$gCms = CmsApp::get_instance();
$Panier = $gCms->GetModuleInstance('Cart2');
$Panier->EraseCart();



[Résolu] Comment vider automatiquement le panier Cart2 ? - airelibre - 23/02/2017

Bonjour,

désolé pour la réponse tardive, mais as-tu tenté :
Code :
{cgecomm_erasecart}
?

Regarde la doc de CGEcommerceBase pour cela.

Bonne continuation !


[Résolu] Comment vider automatiquement le panier Cart2 ? - adrienj - 23/02/2017

Aaahhhh, je n'avais pas pensé à regarder du côté de CGEcommerceBase.
Il me semblait qu'il devait y avoir un truc plus simple qu'une UDT pour cette action basique.
J'ai testé, ça marche.
Merci !