/** * @param ProductRepository $productRepository * @param $id * @param string $productName * @param int $productVariationId * @return \Illuminate\View\View */ public function view(ProductRepository $productRepository, $id, $productName = '', $productVariationId = null) { $searchParams = $this->productSearchParams(); $searchParams['product_variation_id'] = $productVariationId; $data['product'] = $productRepository->find($id, $searchParams); $data['productDisplay'] = $data['product']->getDisplayArray(); $data['selectedVariation'] = $data['product']->getVariation($productVariationId); return View::make('vendirun::product.view', $data); }
/** * @param ProductRepository $productRepository * @param CustomerRepository $customerRepository * @param $productId * @return \Illuminate\Contracts\View\View */ public function index(ProductRepository $productRepository, CustomerRepository $customerRepository, $productId) { $data = []; try { $data['product'] = $productRepository->find($productId); } catch (FailResponseException $e) { if (App::environment() == 'production') { abort(404); } } try { $data['customer'] = $customerRepository->find(); } catch (CustomerNotFoundException $e) { // this exception means we're not logged in. No problem } $data['recommend'] = true; $data['pageTitle'] = trans('vendirun::product.sendProductToFriend'); return View::make('vendirun::product.recommend', $data); }
/** * @param CartRepository $cartRepository * @param ProductRepository $productRepository * @param CartValuesTransformer $cartValuesTransformer * @return array */ public function add(CartRepository $cartRepository, ProductRepository $productRepository, CartValuesTransformer $cartValuesTransformer) { $productVariationId = Request::get('productVariationId', 0); $quantity = Request::get('quantity', 1); try { $cart = $cartRepository->find(); $product = $productRepository->findByVariationId($productVariationId); $clientInfo = Config::get('clientInfo'); $priceIncludesTax = $clientInfo->business_settings->tax->price_includes_tax; $cartItemFactory = new CartItemFactory($cartRepository, $cart); $cartItem = $cartItemFactory->make($product, $priceIncludesTax, $quantity); $cart->add($cartItem); $cart = $cartRepository->save($cart); $final = $cart->toArray($cartValuesTransformer); $final['itemAdded'] = $product->getDisplayArray(); $final['itemAdded']['quantity'] = $quantity; return $this->respond(true, $final); } catch (\Exception $e) { return $this->respond(false, [], $e->getMessage()); } }
/** * @param CartRepository $cartRepository * @param ProductRepository $productRepository * @param int $productVariationId * @return \Illuminate\Http\RedirectResponse */ public function add(CartRepository $cartRepository, ProductRepository $productRepository, $productVariationId = NULL) { try { $productVariationId = Request::get('productVariationId', $productVariationId); $cart = $cartRepository->find(); $product = $productRepository->findByVariationId($productVariationId); $clientInfo = Config::get('clientInfo'); $priceIncludesTax = $clientInfo->business_settings->tax->price_includes_tax; $cartItemFactory = new CartItemFactory($cartRepository, $cart); $cartItem = $cartItemFactory->make($product, $priceIncludesTax, Request::input('quantity', 1)); $cart->add($cartItem); $cartRepository->save($cart); } catch (Exception $e) { Session::flash('vendirun-alert-error', 'Unable to add your item to the cart. ' . $e->getMessage()); return Redirect::back(); } Session::flash('vendirun-alert-success', 'Item Added to Cart'); if (Session::has('primaryPagePath')) { return Redirect::to(Session::get('primaryPagePath')); } return Redirect::back(); }
/** * @param ProductRepository $productRepository * @param $productId * @return array */ public function find(ProductRepository $productRepository, $productId) { return $this->respond(true, $productRepository->find($productId)->getDisplayArray()); }