spree_core 4.2.7 → 4.3.0.rc1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (249) hide show
  1. checksums.yaml +4 -4
  2. data/app/finders/concerns/spree/product_filterable.rb +9 -0
  3. data/app/finders/spree/cms_pages/find.rb +41 -0
  4. data/app/finders/spree/menus/find.rb +11 -0
  5. data/app/finders/spree/option_values/find_available.rb +20 -0
  6. data/app/finders/spree/orders/find_complete.rb +14 -2
  7. data/app/finders/spree/orders/find_current.rb +1 -13
  8. data/app/finders/spree/product_properties/find_available.rb +20 -0
  9. data/app/finders/spree/products/find.rb +55 -20
  10. data/app/finders/spree/stores/find_current.rb +24 -0
  11. data/app/helpers/spree/base_helper.rb +62 -2
  12. data/app/helpers/spree/locale_helper.rb +5 -1
  13. data/app/helpers/spree/products_helper.rb +7 -3
  14. data/app/models/concerns/spree/display_link.rb +42 -0
  15. data/app/models/concerns/spree/filter_param.rb +21 -0
  16. data/app/models/concerns/spree/memoized_data.rb +24 -0
  17. data/app/models/concerns/spree/multi_store_resource.rb +24 -0
  18. data/app/models/concerns/spree/product_scopes.rb +59 -8
  19. data/app/models/concerns/spree/single_store_resource.rb +9 -0
  20. data/app/models/concerns/spree/user_address.rb +19 -0
  21. data/app/models/concerns/spree/user_methods.rb +5 -4
  22. data/app/models/concerns/spree/user_payment_source.rb +1 -1
  23. data/app/models/spree/ability.rb +3 -1
  24. data/app/models/spree/address.rb +27 -6
  25. data/app/models/spree/app_configuration.rb +8 -0
  26. data/app/models/spree/app_dependencies.rb +18 -6
  27. data/app/models/spree/base.rb +18 -0
  28. data/app/models/spree/classification.rb +3 -0
  29. data/app/models/spree/cms/pages/feature_page.rb +7 -0
  30. data/app/models/spree/cms/pages/homepage.rb +20 -0
  31. data/app/models/spree/cms/pages/standard_page.rb +4 -0
  32. data/app/models/spree/cms/sections/featured_article.rb +29 -0
  33. data/app/models/spree/cms/sections/hero_image.rb +47 -0
  34. data/app/models/spree/cms/sections/image_gallery.rb +103 -0
  35. data/app/models/spree/cms/sections/product_carousel.rb +14 -0
  36. data/app/models/spree/cms/sections/rich_text_content.rb +13 -0
  37. data/app/models/spree/cms/sections/side_by_side_images.rb +74 -0
  38. data/app/models/spree/cms_page.rb +66 -0
  39. data/app/models/spree/cms_section.rb +57 -0
  40. data/app/models/spree/country.rb +14 -6
  41. data/app/models/spree/credit_card.rb +2 -8
  42. data/app/models/spree/customer_return.rb +8 -2
  43. data/app/models/spree/icon.rb +9 -0
  44. data/app/models/spree/image/configuration/active_storage.rb +2 -0
  45. data/app/models/spree/inventory_unit.rb +1 -1
  46. data/app/models/spree/line_item.rb +1 -1
  47. data/app/models/spree/menu.rb +63 -0
  48. data/app/models/spree/menu_item.rb +76 -0
  49. data/app/models/spree/option_type.rb +1 -1
  50. data/app/models/spree/option_value.rb +11 -0
  51. data/app/models/spree/option_value_variant.rb +1 -1
  52. data/app/models/spree/order/address_book.rb +3 -5
  53. data/app/models/spree/order/currency_updater.rb +1 -1
  54. data/app/models/spree/order/emails.rb +32 -0
  55. data/app/models/spree/order/payments.rb +1 -1
  56. data/app/models/spree/order/store_credit.rb +1 -9
  57. data/app/models/spree/order.rb +46 -45
  58. data/app/models/spree/payment.rb +7 -0
  59. data/app/models/spree/payment_method.rb +4 -0
  60. data/app/models/spree/preferences/preferable.rb +12 -0
  61. data/app/models/spree/preferences/preferable_class_methods.rb +10 -1
  62. data/app/models/spree/product.rb +27 -22
  63. data/app/models/spree/product_property.rb +19 -4
  64. data/app/models/spree/promotion/rules/country.rb +1 -1
  65. data/app/models/spree/promotion/rules/first_order.rb +4 -3
  66. data/app/models/spree/promotion/rules/taxon.rb +10 -7
  67. data/app/models/spree/promotion.rb +6 -15
  68. data/app/models/spree/promotion_handler/cart.rb +7 -2
  69. data/app/models/spree/promotion_handler/coupon.rb +5 -4
  70. data/app/models/spree/promotion_handler/free_shipping.rb +5 -6
  71. data/app/models/spree/promotion_handler/page.rb +3 -2
  72. data/app/models/spree/promotion_handler/promotion_duplicator.rb +1 -0
  73. data/app/models/spree/promotion_rule.rb +2 -0
  74. data/app/models/spree/property.rb +27 -0
  75. data/app/models/spree/reimbursement.rb +3 -1
  76. data/app/models/spree/reimbursement_type/reimbursement_helpers.rb +2 -1
  77. data/app/models/spree/shipment_handler.rb +4 -2
  78. data/app/models/spree/stock/quantifier.rb +6 -6
  79. data/app/models/spree/store.rb +90 -7
  80. data/app/models/spree/store_credit.rb +7 -3
  81. data/app/models/spree/store_credit_event.rb +2 -2
  82. data/app/models/spree/store_payment_method.rb +11 -0
  83. data/app/models/spree/store_product.rb +11 -0
  84. data/app/models/spree/store_promotion.rb +11 -0
  85. data/app/models/spree/taxon.rb +21 -1
  86. data/app/models/spree/taxon_image/configuration/active_storage.rb +2 -0
  87. data/app/models/spree/taxonomy.rb +3 -1
  88. data/app/models/spree/variant.rb +13 -4
  89. data/app/presenters/spree/filters/options_presenter.rb +27 -0
  90. data/app/presenters/spree/filters/price_presenter.rb +22 -0
  91. data/app/presenters/spree/filters/price_range_presenter.rb +29 -0
  92. data/app/presenters/spree/filters/properties_presenter.rb +23 -0
  93. data/app/presenters/spree/filters/property_presenter.rb +22 -0
  94. data/app/presenters/spree/filters/quantified_price_range_presenter.rb +44 -0
  95. data/app/services/spree/account/addresses/create.rb +1 -0
  96. data/app/services/spree/account/addresses/helper.rb +6 -0
  97. data/app/services/spree/account/addresses/update.rb +9 -3
  98. data/app/services/spree/account/create.rb +17 -0
  99. data/app/services/spree/account/update.rb +15 -0
  100. data/app/services/spree/build_localized_redirect_url.rb +1 -1
  101. data/app/services/spree/cart/create.rb +5 -3
  102. data/app/services/spree/cart/destroy.rb +40 -0
  103. data/app/services/spree/cart/empty.rb +36 -0
  104. data/app/services/spree/cart/estimate_shipping_rates.rb +3 -3
  105. data/app/services/spree/checkout/add_store_credit.rb +1 -1
  106. data/app/services/spree/classifications/reposition.rb +18 -0
  107. data/app/services/spree/credit_cards/destroy.rb +41 -0
  108. data/app/validators/db_maximum_length_validator.rb +5 -0
  109. data/app/validators/email_validator.rb +3 -1
  110. data/app/views/spree/shared/_purchased_items_table.text.erb +25 -0
  111. data/config/initializers/active_storage.rb +2 -0
  112. data/config/locales/en.yml +166 -2
  113. data/config/routes.rb +0 -5
  114. data/db/migrate/20201023152810_add_filterable_to_spree_properties.rb +8 -0
  115. data/db/migrate/20210407200948_create_spree_menus.rb +16 -0
  116. data/db/migrate/20210408092939_create_spree_menu_items.rb +31 -0
  117. data/db/migrate/20210504163720_add_filter_param_to_spree_product_properties.rb +8 -0
  118. data/db/migrate/20210505114659_add_filter_param_to_spree_properties.rb +8 -0
  119. data/db/migrate/20210512191732_create_spree_cms_pages.rb +24 -0
  120. data/db/migrate/20210514204251_create_spree_cms_sections.rb +22 -0
  121. data/db/migrate/20210527094055_create_spree_products_stores.rb +29 -0
  122. data/db/migrate/20210608045519_ensure_store_default_country_is_set.rb +5 -0
  123. data/db/migrate/20210702112334_add_missing_timestamp_columns.rb +46 -0
  124. data/db/migrate/20210713131614_add_unique_index_on_property_id_and_product_id_to_product_properties.rb +29 -0
  125. data/db/migrate/20210715091956_add_store_id_to_spree_store_credits.rb +10 -0
  126. data/db/migrate/20210716093151_add_store_id_to_spree_taxonomies.rb +11 -0
  127. data/db/migrate/20210716104141_add_index_on_name_parent_id_and_taxonomy_id_on_spree_taxons.rb +31 -0
  128. data/db/migrate/20210721120857_add_index_on_permalink_parent_id_and_taxonomy_id_on_spree_taxons.rb +31 -0
  129. data/db/migrate/20210721125657_create_spree_promotions_stores.rb +29 -0
  130. data/db/migrate/20210722090705_add_store_id_to_spree_customer_returns.rb +11 -0
  131. data/db/migrate/20210726065456_change_integer_id_columns_into_bigint.rb +305 -0
  132. data/db/migrate/20210730154425_fix_promotion_code_and_path_unique_indexes.rb +9 -0
  133. data/lib/generators/spree/dummy/dummy_generator.rb +11 -6
  134. data/lib/generators/spree/dummy_model/templates/model.rb.tt +1 -1
  135. data/lib/generators/spree/install/install_generator.rb +12 -24
  136. data/lib/spree/core/components.rb +8 -0
  137. data/lib/spree/core/controller_helpers/auth.rb +7 -1
  138. data/lib/spree/core/controller_helpers/common.rb +1 -1
  139. data/lib/spree/core/controller_helpers/order.rb +4 -4
  140. data/lib/spree/core/controller_helpers/search.rb +1 -0
  141. data/lib/spree/core/controller_helpers/store.rb +10 -1
  142. data/lib/spree/core/engine.rb +6 -0
  143. data/lib/spree/core/importer/product.rb +3 -1
  144. data/lib/spree/core/product_duplicator.rb +1 -0
  145. data/lib/spree/core/search/base.rb +17 -22
  146. data/lib/spree/core/version.rb +1 -1
  147. data/lib/spree/core.rb +8 -4
  148. data/lib/spree/i18n.rb +1 -1
  149. data/lib/spree/money.rb +2 -1
  150. data/lib/spree/permitted_attributes.rb +14 -3
  151. data/lib/spree/testing_support/authorization_helpers.rb +6 -3
  152. data/lib/spree/testing_support/capybara_config.rb +3 -1
  153. data/lib/spree/testing_support/common_rake.rb +17 -4
  154. data/lib/spree/testing_support/extension_rake.rb +2 -2
  155. data/lib/spree/testing_support/factories/address_factory.rb +1 -1
  156. data/lib/spree/testing_support/factories/classification_factory.rb +8 -0
  157. data/lib/spree/testing_support/factories/cms_page_factory.rb +20 -0
  158. data/lib/spree/testing_support/factories/cms_section_factory.rb +31 -0
  159. data/lib/spree/testing_support/factories/customer_return_factory.rb +24 -17
  160. data/lib/spree/testing_support/factories/icon_factory.rb +7 -0
  161. data/lib/spree/testing_support/factories/line_item_factory.rb +6 -2
  162. data/lib/spree/testing_support/factories/menu_factory.rb +16 -0
  163. data/lib/spree/testing_support/factories/menu_item_factory.rb +10 -0
  164. data/lib/spree/testing_support/factories/options_factory.rb +5 -0
  165. data/lib/spree/testing_support/factories/order_factory.rb +11 -2
  166. data/lib/spree/testing_support/factories/payment_method_factory.rb +6 -2
  167. data/lib/spree/testing_support/factories/product_factory.rb +11 -1
  168. data/lib/spree/testing_support/factories/product_property_factory.rb +1 -1
  169. data/lib/spree/testing_support/factories/promotion_factory.rb +18 -9
  170. data/lib/spree/testing_support/factories/property_factory.rb +22 -0
  171. data/lib/spree/testing_support/factories/stock_location_factory.rb +5 -4
  172. data/lib/spree/testing_support/factories/store_credit_factory.rb +1 -0
  173. data/lib/spree/testing_support/factories/store_factory.rb +11 -0
  174. data/lib/spree/testing_support/factories/taxon_factory.rb +3 -1
  175. data/lib/spree/testing_support/factories/taxon_image_factory.rb +7 -0
  176. data/lib/spree/testing_support/factories/taxonomy_factory.rb +1 -0
  177. data/lib/spree/testing_support/factories/user_factory.rb +7 -2
  178. data/lib/spree/testing_support/factories/variant_factory.rb +2 -2
  179. data/lib/spree/testing_support/flatpickr_capybara.rb +58 -35
  180. data/lib/spree/testing_support/order_walkthrough.rb +9 -9
  181. data/lib/tasks/core.rake +1 -1
  182. data/spec/fixtures/favicon.ico +0 -0
  183. data/spec/fixtures/files/icon_256x256.gif +0 -0
  184. data/spec/fixtures/files/icon_256x256.png +0 -0
  185. data/spec/fixtures/files/icon_512x512.png +0 -0
  186. data/spec/fixtures/files/img_256x128.png +0 -0
  187. data/spree_core.gemspec +11 -10
  188. metadata +207 -159
  189. data/app/assets/images/logo/spree_50.png +0 -0
  190. data/app/assets/images/noimage/large.png +0 -0
  191. data/app/assets/images/noimage/mini.png +0 -0
  192. data/app/assets/images/noimage/product.png +0 -0
  193. data/app/assets/images/noimage/small.png +0 -0
  194. data/app/assets/javascripts/spree.js +0 -78
  195. data/app/controllers/spree/errors_controller.rb +0 -11
  196. data/app/helpers/spree/mail_helper.rb +0 -29
  197. data/app/mailers/spree/base_mailer.rb +0 -46
  198. data/app/mailers/spree/order_mailer.rb +0 -26
  199. data/app/mailers/spree/reimbursement_mailer.rb +0 -12
  200. data/app/mailers/spree/shipment_mailer.rb +0 -12
  201. data/app/mailers/spree/test_mailer.rb +0 -8
  202. data/app/models/spree/order_contents.rb +0 -31
  203. data/app/models/spree/validations/db_maximum_length_validator.rb +0 -22
  204. data/app/views/layouts/spree/base_mailer.html.erb +0 -46
  205. data/app/views/spree/errors/forbidden.html.erb +0 -0
  206. data/app/views/spree/errors/unauthorized.html.erb +0 -0
  207. data/app/views/spree/order_mailer/cancel_email.html.erb +0 -24
  208. data/app/views/spree/order_mailer/cancel_email.text.erb +0 -38
  209. data/app/views/spree/order_mailer/confirm_email.html.erb +0 -23
  210. data/app/views/spree/order_mailer/confirm_email.text.erb +0 -39
  211. data/app/views/spree/order_mailer/store_owner_notification_email.html.erb +0 -23
  212. data/app/views/spree/order_mailer/store_owner_notification_email.text.erb +0 -38
  213. data/app/views/spree/reimbursement_mailer/reimbursement_email.html.erb +0 -56
  214. data/app/views/spree/reimbursement_mailer/reimbursement_email.text.erb +0 -24
  215. data/app/views/spree/shared/_base_mailer_footer.html.erb +0 -12
  216. data/app/views/spree/shared/_base_mailer_header.html.erb +0 -13
  217. data/app/views/spree/shared/_base_mailer_stylesheets.html.erb +0 -456
  218. data/app/views/spree/shared/_error_messages.html.erb +0 -11
  219. data/app/views/spree/shared/_mailer_line_item.html.erb +0 -16
  220. data/app/views/spree/shared/_paths.html.erb +0 -8
  221. data/app/views/spree/shared/_purchased_items_table.html.erb +0 -69
  222. data/app/views/spree/shared/purchased_items_table/_adjustment.html.erb +0 -13
  223. data/app/views/spree/shared/purchased_items_table/_line_item.html.erb +0 -27
  224. data/app/views/spree/shared/purchased_items_table/_subtotal.html.erb +0 -13
  225. data/app/views/spree/shared/purchased_items_table/_total.html.erb +0 -13
  226. data/app/views/spree/shipment_mailer/shipped_email.html.erb +0 -36
  227. data/app/views/spree/shipment_mailer/shipped_email.text.erb +0 -17
  228. data/app/views/spree/test_mailer/test_email.html.erb +0 -40
  229. data/app/views/spree/test_mailer/test_email.text.erb +0 -4
  230. data/config/initializers/assets.rb +0 -2
  231. data/config/initializers/premailer_assets.rb +0 -1
  232. data/config/initializers/premailer_rails.rb +0 -3
  233. data/db/migrate/20140805171219_make_existing_credit_cards_default.rb +0 -10
  234. data/lib/generators/spree/dummy/templates/initializers/bullet.rb +0 -5
  235. data/lib/generators/spree/install/templates/vendor/assets/javascripts/spree/backend/all.js +0 -15
  236. data/lib/generators/spree/install/templates/vendor/assets/javascripts/spree/frontend/all.js +0 -16
  237. data/lib/generators/spree/install/templates/vendor/assets/stylesheets/spree/backend/all.css +0 -16
  238. data/lib/generators/spree/install/templates/vendor/assets/stylesheets/spree/frontend/all.css +0 -16
  239. data/lib/generators/spree/mailers_preview/mailers_preview_generator.rb +0 -23
  240. data/lib/generators/spree/mailers_preview/templates/mailers/previews/order_preview.rb +0 -13
  241. data/lib/generators/spree/mailers_preview/templates/mailers/previews/reimbursement_preview.rb +0 -5
  242. data/lib/generators/spree/mailers_preview/templates/mailers/previews/shipment_preview.rb +0 -5
  243. data/lib/generators/spree/mailers_preview/templates/mailers/previews/user_preview.rb +0 -11
  244. data/lib/tasks/email.rake +0 -10
  245. data/vendor/assets/javascripts/cleave.js +0 -1669
  246. data/vendor/assets/javascripts/fetch.umd.js +0 -531
  247. data/vendor/assets/javascripts/jquery.payment.js +0 -652
  248. data/vendor/assets/javascripts/jsuri.js +0 -458
  249. data/vendor/assets/javascripts/polyfill.min.js +0 -1
