/** * function mame: productDetail * * @param Request $request * @return \Symfony\Component\HttpFoundation\Response */ public function addProductToCart(Request $request) { $cartService = new cartService(); $productService = new productService(); $result = array(); $result['ok'] = false; try { if ($request->isMethod('post')) { $productId = $request->get('productId', 0); $tagId = $request->get('tagId', 1); $colorId = $request->get('colorId', 0); $sizeId = $request->get('sizeId', 0); $quantity = $request->get('quantity', 1); $result['ok'] = true; $userId = \Kacana\Util::isLoggedIn() ? $this->_user->id : 0; $result['item'] = $cartService->addProductToCart($productId, $colorId, $sizeId, $quantity, $tagId); $result['products'] = $productService->getProductRelated($tagId, 3, $userId, ['product_tag_type_id' => false]); $result['cart'] = $cartService->cartInformation(); } } catch (\Exception $e) { if ($request->ajax()) { $result['error'] = $e->getMessage(); return $result; } else { return view('errors.404', ['error_message' => $e]); } } return response()->json($result); }
public function searchProduct($domain, $searchString, Request $request) { $productService = new productService(); $trackingService = new trackingService(); $result['ok'] = 0; $userId = \Kacana\Util::isLoggedIn() ? $this->_user->id : 0; $page = $request->input('page', 1); $limit = $request->input('limit', KACANA_PRODUCT_ITEM_PER_TAG); $sort = $request->input('sort'); $options = ['sort' => $sort]; $products = $productService->searchProduct($searchString, $limit, $page, $options, $userId); $trackingService->createTrackingSearch($searchString, $userId, $request->ip(), 'sub'); $result['ok'] = 1; $result['products'] = $products; $result['search'] = $searchString; return view('client.index.search', $result); }
public function trackUserProductView(Request $request) { $productService = new productService(); $productId = $request->input('productId'); $userId = \Kacana\Util::isLoggedIn() ? $this->_user->id : 0; $result['ok'] = 0; try { $productService->trackUserProductView($productId, $userId, $request->ip()); $result['ok'] = 1; } catch (\Exception $e) { if ($request->ajax()) { $result['error'] = $e->getMessage(); return $result; } else { return view('errors.404', ['error_message' => $e->getMessage()]); } } return response()->json($result); }
public function processOrder(Request $request) { $cartService = new cartService(); $orderService = new orderService(); $cart = $cartService->cartInformation(); if (!$cart) { return view('client.cart.index'); } $key = '__kacana_user_order__'; $userOrder = \Session::get($key); $order = array(); $order['email'] = isset($userOrder['email']) ? $userOrder['email'] : false; $order['name'] = $request->get('name', false); $order['street'] = $request->get('street', false); $order['city_id'] = $request->get('cityId', false); $order['district_id'] = $request->get('districtId', false); $order['ward_id'] = $request->get('wardId', ''); $order['phone'] = $request->get('phone', false); $checkoutAddressId = $request->get('checkout-address-id', false); try { if ($checkoutAddressId && \Kacana\Util::isLoggedIn()) { $order = $cartService->processCartWithAddressId($this->_user->email, $checkoutAddressId); } else { $order = $cartService->processCart($order); } \Session::remove($key); return view('client.checkout.success', ['order' => $order]); } catch (\Exception $e) { if ($request->ajax()) { $result['error'] = $e->getMessage(); return $result; } else { return view('errors.404', ['error_message' => $e]); } } }