spree_emails 4.3.0.rc1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (56) hide show
  1. checksums.yaml +7 -0
  2. data/Gemfile +5 -0
  3. data/LICENSE +26 -0
  4. data/Rakefile +15 -0
  5. data/app/assets/config/spree_emails_manifest.js +1 -0
  6. data/app/assets/images/logo/spree_50.png +0 -0
  7. data/app/assets/images/noimage/mini.png +0 -0
  8. data/app/assets/images/noimage/noimage/large.png +0 -0
  9. data/app/assets/images/noimage/noimage/mini.png +0 -0
  10. data/app/assets/images/noimage/noimage/product.png +0 -0
  11. data/app/assets/images/noimage/noimage/small.png +0 -0
  12. data/app/assets/images/noimage/small.png +0 -0
  13. data/app/helpers/spree/mail_helper.rb +34 -0
  14. data/app/mailers/spree/base_mailer.rb +46 -0
  15. data/app/mailers/spree/order_mailer.rb +26 -0
  16. data/app/mailers/spree/reimbursement_mailer.rb +12 -0
  17. data/app/mailers/spree/shipment_mailer.rb +12 -0
  18. data/app/mailers/spree/test_mailer.rb +8 -0
  19. data/app/models/spree/emails/order_decorator.rb +28 -0
  20. data/app/models/spree/emails/reimbursement_decorator.rb +11 -0
  21. data/app/models/spree/emails/shipment_handler_decorator.rb +13 -0
  22. data/app/views/layouts/spree/base_mailer.html.erb +46 -0
  23. data/app/views/spree/order_mailer/cancel_email.html.erb +24 -0
  24. data/app/views/spree/order_mailer/cancel_email.text.erb +12 -0
  25. data/app/views/spree/order_mailer/confirm_email.html.erb +23 -0
  26. data/app/views/spree/order_mailer/confirm_email.text.erb +12 -0
  27. data/app/views/spree/order_mailer/store_owner_notification_email.html.erb +23 -0
  28. data/app/views/spree/order_mailer/store_owner_notification_email.text.erb +12 -0
  29. data/app/views/spree/reimbursement_mailer/reimbursement_email.html.erb +48 -0
  30. data/app/views/spree/reimbursement_mailer/reimbursement_email.text.erb +24 -0
  31. data/app/views/spree/shared/_base_mailer_footer.html.erb +12 -0
  32. data/app/views/spree/shared/_base_mailer_header.html.erb +8 -0
  33. data/app/views/spree/shared/_base_mailer_stylesheets.html.erb +456 -0
  34. data/app/views/spree/shared/_mailer_line_item.html.erb +12 -0
  35. data/app/views/spree/shared/_purchased_items_table.html.erb +64 -0
  36. data/app/views/spree/shared/purchased_items_table/_adjustment.html.erb +13 -0
  37. data/app/views/spree/shared/purchased_items_table/_line_item.html.erb +19 -0
  38. data/app/views/spree/shared/purchased_items_table/_subtotal.html.erb +13 -0
  39. data/app/views/spree/shared/purchased_items_table/_total.html.erb +13 -0
  40. data/app/views/spree/shipment_mailer/shipped_email.html.erb +36 -0
  41. data/app/views/spree/shipment_mailer/shipped_email.text.erb +17 -0
  42. data/app/views/spree/test_mailer/test_email.html.erb +40 -0
  43. data/app/views/spree/test_mailer/test_email.text.erb +4 -0
  44. data/config/initializers/assets.rb +1 -0
  45. data/lib/generators/spree/emails/install/install_generator.rb +27 -0
  46. data/lib/generators/spree/emails/install/templates/mailers/previews/order_preview.rb +13 -0
  47. data/lib/generators/spree/emails/install/templates/mailers/previews/reimbursement_preview.rb +5 -0
  48. data/lib/generators/spree/emails/install/templates/mailers/previews/shipment_preview.rb +5 -0
  49. data/lib/generators/spree/emails/install/templates/mailers/previews/user_preview.rb +11 -0
  50. data/lib/spree/emails.rb +12 -0
  51. data/lib/spree/emails/engine.rb +18 -0
  52. data/lib/spree_emails.rb +1 -0
  53. data/lib/tasks/email.rake +10 -0
  54. data/script/rails +9 -0
  55. data/spree_emails.gemspec +34 -0
  56. metadata +158 -0