@@ -1,456 +0,0 @@
1
- <style type="text/css" rel="stylesheet" media="all">
2
- /* Base ------------------------------ */
3
-
4
- @import url("https://fonts.googleapis.com/css?family=Nunito+Sans:400,700&display=swap");
5
-
6
- body {
7
- width: 100% !important;
8
- height: 100%;
9
- margin: 0;
10
- -webkit-text-size-adjust: none;
11
- }
12
-
13
- a {
14
- color: #3869D4;
15
- }
16
-
17
- a img {
18
- border: none;
19
- }
20
-
21
- td {
22
- word-break: break-word;
23
- }
24
-
25
- .preheader {
26
- display: none !important;
27
- visibility: hidden;
28
- mso-hide: all;
29
- font-size: 1px;
30
- line-height: 1px;
31
- max-height: 0;
32
- max-width: 0;
33
- opacity: 0;
34
- overflow: hidden;
35
- }
36
-
37
- /* Type ------------------------------ */
38
-
39
- body,
40
- td,
41
- th {
42
- font-family: "Nunito Sans", Helvetica, Arial, sans-serif;
43
- }
44
-
45
- h1 {
46
- margin-top: 0;
47
- color: #333333;
48
- font-size: 22px;
49
- font-weight: bold;
50
- text-align: left;
51
- }
52
-
53
- h2 {
54
- margin-top: 0;
55
- color: #333333;
56
- font-size: 16px;
57
- font-weight: bold;
58
- text-align: left;
59
- }
60
-
61
- h3 {
62
- margin-top: 0;
63
- color: #333333;
64
- font-size: 14px;
65
- font-weight: bold;
66
- text-align: left;
67
- }
68
-
69
- td,
70
- th {
71
- font-size: 16px;
72
- }
73
-
74
- p,
75
- ul,
76
- ol,
77
- blockquote {
78
- margin: .4em 0 1.1875em;
79
- font-size: 16px;
80
- line-height: 1.625;
81
- }
82
-
83
- p.sub {
84
- font-size: 13px;
85
- }
86
-
87
- /* Utilities ------------------------------ */
88
-
89
- .align-right {
90
- text-align: right;
91
- }
92
-
93
- .align-left {
94
- text-align: left;
95
- }
96
-
97
- .align-center {
98
- text-align: center;
99
- }
100
-
101
- /* Buttons ------------------------------ */
102
-
103
- .button {
104
- background-color: #3869D4;
105
- border-top: 10px solid #3869D4;
106
- border-right: 18px solid #3869D4;
107
- border-bottom: 10px solid #3869D4;
108
- border-left: 18px solid #3869D4;
109
- display: inline-block;
110
- color: #FFF;
111
- text-decoration: none;
112
- border-radius: 3px;
113
- box-shadow: 0 2px 3px rgba(0, 0, 0, 0.16);
114
- -webkit-text-size-adjust: none;
115
- box-sizing: border-box;
116
- }
117
-
118
- .button--green {
119
- background-color: #22BC66;
120
- border-top: 10px solid #22BC66;
121
- border-right: 18px solid #22BC66;
122
- border-bottom: 10px solid #22BC66;
123
- border-left: 18px solid #22BC66;
124
- }
125
-
126
- .button--red {
127
- background-color: #FF6136;
128
- border-top: 10px solid #FF6136;
129
- border-right: 18px solid #FF6136;
130
- border-bottom: 10px solid #FF6136;
131
- border-left: 18px solid #FF6136;
132
- }
133
-
134
- @media only screen and (max-width: 500px) {
135
- .button {
136
- width: 100% !important;
137
- text-align: center !important;
138
- }
139
- }
140
-
141
- /* Attribute list ------------------------------ */
142
-
143
- .attributes {
144
- margin: 0 0 21px;
145
- }
146
-
147
- .attributes_content {
148
- background-color: #F4F4F7;
149
- padding: 16px;
150
- }
151
-
152
- .attributes_item {
153
- padding: 0;
154
- }
155
-
156
- /* Related Items ------------------------------ */
157
-
158
- .related {
159
- width: 100%;
160
- margin: 0;
161
- padding: 25px 0 0 0;
162
- -premailer-width: 100%;
163
- -premailer-cellpadding: 0;
164
- -premailer-cellspacing: 0;
165
- }
166
-
167
- .related_item {
168
- padding: 10px 0;
169
- color: #CBCCCF;
170
- font-size: 15px;
171
- line-height: 18px;
172
- }
173
-
174
- .related_item-title {
175
- display: block;
176
- margin: .5em 0 0;
177
- }
178
-
179
- .related_item-thumb {
180
- display: block;
181
- padding-bottom: 10px;
182
- }
183
-
184
- .related_heading {
185
- border-top: 1px solid #CBCCCF;
186
- text-align: center;
187
- padding: 25px 0 10px;
188
- }
189
-
190
- /* Discount Code ------------------------------ */
191
-
192
- .discount {
193
- width: 100%;
194
- margin: 0;
195
- padding: 24px;
196
- -premailer-width: 100%;
197
- -premailer-cellpadding: 0;
198
- -premailer-cellspacing: 0;
199
- background-color: #F4F4F7;
200
- border: 2px dashed #CBCCCF;
201
- }
202
-
203
- .discount_heading {
204
- text-align: center;
205
- }
206
-
207
- .discount_body {
208
- text-align: center;
209
- font-size: 15px;
210
- }
211
-
212
- /* Social Icons ------------------------------ */
213
-
214
- .social {
215
- width: auto;
216
- }
217
-
218
- .social td {
219
- padding: 0;
220
- width: auto;
221
- }
222
-
223
- .social_icon {
224
- height: 20px;
225
- margin: 0 8px 10px 8px;
226
- padding: 0;
227
- }
228
-
229
- /* Data table ------------------------------ */
230
-
231
- .purchase {
232
- width: 100%;
233
- margin: 0;
234
- -premailer-width: 100%;
235
- -premailer-cellpadding: 0;
236
- -premailer-cellspacing: 0;
237
- }
238
-
239
- .purchase_content {
240
- width: 100%;
241
- margin: 0;
242
- -premailer-width: 100%;
243
- -premailer-cellpadding: 0;
244
- -premailer-cellspacing: 0;
245
- }
246
-
247
- .purchase_item {
248
- padding: 10px 4px;
249
- color: #51545E;
250
- font-size: 15px;
251
- line-height: 18px;
252
- }
253
-
254
- .purchase_image {
255
- padding: 5px;
256
- }
257
-
258
- .purchase_item p {
259
- margin: 0;
260
- padding: 0.1em 0;
261
- }
262
-
263
- .purchase_item--additional {
264
- font-size: 12px;
265
- }
266
-
267
- .purchase_heading {
268
- padding-bottom: 8px;
269
- border-bottom: 1px solid #EAEAEC;
270
- }
271
-
272
- .purchase_heading p {
273
- margin: 0;
274
- color: #85878E;
275
- font-size: 12px;
276
- }
277
-
278
- .purchase_footer {
279
- padding-top: 15px;
280
- border-top: 1px solid #EAEAEC;
281
- }
282
-
283
- .purchase_total {
284
- margin: 0;
285
- text-align: right;
286
- font-weight: bold;
287
- color: #333333;
288
- }
289
-
290
- .purchase_total--name {
291
- margin: 0;
292
- text-align: right;
293
- color: #333333;
294
- }
295
-
296
- .purchase_total--label {
297
- padding: 0 15px 0 0;
298
- }
299
-
300
- .purchase_total-col {
301
- vertical-align: bottom;
302
- }
303
-
304
- body {
305
- background-color: #F2F4F6;
306
- color: #51545E;
307
- }
308
-
309
- p {
310
- color: #51545E;
311
- }
312
-
313
- .email-wrapper {
314
- width: 100%;
315
- margin: 0;
316
- padding: 0;
317
- -premailer-width: 100%;
318
- -premailer-cellpadding: 0;
319
- -premailer-cellspacing: 0;
320
- background-color: #F2F4F6;
321
- }
322
-
323
- .email-content {
324
- width: 100%;
325
- margin: 0;
326
- padding: 0;
327
- -premailer-width: 100%;
328
- -premailer-cellpadding: 0;
329
- -premailer-cellspacing: 0;
330
- }
331
-
332
- /* Masthead ----------------------- */
333
-
334
- .email-masthead {
335
- padding: 25px 0;
336
- text-align: center;
337
- }
338
-
339
- .email-masthead_logo {
340
- width: 94px;
341
- }
342
-
343
- .email-masthead_name {
344
- font-size: 16px;
345
- font-weight: bold;
346
- color: #A8AAAF;
347
- text-decoration: none;
348
- text-shadow: 0 1px 0 white;
349
- }
350
-
351
- /* Body ------------------------------ */
352
-
353
- .email-body {
354
- width: 100%;
355
- margin: 0;
356
- padding: 0;
357
- -premailer-width: 100%;
358
- -premailer-cellpadding: 0;
359
- -premailer-cellspacing: 0;
360
- }
361
-
362
- .email-body_inner {
363
- width: 570px;
364
- margin: 0 auto;
365
- padding: 0;
366
- -premailer-width: 570px;
367
- -premailer-cellpadding: 0;
368
- -premailer-cellspacing: 0;
369
- background-color: #FFFFFF;
370
- }
371
-
372
- .email-footer {
373
- width: 570px;
374
- margin: 0 auto;
375
- padding: 0;
376
- -premailer-width: 570px;
377
- -premailer-cellpadding: 0;
378
- -premailer-cellspacing: 0;
379
- text-align: center;
380
- }
381
-
382
- .email-footer p {
383
- color: #A8AAAF;
384
- }
385
-
386
- .body-action {
387
- width: 100%;
388
- margin: 30px auto;
389
- padding: 0;
390
- -premailer-width: 100%;
391
- -premailer-cellpadding: 0;
392
- -premailer-cellspacing: 0;
393
- text-align: center;
394
- }
395
-
396
- .body-sub {
397
- margin-top: 25px;
398
- padding-top: 25px;
399
- border-top: 1px solid #EAEAEC;
400
- }
401
-
402
- .content-cell {
403
- padding: 40px;
404
- }
405
-
406
- /*Media Queries ------------------------------ */
407
-
408
- @media only screen and (max-width: 600px) {
409
- .email-body_inner,
410
- .email-footer {
411
- width: 100% !important;
412
- }
413
- .content-cell {
414
- padding: 40px 15px !important;
415
- }
416
- }
417
-
418
- @media (prefers-color-scheme: dark) {
419
- body,
420
- .email-body,
421
- .email-body_inner,
422
- .email-content,
423
- .email-wrapper,
424
- .email-masthead,
425
- .email-footer {
426
- background-color: #333333 !important;
427
- color: #FFF !important;
428
- }
429
-
430
- p,
431
- ul,
432
- ol,
433
- blockquote,
434
- h1,
435
- h2,
436
- h3 {
437
- color: #FFF !important;
438
- }
439
-
440
- .attributes_content,
441
- .discount {
442
- background-color: #222 !important;
443
- }
444
-
445
- .email-masthead_name {
446
- text-shadow: none !important;
447
- }
448
- }
449
- </style>
450
- <!--[if mso]>
451
- <style type="text/css">
452
- .f-fallback {
453
- font-family: Arial, sans-serif;
454
- }
455
- </style>
456
- <![endif]-->
@@ -1,11 +0,0 @@
1
- <% if target && target.errors.any? %>
2
- <div id="errorExplanation" class="errorExplanation" data-hook>
3
- <h2><%= Spree.t(:errors_prohibited_this_record_from_being_saved, count: target.errors.size) %>:</h2>
4
- <p><%= Spree.t(:there_were_problems_with_the_following_fields) %>:</p>
5
- <ul>
6
- <% target.errors.full_messages.each do |msg| %>
7
- <li><%= msg %></li>
8
- <% end %>
9
- </ul>
10
- </div>
11
- <% end %>
@@ -1,16 +0,0 @@
1
- <tr>
2
- <td class="six sub-columns">
3
- <strong>
4
- <% if frontend_available? %>
5
- <%= link_to raw(line_item.variant.product.name), spree.product_url(line_item.variant.product) %>
6
- <% else %>
7
- <%= raw(line_item.variant.product.name) %>
8
- <% end %>
9
- </strong>
10
- <%= raw(line_item.variant.options_text) -%>
11
- (<%= line_item.variant.sku %>)
12
- </td>
13
- <td class="six sub-columns last right">
14
- <%= line_item.quantity %> x <%= line_item.single_money %> = <%= line_item.display_amount %>
15
- </td>
16
- </tr>
@@ -1,8 +0,0 @@
1
- <script>
2
- SpreePaths = <%==
3
- {
4
- mounted_at: Rails.application.routes.url_helpers.spree_path(trailing_slash: true),
5
- admin: Spree.admin_path.gsub(/\A(\/)?(.*[^\/])(\/)?\z/, '\\2/')
6
- }.to_json
7
- %>
8
- </script>
@@ -1,69 +0,0 @@
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.all_adjustments.eligible.tax.exists? %>
45
- <% order.all_adjustments.eligible.tax.group_by(&:label).each do |label, adjustments| %>
46
- <tr>
47
- <td></td>
48
- <td>
49
- <p class="f-fallback purchase_total purchase_total--label">
50
- <%= Spree.t(:tax) %>:
51
- </p>
52
- <p class="f-fallback purchase_total--name purchase_total--label">
53
- <%= label %>
54
- </p>
55
- </td>
56
- <td class="purchase_total-col">
57
- <p class="f-fallback purchase_total">
58
- <%= Spree::Money.new(adjustments.sum(&:amount), currency: order.currency) %>
59
- </p>
60
- </td>
61
- </tr>
62
- <% end %>
63
- <% end %>
64
- <% order.adjustments.eligible.each do |adjustment| %>
65
- <% next if (adjustment.source_type == 'Spree::TaxRate') || (adjustment.amount == 0) %>
66
- <%= render 'spree/shared/purchased_items_table/adjustment', adjustment: adjustment, order: order %>
67
- <% end %>
68
- <%= render 'spree/shared/purchased_items_table/total', order: order %>
69
- </table>
@@ -1,13 +0,0 @@
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>
@@ -1,27 +0,0 @@
1
- <tr>
2
- <td class="purchase_image">
3
- <% if frontend_available? %>
4
- <%= link_to(image_tag(variant_image_url(line_item.variant)), spree.product_url(line_item.product)) %>
5
- <% else %>
6
- <%= image_tag(variant_image_url(line_item.variant)) %>
7
- <% end %>
8
- </td>
9
- <td class="purchase_item">
10
- <strong>
11
- <span class="f-fallback">
12
- <% if frontend_available? %>
13
- <%= link_to raw(line_item.name), spree.product_url(line_item.product) %>
14
- <% else %>
15
- <%= raw(line_item.name) %>
16
- <% end %>
17
- </span>
18
- </strong>
19
- <p class="purchase_item--additional"><%= raw(line_item.variant.options_text) -%></p>
20
- </td>
21
- <td class="align-right" width="30%">
22
- <span class="f-fallback purchase_item_price">
23
- <%= line_item.quantity %> x <%= line_item.single_money %><br>
24
- <%= line_item.display_amount %>
25
- </span>
26
- </td>
27
- </tr>
@@ -1,13 +0,0 @@
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>
@@ -1,13 +0,0 @@
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>
@@ -1,36 +0,0 @@
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>
@@ -1,17 +0,0 @@
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) %>