Viewing file: CartController.php (5.75 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
namespace App\Http\Controllers\Front;
use App\{ Models\Item, Http\Controllers\Controller, Repositories\Front\CartRepository }; use App\Helpers\PriceHelper; use App\Models\ShippingService; use Illuminate\Http\Request; use Illuminate\Support\Facades\Session;
class CartController extends Controller { /** * Constructor Method. * * @param \App\Repositories\Front\CartRepository $repository * */ public function __construct(CartRepository $repository) { $this->repository = $repository; $this->middleware('localize'); }
public function index() { $user = auth()->user()->id ?? ''; $cart = Session::get('cart_'.$user); if(isset($cart) && $cart){ $user = auth()->user()->id; $cart = Session::get('cart_'.$user); }else{ $cart = []; } return view('front.catalog.cart',[ 'cart' => $cart ]); }
public function cart_items(Request $request){
$carts = Session::get('cart', []); $status = Session::has('cart') ? 'success' : 'failed'; return response()->json(['data' => $carts, 'status' => $status]); }
public function addToCart(Request $request) { $msg = $this->repository->store($request); if($request->ajax()){ return $msg; }
}
public function store(Request $request) { $msg = $this->repository->store($request); if(isset($request->addtocart)){ Session::flash('success_message',__('Cart Added Successfully')); return back(); } return redirect()->route('front.cart')->withSuccess($msg); } public function destroy($id) { $user = auth()->user()->id; $cart = Session::get('cart_'.$user); if ($cart && isset($cart[$id])) { unset($cart[$id]); if (count($cart) > 0) { Session::put('cart_'.$user, $cart); } else { Session::forget('cart_'.$user); } Session::flash('success', __('Cart item removed successfully.')); } else { Session::flash('error', __('Item not found in the cart.')); } // return back(); // dd(count($cart)); return response()->json([ 'status' => 'success', 'total_cart'=> count($cart), 'message' => __('Cart item removed successfully.') ]); } // public function destroy($id) // {
// $cart = Session::get('cart'); // unset($cart[$id]); // if(count($cart) > 0){ // Session::put('cart',$cart); // }else{ // Session::forget('cart'); // } // Session::flash('success',__('Cart item remove successfully.')); // return back(); // }
public function promoStore(Request $request) { return response()->json($this->repository->promoStore($request)); }
public function shippingStore(Request $request) { return redirect()->route('front.checkout'); }
public function update($id) { return view('front.catalog.cart_form',[ 'item' => Item::findOrFail($id), 'attributes' => Item::findOrFail($id)->attributes, 'cart_item' => Session::get('cart')[$id], ]); }
public function update_cart_qty(Request $request) { $response = $this->repository->update_cart_qty($request); $data = $response->getData(true); if ($data['status'] === 'failed') { return response()->json([ 'status' => $data['status'], 'message' => $data['message'], 'item_qty' => $data['item_qty'], 'grand_total' => $data['grand_total'], 'stock' => $data['stock'] ]); } if (isset($request->addtocart)) { Session::flash('success_message', __('Cart Updated Successfully')); return back(); } return response()->json([ 'status' => 'success', 'item_qty' => $data['item_qty'], 'stock' => $data['stock'], 'grand_total' => $data['grand_total'], 'message' => __('Cart quantity updated successfully'), ]); }
public function shippingCharge(Request $request) {
$charges = []; $items = []; foreach($request->user_id as $data){ $check = explode('|',$data); $charges[] = $check[0]; $items[] = $check[1]; } $cart = Session::get('cart'); $delivery_amount = 0; foreach($charges as $index => $charge){ if($charge != 0){ $vendor_charge = Item::findOrFail($items[$index])->user->shipping->price; $delivery_amount += $vendor_charge; $cart[$items[$index]]['delivery_charge'] = $vendor_charge; }else{ $cart[$items[$index]]['delivery_charge'] = 0; } }
Session::put('cart',$cart);
return response()->json(['delivery' => PriceHelper::setPrice($delivery_amount),'main' => $delivery_amount]);
}
public function headerCartLoad() { return view('includes.header_cart'); } public function CartLoad() { return view('includes.cart'); }
public function cartClear() { $user = auth()->user()->id; Session::forget('cart_'.$user); Session::flash('success',__('Cart clear successfully')); return back(); }
public function promoDelete() { Session::forget('coupon'); Session::flash('success',__('Promo code remove successfully')); return back(); }
}
|