購入が完了したら、ストア内の商品のステータスを販売済みに変更する方法が必要です...
次のコードを使用します。
if @order.purchase #I use active merchant's purchase method on compiled order
update_product_status #method explained below
end
商品が line_item としてコピーされる前に、次のコードが実行されます。
@product = Product.find(params[:product_id]) #line_item belongs to product and cart
session[:pending_purchase] = @product.id #stores ID number into session
後で update_product_status コードの ID を取得できるようにします。
def update_product_status #used to update boolean 'sold' status on product
product = session[:pending_purchase]
@sold_product = Product.find(product)
@sold_product.update(:sold = true) #not sure if this syntax is correct
end
誰かが 2 つのアイテムを購入すると、問題が発生する可能性があります。2 番目の line_item が作成されてカートに追加された場合、:pending_purchase の ID は上書きされますか? 両方の変数にアクセスして、両方のアイテムに「sold = true」属性があることを確認するにはどうすればよいですか?