Skip to content

Instantly share code, notes, and snippets.

@DTrierweiler
Created March 4, 2013 12:04
Show Gist options
  • Save DTrierweiler/5081834 to your computer and use it in GitHub Desktop.
Save DTrierweiler/5081834 to your computer and use it in GitHub Desktop.
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)
@current_order = current_order unless current_order.try(:completed?)
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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment