I need a way to change the status of products in my store to sold once a purchase is completed...
I use the following code:
if @order.purchase #I use active merchant's purchase method on compiled order
update_product_status #method explained below
end
Before a product is copied as a line_item this code is run:
@product = Product.find(params[:product_id]) #line_item belongs to product and cart
session[:pending_purchase] = @product.id #stores ID number into session
So that later I can pull the ID, for the update_product_status code:
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
A problem may present itself if someone buys two items. Will the ID in :pending_purchase get over written if a second line_item is created and added to the cart? How would I access both variables and make sure both items now have a 'sold = true' attribute?