Module: CabooseStore::BootStrapper

Defined in:
lib/caboose-store/engine.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.included(base) ⇒ Object



61
62
63
# File 'lib/caboose-store/engine.rb', line 61

def self.included(base)
  base.before_filter :init_cart
end

Instance Method Details

#init_cartObject



65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
# File 'lib/caboose-store/engine.rb', line 65

def init_cart
  
  # Primarily for the relay, check for Order ID coming back
  #session[:cart_id] = params[:order_id] if params[:order_id]
  
  # Check if the cart ID is defined and that it exists in the database
  if !session[:cart_id] || !CabooseStore::Order.exists?(session[:cart_id])
    
    # Create an order to associate with the session
    order = CabooseStore::Order.create(
      :status => 'cart',
      :financial_status => 'pending',
      :date_created => DateTime.now,
      :referring_site => request.env['HTTP_REFERER'],
      :landing_page => request.fullpath,
      :landing_page_ref => params[:ref] || nil
    )
    
    order.update_attribute(:shipping_method_code, CabooseStore::default_shipping_method_code) if CabooseStore::default_shipping_method_code
    
    # Define the cart ID
    session[:cart_id] = order.id
  end
  
  # Log the order and set an instance variable up
  @order = CabooseStore::Order.find(session[:cart_id])
  session[:new_cart_items] ||= Array.new
end