user() != null) { $user_id = Auth::user()->id; if ($request->session()->get('temp_user_id')) { Cart::where('temp_user_id', $request->session()->get('temp_user_id')) ->update( [ 'user_id' => $user_id, 'temp_user_id' => null ] ); Session::forget('temp_user_id'); } $carts = Cart::where('user_id', $user_id)->get(); } else { $temp_user_id = $request->session()->get('temp_user_id'); // $carts = Cart::where('temp_user_id', $temp_user_id)->get(); $carts = ($temp_user_id != null) ? Cart::where('temp_user_id', $temp_user_id)->get() : []; } return view('frontend.view_cart', compact('carts')); } public function showCartModal(Request $request) { $product = Product::find($request->id); return view('frontend.partials.addToCart', compact('product')); } public function showCartModalAuction(Request $request) { $product = Product::find($request->id); return view('auction.frontend.addToCartAuction', compact('product')); } public function addToCart(Request $request) { $carts = Cart::where('user_id', auth()->user()->id)->get(); $check_auction_in_cart = CartUtility::check_auction_in_cart($carts); $product = Product::find($request->id); $carts = array(); if($check_auction_in_cart && $product->auction_product == 0) { return array( 'status' => 0, 'cart_count' => count($carts), 'modal_view' => view('frontend.partials.removeAuctionProductFromCart')->render(), 'nav_cart_view' => view('frontend.partials.cart')->render(), ); } $quantity = $request['quantity']; if ($quantity < $product->min_qty) { return array( 'status' => 0, 'cart_count' => count($carts), 'modal_view' => view('frontend.partials.minQtyNotSatisfied', ['min_qty' => $product->min_qty])->render(), 'nav_cart_view' => view('frontend.partials.cart')->render(), ); } //check the color enabled or disabled for the product $str = CartUtility::create_cart_variant($product, $request->all()); $product_stock = $product->stocks->where('variant', $str)->first(); $cart = Cart::firstOrNew([ 'variation' => $str, 'user_id' => auth()->user()->id, 'product_id' => $request['id'] ]); if ($cart->exists && $product->digital == 0) { if ($product->auction_product == 1 && ($cart->product_id == $product->id)) { return array( 'status' => 0, 'cart_count' => count($carts), 'modal_view' => view('frontend.partials.auctionProductAlredayAddedCart')->render(), 'nav_cart_view' => view('frontend.partials.cart')->render(), ); } if ($product_stock->qty < $cart->quantity + $request['quantity']) { return array( 'status' => 0, 'cart_count' => count($carts), 'modal_view' => view('frontend.partials.outOfStockCart')->render(), 'nav_cart_view' => view('frontend.partials.cart')->render(), ); } $quantity = $cart->quantity + $request['quantity']; } $price = CartUtility::get_price($product, $product_stock, $request->quantity); $tax = CartUtility::tax_calculation($product, $price); CartUtility::save_cart_data($cart, $product, $price, $tax, $quantity); $carts = Cart::where('user_id', auth()->user()->id)->get(); return array( 'status' => 1, 'cart_count' => count($carts), 'modal_view' => view('frontend.partials.addedToCart', compact('product', 'cart'))->render(), 'nav_cart_view' => view('frontend.partials.cart')->render(), ); } //removes from Cart public function removeFromCart(Request $request) { Cart::destroy($request->id); if (auth()->user() != null) { $user_id = Auth::user()->id; $carts = Cart::where('user_id', $user_id)->get(); } else { $temp_user_id = $request->session()->get('temp_user_id'); $carts = Cart::where('temp_user_id', $temp_user_id)->get(); } return array( 'cart_count' => count($carts), 'cart_view' => view('frontend.partials.cart_details', compact('carts'))->render(), 'nav_cart_view' => view('frontend.partials.cart')->render(), ); } //updated the quantity for a cart item public function updateQuantity(Request $request) { $cartItem = Cart::findOrFail($request->id); if ($cartItem['id'] == $request->id) { $product = Product::find($cartItem['product_id']); $product_stock = $product->stocks->where('variant', $cartItem['variation'])->first(); $quantity = $product_stock->qty; $price = $product_stock->price; //discount calculation $discount_applicable = false; if ($product->discount_start_date == null) { $discount_applicable = true; } elseif ( strtotime(date('d-m-Y H:i:s')) >= $product->discount_start_date && strtotime(date('d-m-Y H:i:s')) <= $product->discount_end_date ) { $discount_applicable = true; } if ($discount_applicable) { if ($product->discount_type == 'percent') { $price -= ($price * $product->discount) / 100; } elseif ($product->discount_type == 'amount') { $price -= $product->discount; } } if ($quantity >= $request->quantity) { if ($request->quantity >= $product->min_qty) { $cartItem['quantity'] = $request->quantity; } } if ($product->wholesale_product) { $wholesalePrice = $product_stock->wholesalePrices->where('min_qty', '<=', $request->quantity)->where('max_qty', '>=', $request->quantity)->first(); if ($wholesalePrice) { $price = $wholesalePrice->price; } } $cartItem['price'] = $price; $cartItem->save(); } if (auth()->user() != null) { $user_id = Auth::user()->id; $carts = Cart::where('user_id', $user_id)->get(); } else { $temp_user_id = $request->session()->get('temp_user_id'); $carts = Cart::where('temp_user_id', $temp_user_id)->get(); } return array( 'cart_count' => count($carts), 'cart_view' => view('frontend.partials.cart_details', compact('carts'))->render(), 'nav_cart_view' => view('frontend.partials.cart')->render(), ); } }