effective_orders 5.0.1 → 5.1.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/README.md +67 -1
- data/app/assets/config/effective_orders_manifest.js +3 -0
- data/app/assets/images/effective_orders/logo.png +0 -0
- data/app/assets/javascripts/effective_orders.js +1 -1
- data/app/assets/javascripts/effective_orders/providers/moneris_checkout.js.coffee +71 -0
- data/app/assets/stylesheets/effective_orders/_order.scss +4 -0
- data/app/controllers/effective/concerns/purchase.rb +14 -21
- data/app/controllers/effective/orders_controller.rb +2 -2
- data/app/controllers/effective/providers/free.rb +0 -1
- data/app/controllers/effective/providers/mark_as_paid.rb +1 -2
- data/app/controllers/effective/providers/moneris_checkout.rb +59 -0
- data/app/controllers/effective/providers/pretend.rb +1 -2
- data/app/controllers/effective/providers/refund.rb +1 -2
- data/app/controllers/effective/providers/stripe.rb +1 -2
- data/app/datatables/admin/effective_orders_datatable.rb +5 -8
- data/app/datatables/effective_orders_datatable.rb +3 -7
- data/app/helpers/effective_moneris_checkout_helper.rb +65 -0
- data/app/helpers/effective_orders_helper.rb +3 -26
- data/app/mailers/effective/orders_mailer.rb +6 -4
- data/app/models/concerns/acts_as_purchasable.rb +2 -0
- data/app/models/concerns/acts_as_subscribable.rb +1 -0
- data/app/models/concerns/acts_as_subscribable_buyer.rb +2 -1
- data/app/models/effective/order.rb +56 -35
- data/app/models/effective/order_item.rb +10 -0
- data/app/models/effective/product.rb +2 -0
- data/app/views/effective/orders/_checkout_step2.html.haml +3 -0
- data/app/views/effective/orders/_order.html.haml +1 -1
- data/app/views/effective/orders/_order_actions.html.haml +1 -1
- data/app/views/effective/orders/_order_footer.html.haml +3 -1
- data/app/views/effective/orders/_order_header.html.haml +4 -20
- data/app/views/effective/orders/_order_payment.html.haml +7 -18
- data/app/views/effective/orders/declined.html.haml +2 -4
- data/app/views/effective/orders/deferred.html.haml +2 -4
- data/app/views/effective/orders/moneris_checkout/_element.html.haml +4 -0
- data/app/views/effective/orders/moneris_checkout/_form.html.haml +23 -0
- data/app/views/effective/orders/purchased.html.haml +2 -4
- data/app/views/effective/orders/show.html.haml +5 -2
- data/config/effective_orders.rb +19 -0
- data/config/routes.rb +1 -0
- data/lib/effective_orders.rb +23 -2
- data/lib/effective_orders/engine.rb +2 -2
- data/lib/effective_orders/version.rb +1 -1
- data/lib/generators/templates/effective_orders_mailer_preview.rb +6 -0
- metadata +69 -6
@@ -1,12 +1,10 @@
|
|
1
1
|
%h1.effective-heading= @page_title
|
2
2
|
|
3
|
-
%p.effective-orders-page-content
|
4
|
-
= link_to 'Home', root_path
|
5
|
-
|
6
3
|
%p.effective-orders-page-content
|
7
4
|
- if current_cart.present?
|
8
5
|
Your #{link_to_current_cart(label: 'Cart')} items have been saved. Please try again.
|
9
6
|
- else
|
10
7
|
Please try again.
|
11
8
|
|
12
|
-
|
9
|
+
%p.text-center
|
10
|
+
= link_to 'Continue', root_path, class: 'btn btn-primary'
|
@@ -1,8 +1,5 @@
|
|
1
1
|
%h1.effective-heading= @page_title
|
2
2
|
|
3
|
-
%p.effective-orders-page-content
|
4
|
-
= link_to 'Home', root_path
|
5
|
-
|
6
3
|
%p.effective-orders-page-content
|
7
4
|
You have indicated that this order will be paid by #{@order.payment_provider}.
|
8
5
|
Your order will not be considered purchased until we receive your payment.
|
@@ -10,4 +7,5 @@
|
|
10
7
|
|
11
8
|
= render @order
|
12
9
|
|
13
|
-
|
10
|
+
%p.text-center
|
11
|
+
= link_to 'Continue', root_path, class: 'btn btn-primary'
|
@@ -0,0 +1,23 @@
|
|
1
|
+
= javascript_include_tag(EffectiveOrders.moneris_checkout_script_url)
|
2
|
+
|
3
|
+
- moneris_checkout = moneris_checkout_preload_request(order)
|
4
|
+
|
5
|
+
.card
|
6
|
+
.card-body.bg-light
|
7
|
+
.mb-3.text-center
|
8
|
+
%h2 Checkout
|
9
|
+
|
10
|
+
= effective_form_with(scope: :moneris_checkout, url: effective_orders.moneris_checkout_order_path(order), data: { 'moneris-checkout-form': moneris_checkout.to_json }) do |f|
|
11
|
+
= f.hidden_field :purchased_url, value: purchased_url
|
12
|
+
= f.hidden_field :declined_url, value: declined_url
|
13
|
+
|
14
|
+
-# This is set by the moneris_checkout.js javascript
|
15
|
+
= f.hidden_field :ticket
|
16
|
+
|
17
|
+
= render('effective/orders/moneris_checkout/element')
|
18
|
+
|
19
|
+
.mt-3.text-center
|
20
|
+
%em
|
21
|
+
This checkout provided by
|
22
|
+
= succeed('.') do
|
23
|
+
= link_to('Moneris', 'https://www.moneris.com', target: '_blank', class: 'btn-link')
|
@@ -1,11 +1,9 @@
|
|
1
1
|
%h1.effective-heading= @page_title
|
2
2
|
|
3
|
-
%p.effective-orders-page-content
|
4
|
-
= link_to 'Home', root_path
|
5
|
-
|
6
3
|
%p.effective-orders-page-content
|
7
4
|
You have successfully purchased the following:
|
8
5
|
|
9
6
|
= render @order
|
10
7
|
|
11
|
-
|
8
|
+
%p.text-center
|
9
|
+
= link_to 'Continue', root_path, class: 'btn btn-primary'
|
@@ -1,6 +1,9 @@
|
|
1
1
|
%h1.effective-heading= @page_title
|
2
2
|
|
3
|
-
- if @order.user == current_user
|
3
|
+
- if !@order.purchased? && @order.user == current_user
|
4
4
|
= render_checkout(@order)
|
5
5
|
- else
|
6
|
-
= render
|
6
|
+
= render(@order)
|
7
|
+
|
8
|
+
%p.text-center
|
9
|
+
= link_to 'Continue', effective_orders.orders_path, class: 'btn btn-primary'
|
data/config/effective_orders.rb
CHANGED
@@ -166,6 +166,25 @@ EffectiveOrders.setup do |config|
|
|
166
166
|
# }
|
167
167
|
# end
|
168
168
|
|
169
|
+
# Moneris Checkout
|
170
|
+
config.moneris_checkout = false
|
171
|
+
|
172
|
+
# if Rails.env.production?
|
173
|
+
# config.moneris_checkout = {
|
174
|
+
# environment: 'prod',
|
175
|
+
# store_id: '',
|
176
|
+
# api_token: '',
|
177
|
+
# checkout_id: '',
|
178
|
+
# }
|
179
|
+
# else
|
180
|
+
# config.moneris_checkout = {
|
181
|
+
# environment: 'qa',
|
182
|
+
# store_id: 'store1',
|
183
|
+
# api_token: 'yesguy1',
|
184
|
+
# checkout_id: 'chktJF76Btore1',
|
185
|
+
# }
|
186
|
+
# end
|
187
|
+
|
169
188
|
# Paypal
|
170
189
|
config.paypal = false
|
171
190
|
|
data/config/routes.rb
CHANGED
data/lib/effective_orders.rb
CHANGED
@@ -34,7 +34,7 @@ module EffectiveOrders
|
|
34
34
|
# Features
|
35
35
|
:free_enabled, :mark_as_paid_enabled, :pretend_enabled, :pretend_message,
|
36
36
|
# Payment processors. false or Hash
|
37
|
-
:cheque, :moneris, :paypal, :phone, :refund, :stripe, :subscriptions, :trial
|
37
|
+
:cheque, :moneris, :moneris_checkout, :paypal, :phone, :refund, :stripe, :subscriptions, :trial
|
38
38
|
]
|
39
39
|
end
|
40
40
|
|
@@ -69,6 +69,10 @@ module EffectiveOrders
|
|
69
69
|
moneris.kind_of?(Hash)
|
70
70
|
end
|
71
71
|
|
72
|
+
def self.moneris_checkout?
|
73
|
+
moneris_checkout.kind_of?(Hash)
|
74
|
+
end
|
75
|
+
|
72
76
|
def self.paypal?
|
73
77
|
paypal.kind_of?(Hash)
|
74
78
|
end
|
@@ -98,7 +102,7 @@ module EffectiveOrders
|
|
98
102
|
end
|
99
103
|
|
100
104
|
def self.single_payment_processor?
|
101
|
-
[moneris?, paypal?, stripe?].select { |enabled| enabled }.length == 1
|
105
|
+
[moneris?, moneris_checkout?, paypal?, stripe?].select { |enabled| enabled }.length == 1
|
102
106
|
end
|
103
107
|
|
104
108
|
# The Effective::Order.payment_provider value must be in this collection
|
@@ -108,6 +112,7 @@ module EffectiveOrders
|
|
108
112
|
('credit card' if mark_as_paid?),
|
109
113
|
('free' if free?),
|
110
114
|
('moneris' if moneris?),
|
115
|
+
('moneris_checkout' if moneris_checkout?),
|
111
116
|
('paypal' if paypal?),
|
112
117
|
('phone' if phone?),
|
113
118
|
('pretend' if pretend?),
|
@@ -197,6 +202,22 @@ module EffectiveOrders
|
|
197
202
|
stripe_plans.map { |plan| [plan[:name], plan[:id]] }
|
198
203
|
end
|
199
204
|
|
205
|
+
def self.moneris_checkout_script_url
|
206
|
+
case EffectiveOrders.moneris_checkout.fetch(:environment)
|
207
|
+
when 'prod' then 'https://gateway.moneris.com/chkt/js/chkt_v1.00.js'
|
208
|
+
when 'qa' then 'https://gatewayt.moneris.com/chkt/js/chkt_v1.00.js'
|
209
|
+
else raise('unexpected EffectiveOrders.moneris_checkout :environment key. Please check your config/initializers/effective_orders.rb file')
|
210
|
+
end
|
211
|
+
end
|
212
|
+
|
213
|
+
def self.moneris_request_url
|
214
|
+
case EffectiveOrders.moneris_checkout.fetch(:environment)
|
215
|
+
when 'prod' then 'https://gateway.moneris.com/chkt/request/request.php'
|
216
|
+
when 'qa' then 'https://gatewayt.moneris.com/chkt/request/request.php'
|
217
|
+
else raise('unexpected EffectiveOrders.moneris_checkout :environment key. Please check your config/initializers/effective_orders.rb file')
|
218
|
+
end
|
219
|
+
end
|
220
|
+
|
200
221
|
class SoldOutException < Exception; end
|
201
222
|
class AlreadyPurchasedException < Exception; end
|
202
223
|
end
|
@@ -16,8 +16,8 @@ module EffectiveOrders
|
|
16
16
|
eval File.read("#{config.root}/config/effective_orders.rb")
|
17
17
|
end
|
18
18
|
|
19
|
-
initializer
|
20
|
-
|
19
|
+
initializer 'effective_orders.assets' do |app|
|
20
|
+
app.config.assets.precompile += ['effective_orders_manifest.js', 'effective_orders/*']
|
21
21
|
end
|
22
22
|
|
23
23
|
initializer 'effective_orders.refund', after: :load_config_initializers do
|
@@ -61,6 +61,12 @@ class EffectiveOrdersMailerPreview < ActionMailer::Preview
|
|
61
61
|
order = Effective::Order.new(id: 1)
|
62
62
|
order.user = preview_user
|
63
63
|
preview_order_items.each { |atts| order.order_items.build(atts) }
|
64
|
+
|
65
|
+
order.state = 'purchased'
|
66
|
+
order.payment_card = 'visa'
|
67
|
+
order.purchased_at = Time.zone.now
|
68
|
+
order.payment = { 'f4l4' => '1234'}
|
69
|
+
|
64
70
|
order.valid?
|
65
71
|
order
|
66
72
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: effective_orders
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 5.0
|
4
|
+
version: 5.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Code and Effect
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-
|
11
|
+
date: 2021-05-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -39,7 +39,7 @@ dependencies:
|
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
|
-
name:
|
42
|
+
name: sassc
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
45
|
- - ">="
|
@@ -53,7 +53,7 @@ dependencies:
|
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '0'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
|
-
name:
|
56
|
+
name: effective_addresses
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
59
|
- - ">="
|
@@ -72,14 +72,14 @@ dependencies:
|
|
72
72
|
requirements:
|
73
73
|
- - ">="
|
74
74
|
- !ruby/object:Gem::Version
|
75
|
-
version:
|
75
|
+
version: '0'
|
76
76
|
type: :runtime
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
80
|
- - ">="
|
81
81
|
- !ruby/object:Gem::Version
|
82
|
-
version:
|
82
|
+
version: '0'
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
84
|
name: effective_bootstrap
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
@@ -108,6 +108,62 @@ dependencies:
|
|
108
108
|
- - ">="
|
109
109
|
- !ruby/object:Gem::Version
|
110
110
|
version: '0'
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: sqlite3
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - ">="
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '0'
|
118
|
+
type: :development
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - ">="
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: '0'
|
125
|
+
- !ruby/object:Gem::Dependency
|
126
|
+
name: devise
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
128
|
+
requirements:
|
129
|
+
- - ">="
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
version: '0'
|
132
|
+
type: :development
|
133
|
+
prerelease: false
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
135
|
+
requirements:
|
136
|
+
- - ">="
|
137
|
+
- !ruby/object:Gem::Version
|
138
|
+
version: '0'
|
139
|
+
- !ruby/object:Gem::Dependency
|
140
|
+
name: haml-rails
|
141
|
+
requirement: !ruby/object:Gem::Requirement
|
142
|
+
requirements:
|
143
|
+
- - ">="
|
144
|
+
- !ruby/object:Gem::Version
|
145
|
+
version: '0'
|
146
|
+
type: :development
|
147
|
+
prerelease: false
|
148
|
+
version_requirements: !ruby/object:Gem::Requirement
|
149
|
+
requirements:
|
150
|
+
- - ">="
|
151
|
+
- !ruby/object:Gem::Version
|
152
|
+
version: '0'
|
153
|
+
- !ruby/object:Gem::Dependency
|
154
|
+
name: pry-byebug
|
155
|
+
requirement: !ruby/object:Gem::Requirement
|
156
|
+
requirements:
|
157
|
+
- - ">="
|
158
|
+
- !ruby/object:Gem::Version
|
159
|
+
version: '0'
|
160
|
+
type: :development
|
161
|
+
prerelease: false
|
162
|
+
version_requirements: !ruby/object:Gem::Requirement
|
163
|
+
requirements:
|
164
|
+
- - ">="
|
165
|
+
- !ruby/object:Gem::Version
|
166
|
+
version: '0'
|
111
167
|
description: Quickly build an online store with carts, orders, automatic email receipts
|
112
168
|
and payment collection via Stripe, StripeConnect, PayPal and Moneris.
|
113
169
|
email:
|
@@ -118,9 +174,12 @@ extra_rdoc_files: []
|
|
118
174
|
files:
|
119
175
|
- MIT-LICENSE
|
120
176
|
- README.md
|
177
|
+
- app/assets/config/effective_orders_manifest.js
|
178
|
+
- app/assets/images/effective_orders/logo.png
|
121
179
|
- app/assets/images/effective_orders/stripe.png
|
122
180
|
- app/assets/javascripts/effective_orders.js
|
123
181
|
- app/assets/javascripts/effective_orders/customers.js.coffee
|
182
|
+
- app/assets/javascripts/effective_orders/providers/moneris_checkout.js.coffee
|
124
183
|
- app/assets/javascripts/effective_orders/providers/stripe.js.coffee
|
125
184
|
- app/assets/javascripts/effective_orders/subscriptions.js.coffee
|
126
185
|
- app/assets/stylesheets/effective_orders.scss
|
@@ -137,6 +196,7 @@ files:
|
|
137
196
|
- app/controllers/effective/providers/free.rb
|
138
197
|
- app/controllers/effective/providers/mark_as_paid.rb
|
139
198
|
- app/controllers/effective/providers/moneris.rb
|
199
|
+
- app/controllers/effective/providers/moneris_checkout.rb
|
140
200
|
- app/controllers/effective/providers/paypal.rb
|
141
201
|
- app/controllers/effective/providers/phone.rb
|
142
202
|
- app/controllers/effective/providers/pretend.rb
|
@@ -148,6 +208,7 @@ files:
|
|
148
208
|
- app/datatables/admin/effective_orders_datatable.rb
|
149
209
|
- app/datatables/effective_orders_datatable.rb
|
150
210
|
- app/helpers/effective_carts_helper.rb
|
211
|
+
- app/helpers/effective_moneris_checkout_helper.rb
|
151
212
|
- app/helpers/effective_orders_helper.rb
|
152
213
|
- app/helpers/effective_paypal_helper.rb
|
153
214
|
- app/helpers/effective_stripe_helper.rb
|
@@ -213,6 +274,8 @@ files:
|
|
213
274
|
- app/views/effective/orders/index.html.haml
|
214
275
|
- app/views/effective/orders/mark_as_paid/_form.html.haml
|
215
276
|
- app/views/effective/orders/moneris/_form.html.haml
|
277
|
+
- app/views/effective/orders/moneris_checkout/_element.html.haml
|
278
|
+
- app/views/effective/orders/moneris_checkout/_form.html.haml
|
216
279
|
- app/views/effective/orders/new.html.haml
|
217
280
|
- app/views/effective/orders/paypal/_form.html.haml
|
218
281
|
- app/views/effective/orders/phone/_form.html.haml
|