spree_emails 5.2.6 → 5.3.0.rc1
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/Rakefile +3 -1
- data/app/subscribers/spree/order_email_subscriber.rb +63 -0
- data/app/subscribers/spree/reimbursement_email_subscriber.rb +24 -0
- data/app/subscribers/spree/shipment_email_subscriber.rb +24 -0
- data/lib/spree/emails/engine.rb +12 -0
- data/lib/spree/emails.rb +1 -1
- metadata +11 -11
- data/app/models/spree/order/emails.rb +0 -30
- data/app/models/spree/reimbursement/emails.rb +0 -9
- data/app/models/spree/shipment/emails.rb +0 -9
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 914cad00ec6db8dc1e48fe5893284799492a3e23c6398a3fc219882130751bbc
|
|
4
|
+
data.tar.gz: 96ca08387036fe07dbf84ec3fd123af49e610b011df8d1d1336be6c311f1484b
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 4338a16b2c8681ce2cfd0a55c5a22faa22837ddf5dba0ac1cce16a613138722c3455085264d43598040781e7305e5daf0d3ab8cbfb682ab6eb21e885c243020b
|
|
7
|
+
data.tar.gz: dd3fe763c52d4d79f90cd8629d0d6f758eff9cb4169a19acb4a0b759ada15f0262acf952fe193e22437088858652f7c8575133dd946e5e908d13dff149bf0a12
|
data/Rakefile
CHANGED
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Spree
|
|
4
|
+
class OrderEmailSubscriber < Spree::Subscriber
|
|
5
|
+
subscribes_to 'order.completed', 'order.canceled', 'order.resend_confirmation_email'
|
|
6
|
+
|
|
7
|
+
on 'order.completed', :send_confirmation_email
|
|
8
|
+
on 'order.canceled', :send_cancel_email
|
|
9
|
+
on 'order.resend_confirmation_email', :resend_confirmation_email
|
|
10
|
+
|
|
11
|
+
private
|
|
12
|
+
|
|
13
|
+
def send_confirmation_email(event)
|
|
14
|
+
order = find_order(event)
|
|
15
|
+
return unless order
|
|
16
|
+
return if order.confirmation_delivered?
|
|
17
|
+
|
|
18
|
+
store = order.store
|
|
19
|
+
return unless store.prefers_send_consumer_transactional_emails?
|
|
20
|
+
|
|
21
|
+
OrderMailer.confirm_email(order.id).deliver_later
|
|
22
|
+
order.update_column(:confirmation_delivered, true)
|
|
23
|
+
|
|
24
|
+
send_store_owner_notification(order) if should_notify_store_owner?(order)
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
def resend_confirmation_email(event)
|
|
28
|
+
order = find_order(event)
|
|
29
|
+
return unless order
|
|
30
|
+
|
|
31
|
+
store = order.store
|
|
32
|
+
return unless store.prefers_send_consumer_transactional_emails?
|
|
33
|
+
|
|
34
|
+
OrderMailer.confirm_email(order.id).deliver_later
|
|
35
|
+
order.update_column(:confirmation_delivered, true)
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
def send_cancel_email(event)
|
|
39
|
+
order = find_order(event)
|
|
40
|
+
return unless order
|
|
41
|
+
|
|
42
|
+
OrderMailer.cancel_email(order.id).deliver_later
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
def send_store_owner_notification(order)
|
|
46
|
+
return if order.store_owner_notification_delivered?
|
|
47
|
+
return if order.store.new_order_notifications_email.blank?
|
|
48
|
+
|
|
49
|
+
OrderMailer.store_owner_notification_email(order.id).deliver_later
|
|
50
|
+
order.update_column(:store_owner_notification_delivered, true)
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
def should_notify_store_owner?(order)
|
|
54
|
+
order.store.new_order_notifications_email.present? &&
|
|
55
|
+
!order.store_owner_notification_delivered?
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
def find_order(event)
|
|
59
|
+
order_id = event.payload['id']
|
|
60
|
+
Spree::Order.find_by(id: order_id)
|
|
61
|
+
end
|
|
62
|
+
end
|
|
63
|
+
end
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Spree
|
|
4
|
+
class ReimbursementEmailSubscriber < Spree::Subscriber
|
|
5
|
+
subscribes_to 'reimbursement.reimbursed'
|
|
6
|
+
|
|
7
|
+
def handle(event)
|
|
8
|
+
reimbursement = find_reimbursement(event)
|
|
9
|
+
return unless reimbursement
|
|
10
|
+
|
|
11
|
+
store = reimbursement.store
|
|
12
|
+
return unless store.prefers_send_consumer_transactional_emails?
|
|
13
|
+
|
|
14
|
+
ReimbursementMailer.reimbursement_email(reimbursement.id).deliver_later
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
private
|
|
18
|
+
|
|
19
|
+
def find_reimbursement(event)
|
|
20
|
+
reimbursement_id = event.payload['id']
|
|
21
|
+
Spree::Reimbursement.find_by(id: reimbursement_id)
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
end
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Spree
|
|
4
|
+
class ShipmentEmailSubscriber < Spree::Subscriber
|
|
5
|
+
subscribes_to 'shipment.shipped'
|
|
6
|
+
|
|
7
|
+
def handle(event)
|
|
8
|
+
shipment = find_shipment(event)
|
|
9
|
+
return unless shipment
|
|
10
|
+
|
|
11
|
+
store = shipment.store
|
|
12
|
+
return unless store.prefers_send_consumer_transactional_emails?
|
|
13
|
+
|
|
14
|
+
ShipmentMailer.shipped_email(shipment.id).deliver_later
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
private
|
|
18
|
+
|
|
19
|
+
def find_shipment(event)
|
|
20
|
+
shipment_id = event.payload['id']
|
|
21
|
+
Spree::Shipment.find_by(id: shipment_id)
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
end
|
data/lib/spree/emails/engine.rb
CHANGED
|
@@ -5,6 +5,18 @@ module Spree
|
|
|
5
5
|
class Engine < Rails::Engine
|
|
6
6
|
isolate_namespace Spree
|
|
7
7
|
engine_name 'spree_emails'
|
|
8
|
+
|
|
9
|
+
# Add app/subscribers to autoload paths
|
|
10
|
+
config.paths.add 'app/subscribers', eager_load: true
|
|
11
|
+
|
|
12
|
+
# Add email event subscribers
|
|
13
|
+
config.after_initialize do
|
|
14
|
+
Spree.subscribers.concat [
|
|
15
|
+
Spree::OrderEmailSubscriber,
|
|
16
|
+
Spree::ShipmentEmailSubscriber,
|
|
17
|
+
Spree::ReimbursementEmailSubscriber
|
|
18
|
+
]
|
|
19
|
+
end
|
|
8
20
|
end
|
|
9
21
|
end
|
|
10
22
|
end
|
data/lib/spree/emails.rb
CHANGED
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: spree_emails
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 5.
|
|
4
|
+
version: 5.3.0.rc1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Sean Schofield
|
|
@@ -12,19 +12,19 @@ cert_chain: []
|
|
|
12
12
|
date: 1980-01-02 00:00:00.000000000 Z
|
|
13
13
|
dependencies:
|
|
14
14
|
- !ruby/object:Gem::Dependency
|
|
15
|
-
name:
|
|
15
|
+
name: spree
|
|
16
16
|
requirement: !ruby/object:Gem::Requirement
|
|
17
17
|
requirements:
|
|
18
18
|
- - ">="
|
|
19
19
|
- !ruby/object:Gem::Version
|
|
20
|
-
version: 5.
|
|
20
|
+
version: 5.3.0.rc1
|
|
21
21
|
type: :runtime
|
|
22
22
|
prerelease: false
|
|
23
23
|
version_requirements: !ruby/object:Gem::Requirement
|
|
24
24
|
requirements:
|
|
25
25
|
- - ">="
|
|
26
26
|
- !ruby/object:Gem::Version
|
|
27
|
-
version: 5.
|
|
27
|
+
version: 5.3.0.rc1
|
|
28
28
|
- !ruby/object:Gem::Dependency
|
|
29
29
|
name: email_spec
|
|
30
30
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -61,9 +61,9 @@ files:
|
|
|
61
61
|
- app/mailers/spree/reimbursement_mailer.rb
|
|
62
62
|
- app/mailers/spree/shipment_mailer.rb
|
|
63
63
|
- app/models/spree/newsletter_subscriber/emails.rb
|
|
64
|
-
- app/
|
|
65
|
-
- app/
|
|
66
|
-
- app/
|
|
64
|
+
- app/subscribers/spree/order_email_subscriber.rb
|
|
65
|
+
- app/subscribers/spree/reimbursement_email_subscriber.rb
|
|
66
|
+
- app/subscribers/spree/shipment_email_subscriber.rb
|
|
67
67
|
- app/views/spree/newsletter_mailer/email_confirmation.html.erb
|
|
68
68
|
- app/views/spree/newsletter_mailer/email_confirmation.text.erb
|
|
69
69
|
- app/views/spree/order_mailer/cancel_email.html.erb
|
|
@@ -99,9 +99,9 @@ licenses:
|
|
|
99
99
|
- BSD-3-Clause
|
|
100
100
|
metadata:
|
|
101
101
|
bug_tracker_uri: https://github.com/spree/spree/issues
|
|
102
|
-
changelog_uri: https://github.com/spree/spree/releases/tag/v5.
|
|
102
|
+
changelog_uri: https://github.com/spree/spree/releases/tag/v5.3.0.rc1
|
|
103
103
|
documentation_uri: https://docs.spreecommerce.org/
|
|
104
|
-
source_code_uri: https://github.com/spree/spree/tree/v5.
|
|
104
|
+
source_code_uri: https://github.com/spree/spree/tree/v5.3.0.rc1
|
|
105
105
|
rdoc_options: []
|
|
106
106
|
require_paths:
|
|
107
107
|
- lib
|
|
@@ -109,12 +109,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
109
109
|
requirements:
|
|
110
110
|
- - ">="
|
|
111
111
|
- !ruby/object:Gem::Version
|
|
112
|
-
version: '3.
|
|
112
|
+
version: '3.2'
|
|
113
113
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
114
114
|
requirements:
|
|
115
115
|
- - ">="
|
|
116
116
|
- !ruby/object:Gem::Version
|
|
117
|
-
version:
|
|
117
|
+
version: '0'
|
|
118
118
|
requirements: []
|
|
119
119
|
rubygems_version: 4.0.2
|
|
120
120
|
specification_version: 4
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
module Spree
|
|
2
|
-
class Order < Spree.base_class
|
|
3
|
-
module Emails
|
|
4
|
-
def deliver_order_confirmation_email
|
|
5
|
-
if completed?
|
|
6
|
-
OrderMailer.confirm_email(id).deliver_later if store.prefers_send_consumer_transactional_emails?
|
|
7
|
-
update_column(:confirmation_delivered, true)
|
|
8
|
-
else
|
|
9
|
-
errors.add(:base, Spree.t(:order_email_resent_error))
|
|
10
|
-
end
|
|
11
|
-
end
|
|
12
|
-
|
|
13
|
-
# Returns true if:
|
|
14
|
-
# 1. an email address is set for new order notifications AND
|
|
15
|
-
# 2. no notification for this order has been sent yet.
|
|
16
|
-
def deliver_store_owner_order_notification_email?
|
|
17
|
-
store.new_order_notifications_email.present? && !store_owner_notification_delivered?
|
|
18
|
-
end
|
|
19
|
-
|
|
20
|
-
def deliver_store_owner_order_notification_email
|
|
21
|
-
OrderMailer.store_owner_notification_email(id).deliver_later
|
|
22
|
-
update_column(:store_owner_notification_delivered, true)
|
|
23
|
-
end
|
|
24
|
-
|
|
25
|
-
def send_cancel_email
|
|
26
|
-
OrderMailer.cancel_email(id).deliver_later
|
|
27
|
-
end
|
|
28
|
-
end
|
|
29
|
-
end
|
|
30
|
-
end
|