Module: Spree::Core::CurrentOrder

Defined in:
lib/spree/core/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.



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

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.



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

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



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

def current_order(create_order_if_necessary = false)
  return @current_order if @current_order
  if session[:order_id]
    @current_order = Spree::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 = Spree::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