@@ -0,0 +1,12 @@
1
+ <tr>
2
+ <td class="six sub-columns">
3
+ <strong>
4
+ <%= link_to raw(line_item.variant.product.name), spree_storefront_resource_url(line_item.variant.product) %>
5
+ </strong>
6
+ <%= raw(line_item.variant.options_text) -%>
7
+ (<%= line_item.variant.sku %>)
8
+ </td>
9
+ <td class="six sub-columns last right">
10
+ <%= line_item.quantity %> x <%= line_item.single_money %> = <%= line_item.display_amount %>
11
+ </td>
12
+ </tr>
@@ -0,0 +1,64 @@
1
+ <table class="purchase_content">
2
+ <%= render collection: line_items, partial: 'spree/shared/purchased_items_table/line_item', as: :line_item %>
3
+ <%= render 'spree/shared/purchased_items_table/subtotal', order: order %>
4
+ <% if order.line_item_adjustments.exists? %>
5
+ <% if order.all_adjustments.promotion.eligible.exists? %>
6
+ <% order.all_adjustments.promotion.eligible.group_by(&:label).each do |label, adjustments| %>
7
+ <tr>
8
+ <td></td>
9
+ <td>
10
+ <p class="f-fallback purchase_total purchase_total--label">
11
+ <%= Spree.t(:promotion) %>:
12
+ </p>
13
+ <p class="f-fallback purchase_total--name purchase_total--label">
14
+ <%= label %>
15
+ </p>
16
+ </td>
17
+ <td class="purchase_total-col">
18
+ <p class="f-fallback purchase_total">
19
+ <%= Spree::Money.new(adjustments.sum(&:amount), currency: order.currency) %>
20
+ </p>
21
+ </td>
22
+ </tr>
23
+ <% end %>
24
+ <% end %>
25
+ <% end %>
26
+ <% order.shipments.group_by { |s| s.selected_shipping_rate&.name }.each do |name, shipments| %>
27
+ <tr>
28
+ <td></td>
29
+ <td>
30
+ <p class="f-fallback purchase_total purchase_total--label">
31
+ <%= Spree.t(:shipping) %>:
32
+ </p>
33
+ <p class="f-fallback purchase_total--name purchase_total--label">
34
+ <%= name %>
35
+ </p>
36
+ </td>
37
+ <td class="purchase_total-col">
38
+ <p class="f-fallback purchase_total">
39
+ <%= Spree::Money.new(shipments.sum(&:discounted_cost), currency: order.currency) %>
40
+ </p>
41
+ </td>
42
+ </tr>
43
+ <% end %>
44
+ <% if order.additional_tax_total != 0 %>
45
+ <tr>
46
+ <td></td>
47
+ <td>
48
+ <p class="f-fallback purchase_total purchase_total--label">
49
+ <%= Spree.t(:tax) %>:
50
+ </p>
51
+ </td>
52
+ <td class="purchase_total-col">
53
+ <p class="f-fallback purchase_total">
54
+ <%= order.display_additional_tax_total.to_html %>
55
+ </p>
56
+ </td>
57
+ </tr>
58
+ <% end %>
59
+ <% order.adjustments.eligible.each do |adjustment| %>
60
+ <% next if (adjustment.source_type == 'Spree::TaxRate') || (adjustment.amount == 0) %>
61
+ <%= render 'spree/shared/purchased_items_table/adjustment', adjustment: adjustment, order: order %>
62
+ <% end %>
63
+ <%= render 'spree/shared/purchased_items_table/total', order: order %>
64
+ </table>
@@ -0,0 +1,13 @@
1
+ <tr>
2
+ <td></td>
3
+ <td>
4
+ <p class="f-fallback purchase_total purchase_total--label">
5
+ <%= raw(adjustment.label) %>:
6
+ </p>
7
+ </td>
8
+ <td class="purchase_total-col">
9
+ <p class="f-fallback purchase_total">
10
+ <%= Spree::Money.new(adjustment.amount, currency: order.currency) %>
11
+ </p>
12
+ </td>
13
+ </tr>
@@ -0,0 +1,19 @@
1
+ <tr>
2
+ <td class="purchase_image">
3
+ <%= link_to(image_tag(variant_image_url(line_item.variant)), spree_storefront_resource_url(line_item.product)) %>
4
+ </td>
5
+ <td class="purchase_item">
6
+ <strong>
7
+ <span class="f-fallback">
8
+ <%= link_to raw(line_item.name), spree_storefront_resource_url(line_item.product) %>
9
+ </span>
10
+ </strong>
11
+ <p class="purchase_item--additional"><%= raw(line_item.variant.options_text) -%></p>
12
+ </td>
13
+ <td class="align-right" width="30%">
14
+ <span class="f-fallback purchase_item_price">
15
+ <%= line_item.quantity %> x <%= line_item.single_money %><br>
16
+ <%= line_item.display_amount %>
17
+ </span>
18
+ </td>
19
+ </tr>
@@ -0,0 +1,13 @@
1
+ <tr>
2
+ <td class="purchase_footer" valign="middle"></td>
3
+ <td class="purchase_footer" valign="middle">
4
+ <p class="f-fallback purchase_total purchase_total--label">
5
+ <%= Spree.t('order_mailer.subtotal') %>
6
+ </p>
7
+ </td>
8
+ <td class="purchase_footer" valign="middle">
9
+ <p class="f-fallback purchase_total">
10
+ <%= order.display_item_total %>
11
+ </p>
12
+ </td>
13
+ </tr>
@@ -0,0 +1,13 @@
1
+ <tr>
2
+ <td></td>
3
+ <td>
4
+ <p class="f-fallback purchase_total purchase_total--label">
5
+ <strong><%= Spree.t('order_mailer.total') %></strong>
6
+ </p>
7
+ </td>
8
+ <td>
9
+ <p class="f-fallback purchase_total">
10
+ <strong><%= order.display_total %></strong>
11
+ </p>
12
+ </td>
13
+ </tr>
@@ -0,0 +1,36 @@
1
+ <h1>
2
+ <%= Spree.t('shipment_mailer.shipped_email.dear_customer', name: name_for(@shipment.order)) %>
3
+ </h1>
4
+ <p>
5
+ <%= Spree.t('shipment_mailer.shipped_email.instructions', number: @shipment.order.number) %>
6
+ </p>
7
+ <table class="purchase" role="presentation">
8
+ <tr>
9
+ <td>
10
+ <h3><%= Spree.t('shipment_mailer.shipped_email.shipment_summary') %></h3>
11
+ </td>
12
+ </tr>
13
+ <tr>
14
+ <td colspan="2">
15
+ <%= render 'spree/shared/purchased_items_table', line_items: @shipment.manifest.map(&:line_item), order: @shipment.order %>
16
+ </td>
17
+ </tr>
18
+ </table>
19
+ <p>
20
+ <%= Spree.t('shipment_mailer.shipped_email.shipping_method', shipping_method: @shipment.shipping_method.name) %>
21
+ </p>
22
+ <% if @shipment.tracking %>
23
+ <p>
24
+ <%= Spree.t('shipment_mailer.shipped_email.track_information', tracking: @shipment.tracking) %>
25
+ </p>
26
+ <% end %>
27
+ <% if @shipment.tracking_url %>
28
+ <p>
29
+ <%= Spree.t('shipment_mailer.shipped_email.track_link', url: link_to(@shipment.tracking_url, @shipment.tracking_url)).html_safe %>
30
+ </p>
31
+ <% end %>
32
+ <p>
33
+ <%= Spree.t('shipment_mailer.shipped_email.thanks') %>
34
+ <br />
35
+ <%= Spree.t('shipment_mailer.shipped_email.store_team', store_name: current_store.name) %>
36
+ </p>
@@ -0,0 +1,17 @@
1
+ <%= Spree.t('shipment_mailer.shipped_email.dear_customer', name: name_for(@shipment.order)) %>
2
+
3
+ <%= Spree.t('shipment_mailer.shipped_email.instructions', number: @shipment.order.number) %>
4
+
5
+ ============================================================
6
+ <%= Spree.t('shipment_mailer.shipped_email.shipment_summary') %>
7
+ ============================================================
8
+ <% @shipment.manifest.each do |item| %>
9
+ <%= item.variant.sku %> <%= item.variant.product.name %> <%= item.variant.options_text %>
10
+ <% end %>
11
+ ============================================================
12
+
13
+ <%= Spree.t('shipment_mailer.shipped_email.track_information', tracking: @shipment.tracking) if @shipment.tracking %>
14
+ <%= Spree.t('shipment_mailer.shipped_email.track_link', url: @shipment.tracking_url) if @shipment.tracking_url %>
15
+
16
+ <%= Spree.t('shipment_mailer.shipped_email.thanks') %>
17
+ <%= Spree.t('shipment_mailer.shipped_email.store_team', store_name: current_store.name) %>
@@ -0,0 +1,40 @@
1
+ <table>
2
+ <tr>
3
+ <td>
4
+
5
+ <center>
6
+ <h1 class="center">
7
+ <%= Spree.t('test_mailer.test_email.greeting') %>
8
+ </h1>
9
+ </center>
10
+
11
+ </td>
12
+ <td class="expander"></td>
13
+ </tr>
14
+ </table>
15
+
16
+ <table>
17
+ <tr>
18
+ <td>
19
+
20
+ <p class="lede">
21
+ <%= Spree.t('test_mailer.test_email.message') %>
22
+ </p>
23
+
24
+ <p>
25
+ Please remember to configure all of the emails that Spree has provided to your needs.
26
+ Spree comes shipped with <a href="http://zurb.com/ink/" target="_blank"> Ink </a>
27
+ prepackaged, but you can use your own version. Ink is not placed in the asset pipeline.
28
+ </p>
29
+
30
+ <p>
31
+ Also take note that Gmail does not support <code>&lt;style&gt;</code> tags.
32
+ Therefore, you will need a gem that will be able to remove your <code>&lt;style&gt;</code>
33
+ tags and place them inline. Gmail only supports inline styles. We use
34
+ <a href="https://github.com/fphilipe/premailer-rails" target="_blank">Premailer for Rails</a> by default.
35
+ </p>
36
+
37
+ </td>
38
+ <td class="expander"></td>
39
+ </tr>
40
+ </table>
@@ -0,0 +1,4 @@
1
+ <%= Spree.t('test_mailer.test_email.greeting') %>
2
+ ================
3
+
4
+ <%= Spree.t('test_mailer.test_email.message') %>
@@ -0,0 +1 @@
1
+ Rails.application.config.assets.precompile << 'spree_emails_manifest.js'
@@ -0,0 +1,27 @@
1
+ require 'rails/generators'
2
+ require 'spree/core'
3
+
4
+ module Spree
5
+ module Emails
6
+ module Generators
7
+ class InstallGenerator < Rails::Generators::Base
8
+ desc 'Installs mailers previews for Spree transactional emails'
9
+
10
+ def self.source_paths
11
+ [
12
+ File.expand_path('templates', __dir__)
13
+ ]
14
+ end
15
+
16
+ def copy_mailers_previews
17
+ preview_path = Rails.application&.config&.action_mailer&.preview_path.presence || 'test/mailers/previews'
18
+
19
+ template 'mailers/previews/order_preview.rb', "#{preview_path}/order_preview.rb"
20
+ template 'mailers/previews/shipment_preview.rb', "#{preview_path}/shipment_preview.rb"
21
+ template 'mailers/previews/reimbursement_preview.rb', "#{preview_path}/reimbursement_preview.rb"
22
+ template 'mailers/previews/user_preview.rb', "#{preview_path}/user_preview.rb"
23
+ end
24
+ end
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,13 @@
1
+ class OrderPreview < ActionMailer::Preview
2
+ def confirm_email
3
+ Spree::OrderMailer.confirm_email(Spree::Order.complete.first)
4
+ end
5
+
6
+ def cancel_email
7
+ Spree::OrderMailer.cancel_email(Spree::Order.complete.first)
8
+ end
9
+
10
+ def store_owner_notification_email
11
+ Spree::OrderMailer.store_owner_notification_email(Spree::Order.complete.first)
12
+ end
13
+ end
@@ -0,0 +1,5 @@
1
+ class ReimbursementPreview < ActionMailer::Preview
2
+ def reimbursement_email
3
+ Spree::ReimbursementMailer.reimbursement_email(Spree::Reimbursement.first)
4
+ end
5
+ end
@@ -0,0 +1,5 @@
1
+ class ShipmentPreview < ActionMailer::Preview
2
+ def shipped_email
3
+ Spree::ShipmentMailer.shipped_email(Spree::Shipment.shipped.first)
4
+ end
5
+ end
@@ -0,0 +1,11 @@
1
+ class UserPreview < ActionMailer::Preview
2
+ def reset_password_instructions
3
+ Spree::UserMailer.reset_password_instructions(Spree.user_class.first, 'your_token', { current_store_id: Spree::Store.default.id })
4
+ end
5
+
6
+ if Spree::Auth::Config[:confirmable]
7
+ def confirmation_instructions
8
+ Spree::UserMailer.confirmation_instructions(Spree.user_class.first, 'your_token')
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,12 @@
1
+ require 'mail'
2
+ require 'action_mailer/railtie'
3
+ require 'action_view/railtie'
4
+ require 'sprockets/railtie'
5
+ require 'spree/core'
6
+
7
+ module Spree
8
+ module Emails
9
+ end
10
+ end
11
+
12
+ require 'spree/emails/engine'
@@ -0,0 +1,18 @@
1
+ require 'rails/engine'
2
+
3
+ module Spree
4
+ module Emails
5
+ class Engine < Rails::Engine
6
+ isolate_namespace Spree
7
+ engine_name 'spree_emails'
8
+
9
+ def self.activate
10
+ Dir.glob(File.join(File.dirname(__FILE__), '../../../app/**/*_decorator*.rb')).sort.each do |c|
11
+ Rails.configuration.cache_classes ? require(c) : load(c)
12
+ end
13
+ end
14
+
15
+ config.to_prepare &method(:activate).to_proc
16
+ end
17
+ end
18
+ end
@@ -0,0 +1 @@
1
+ require 'spree/emails'
@@ -0,0 +1,10 @@
1
+ namespace :email do
2
+ desc 'Sends test email to specified address - Example: EMAIL=spree@example.com bundle exec rake email:test'
3
+ task test: :environment do
4
+ unless ENV['EMAIL'].present?
5
+ raise ArgumentError, 'Must pass EMAIL environment variable. ' \
6
+ 'Example: EMAIL=spree@example.com bundle exec rake email:test'
7
+ end
8
+ Spree::TestMailer.test_email(ENV['EMAIL']).deliver_now
9
+ end
10
+ end
data/script/rails ADDED
@@ -0,0 +1,9 @@
1
+ #!/usr/bin/env ruby
2
+ # This command will automatically be run when you run "rails" with Rails 3 gems installed from the root of your application.
3
+
4
+ ENGINE_ROOT = File.expand_path('../..', __FILE__)
5
+ ENGINE_PATH = File.expand_path('../../lib/spree/emails/engine', __FILE__)
6
+
7
+ require 'rails/all'
8
+ require 'rails/engine/commands'
9
+
@@ -0,0 +1,34 @@
1
+ # encoding: UTF-8
2
+
3
+ require_relative '../core/lib/spree/core/version.rb'
4
+
5
+ Gem::Specification.new do |s|
6
+ s.platform = Gem::Platform::RUBY
7
+ s.name = 'spree_emails'
8
+ s.version = Spree.version
9
+ s.authors = ['Sean Schofield', 'Spark Solutions']
10
+ s.email = 'hello@spreecommerce.org'
11
+ s.summary = 'Transactional emails for Spree eCommerce platform'
12
+ s.description = 'Optional transactional emails for Spree such as Order placed or Shipment notification emails'
13
+ s.homepage = 'https://spreecommerce.org'
14
+ s.license = 'BSD-3-Clause'
15
+
16
+ s.metadata = {
17
+ "bug_tracker_uri" => "https://github.com/spree/spree/issues",
18
+ "changelog_uri" => "https://github.com/spree/spree/releases/tag/v#{s.version}",
19
+ "documentation_uri" => "https://guides.spreecommerce.org/",
20
+ "source_code_uri" => "https://github.com/spree/spree/tree/v#{s.version}",
21
+ }
22
+
23
+ s.required_ruby_version = '>= 2.5.0'
24
+ s.required_rubygems_version = '>= 1.8.23'
25
+
26
+ s.files = `git ls-files`.split("\n").reject { |f| f.match(/^spec/) && !f.match(/^spec\/fixtures/) }
27
+ s.require_path = 'lib'
28
+
29
+ s.add_dependency 'spree_core', ">= #{s.version}"
30
+ s.add_dependency 'actionmailer'
31
+ s.add_dependency 'sprockets', '>= 4.0'
32
+
33
+ s.add_development_dependency 'email_spec', '~> 2.2'
34
+ end
metadata ADDED
@@ -0,0 +1,158 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: spree_emails
3
+ version: !ruby/object:Gem::Version
4
+ version: 4.3.0.rc1
5
+ platform: ruby
6
+ authors:
7
+ - Sean Schofield
8
+ - Spark Solutions
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2021-08-11 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: spree_core
16
+ requirement: !ruby/object:Gem::Requirement
17
+ requirements:
18
+ - - ">="
19
+ - !ruby/object:Gem::Version
20
+ version: 4.3.0.rc1
21
+ type: :runtime
22
+ prerelease: false
23
+ version_requirements: !ruby/object:Gem::Requirement
24
+ requirements:
25
+ - - ">="
26
+ - !ruby/object:Gem::Version
27
+ version: 4.3.0.rc1
28
+ - !ruby/object:Gem::Dependency
29
+ name: actionmailer
30
+ requirement: !ruby/object:Gem::Requirement
31
+ requirements:
32
+ - - ">="
33
+ - !ruby/object:Gem::Version
34
+ version: '0'
35
+ type: :runtime
36
+ prerelease: false
37
+ version_requirements: !ruby/object:Gem::Requirement
38
+ requirements:
39
+ - - ">="
40
+ - !ruby/object:Gem::Version
41
+ version: '0'
42
+ - !ruby/object:Gem::Dependency
43
+ name: sprockets
44
+ requirement: !ruby/object:Gem::Requirement
45
+ requirements:
46
+ - - ">="
47
+ - !ruby/object:Gem::Version
48
+ version: '4.0'
49
+ type: :runtime
50
+ prerelease: false
51
+ version_requirements: !ruby/object:Gem::Requirement
52
+ requirements:
53
+ - - ">="
54
+ - !ruby/object:Gem::Version
55
+ version: '4.0'
56
+ - !ruby/object:Gem::Dependency
57
+ name: email_spec
58
+ requirement: !ruby/object:Gem::Requirement
59
+ requirements:
60
+ - - "~>"
61
+ - !ruby/object:Gem::Version
62
+ version: '2.2'
63
+ type: :development
64
+ prerelease: false
65
+ version_requirements: !ruby/object:Gem::Requirement
66
+ requirements:
67
+ - - "~>"
68
+ - !ruby/object:Gem::Version
69
+ version: '2.2'
70
+ description: Optional transactional emails for Spree such as Order placed or Shipment
71
+ notification emails
72
+ email: hello@spreecommerce.org
73
+ executables: []
74
+ extensions: []
75
+ extra_rdoc_files: []
76
+ files:
77
+ - Gemfile
78
+ - LICENSE
79
+ - Rakefile
80
+ - app/assets/config/spree_emails_manifest.js
81
+ - app/assets/images/logo/spree_50.png
82
+ - app/assets/images/noimage/mini.png
83
+ - app/assets/images/noimage/noimage/large.png
84
+ - app/assets/images/noimage/noimage/mini.png
85
+ - app/assets/images/noimage/noimage/product.png
86
+ - app/assets/images/noimage/noimage/small.png
87
+ - app/assets/images/noimage/small.png
88
+ - app/helpers/spree/mail_helper.rb
89
+ - app/mailers/spree/base_mailer.rb
90
+ - app/mailers/spree/order_mailer.rb
91
+ - app/mailers/spree/reimbursement_mailer.rb
92
+ - app/mailers/spree/shipment_mailer.rb
93
+ - app/mailers/spree/test_mailer.rb
94
+ - app/models/spree/emails/order_decorator.rb
95
+ - app/models/spree/emails/reimbursement_decorator.rb
96
+ - app/models/spree/emails/shipment_handler_decorator.rb
97
+ - app/views/layouts/spree/base_mailer.html.erb
98
+ - app/views/spree/order_mailer/cancel_email.html.erb
99
+ - app/views/spree/order_mailer/cancel_email.text.erb
100
+ - app/views/spree/order_mailer/confirm_email.html.erb
101
+ - app/views/spree/order_mailer/confirm_email.text.erb
102
+ - app/views/spree/order_mailer/store_owner_notification_email.html.erb
103
+ - app/views/spree/order_mailer/store_owner_notification_email.text.erb
104
+ - app/views/spree/reimbursement_mailer/reimbursement_email.html.erb
105
+ - app/views/spree/reimbursement_mailer/reimbursement_email.text.erb
106
+ - app/views/spree/shared/_base_mailer_footer.html.erb
107
+ - app/views/spree/shared/_base_mailer_header.html.erb
108
+ - app/views/spree/shared/_base_mailer_stylesheets.html.erb
109
+ - app/views/spree/shared/_mailer_line_item.html.erb
110
+ - app/views/spree/shared/_purchased_items_table.html.erb
111
+ - app/views/spree/shared/purchased_items_table/_adjustment.html.erb
112
+ - app/views/spree/shared/purchased_items_table/_line_item.html.erb
113
+ - app/views/spree/shared/purchased_items_table/_subtotal.html.erb
114
+ - app/views/spree/shared/purchased_items_table/_total.html.erb
115
+ - app/views/spree/shipment_mailer/shipped_email.html.erb
116
+ - app/views/spree/shipment_mailer/shipped_email.text.erb
117
+ - app/views/spree/test_mailer/test_email.html.erb
118
+ - app/views/spree/test_mailer/test_email.text.erb
119
+ - config/initializers/assets.rb
120
+ - lib/generators/spree/emails/install/install_generator.rb
121
+ - lib/generators/spree/emails/install/templates/mailers/previews/order_preview.rb
122
+ - lib/generators/spree/emails/install/templates/mailers/previews/reimbursement_preview.rb
123
+ - lib/generators/spree/emails/install/templates/mailers/previews/shipment_preview.rb
124
+ - lib/generators/spree/emails/install/templates/mailers/previews/user_preview.rb
125
+ - lib/spree/emails.rb
126
+ - lib/spree/emails/engine.rb
127
+ - lib/spree_emails.rb
128
+ - lib/tasks/email.rake
129
+ - script/rails
130
+ - spree_emails.gemspec
131
+ homepage: https://spreecommerce.org
132
+ licenses:
133
+ - BSD-3-Clause
134
+ metadata:
135
+ bug_tracker_uri: https://github.com/spree/spree/issues
136
+ changelog_uri: https://github.com/spree/spree/releases/tag/v4.3.0.rc1
137
+ documentation_uri: https://guides.spreecommerce.org/
138
+ source_code_uri: https://github.com/spree/spree/tree/v4.3.0.rc1
139
+ post_install_message:
140
+ rdoc_options: []
141
+ require_paths:
142
+ - lib
143
+ required_ruby_version: !ruby/object:Gem::Requirement
144
+ requirements:
145
+ - - ">="
146
+ - !ruby/object:Gem::Version
147
+ version: 2.5.0
148
+ required_rubygems_version: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - ">="
151
+ - !ruby/object:Gem::Version
152
+ version: 1.8.23
153
+ requirements: []
154
+ rubygems_version: 3.2.3
155
+ signing_key:
156
+ specification_version: 4
157
+ summary: Transactional emails for Spree eCommerce platform
158
+ test_files: []