instance ?? "panier"; $product = Product::find($request->id); Cart::instance($instance); Cart::add($product, $request->qty); return $this->getCart($instance); } /** * ajout de plusieurs produits au panier * * @param \Illuminate\Http\Request $request * * @return array */ public function addToCartLot(Request $request) { $instance = $request->instance ?? "panier"; Cart::instance($instance); $lot = $request->items; foreach ($lot as $item) { $product = Product::find($item["cartItem"]["id"]); Cart::add($product, $item["cartItem"]["qty"]); } return $this->getCart($instance); } /** * suppression de produit du panier * * @param \Illuminate\Http\Request $request * * @return array */ public function removeFromCart(Request $request) { $instance = $request->instance ?? "panier"; $rowId = $request->rowId; Cart::instance($instance); Cart::remove($rowId); return $this->getCart($instance); } /** * vidage de panier * * @param \Illuminate\Http\Request $request * * @return array */ public function emptyCart(Request $request) { $instance = $request->instance ?? "panier"; Cart::instance($instance); Cart::destroy(); return $this->getCart($instance); } /** * récupération du panier * * @param \Illuminate\Http\Request $request * * @return array */ public function getCartRequest(Request $request) { $instance = $request->instance ?? "panier"; Cart::instance($instance); return $this->getCart($instance); } /** * return cart data array * * @param string $instance * @return array */ public function getCart(string $instance = "panier") { Cart::instance($instance); $dbpanier = new Collection(); foreach (Cart::content() as $row) { $product = $row->model; $product->calculatedPrices = $product->getCalcPrices(); $row->setTaxRate($product->tax->rate); $row->setDiscountRate($product->discountRate); $cartextendedItem = array( 'cartItem' => $row, 'product' => $product ); $dbpanier->add($cartextendedItem); } $cartInfos = array( "totalTTC" => Cart::total(), // Total des taxes. 'totalTVA' => Cart::tax(), // Total sans les taxes. 'totalHT' => Cart::subtotal(), // Poids total des items. 'totalweight' => Cart::weight(), // Total avant taxes et remises. 'totalHTbefore' => Cart::priceTotal(), // Total des remises. 'totaldiscount' => Cart::discount(), // Nb de produits dans le cart. 'countItems' => Cart::count(), ); $cartInfosNoPrice = array( "totalTTC" => "-.--", // Total des taxes. 'totalTVA' => "-.--", // Total sans les taxes. 'totalHT' => "-.--", // Poids total des items. 'totalweight' => Cart::weight(), // Total avant taxes et remises. 'totalHTbefore' => "-.--", // Total des remises. 'totaldiscount' => "-.--", // Nb de produits dans le cart. 'countItems' => Cart::count(), ); $cartReturn = array($dbpanier,$cartInfosNoPrice); if (config('bosettings.show_prices_authenticated') == "authenticated") { { if (Auth::guard('customer')->check()) { $cartReturn = array($dbpanier,$cartInfos); } } } if (config('bosettings.show_prices_guest') == "guest") { $cartReturn = array($dbpanier,$cartInfos); } return $cartReturn; } }