Example #1
0
 /**
  * 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);
 }
Example #2
0
 /**
  * @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 &#215; <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();
 }