spree_mollie_gateway 1.0.3 → 1.0.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8c66b3c62d5e292911139de9d48fc799a5a02b18b4f872ab972bae7229d342ff
4
- data.tar.gz: 788764fa3178195a152719dfd6b16d91f0360fadd9f9f2d7ed4cc2d66a1ee677
3
+ metadata.gz: 0597c2142e1842cd3cb8a181a1a6dd58df8bd3162baf0bc6d58139f9ca031a85
4
+ data.tar.gz: b6890c82d507eae40c1b371805b5e8eb1986c0479212cdb45317ba835a2ef0cc
5
5
  SHA512:
6
- metadata.gz: 8816155881f8c7e161b18b06e6a3a162166da205f375576894e44fe3870dd7601784d5478b367b639cceb027e2a45dbff8fb5fefbb6cebd2843349b172ea147c
7
- data.tar.gz: c099764b6dd1d44c5cb8d3574e2bf8ba1efb0ed36d678aff7dd78f35ed8ee132a9bb544c71c7c23ee6a4c3aac5f362e09d46235cdfcd5644318775a83e8a3ba2
6
+ metadata.gz: 76dec8c188757cb73b710cca266efefe500e75e69dea6ec4c67a0b00d9e4d807365137e43ddfbcd7c9ccbc6d18ac2f53432fd3a7ee8fd191d46505b68f014b32
7
+ data.tar.gz: e31b748acf562a8587c88044bd5b70055fac7e3f9f06db1525e14032a4a8797d8989f774d8fff6b90e18af210a998b574da222633658cfa97d4db9bdbb5e79a8
data/.gitignore CHANGED
@@ -6,10 +6,11 @@
6
6
  /pkg/
7
7
  /spec/reports/
8
8
  /tmp/
9
+ Gemfile.lock
9
10
 
10
11
  # rspec failure tracking
11
12
  .rspec_status
12
13
  .idea/
13
14
  *.gem
14
15
  spec/dummy
15
- .bundle/
16
+ .bundle/
@@ -2,7 +2,7 @@ Spree.user_class.class_eval do
2
2
  after_create :create_mollie_customer
3
3
 
4
4
  def create_mollie_customer
5
- # Don't create Mollie customers is spree_auth_devise is not installed.
5
+ # Don't create Mollie customers if spree_auth_devise is not installed.
6
6
  return unless defined? Spree::User
7
7
  mollie_gateway = Spree::PaymentMethod.find_by_type 'Spree::Gateway::MollieGateway'
8
8
  mollie_customer = mollie_gateway.create_customer(self)
