Jump to content
Samos

Moyen de récupérer le panier courant

Recommended Posts

Bonjour,

  Je travaille sur prestashop 1.7 et j'aimerais récupérer (grâce a une requête SQL ou autre) le contenu du panier courant afin de proposer un devis aux clients, cependant, je ne pense pas avoir le niveau suffisant pour le faire. J'aimerais récupérer le nom du produit ainsi que son image. Merci d'avance !

Share this post


Link to post
Share on other sites

en php l'objet $cart est disponible dans le contexte et $cart->getProducts(); vous donne tout le contenu du panier

  • Thanks 1

Share this post


Link to post
Share on other sites

Merci énormément !

J'ai cependant du mal à l'afficher...

J'avais pensé à  faire une boucle mais je n'y arrive pas.

Share this post


Link to post
Share on other sites

<?php
        require(dirname(__FILE__).'/../config/config.inc.php');
        global $smarty, $cart;
        $cartProducts = $this->getProducts();
        foreach ($cartProducts as $produit) {
            print(produit);
        }

?>

Voici mon code, pas d'erreur mais la page deviens blanche après cette partie.. et pas de produits ou panier. Merci encore !

Share this post


Link to post
Share on other sites

euh...

$this correspond à quoi ???

Et les global c'était en l'an 2000 hein^^

  • Thanks 1

Share this post


Link to post
Share on other sites

Je suis debutant désolé, j'ai mis cart a la place de 'this' mais ça ne fonctionne toujours pas. Mercii

Share this post


Link to post
Share on other sites

J'ai oublié de préciser que je travaille sur fichier .php que je vais par la suite transformer en pdf.

J'ai besoin d'afficher si possible le nom du produit, son image ainsi que son prix.

Je me suis rendu sur des forums je pense, assez ancien pour les variables globales (qui ont été remplacées par context je crois)

Share this post


Link to post
Share on other sites

<?php
        require(dirname(__FILE__).'/../config/config.inc.php');
        $context = new Context();
        $cart = new Cart($context);
        $cartProducts = $cart->getProducts();
        print_r($cartProducts);
?>

 

En écrivant ceci, seul le mot Array() s'affiche. C'est un tableau mais je n'arrive pas a afficher les élément de celui ci. 

En mettant print a la place de print_r les parenthèse disparaissent pour ne laisser que le mot Array.

 

En faisant un var_dump :

array (size=0)
  
Edited by Samos (see edit history)

Share this post


Link to post
Share on other sites

effectivement il y a du boulot

On initialise pas un objet de type cart avec un context (qui est un autre objet)

<?php
        require(dirname(__FILE__).'/../config/config.inc.php');

// Initialisation du contexte
        $context = Context::getContext() ;

// Récupération du panier depuis son id dans le contexte
        $cart = new Cart($context->cart->id);
        $cartProducts = $cart->getProducts();

// Affichage du contenu
        p($cartProducts);

 

 

  • Thanks 1

Share this post


Link to post
Share on other sites

Bonjour,

Je reviens sur ce post car un message d'erreur s'affiche avec votre code ou peut être que je m'y prend mal :

On 07/09/2018 at 5:20 PM, Eolia said:

// Récupération du panier depuis son id dans le contexte
        $cart = new Cart($context->cart->id);

 Trying to get property of non-object

Je ne comprend pas.

Encore merci !

Share this post


Link to post
Share on other sites

un debug vous affiche quoi si vous mettez ce code ?

// Initialisation du contexte
$context = Context::getContext() ;
d($context);

 

Share this post


Link to post
Share on other sites

Pourtant bel et bien un objet :

Je vous met les parties ou il y a 'cart' :

object(Context)[10]
  public 'cart'  
  public 'customer'  
object(Cookie)[20]
      protected '_content'  
        array (size=8)
          'date_add'    (length=19)
          'id_lang'    (length=1)
          'id_currency'    (length=1)
          'id_guest'    (length=2)
          'id_connections'    (length=3)
          'last_visited_category'    (length=2)
          'id_cart'    (length=2)
          'checksum'    (length=10)

Merci !

Edited by Samos (see edit history)

Share this post


Link to post
Share on other sites

Hum... il m'en manque là...

Que donne 

d($context->cart);

et

d($context->cookie->id_cart);

Share this post


Link to post
Share on other sites
d($context->cart);

C:\wamp\www\eyetech\devisam\pdf.php:253:null

 

d($context->cookie->id_cart);  

C:\wamp\www\eyetech\devisam\pdf.php:253:string '23' (length=2)

 

Merci

Edited by Samos (see edit history)

Share this post


Link to post
Share on other sites

Bon, en même temps si $context->cart est absent c'est qu'aucun produit n'a été mis au panier donc inutile d'aller plus loin^^

Share this post


Link to post
Share on other sites

Et pourtant il est bien rempli, Je pense mal m'y prendre ... le dossier devisam c'est moi qui l'ai créé et le fichier php également.

J'ai créé un formulaire sur cart.tpl et j'ai mis mon fichier php en action du form. Il ne doit pas y avoir de lien avec la boutique... Merci quand même pour votre aide !

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

×
×
  • Create New...

Important Information

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