/** * Handle an incoming request. * * @param Request $request * @param \Closure $next * * @return Response */ public function handle(Request $request, Closure $next) { view()->creator(['customer.partials.mini-basket', 'customer.basket.view', 'customer.checkout.section', 'customer.checkout.address'], function (View $view) { $view->with('basket', $this->clerk->basket()); }); view()->composer('*', LocationComposer::class); return $next($request); }
/** * @return Basket */ private function basket() : Basket { /** @var Basket $basket */ $basket = $this->clerk->basket(); if ($basket instanceof BasketPresenter) { $basket = $basket->getWrappedObject(); } return $basket; }
/** * @param RemoveFromBasketRequest $request * * @throws \Symfony\Component\HttpKernel\Exception\BadRequestHttpException * @throws \Exception * * @return \Illuminate\Http\RedirectResponse */ public function removeBasketItemAction(RemoveFromBasketRequest $request) { if (!$this->clerk->basket()->getItem($request->basketItemId())->id) { throw new BadRequestHttpException(sprintf('Basket does not contain any item with id `%s`.', $request->basketItemId())); } /** @var $item */ $item = $this->clerk->removeBasketItem($request->basketItemId()); $this->webUi->successMessage(sprintf('1 × <strong>%s (%s)</strong> %s', $item->productOption->product->name, $item->productOption->label, ' was removed from your basket.')); Analytics::trackEvent('basket', 'remove', $request->basketItemId()); return $this->webUi->redirect('sales.customer.basket'); }
/** * @throws \InvalidArgumentException * * @return RedirectResponse */ public function startAction() { $payPalCheckout = $this->payPalRepository->makeCheckout($this->clerk->basket()); $this->payPalRepository->createInitiation($payPalCheckout); return $this->webUi->redirectAway($payPalCheckout->approvalUrl()); }
/** * Handle an incoming request. * * @param Request $request * @param Closure $next * * @return Response */ public function handle(Request $request, Closure $next) { $this->clerk->basket()->load('address'); view()->share('address', $this->clerk->basket()->address); return $next($request); }
/** * @return Basket */ public function basket() : Basket { return $this->clerk->basket(); }