Пример #1
0
 public function place(Order $orderModel, Category $cat, CheckoutService $checkoutService)
 {
     if (!Session::has('cart')) {
         return false;
     }
     # bring all categories
     $categories = $cat->all();
     $cart = Session::get('cart');
     if ($cart->getTotal() > 0) {
         $checkoutBuilder = $checkoutService->createCheckoutBuilder();
         # create order
         $order = $orderModel->create(['user_id' => Auth::user()->id, 'total' => $cart->getTotal()]);
         # insert items into this order
         foreach ($cart->all() as $id => $item) {
             $checkoutBuilder->addItem(new Item($item['num'], $item['name'], $item['price']));
             $order->items()->create(['product_id' => $id, 'price' => $item['price'], 'quantity' => $item['num']]);
         }
         # clear cart
         $cart->clear();
         # fire event (email) only if everything worked
         event(new CheckoutEvent(Auth::user(), $order));
         $checkout = $checkoutBuilder->getCheckout();
         $response = $checkoutService->checkout($checkout);
         # PagSeguro site redirect
         return redirect($response->getRedirectionUrl());
         //return view('store.checkout', compact('order', 'categories'));
     }
     return view('store.checkout', ['order' => null, 'categories' => $categories]);
 }
Пример #2
0
 public function storeStatus(Requests\OrderRequest $request, Order $ord, $id)
 {
     # get request
     $input = $request->all();
     # find order by ID
     $order = $ord->find($id);
     # update order status
     $order->update($input);
     return redirect()->route('account.orders');
 }