Ho un carrello della spesa con una pagina di pagamento. Nella pagina di pagamento è presente un pulsante di pagamento che li porta a un modulo di pagamento per le strisce.
Ho letto alcuni libri sulla costruzione di carrelli di eCommerce in cui l'ordine viene creato quando l'utente fa clic sul pulsante di pagamento e l'ID ordine viene passato al gateway di pagamento. In questo scenario, se l'utente abbandona il modulo di pagamento, viene lasciato un ordine non pagato collegato al proprio account.
Quindi la mia domanda è ciò che è preferibile. Crei l'ordine solo dopo l'addebito di un pagamento effettuato con successo o vuoi creare l'ordine prima che il pagamento venga effettuato?
Suppongo che l'unico vantaggio nella creazione di un ordine prima che il pagamento venga effettuato è che il sito diventa più flessibile nel senso che anche gli ordini offline possono essere fatti e cioè l'ordine fatturato.
* UPDATE *
Un esempio di come è possibile creare un ordine dopo aver addebitato il pagamento.
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');
}
}