Esempio n. 1
0
 /**
  * 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);
 }
Esempio n. 2
0
 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);
 }
Esempio n. 3
0
 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);
 }
Esempio n. 4
0
 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]);
         }
     }
 }