Module: Spree::Core::ControllerHelpers::Order
- Extended by:
- ActiveSupport::Concern
- Includes:
- Pricing
- Defined in:
- lib/spree/core/controller_helpers/order.rb
Instance Method Summary
collapse
Methods included from Pricing
#current_currency, #current_pricing_options
Instance Method Details
#associate_user ⇒ Object
54
55
56
57
58
59
|
# File 'lib/spree/core/controller_helpers/order.rb', line 54
def associate_user
@order ||= current_order
if try_spree_current_user && @order
@order.associate_user!(try_spree_current_user) if @order.user.blank? || @order.email.blank?
end
end
|
#current_order(options = {}) ⇒ Object
The current incomplete order from the guest_token for use in cart and during checkout
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
|
# File 'lib/spree/core/controller_helpers/order.rb', line 32
def current_order(options = {})
should_create = options[:create_order_if_necessary] || false
should_build = options[:build_order_if_necessary] || should_create
return @current_order if @current_order
@current_order = find_order_by_token_or_user(lock: options[:lock])
if should_build && (@current_order.nil? || @current_order.completed?)
@current_order = Spree::Order.new(new_order_params)
@current_order.user ||= try_spree_current_user
@current_order.created_by ||= try_spree_current_user
@current_order.save! if should_create
end
if @current_order
@current_order.record_ip_address(ip_address)
return @current_order
end
end
|
#ip_address ⇒ Object
69
70
71
|
# File 'lib/spree/core/controller_helpers/order.rb', line 69
def ip_address
request.remote_ip
end
|
#set_current_order ⇒ Object
61
62
63
64
65
66
67
|
# File 'lib/spree/core/controller_helpers/order.rb', line 61
def set_current_order
if try_spree_current_user && current_order
try_spree_current_user.orders.by_store(current_store).incomplete.where('id != ?', current_order.id).each do |order|
current_order.merge!(order, try_spree_current_user)
end
end
end
|
#simple_current_order ⇒ Object
17
18
19
20
21
22
23
24
25
26
27
28
|
# File 'lib/spree/core/controller_helpers/order.rb', line 17
def simple_current_order
return @simple_current_order if @simple_current_order
@simple_current_order = find_order_by_token_or_user
if @simple_current_order
@simple_current_order.last_ip_address = ip_address
return @simple_current_order
else
@simple_current_order = Spree::Order.new(current_order_params)
end
end
|