Ajouter un produit au Panier
Hello
J'ai un souci pour ajouter un produit au panier avec la session !
quand je le fais de façon manuel en créant un pool de produit manuelement ça fonctionne,
mais quand j'y ajoute la session et je créer un tableau d'articles pour tester la ça ne marche pas.
c'est un surement un truc de rien mais je me prend un peu la tête dessus !
voiçi mon code si quelque'un à une solution ?
Ma page ou j'ajoute mes produits
<?php $products = array(); $products[] = array('id' => 2, 'name' => 'Java EE', 'description' => 'le best de java', 'price' => 29.90); $products[] = array('id' => 66, 'name' => 'Mon livre 2', 'description' => 'aucune', 'price' => 39.40); $products[] = array('id' => 31, 'name' => 'Mon livre 3', 'description' => 'none', 'price' => 15.00); $stock = new Stock($products); $user = new User(); $user->setShoppingCart(new ShoppingCart()); if(isset($_GET['id'])) { echo 'GET '.$_GET['id'].'<br />'; $user->addProduct($stock->findItemById($_GET['id']), 1); } ?>
User je set le panier
<?php /** * * @param $cart * @return unknown_type * */ public function setShoppingCart(ShoppingCart $cart) { $cart->setUser($this); $this->cart = $cart; } public function addProduct(Product $product, $quantity = 1) { $this->cart->addProduct($product, $quantity); } ?>
Class ShoppingCart
<?php class ShoppingCart{ private $product = array(); private $cart = array(); private $session = array(); private $user; public function setUser(User $user) { $this->user = $user; } /** * * @param $product * @param $quantity * @return unknown_type * */ public function addProduct(Product $product, $quantity = 1) { if($quantity <= 0) { throw new Exception('Une erreur c\'est produite'); } if(!$this->hasProduct($product)) { $this->setProduct($product); } $this->setQuantity($product, $quantity); } /** * Set the quantity of product * * @access public * @param $product * @param $quantity * @return unknown_type * */ public function setQuantity(Product $product, $quantity) { $this->cart[$product->getId()] += (int) $quantity; } /** * Set product * * @access public * @param Product $product * @return void * */ public function setProduct(Product $product) { $this->product[$product->getId()] = $product; $this->cart[$product->getId()] = 0; $this->session = $this->user->setAttribute('cart', $this->cart); $this->session[] = $this->cart; print_r($this->cart); } /** * Has product * * @access public * @param $product * @return bool * */ public function hasProduct(Product $product) { return isset($this->cart[$product->getId()]); }} ?>
je précise que quand j'ajoute un produit de cette manière ç s'ajoute une seul fois mais je n'arrive pas à ajouter un produit dans ma session ni même à l'incrémenter.
Merci par avance !