spree_frontend 2.1.12 → 2.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/app/assets/images/{store → spree/frontend}/cart.png +0 -0
- data/app/assets/images/{store → spree/frontend}/select_arrow.gif +0 -0
- data/app/assets/javascripts/spree/frontend.js +5 -0
- data/app/assets/javascripts/{store → spree/frontend}/cart.js.coffee +7 -1
- data/app/assets/javascripts/spree/frontend/checkout.js.coffee +11 -0
- data/app/assets/javascripts/{store/checkout.js.coffee → spree/frontend/checkout/address.js.coffee} +12 -40
- data/app/assets/javascripts/spree/frontend/checkout/payment.js.coffee +64 -0
- data/app/assets/javascripts/{store → spree/frontend}/product.js.coffee +2 -3
- data/app/assets/stylesheets/{store/spree_frontend.css → spree/frontend.css} +1 -1
- data/app/assets/stylesheets/{store → spree/frontend}/_variables.scss +0 -0
- data/app/assets/stylesheets/{store → spree/frontend}/screen.css.scss +37 -4
- data/app/controllers/spree/checkout_controller.rb +2 -44
- data/app/controllers/spree/content_controller.rb +1 -6
- data/app/controllers/spree/home_controller.rb +1 -0
- data/app/controllers/spree/orders_controller.rb +14 -25
- data/app/controllers/spree/products_controller.rb +5 -22
- data/app/controllers/spree/store_controller.rb +23 -0
- data/app/controllers/spree/taxons_controller.rb +1 -0
- data/app/views/spree/checkout/_address.html.erb +2 -0
- data/app/views/spree/checkout/_delivery.html.erb +1 -1
- data/app/views/spree/checkout/_payment.html.erb +4 -6
- data/app/views/spree/checkout/_summary.html.erb +41 -15
- data/app/views/spree/checkout/edit.html.erb +6 -2
- data/app/views/spree/checkout/payment/_gateway.html.erb +7 -3
- data/app/views/spree/content/test.html.erb +1 -0
- data/app/views/spree/home/index.html.erb +3 -1
- data/app/views/spree/orders/_adjustment_row.html.erb +6 -0
- data/app/views/spree/orders/_adjustments.html.erb +19 -9
- data/app/views/spree/orders/_form.html.erb +13 -1
- data/app/views/spree/orders/_line_item.html.erb +1 -1
- data/app/views/spree/orders/edit.html.erb +14 -18
- data/app/views/spree/payments/_payment.html.erb +15 -0
- data/app/views/spree/products/_cart_form.html.erb +11 -10
- data/app/views/spree/products/index.html.erb +3 -1
- data/app/views/spree/products/show.html.erb +34 -32
- data/app/views/spree/shared/_frontend_routes.html.erb +3 -0
- data/app/views/spree/shared/_google_analytics.html.erb +7 -7
- data/app/views/spree/shared/_head.html.erb +3 -2
- data/app/views/spree/shared/_link_to_cart.html.erb +1 -0
- data/app/views/spree/shared/_main_nav_bar.html.erb +7 -1
- data/app/views/spree/shared/_order_details.html.erb +40 -14
- data/app/views/spree/shared/_products.html.erb +8 -5
- data/app/views/spree/shared/_search.html.erb +6 -4
- data/app/views/spree/shared/_taxonomies.html.erb +5 -3
- data/app/views/spree/store/cart_link.html.erb +1 -0
- data/app/views/spree/taxons/show.html.erb +6 -5
- data/config/routes.rb +1 -0
- data/lib/spree/frontend.rb +0 -7
- data/lib/spree/frontend/engine.rb +1 -2
- data/lib/spree/frontend/preference_rescue.rb +25 -0
- metadata +25 -16
- data/app/assets/javascripts/store/spree_frontend.js +0 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 29db93da707c1bbb9a6ef087863995df92f50c94
|
4
|
+
data.tar.gz: aba8daaa326750b739f5166436c7dc176612b931
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b58abca47b3506fe2dfee3c2d96e79c3adb1fd2e5d5b3d5dc3cfc974a0170f1ff6c5e0afaa5cea35175dd174adea1036f1ae5fb26a22e7993953a7d717d97fe8
|
7
|
+
data.tar.gz: 447914326a17b8c14bfa48a7a6f276913e240f0c21516e4ff3d1fc37920c4bc60a87b9263c2f0eb9cdc221f6c6cbb3f51d99694b3a81e2da0efae6ea239c1ab4
|
File without changes
|
File without changes
|
@@ -6,4 +6,10 @@ Spree.ready ($) ->
|
|
6
6
|
false
|
7
7
|
|
8
8
|
($ 'form#update-cart').submit ->
|
9
|
-
($ 'form#update-cart #update-button').attr('disabled', true)
|
9
|
+
($ 'form#update-cart #update-button').attr('disabled', true)
|
10
|
+
|
11
|
+
Spree.fetch_cart = ->
|
12
|
+
$.ajax
|
13
|
+
url: Spree.routes.cart_link,
|
14
|
+
success: (data) ->
|
15
|
+
$('#link-to-cart').html data
|
@@ -0,0 +1,11 @@
|
|
1
|
+
//= require jquery.payment
|
2
|
+
//= require_self
|
3
|
+
//= require spree/frontend/checkout/address
|
4
|
+
//= require spree/frontend/checkout/payment
|
5
|
+
|
6
|
+
Spree.disableSaveOnClick = ->
|
7
|
+
($ 'form.edit_order').submit ->
|
8
|
+
($ this).find(':submit, :image').attr('disabled', true).removeClass('primary').addClass 'disabled'
|
9
|
+
|
10
|
+
Spree.ready ($) ->
|
11
|
+
Spree.Checkout = {}
|
data/app/assets/javascripts/{store/checkout.js.coffee → spree/frontend/checkout/address.js.coffee}
RENAMED
@@ -1,25 +1,11 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
Spree.disableSaveOnClick = ->
|
4
|
-
($ 'form.edit_order').submit ->
|
5
|
-
($ this).find(':submit, :image').attr('disabled', true).removeClass('primary').addClass 'disabled'
|
6
|
-
|
7
|
-
Spree.ready ($) ->
|
8
|
-
Spree.Checkout = {}
|
9
|
-
$(".cardNumber").payment('formatCardNumber')
|
10
|
-
$(".cardExpiry").payment('formatCardExpiry')
|
11
|
-
$(".cardCode").payment('formatCardCVC')
|
12
|
-
|
13
|
-
$(".cardNumber").change ->
|
14
|
-
$(this).parent().siblings(".ccType").val($.payment.cardType(@value))
|
15
|
-
|
1
|
+
Spree.onAddress = () ->
|
16
2
|
if ($ '#checkout_form_address').is('*')
|
17
3
|
($ '#checkout_form_address').validate()
|
18
4
|
|
19
5
|
getCountryId = (region) ->
|
20
6
|
$('#' + region + 'country select').val()
|
21
7
|
|
22
|
-
updateState = (region) ->
|
8
|
+
Spree.updateState = (region) ->
|
23
9
|
countryId = getCountryId(region)
|
24
10
|
if countryId?
|
25
11
|
unless Spree.Checkout[countryId]?
|
@@ -27,11 +13,11 @@ Spree.ready ($) ->
|
|
27
13
|
Spree.Checkout[countryId] =
|
28
14
|
states: data.states
|
29
15
|
states_required: data.states_required
|
30
|
-
fillStates(Spree.Checkout[countryId], region)
|
16
|
+
Spree.fillStates(Spree.Checkout[countryId], region)
|
31
17
|
else
|
32
|
-
fillStates(Spree.Checkout[countryId], region)
|
18
|
+
Spree.fillStates(Spree.Checkout[countryId], region)
|
33
19
|
|
34
|
-
fillStates = (data, region) ->
|
20
|
+
Spree.fillStates = (data, region) ->
|
35
21
|
statesRequired = data.states_required
|
36
22
|
states = data.states
|
37
23
|
|
@@ -71,12 +57,12 @@ Spree.ready ($) ->
|
|
71
57
|
stateSelect.removeClass('required')
|
72
58
|
|
73
59
|
($ '#bcountry select').change ->
|
74
|
-
updateState 'b'
|
60
|
+
Spree.updateState 'b'
|
75
61
|
|
76
62
|
($ '#scountry select').change ->
|
77
|
-
updateState 's'
|
63
|
+
Spree.updateState 's'
|
78
64
|
|
79
|
-
updateState 'b'
|
65
|
+
Spree.updateState 'b'
|
80
66
|
|
81
67
|
order_use_billing = ($ 'input#order_use_billing')
|
82
68
|
order_use_billing.change ->
|
@@ -89,23 +75,9 @@ Spree.ready ($) ->
|
|
89
75
|
else
|
90
76
|
($ '#shipping .inner').show()
|
91
77
|
($ '#shipping .inner input, #shipping .inner select').prop 'disabled', false
|
92
|
-
updateState('s')
|
93
|
-
|
94
|
-
update_shipping_form_state order_use_billing
|
95
|
-
|
96
|
-
if ($ '#checkout_form_payment').is('*')
|
97
|
-
($ 'input[type="radio"][name="order[payments_attributes][][payment_method_id]"]').click(->
|
98
|
-
($ '#payment-methods li').hide()
|
99
|
-
($ '#payment_method_' + @value).show() if @checked
|
100
|
-
)
|
78
|
+
Spree.updateState('s')
|
101
79
|
|
102
|
-
|
103
|
-
windowName = 'cvv_info'
|
104
|
-
windowOptions = 'left=20,top=20,width=500,height=500,toolbar=0,resizable=0,scrollbars=1'
|
105
|
-
window.open(($ this).attr('href'), windowName, windowOptions)
|
106
|
-
event.preventDefault()
|
107
|
-
)
|
80
|
+
update_shipping_form_state order_use_billing
|
108
81
|
|
109
|
-
|
110
|
-
|
111
|
-
($ 'input[type="radio"]:checked').click()
|
82
|
+
Spree.ready ($) ->
|
83
|
+
Spree.onAddress()
|
@@ -0,0 +1,64 @@
|
|
1
|
+
Spree.onPayment = () ->
|
2
|
+
if ($ '#checkout_form_payment').is('*')
|
3
|
+
|
4
|
+
$(".cardNumber").payment('formatCardNumber')
|
5
|
+
$(".cardExpiry").payment('formatCardExpiry')
|
6
|
+
$(".cardCode").payment('formatCardCVC')
|
7
|
+
|
8
|
+
$(".cardNumber").change ->
|
9
|
+
$(this).parent().siblings(".ccType").val($.payment.cardType(@value))
|
10
|
+
|
11
|
+
($ 'input[type="radio"][name="order[payments_attributes][][payment_method_id]"]').click(->
|
12
|
+
($ '#payment-methods li').hide()
|
13
|
+
($ '#payment_method_' + @value).show() if @checked
|
14
|
+
)
|
15
|
+
|
16
|
+
($ document).on('click', '#cvv_link', (event) ->
|
17
|
+
windowName = 'cvv_info'
|
18
|
+
windowOptions = 'left=20,top=20,width=500,height=500,toolbar=0,resizable=0,scrollbars=1'
|
19
|
+
window.open(($ this).attr('href'), windowName, windowOptions)
|
20
|
+
event.preventDefault()
|
21
|
+
)
|
22
|
+
|
23
|
+
# Activate already checked payment method if form is re-rendered
|
24
|
+
# i.e. if user enters invalid data
|
25
|
+
($ 'input[type="radio"]:checked').click()
|
26
|
+
|
27
|
+
$('#checkout_form_payment').submit ->
|
28
|
+
# Coupon code application may take a number of seconds.
|
29
|
+
# Informing the user that this is happening is a good way to indicate some progress to them.
|
30
|
+
# In addition to this, if the coupon code FAILS then they don't lose their just-entered payment data.
|
31
|
+
coupon_code_field = $('#order_coupon_code')
|
32
|
+
coupon_code = $.trim(coupon_code_field.val())
|
33
|
+
if (coupon_code != '')
|
34
|
+
if $('#coupon_status').length == 0
|
35
|
+
coupon_status = $("<div id='coupon_status'></div>")
|
36
|
+
coupon_code_field.parent().append(coupon_status)
|
37
|
+
else
|
38
|
+
coupon_status = $("#coupon_status")
|
39
|
+
|
40
|
+
url = Spree.url(Spree.routes.apply_coupon_code(Spree.current_order_id),
|
41
|
+
{
|
42
|
+
order_token: Spree.current_order_token,
|
43
|
+
coupon_code: coupon_code
|
44
|
+
}
|
45
|
+
)
|
46
|
+
|
47
|
+
coupon_status.removeClass();
|
48
|
+
$.ajax({
|
49
|
+
async: false,
|
50
|
+
method: "PUT",
|
51
|
+
url: url,
|
52
|
+
success: (data) ->
|
53
|
+
coupon_code_field.val('')
|
54
|
+
coupon_status.addClass("success").html("Coupon code applied successfully.")
|
55
|
+
return true
|
56
|
+
error: (xhr) ->
|
57
|
+
handler = JSON.parse(xhr.responseText)
|
58
|
+
coupon_status.addClass("error").html(handler["error"])
|
59
|
+
$('.continue').attr('disabled', false)
|
60
|
+
return false
|
61
|
+
})
|
62
|
+
|
63
|
+
Spree.ready ($) ->
|
64
|
+
Spree.onPayment()
|
@@ -37,9 +37,8 @@ $ ->
|
|
37
37
|
radios = ($ '#product-variants input[type="radio"]')
|
38
38
|
|
39
39
|
if radios.length > 0
|
40
|
-
|
41
|
-
Spree.
|
42
|
-
Spree.updateVariantPrice selectedRadio
|
40
|
+
Spree.showVariantImages ($ '#product-variants input[type="radio"]').eq(0).attr('value')
|
41
|
+
Spree.updateVariantPrice radios.first()
|
43
42
|
|
44
43
|
Spree.addImageHandlers()
|
45
44
|
|
File without changes
|
@@ -1,4 +1,5 @@
|
|
1
|
-
@import '
|
1
|
+
@import 'spree/frontend/variables';
|
2
|
+
@import 'font-awesome';
|
2
3
|
|
3
4
|
/*--------------------------------------*/
|
4
5
|
/* Basic styles
|
@@ -309,7 +310,7 @@ nav #main-nav-bar {
|
|
309
310
|
&#link-to-cart {
|
310
311
|
float: right;
|
311
312
|
padding-left: 24px;
|
312
|
-
background:
|
313
|
+
background: image-url("spree/frontend/cart.png") no-repeat left center;
|
313
314
|
|
314
315
|
&:hover {
|
315
316
|
border-color: $link_text_color;
|
@@ -792,6 +793,12 @@ ul#products {
|
|
792
793
|
}
|
793
794
|
}
|
794
795
|
}
|
796
|
+
|
797
|
+
&#subtotal {
|
798
|
+
text-transform: uppercase;
|
799
|
+
font-size: $base_font_size + 4;
|
800
|
+
color: $body_text_color;
|
801
|
+
}
|
795
802
|
}
|
796
803
|
|
797
804
|
.steps-data {
|
@@ -906,11 +913,24 @@ p[data-hook="use_billing"] {
|
|
906
913
|
padding: 5px;
|
907
914
|
}
|
908
915
|
|
916
|
+
#coupon_status {
|
917
|
+
font-weight: bold;
|
918
|
+
font-size: 125%;
|
919
|
+
&.success {
|
920
|
+
color: $c_green;
|
921
|
+
}
|
922
|
+
&.error {
|
923
|
+
color: $c_red;
|
924
|
+
}
|
925
|
+
}
|
926
|
+
|
909
927
|
/*--------------------------------------*/
|
910
928
|
/* Cart
|
911
929
|
/*--------------------------------------*/
|
912
930
|
table#cart-detail {
|
913
931
|
width: 100%;
|
932
|
+
border-collapse: separate;
|
933
|
+
|
914
934
|
tbody#line_items {
|
915
935
|
tr {
|
916
936
|
|
@@ -920,7 +940,7 @@ table#cart-detail {
|
|
920
940
|
}
|
921
941
|
td[data-hook="cart_item_quantity"] {
|
922
942
|
.line_item_quantity {
|
923
|
-
width:
|
943
|
+
width: 65px;
|
924
944
|
}
|
925
945
|
}
|
926
946
|
td[data-hook="cart_item_delete"] {
|
@@ -951,10 +971,23 @@ div[data-hook="inside_cart_form"] {
|
|
951
971
|
}
|
952
972
|
|
953
973
|
#empty-cart {
|
954
|
-
margin-top: -
|
974
|
+
margin-top: -50px;
|
955
975
|
float: left;
|
956
976
|
}
|
957
977
|
|
978
|
+
.cart-subtotal, .cart-total {
|
979
|
+
background: #00ADEE;
|
980
|
+
|
981
|
+
td h5 {
|
982
|
+
color: #fff;
|
983
|
+
}
|
984
|
+
}
|
985
|
+
|
986
|
+
.adjustment:nth-child(even) {
|
987
|
+
background: #eaeaea;
|
988
|
+
|
989
|
+
}
|
990
|
+
|
958
991
|
/*--------------------------------------*/
|
959
992
|
/* Account
|
960
993
|
/*--------------------------------------*/
|
@@ -25,9 +25,8 @@ module Spree
|
|
25
25
|
|
26
26
|
# Updates the order and advances to the next state (when possible.)
|
27
27
|
def update
|
28
|
-
if @order.
|
28
|
+
if @order.update_from_params(params, permitted_checkout_attributes)
|
29
29
|
persist_user_address
|
30
|
-
|
31
30
|
unless @order.next
|
32
31
|
flash[:error] = @order.errors.full_messages.join("\n")
|
33
32
|
redirect_to checkout_state_path(@order.state) and return
|
@@ -71,7 +70,7 @@ module Spree
|
|
71
70
|
end
|
72
71
|
|
73
72
|
def load_order_with_lock
|
74
|
-
@order = current_order(lock: true)
|
73
|
+
@order = current_order(lock: true)
|
75
74
|
redirect_to spree.cart_path and return unless @order
|
76
75
|
|
77
76
|
if params[:state]
|
@@ -102,32 +101,6 @@ module Spree
|
|
102
101
|
spree.order_path(@order)
|
103
102
|
end
|
104
103
|
|
105
|
-
# For payment step, filter order parameters to produce the expected nested
|
106
|
-
# attributes for a single payment and its source, discarding attributes
|
107
|
-
# for payment methods other than the one selected
|
108
|
-
def object_params
|
109
|
-
# has_checkout_step? check is necessary due to issue described in #2910
|
110
|
-
if @order.has_checkout_step?("payment") && @order.payment?
|
111
|
-
if params[:payment_source].present?
|
112
|
-
source_params = params.delete(:payment_source)[params[:order][:payments_attributes].first[:payment_method_id].underscore]
|
113
|
-
|
114
|
-
if source_params
|
115
|
-
params[:order][:payments_attributes].first[:source_attributes] = source_params
|
116
|
-
end
|
117
|
-
end
|
118
|
-
|
119
|
-
if (params[:order][:payments_attributes])
|
120
|
-
params[:order][:payments_attributes].first[:amount] = @order.total
|
121
|
-
end
|
122
|
-
end
|
123
|
-
|
124
|
-
if params[:order]
|
125
|
-
params[:order].permit(permitted_checkout_attributes)
|
126
|
-
else
|
127
|
-
{}
|
128
|
-
end
|
129
|
-
end
|
130
|
-
|
131
104
|
def setup_for_current_state
|
132
105
|
method_name = :"before_#{@order.state}"
|
133
106
|
send(method_name) if respond_to?(method_name, true)
|
@@ -170,20 +143,6 @@ module Spree
|
|
170
143
|
authorize!(:edit, current_order, session[:access_token])
|
171
144
|
end
|
172
145
|
|
173
|
-
def apply_coupon_code
|
174
|
-
if params[:order] && params[:order][:coupon_code]
|
175
|
-
@order.coupon_code = params[:order][:coupon_code]
|
176
|
-
|
177
|
-
coupon_result = Spree::Promo::CouponApplicator.new(@order).apply
|
178
|
-
if coupon_result[:coupon_applied?]
|
179
|
-
flash[:success] = coupon_result[:success] if coupon_result[:success].present?
|
180
|
-
else
|
181
|
-
flash.now[:error] = coupon_result[:error]
|
182
|
-
respond_with(@order) { |format| format.html { render :edit } } and return
|
183
|
-
end
|
184
|
-
end
|
185
|
-
end
|
186
|
-
|
187
146
|
def persist_user_address
|
188
147
|
if @order.checkout_steps.include? "address"
|
189
148
|
if @order.address? && try_spree_current_user.respond_to?(:persist_order_address)
|
@@ -191,6 +150,5 @@ module Spree
|
|
191
150
|
end
|
192
151
|
end
|
193
152
|
end
|
194
|
-
|
195
153
|
end
|
196
154
|
end
|
@@ -3,7 +3,6 @@ module Spree
|
|
3
3
|
# Don't serve local files or static assets
|
4
4
|
before_filter { render_404 if params[:path] =~ /(\.|\\)/ }
|
5
5
|
after_filter :fire_visited_path, :only => :show
|
6
|
-
after_filter :fire_visited_action, :except => :show
|
7
6
|
|
8
7
|
rescue_from ActionView::MissingTemplate, :with => :render_404
|
9
8
|
|
@@ -18,11 +17,7 @@ module Spree
|
|
18
17
|
end
|
19
18
|
|
20
19
|
def fire_visited_path
|
21
|
-
|
22
|
-
end
|
23
|
-
|
24
|
-
def fire_visited_action
|
25
|
-
fire_event('spree.content.visited', :path => "content/#{params[:action]}")
|
20
|
+
Spree::PromotionHandler::Page.new(current_order, params[:path]).activate
|
26
21
|
end
|
27
22
|
end
|
28
23
|
end
|
@@ -8,24 +8,16 @@ module Spree
|
|
8
8
|
|
9
9
|
respond_to :html
|
10
10
|
|
11
|
+
before_filter :assign_order_with_lock, only: :update
|
12
|
+
before_filter :apply_coupon_code, only: :update
|
13
|
+
skip_before_filter :verify_authenticity_token
|
14
|
+
|
11
15
|
def show
|
12
16
|
@order = Order.find_by_number!(params[:id])
|
13
17
|
end
|
14
18
|
|
15
19
|
def update
|
16
|
-
@order
|
17
|
-
unless @order
|
18
|
-
flash[:error] = Spree.t(:order_not_found)
|
19
|
-
redirect_to root_path and return
|
20
|
-
end
|
21
|
-
|
22
|
-
if @order.update_attributes(order_params)
|
23
|
-
@order.line_items = @order.line_items.select {|li| li.quantity > 0 }
|
24
|
-
@order.ensure_updated_shipments
|
25
|
-
return if after_update_attributes
|
26
|
-
|
27
|
-
fire_event('spree.order.contents_changed')
|
28
|
-
|
20
|
+
if @order.contents.update_cart(order_params)
|
29
21
|
respond_with(@order) do |format|
|
30
22
|
format.html do
|
31
23
|
if params.has_key?(:checkout)
|
@@ -45,16 +37,17 @@ module Spree
|
|
45
37
|
def edit
|
46
38
|
@order = current_order || Order.new
|
47
39
|
associate_user
|
40
|
+
if stale?(current_order)
|
41
|
+
respond_with(current_order)
|
42
|
+
end
|
48
43
|
end
|
49
44
|
|
50
45
|
# Adds a new item to the order (creating a new order if none already exists)
|
51
46
|
def populate
|
52
47
|
populator = Spree::OrderPopulator.new(current_order(create_order_if_necessary: true), current_currency)
|
53
|
-
if populator.populate(params
|
48
|
+
if populator.populate(params[:variant_id], params[:quantity])
|
54
49
|
current_order.ensure_updated_shipments
|
55
50
|
|
56
|
-
fire_event('spree.cart.add')
|
57
|
-
fire_event('spree.order.contents_changed')
|
58
51
|
respond_with(@order) do |format|
|
59
52
|
format.html { redirect_to cart_path }
|
60
53
|
end
|
@@ -101,15 +94,11 @@ module Spree
|
|
101
94
|
end
|
102
95
|
end
|
103
96
|
|
104
|
-
def
|
105
|
-
|
106
|
-
|
107
|
-
flash[:
|
108
|
-
return
|
109
|
-
else
|
110
|
-
flash.now[:error] = coupon_result[:error]
|
111
|
-
respond_with(@order) { |format| format.html { render :edit } }
|
112
|
-
return true
|
97
|
+
def assign_order_with_lock
|
98
|
+
@order = current_order(lock: true)
|
99
|
+
unless @order
|
100
|
+
flash[:error] = Spree.t(:order_not_found)
|
101
|
+
redirect_to root_path and return
|
113
102
|
end
|
114
103
|
end
|
115
104
|
end
|