public function checkout() { $cart = Cart::where('user_id', Auth::user()->id)->first(); $items = $cart->cartItems; foreach ($items as $item) { CartItem::destroy($item->id); $productID = $item['product_id']; $product = Product::where('id', $productID)->first(); if ($product->stock > 0) { $newStock = $product->stock; $newStock -= 1; Product::where('id', $productID)->update(['stock' => $newStock]); $purchase = new Purchase(); $purchase->user_id = Auth::user()->id; $purchase->product_id = $productID; $purchase->save(); } } $products = Product::all(); return view('main.index', ['products' => $products]); }
public function checkout(Request $request) { $token = $request->input('stripeToken'); //Retriieve cart information $cart = Cart::where('user_id', Auth::user()->id)->first(); $items = $cart->cartItems; $total = 0; foreach ($items as $item) { $total += $item->product->price; } if (Auth::user()->charge($total * 100, ['source' => $token, 'receipt_email' => Auth::user()->email])) { $order = new Order(); $order->total_paid = $total; $order->user_id = Auth::user()->id; $order->save(); foreach ($items as $item) { $orderItem = new OrderItem(); $orderItem->order_id = $order->id; $orderItem->product_id = $item->product->id; $orderItem->file_id = $item->product->file->id; $orderItem->save(); CartItem::destroy($item->id); } return redirect('/order/' . $order->id); } else { return redirect('/cart'); } }