@@ -0,0 +1,220 @@
1
+ # Integrating with the Spree API
2
+
3
+ This guide explains how the Spree checkout flow works when using the Mollie gateway in combination with the Spree API.
4
+
5
+ ## Set up your development environment
6
+
7
+ To make sure webhooks on your local machine can be called, we recommend installing `ngrok`.
8
+
9
+ Make sure `ngrok` listens to port `3000`:
10
+
11
+ ```
12
+ ❯ ./ngrok http 3000
13
+ ```
14
+
15
+ You will then see a `Forwarding URL` which is using HTTPS. Using HTTPS for webhooks is a required for webhooks.
16
+
17
+ Make sure to set the new `ngrok` URL as the Hostname in your payment gateway settings: `http://localhost:3000/admin/payment_methods/4/edit`
18
+
19
+ Start your rails server:
20
+
21
+ ```
22
+ rails server
23
+ ```
24
+
25
+ ## Checkout flow
26
+
27
+ Creating an order using the Spree API is pretty easy. You can test the order creation flow by executing the following actions:
28
+
29
+ 1. Create a new `Spree::Order`.
30
+ 2. Add items (`line_items`) to your order.
31
+ 3. Walk through the checkout flow by transitioning to different states (`address`, `delivery`, `payment`, `complete`).
32
+ 4. Create a new payment. Each `Spree::Payment` is related to one Mollie payment. You can create multiple payments for one order (in case the previous payment failed, for example).
33
+
34
+ ### Create a new `Spree::Order`
35
+
36
+ ```bash
37
+ curl -X "POST" "http://localhost:3000/api/v1/orders" \
38
+ -H 'X-Spree-Token: <token>'
39
+ ```
40
+
41
+ ## Add a new line item to your order
42
+
43
+ ```bash
44
+ curl -X "POST" "http://localhost:3000/api/v1/orders/R287180370/line_items?line_item%5Bvariant_id%5D=1&line_item%5Bquantity%5D=1" \
45
+ -H 'X-Spree-Token: <token>'
46
+ ```
47
+
48
+ ## Start the checkout process
49
+
50
+ Spree has several checkout states, the default ones are:
51
+
52
+ 1. `cart`
53
+ 2. `address`
54
+ 3. `delivery`
55
+ 4. `payment`
56
+ 5. `complete`
57
+
58
+ We're only covering the `payment` and `complete` steps. Documentation on the other checkout steps can be found [in the Spree API documentation](https://guides.spreecommerce.org/api/checkouts.html#address).
59
+
60
+ ### Listing available payment methods
61
+
62
+ You an get a list of Mollie payment methods (and its issuers if any) by making the following request:
63
+
64
+ ```bash
65
+ curl "http://localhost:3000/api/v1/mollie/methods" \
66
+ -H 'X-Spree-Token: <token>'
67
+ ```
68
+
69
+ This will return the following response:
70
+
71
+ ```json
72
+ [
73
+ {
74
+ "attributes": {
75
+ "resource": "method",
76
+ "id": "ideal",
77
+ "description": "iDEAL",
78
+ "amount": {
79
+ "minimum": "0.01",
80
+ "maximum": "50000.00"
81
+ },
82
+ "image": {
83
+ "normal": "https://www.mollie.com/images/payscreen/methods/ideal.png",
84
+ "bigger": "https://www.mollie.com/images/payscreen/methods/ideal%402x.png"
85
+ },
86
+ "issuers": [
87
+ {
88
+ "resource": "issuer",
89
+ "id": "ideal_TESTNL99",
90
+ "name": "TBM Bank",
91
+ "method": "ideal",
92
+ "image": {
93
+ "normal": "https://www.mollie.com/images/checkout/v2/ideal-issuer-icons/TESTNL99.png",
94
+ "bigger": "https://www.mollie.com/images/checkout/v2/ideal-issuer-icons/TESTNL99%402x.png"
95
+ }
96
+ }
97
+ ]
98
+ },
99
+ "id": "ideal",
100
+ "description": "iDEAL",
101
+ "amount": {
102
+ "minimum": "0.01",
103
+ "maximum": "50000.00"
104
+ },
105
+ "image": {
106
+ "normal": "https://www.mollie.com/images/payscreen/methods/ideal.png",
107
+ "bigger": "https://www.mollie.com/images/payscreen/methods/ideal%402x.png"
108
+ }
109
+ }
110
+ ]
111
+ ```
112
+
113
+ ### Creating a new payment
114
+
115
+ When you're about to advance your order to the `payment` state, you can do so by calling:
116
+
117
+ ```bash
118
+ curl -X "PUT" "http://localhost:3000/api/v1/checkouts/<order_id>/next" \
119
+ -H 'X-Spree-Token: <token>'
120
+ ```
121
+
122
+ This will result in the following example response:
123
+
124
+ ```
125
+ {
126
+ [...]
127
+ number: R805041440,
128
+ state: payment,
129
+ item_total: 0.01,
130
+ payment_state: null,
131
+ payments: [],
132
+ payment_methods: [
133
+ {
134
+ id: 4,
135
+ name: Mollie,
136
+ method_type: molliegateway,
137
+ }
138
+ ]
139
+ [...]
140
+ }
141
+ ```
142
+
143
+ In the example response above, the `payments ` array is empty, which means there are no payments created for the order. We need to tell Spree which `Spree::PaymentMethod` we would like to use for our payment (and which method we want to use for our payment).
144
+ We can use the ID that Spree just returned for this, in combination with the `id` of the preferred Mollie payment method (which we retrieved earlier).
145
+
146
+ ```bash
147
+ curl -X "PUT" "http://localhost:3000/api/v1/checkouts/<order_id>" \
148
+ -H 'X-Spree-Token: <token>' \
149
+ -d $'{
150
+ "order": {
151
+ "payments_attributes": [
152
+ {
153
+ "payment_method_id": "4"
154
+ }
155
+ ]
156
+ },
157
+ "payment_source": {
158
+ "4": {
159
+ "payment_method_name": "ideal"
160
+ }
161
+ }
162
+ }'
163
+ ```
164
+
165
+ Spree will respond with the following example response:
166
+
167
+ ```
168
+ {
169
+ [...]
170
+ state: 'complete',
171
+ payment_state: 'balance_due',
172
+ payments: [
173
+ {
174
+ id: 96,
175
+ source_type: "Spree::MolliePaymentSource",
176
+ source_id: 100,
177
+ amount: "0.02",
178
+ display_amount: "€0.02",
179
+ payment_method_id: 4,
180
+ state: "pending",
181
+ avs_response: null,
182
+ created_at: "2018-03-17T15:55:13.000Z",
183
+ updated_at: "2018-03-17T15:55:13.000Z",
184
+ number: "PAP5KQV3",
185
+ payment_method: { id: 4, name: "Mollie" },
186
+ source: {
187
+ id: 100,
188
+ name: "iDEAL",
189
+ payment_method_name: "ideal",
190
+ payment_url:
191
+ "https://www.mollie.com/paymentscreen/issuer/select/ideal/Hsnrg2nqqe",
192
+ },
193
+ }
194
+ ]
195
+ }
196
+ ```
197
+
198
+ The order has now been transitioned to the state `complete`, but the order has not been paid for. Also, no order confirmation mail has been sent to the customer.
199
+
200
+ In our `source` node, we get a `payment_url`. You should now redirect your users to this URL, so they can complete their payment.
201
+
202
+ If everything goes well, our order's `payment_state` will transition from `balance_due` to `paid`. The order confirmation mail will now be send to the user.
203
+
204
+ Did the payment fail? Make sure to create a new payment and redirect the user to the new `payment_url`.
205
+
206
+ ## Payment states mapping
207
+
208
+ Each Mollie payment state will transition the order to the following order state:
209
+
210
+ | Mollie state | Spree order state |
211
+ |--------------|-------------------|
212
+ | paid | complete |
213
+ | cancelled | failed |
214
+ | expired | failed |
215
+ | failed | failed |
216
+ | refunded | void |
217
+
218
+ ## Debugging the checkout flow
219
+
220
+ Each action within the Mollie gateway is logged in a separate log file. [Learn more about Debugging](https://github.com/mollie/spree-mollie-gateway/blob/master/docs/debugging.md).
data/docs/api/readme.md CHANGED
@@ -4,4 +4,5 @@ This gateway seamlessly integrates with the <a href="https://guides.spreecommerc
4
4
 
5
5
  ## Endpoints
6
6
 
7
+ - <a href="checkout.md">Integrating with the Spree API</a>
7
8
  - <a href="methods.md">Get Mollie payment methods</a>
@@ -1,3 +1,3 @@
1
1
  module SpreeMollieGateway
2
- VERSION = '1.0.3'
2
+ VERSION = '1.0.4'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: spree_mollie_gateway
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.3
4
+ version: 1.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Vernon de Goede
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-04-10 00:00:00.000000000 Z
11
+ date: 2018-05-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: spree_core
@@ -298,7 +298,6 @@ files:
298
298
  - ".travis.yml"
299
299
  - CONTRIBUTING.md
300
300
  - Gemfile
301
- - Gemfile.lock
302
301
  - README.md
303
302
  - Rakefile
304
303
  - app/controllers/spree/api/v1/mollie_controller.rb
@@ -321,6 +320,7 @@ files:
321
320
  - config/routes.rb
322
321
  - db/migrate/20180214133044_create_spree_mollie_payment_sources.rb
323
322
  - db/migrate/20180301084841_add_mollie_customer_id_to_spree_user.rb
323
+ - docs/api/checkout.md
324
324
  - docs/api/methods.md
325
325
  - docs/api/readme.md
326
326
  - docs/debugging.md
@@ -351,7 +351,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
351
351
  version: '0'
352
352
  requirements: []
353
353
  rubyforge_project:
354
- rubygems_version: 2.7.6
354
+ rubygems_version: 2.7.7
355
355
  signing_key:
356
356
  specification_version: 4
357
357
  summary: Mollie payments for Spree Commerce.
data/Gemfile.lock DELETED
@@ -1,358 +0,0 @@
1
- PATH
2
- remote: .
3
- specs:
4
- spree_mollie_gateway (1.0.3)
5
- mollie-api-ruby (~> 3.1, >= 3.1.4.pre.beta)
6
- spree_backend (>= 3.1.0, < 4.0)
7
- spree_core (>= 3.1.0, < 4.0)
8
- spree_extension
9
- spree_frontend (>= 3.1.0, < 4.0)
10
-
11
- GEM
12
- remote: https://rubygems.org/
13
- specs:
14
- actioncable (5.1.5)
15
- actionpack (= 5.1.5)
16
- nio4r (~> 2.0)
17
- websocket-driver (~> 0.6.1)
18
- actionmailer (5.1.5)
19
- actionpack (= 5.1.5)
20
- actionview (= 5.1.5)
21
- activejob (= 5.1.5)
22
- mail (~> 2.5, >= 2.5.4)
23
- rails-dom-testing (~> 2.0)
24
- actionpack (5.1.5)
25
- actionview (= 5.1.5)
26
- activesupport (= 5.1.5)
27
- rack (~> 2.0)
28
- rack-test (>= 0.6.3)
29
- rails-dom-testing (~> 2.0)
30
- rails-html-sanitizer (~> 1.0, >= 1.0.2)
31
- actionview (5.1.5)
32
- activesupport (= 5.1.5)
33
- builder (~> 3.1)
34
- erubi (~> 1.4)
35
- rails-dom-testing (~> 2.0)
36
- rails-html-sanitizer (~> 1.0, >= 1.0.3)
37
- activejob (5.1.5)
38
- activesupport (= 5.1.5)
39
- globalid (>= 0.3.6)
40
- activemerchant (1.78.0)
41
- activesupport (>= 3.2.14, < 6.x)
42
- builder (>= 2.1.2, < 4.0.0)
43
- i18n (>= 0.6.9)
44
- nokogiri (~> 1.4)
45
- activemodel (5.1.5)
46
- activesupport (= 5.1.5)
47
- activerecord (5.1.5)
48
- activemodel (= 5.1.5)
49
- activesupport (= 5.1.5)
50
- arel (~> 8.0)
51
- activesupport (5.1.5)
52
- concurrent-ruby (~> 1.0, >= 1.0.2)
53
- i18n (~> 0.7)
54
- minitest (~> 5.1)
55
- tzinfo (~> 1.1)
56
- acts-as-taggable-on (5.0.0)
57
- activerecord (>= 4.2.8)
58
- acts_as_list (0.9.11)
59
- activerecord (>= 3.0)
60
- addressable (2.5.2)
61
- public_suffix (>= 2.0.2, < 4.0)
62
- arel (8.0.0)
63
- autoprefixer-rails (8.2.0)
64
- execjs
65
- awesome_nested_set (3.1.4)
66
- activerecord (>= 4.0.0, < 5.3)
67
- bootstrap-sass (3.3.7)
68
- autoprefixer-rails (>= 5.2.1)
69
- sass (>= 3.3.4)
70
- builder (3.2.3)
71
- camertron-eprun (1.1.1)
72
- cancancan (2.1.4)
73
- canonical-rails (0.2.2)
74
- rails (>= 4.1, < 5.2)
75
- carmen (1.0.2)
76
- activesupport (>= 3.0.0)
77
- childprocess (0.9.0)
78
- ffi (~> 1.0, >= 1.0.11)
79
- cldr-plurals-runtime-rb (1.0.1)
80
- climate_control (0.2.0)
81
- cocaine (0.5.8)
82
- climate_control (>= 0.0.3, < 1.0)
83
- coffee-rails (4.2.2)
84
- coffee-script (>= 2.2.0)
85
- railties (>= 4.0.0)
86
- coffee-script (2.4.1)
87
- coffee-script-source
88
- execjs
89
- coffee-script-source (1.12.2)
90
- concurrent-ruby (1.0.5)
91
- crass (1.0.3)
92
- css_parser (1.6.0)
93
- addressable
94
- database_cleaner (1.6.2)
95
- deface (1.3.0)
96
- nokogiri (~> 1.6)
97
- polyglot
98
- rails (>= 4.1)
99
- rainbow (>= 2.1.0)
100
- diff-lcs (1.3)
101
- docile (1.3.0)
102
- erubi (1.7.1)
103
- execjs (2.7.0)
104
- factory_bot (4.8.2)
105
- activesupport (>= 3.0.0)
106
- ffaker (2.8.1)
107
- ffi (1.9.23)
108
- friendly_id (5.2.3)
109
- activerecord (>= 4.0.0)
110
- globalid (0.4.1)
111
- activesupport (>= 4.2.0)
112
- highline (1.6.21)
113
- htmlentities (4.3.4)
114
- i18n (0.9.5)
115
- concurrent-ruby (~> 1.0)
116
- jquery-rails (4.3.1)
117
- rails-dom-testing (>= 1, < 3)
118
- railties (>= 4.2.0)
119
- thor (>= 0.14, < 2.0)
120
- jquery-ui-rails (6.0.1)
121
- railties (>= 3.2.16)
122
- json (2.1.0)
123
- kaminari (1.0.1)
124
- activesupport (>= 4.1.0)
125
- kaminari-actionview (= 1.0.1)
126
- kaminari-activerecord (= 1.0.1)
127
- kaminari-core (= 1.0.1)
128
- kaminari-actionview (1.0.1)
129
- actionview
130
- kaminari-core (= 1.0.1)
131
- kaminari-activerecord (1.0.1)
132
- activerecord
133
- kaminari-core (= 1.0.1)
134
- kaminari-core (1.0.1)
135
- loofah (2.2.1)
136
- crass (~> 1.0.2)
137
- nokogiri (>= 1.5.9)
138
- mail (2.7.0)
139
- mini_mime (>= 0.1.1)
140
- method_source (0.9.0)
141
- mime-types (3.1)
142
- mime-types-data (~> 3.2015)
143
- mime-types-data (3.2016.0521)
144
- mimemagic (0.3.2)
145
- mini_mime (1.0.0)
146
- mini_portile2 (2.3.0)
147
- minitest (5.11.3)
148
- mollie-api-ruby (3.1.4.pre.beta)
149
- monetize (1.7.0)
150
- money (~> 6.9)
151
- money (6.11.0)
152
- i18n (>= 0.6.4, < 1.1)
153
- mysql2 (0.4.10)
154
- nio4r (2.3.0)
155
- nokogiri (1.8.2)
156
- mini_portile2 (~> 2.3.0)
157
- paperclip (5.2.0)
158
- activemodel (>= 4.2.0)
159
- activesupport (>= 4.2.0)
160
- cocaine (~> 0.5.5)
161
- mime-types
162
- mimemagic (~> 0.3.0)
163
- paranoia (2.3.1)
164
- activerecord (>= 4.0, < 5.2)
165
- polyamorous (1.3.3)
166
- activerecord (>= 3.0)
167
- polyglot (0.3.5)
168
- premailer (1.11.1)
169
- addressable
170
- css_parser (>= 1.6.0)
171
- htmlentities (>= 4.0.0)
172
- premailer-rails (1.10.2)
173
- actionmailer (>= 3, < 6)
174
- premailer (~> 1.7, >= 1.7.9)
175
- public_suffix (3.0.2)
176
- rabl (0.13.1)
177
- activesupport (>= 2.3.14)
178
- rack (2.0.4)
179
- rack-test (0.8.3)
180
- rack (>= 1.0, < 3)
181
- rails (5.1.5)
182
- actioncable (= 5.1.5)
183
- actionmailer (= 5.1.5)
184
- actionpack (= 5.1.5)
185
- actionview (= 5.1.5)
186
- activejob (= 5.1.5)
187
- activemodel (= 5.1.5)
188
- activerecord (= 5.1.5)
189
- activesupport (= 5.1.5)
190
- bundler (>= 1.3.0)
191
- railties (= 5.1.5)
192
- sprockets-rails (>= 2.0.0)
193
- rails-dom-testing (2.0.3)
194
- activesupport (>= 4.2.0)
195
- nokogiri (>= 1.6)
196
- rails-html-sanitizer (1.0.3)
197
- loofah (~> 2.0)
198
- railties (5.1.5)
199
- actionpack (= 5.1.5)
200
- activesupport (= 5.1.5)
201
- method_source
202
- rake (>= 0.8.7)
203
- thor (>= 0.18.1, < 2.0)
204
- rainbow (3.0.0)
205
- rake (10.5.0)
206
- ransack (1.8.8)
207
- actionpack (>= 3.0)
208
- activerecord (>= 3.0)
209
- activesupport (>= 3.0)
210
- i18n
211
- polyamorous (~> 1.3.2)
212
- rb-fsevent (0.10.3)
213
- rb-inotify (0.9.10)
214
- ffi (>= 0.5.0, < 2)
215
- responders (2.4.0)
216
- actionpack (>= 4.2.0, < 5.3)
217
- railties (>= 4.2.0, < 5.3)
218
- rspec (3.7.0)
219
- rspec-core (~> 3.7.0)
220
- rspec-expectations (~> 3.7.0)
221
- rspec-mocks (~> 3.7.0)
222
- rspec-core (3.7.1)
223
- rspec-support (~> 3.7.0)
224
- rspec-expectations (3.7.0)
225
- diff-lcs (>= 1.2.0, < 2.0)
226
- rspec-support (~> 3.7.0)
227
- rspec-mocks (3.7.0)
228
- diff-lcs (>= 1.2.0, < 2.0)
229
- rspec-support (~> 3.7.0)
230
- rspec-rails (3.7.2)
231
- actionpack (>= 3.0)
232
- activesupport (>= 3.0)
233
- railties (>= 3.0)
234
- rspec-core (~> 3.7.0)
235
- rspec-expectations (~> 3.7.0)
236
- rspec-mocks (~> 3.7.0)
237
- rspec-support (~> 3.7.0)
238
- rspec-support (3.7.1)
239
- rubyzip (1.2.1)
240
- sass (3.5.5)
241
- sass-listen (~> 4.0.0)
242
- sass-listen (4.0.0)
243
- rb-fsevent (~> 0.9, >= 0.9.4)
244
- rb-inotify (~> 0.9, >= 0.9.7)
245
- sass-rails (5.0.7)
246
- railties (>= 4.0.0, < 6)
247
- sass (~> 3.1)
248
- sprockets (>= 2.8, < 4.0)
249
- sprockets-rails (>= 2.0, < 4.0)
250
- tilt (>= 1.1, < 3)
251
- select2-rails (3.5.9.1)
252
- thor (~> 0.14)
253
- selenium-webdriver (3.11.0)
254
- childprocess (~> 0.5)
255
- rubyzip (~> 1.2)
256
- simplecov (0.16.1)
257
- docile (~> 1.1)
258
- json (>= 1.8, < 3)
259
- simplecov-html (~> 0.10.0)
260
- simplecov-html (0.10.2)
261
- spree_api (3.4.4)
262
- rabl (~> 0.13.1)
263
- spree_core (= 3.4.4)
264
- versioncake (~> 3.3.0)
265
- spree_backend (3.4.4)
266
- bootstrap-sass (~> 3.3)
267
- jquery-rails (~> 4.3)
268
- jquery-ui-rails (~> 6.0.1)
269
- select2-rails (= 3.5.9.1)
270
- spree_api (= 3.4.4)
271
- spree_core (= 3.4.4)
272
- spree_core (3.4.4)
273
- activemerchant (~> 1.67)
274
- acts-as-taggable-on (~> 5.0)
275
- acts_as_list (~> 0.8)
276
- awesome_nested_set (~> 3.1.3)
277
- cancancan (~> 2.0)
278
- carmen (~> 1.0.0)
279
- deface (~> 1.0)
280
- ffaker (~> 2.2)
281
- friendly_id (~> 5.2.1)
282
- highline (~> 1.6.18)
283
- kaminari (~> 1.0.1)
284
- monetize (~> 1.1)
285
- paperclip (~> 5.1.0)
286
- paranoia (~> 2.3.0)
287
- premailer-rails
288
- rails (~> 5.1.4)
289
- ransack (~> 1.8.0)
290
- responders
291
- sprockets-rails
292
- state_machines-activerecord (~> 0.5)
293
- stringex
294
- twitter_cldr (~> 4.3)
295
- spree_extension (0.0.5)
296
- activerecord (>= 4.2)
297
- spree_frontend (3.4.4)
298
- bootstrap-sass (>= 3.3.5.1, < 3.4)
299
- canonical-rails (~> 0.2.0)
300
- jquery-rails (~> 4.3)
301
- spree_api (= 3.4.4)
302
- spree_core (= 3.4.4)
303
- sprockets (3.7.1)
304
- concurrent-ruby (~> 1.0)
305
- rack (> 1, < 3)
306
- sprockets-rails (3.2.1)
307
- actionpack (>= 4.0)
308
- activesupport (>= 4.0)
309
- sprockets (>= 3.0.0)
310
- sqlite3 (1.3.13)
311
- state_machines (0.5.0)
312
- state_machines-activemodel (0.5.1)
313
- activemodel (>= 4.1, < 6.0)
314
- state_machines (>= 0.5.0)
315
- state_machines-activerecord (0.5.1)
316
- activerecord (>= 4.1, < 6.0)
317
- state_machines-activemodel (>= 0.5.0)
318
- stringex (2.8.4)
319
- thor (0.20.0)
320
- thread_safe (0.3.6)
321
- tilt (2.0.8)
322
- twitter_cldr (4.4.3)
323
- camertron-eprun
324
- cldr-plurals-runtime-rb (~> 1.0)
325
- tzinfo
326
- tzinfo (1.2.5)
327
- thread_safe (~> 0.1)
328
- versioncake (3.3.0)
329
- actionpack (>= 3.2)
330
- activesupport (>= 3.2)
331
- railties (>= 3.2)
332
- tzinfo
333
- websocket-driver (0.6.5)
334
- websocket-extensions (>= 0.1.0)
335
- websocket-extensions (0.1.3)
336
-
337
- PLATFORMS
338
- ruby
339
-
340
- DEPENDENCIES
341
- bundler (~> 1.16)
342
- coffee-rails
343
- database_cleaner
344
- factory_bot
345
- ffaker
346
- mollie-api-ruby (~> 3.1.4.pre.beta)
347
- mysql2
348
- rake (~> 10.0)
349
- rspec (~> 3.0)
350
- rspec-rails (~> 3.7.2)
351
- sass-rails
352
- selenium-webdriver
353
- simplecov
354
- spree_mollie_gateway!
355
- sqlite3
356
-
357
- BUNDLED WITH
358
- 1.16.1