Slide 63
Slide 63 text
class OrderController extends Controller
{
public function store(StoreOrderRequest $request)
{
$cart = Cart::with('cartItems')->findOrFail($request->cart_id);
$order = new Order(['user_id' => $request->user()->id]);
try {
DB::transaction(function () use ($order, $cart) {
$cart->cartItems->each(function (CartItem $cartItem) use ($order) {
$cartItem->product->decrement('stock', $cartItem->quantity);
$order->addOrderLine($cartItem->product, $cartItem->quantity);
});
$order->checkout();
$stripe = new StripePayment(config(‘services.stripe.key'));
$stripe->charge($order->id, $order->total_amount);
});
} catch (\Exception $e) {
abort(Response::HTTP_BAD_REQUEST, trans('order::errors.failed'));
}
return new OrderResource($order);
}
}