Module: Spree::CurrentOrder

Defined in:
lib/spree/current_order.rb

Instance Method Summary collapse

Instance Method Details

#after_save_new_orderObject

This should be overridden by an auth-related extension which would then have the opporutnity to store tokens, etc. in the session # after saving.



11
12
# File 'lib/spree/current_order.rb', line 11

def after_save_new_order
end

#before_save_new_orderObject

This should be overridden by an auth-related extension which would then have the opportunity to associate the new order with the # current user before saving.



6
7
# File 'lib/spree/current_order.rb', line 6

def before_save_new_order
end

#current_order(create_order_if_necessary = false) ⇒ Object

The current incomplete order from the session for use in cart and during checkout



15
16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/spree/current_order.rb', line 15

def current_order(create_order_if_necessary = false)
  return @current_order if @current_order
  if session[:order_id]
    @current_order = Order.find_by_id(session[:order_id], :include => :adjustments)
  end
  if create_order_if_necessary and (@current_order.nil? or @current_order.completed?)
    @current_order = Order.new
    before_save_new_order
    @current_order.save!
    after_save_new_order
  end
  session[:order_id] = @current_order ? @current_order.id : nil
  @current_order
end