spree_core 6.0.0.beta4 → 6.0.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.
Files changed (495) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +2 -2
  3. data/app/helpers/spree/images_helper.rb +0 -57
  4. data/app/jobs/spree/base_job.rb +21 -0
  5. data/app/jobs/spree/carts/reap_expired_job.rb +2 -2
  6. data/app/jobs/spree/collections/regenerate_time_based_job.rb +6 -3
  7. data/app/jobs/spree/orders/finalize_stale_drafts_job.rb +8 -5
  8. data/app/jobs/spree/payments/cancel_unused_sessions_job.rb +61 -0
  9. data/app/jobs/spree/seller_payouts/sweep_seller_job.rb +2 -0
  10. data/app/mailers/spree/admin_user_mailer.rb +4 -19
  11. data/app/mailers/spree/base_mailer.rb +96 -13
  12. data/app/mailers/spree/email_template_mailer.rb +27 -0
  13. data/app/mailers/spree/export_mailer.rb +3 -4
  14. data/app/mailers/spree/import_mailer.rb +3 -4
  15. data/app/mailers/spree/invitation_mailer.rb +24 -7
  16. data/app/mailers/spree/seller_user_mailer.rb +4 -16
  17. data/app/mailers/spree/webhook_mailer.rb +2 -2
  18. data/app/models/concerns/spree/acted_by.rb +1 -1
  19. data/app/models/concerns/spree/admin_user_methods.rb +13 -1
  20. data/app/models/concerns/spree/api_typed.rb +91 -0
  21. data/app/models/concerns/spree/calculator/tiers.rb +76 -0
  22. data/app/models/concerns/spree/customer_methods.rb +15 -14
  23. data/app/models/concerns/spree/email_template_identity.rb +52 -0
  24. data/app/models/concerns/spree/parameterizable_name.rb +2 -0
  25. data/app/models/concerns/spree/payment_session_transitions.rb +8 -2
  26. data/app/models/concerns/spree/post_sale/taxation.rb +54 -0
  27. data/app/models/concerns/spree/post_sale/taxed_line.rb +51 -0
  28. data/app/models/concerns/spree/preference_schema.rb +4 -12
  29. data/app/models/concerns/spree/product_scopes.rb +11 -1
  30. data/app/models/concerns/spree/provider_listing.rb +41 -0
  31. data/app/models/concerns/spree/publishable.rb +82 -14
  32. data/app/models/concerns/spree/purchase/addresses.rb +23 -10
  33. data/app/models/concerns/spree/purchase/currency.rb +1 -1
  34. data/app/models/concerns/spree/purchase/deprecated_aliases.rb +87 -0
  35. data/app/models/concerns/spree/purchase/gift_cards.rb +10 -4
  36. data/app/models/concerns/spree/purchase/locale.rb +1 -1
  37. data/app/models/concerns/spree/purchase/payment_processing.rb +7 -3
  38. data/app/models/concerns/spree/purchase/purchase_order.rb +2 -2
  39. data/app/models/concerns/spree/purchase/totals.rb +49 -1
  40. data/app/models/concerns/spree/receivable.rb +1 -1
  41. data/app/models/concerns/spree/searchable.rb +0 -4
  42. data/app/models/concerns/spree/secret_preferences.rb +59 -0
  43. data/app/models/concerns/spree/single_store_resource.rb +1 -1
  44. data/app/models/concerns/spree/stores/email_branding.rb +31 -0
  45. data/app/models/concerns/spree/type_labels.rb +38 -0
  46. data/app/models/concerns/spree/typed_adjustment_line.rb +1 -1
  47. data/app/models/concerns/spree/typed_associations.rb +6 -0
  48. data/app/models/spree/address.rb +11 -1
  49. data/app/models/spree/adjusters/promotion.rb +1 -15
  50. data/app/models/spree/allowed_origin.rb +0 -1
  51. data/app/models/spree/api_key.rb +5 -6
  52. data/app/models/spree/authentication/strategies/oidc_strategy.rb +5 -5
  53. data/app/models/spree/base.rb +70 -22
  54. data/app/models/spree/calculator/flat_percent_item_total.rb +1 -3
  55. data/app/models/spree/calculator/flat_rate.rb +1 -3
  56. data/app/models/spree/calculator/flexi_rate.rb +1 -3
  57. data/app/models/spree/calculator/percent_on_line_item.rb +1 -1
  58. data/app/models/spree/calculator/price_sack.rb +1 -3
  59. data/app/models/spree/calculator/shipping/digital_delivery.rb +1 -3
  60. data/app/models/spree/calculator/shipping/flat_percent_item_total.rb +1 -3
  61. data/app/models/spree/calculator/shipping/flat_rate.rb +1 -3
  62. data/app/models/spree/calculator/shipping/flexi_rate.rb +1 -3
  63. data/app/models/spree/calculator/shipping/per_item.rb +1 -3
  64. data/app/models/spree/calculator/shipping/price_sack.rb +1 -3
  65. data/app/models/spree/calculator/tiered_flat_rate.rb +6 -23
  66. data/app/models/spree/calculator/tiered_percent.rb +7 -25
  67. data/app/models/spree/cart.rb +78 -18
  68. data/app/models/spree/channel/gating.rb +1 -1
  69. data/app/models/spree/channel.rb +4 -4
  70. data/app/models/spree/claim.rb +21 -1
  71. data/app/models/spree/claim_line_item.rb +41 -6
  72. data/app/models/spree/collection.rb +0 -1
  73. data/app/models/spree/collection_rule.rb +5 -21
  74. data/app/models/spree/commission_line.rb +1 -1
  75. data/app/models/spree/commission_rate.rb +2 -3
  76. data/app/models/spree/commission_rate_value.rb +1 -1
  77. data/app/models/spree/commission_rule.rb +4 -11
  78. data/app/models/spree/commission_rules/product_rule.rb +1 -1
  79. data/app/models/spree/company_invitation.rb +1 -0
  80. data/app/models/spree/consent_record.rb +0 -1
  81. data/app/models/spree/credit_card.rb +1 -1
  82. data/app/models/spree/current.rb +23 -0
  83. data/app/models/spree/custom_field.rb +2 -2
  84. data/app/models/spree/custom_field_definition.rb +9 -23
  85. data/app/models/spree/custom_fields/boolean.rb +1 -1
  86. data/app/models/spree/custom_fields/json.rb +1 -1
  87. data/app/models/spree/data_feed/google.rb +0 -2
  88. data/app/models/spree/data_request.rb +1 -1
  89. data/app/models/spree/delivery_method.rb +30 -13
  90. data/app/models/spree/delivery_method_rule.rb +4 -11
  91. data/app/models/spree/delivery_rate.rb +4 -5
  92. data/app/models/spree/delivery_rate_provider/base.rb +1 -0
  93. data/app/models/spree/delivery_zone.rb +0 -1
  94. data/app/models/spree/delivery_zone_member.rb +4 -4
  95. data/app/models/spree/digital_asset.rb +7 -0
  96. data/app/models/spree/digital_asset_provider/base.rb +2 -0
  97. data/app/models/spree/digital_link.rb +2 -5
  98. data/app/models/spree/discount.rb +1 -1
  99. data/app/models/spree/email_template.rb +25 -0
  100. data/app/models/spree/email_template_draft.rb +13 -0
  101. data/app/models/spree/email_template_revision.rb +17 -0
  102. data/app/models/spree/email_templates/entry.rb +118 -0
  103. data/app/models/spree/email_templates/sample_record.rb +16 -0
  104. data/app/models/spree/emails/branding.rb +80 -0
  105. data/app/models/spree/exchange.rb +15 -1
  106. data/app/models/spree/exchange_line_item.rb +121 -5
  107. data/app/models/spree/export.rb +0 -1
  108. data/app/models/spree/exports/products.rb +10 -1
  109. data/app/models/spree/exports/report.rb +1 -1
  110. data/app/models/spree/fee.rb +4 -2
  111. data/app/models/spree/fulfillment.rb +53 -27
  112. data/app/models/spree/fulfillment_changer.rb +2 -2
  113. data/app/models/spree/fulfillment_item.rb +0 -4
  114. data/app/models/spree/fulfillment_provider/base.rb +1 -0
  115. data/app/models/spree/gateway/bogus.rb +4 -0
  116. data/app/models/spree/gateway/custom_payment_source_method.rb +5 -0
  117. data/app/models/spree/gateway.rb +5 -1
  118. data/app/models/spree/gift_card.rb +12 -1
  119. data/app/models/spree/gift_card_batch.rb +0 -1
  120. data/app/models/spree/import.rb +2 -7
  121. data/app/models/spree/import_mapping.rb +1 -2
  122. data/app/models/spree/import_row.rb +2 -2
  123. data/app/models/spree/import_schemas/products.rb +1 -0
  124. data/app/models/spree/integration.rb +8 -18
  125. data/app/models/spree/invitation.rb +5 -5
  126. data/app/models/spree/line_item.rb +13 -2
  127. data/app/models/spree/locale.rb +11 -8
  128. data/app/models/spree/market.rb +1 -0
  129. data/app/models/spree/newsletter_subscriber.rb +3 -0
  130. data/app/models/spree/order.rb +56 -138
  131. data/app/models/spree/order_group.rb +11 -2
  132. data/app/models/spree/order_inventory.rb +10 -5
  133. data/app/models/spree/order_promotion.rb +1 -1
  134. data/app/models/spree/order_routing/has_strategy_preference.rb +1 -1
  135. data/app/models/spree/order_routing/strategy/base.rb +4 -2
  136. data/app/models/spree/order_routing/strategy/rules.rb +1 -1
  137. data/app/models/spree/order_routing_rule.rb +6 -22
  138. data/app/models/spree/package_type.rb +1 -2
  139. data/app/models/spree/payment/gateway_options.rb +14 -52
  140. data/app/models/spree/payment/processing.rb +2 -4
  141. data/app/models/spree/payment.rb +20 -5
  142. data/app/models/spree/payment_method/session_instrumentation.rb +1 -0
  143. data/app/models/spree/payment_method/store_credit.rb +4 -4
  144. data/app/models/spree/payment_method.rb +36 -4
  145. data/app/models/spree/payment_session.rb +5 -1
  146. data/app/models/spree/payment_setup_session.rb +1 -0
  147. data/app/models/spree/payout_provider/base.rb +3 -1
  148. data/app/models/spree/pickup_point_provider/base.rb +2 -0
  149. data/app/models/spree/price_list.rb +1 -2
  150. data/app/models/spree/price_rules/channel_rule.rb +1 -1
  151. data/app/models/spree/price_rules/customer_group_rule.rb +1 -1
  152. data/app/models/spree/product.rb +31 -7
  153. data/app/models/spree/product_submission.rb +0 -12
  154. data/app/models/spree/product_type.rb +0 -1
  155. data/app/models/spree/promotion/actions/create_line_items.rb +27 -17
  156. data/app/models/spree/promotion/rules/category.rb +0 -4
  157. data/app/models/spree/promotion/rules/channel.rb +0 -4
  158. data/app/models/spree/promotion/rules/country.rb +0 -4
  159. data/app/models/spree/promotion/rules/currency.rb +0 -4
  160. data/app/models/spree/promotion/rules/customer_group.rb +0 -4
  161. data/app/models/spree/promotion/rules/first_order.rb +0 -4
  162. data/app/models/spree/promotion/rules/item_total.rb +4 -8
  163. data/app/models/spree/promotion/rules/market.rb +0 -4
  164. data/app/models/spree/promotion/rules/one_use_per_user.rb +0 -4
  165. data/app/models/spree/promotion/rules/option_value.rb +0 -3
  166. data/app/models/spree/promotion/rules/product.rb +0 -4
  167. data/app/models/spree/promotion/rules/user.rb +0 -4
  168. data/app/models/spree/promotion/rules/user_logged_in.rb +0 -4
  169. data/app/models/spree/promotion.rb +35 -6
  170. data/app/models/spree/promotion_action.rb +7 -14
  171. data/app/models/spree/promotion_action_line_item.rb +1 -1
  172. data/app/models/spree/promotion_handler/coupon.rb +59 -27
  173. data/app/models/spree/promotion_rule.rb +7 -14
  174. data/app/models/spree/purchase_order.rb +1 -0
  175. data/app/models/spree/quantity_rule.rb +1 -1
  176. data/app/models/spree/refund.rb +28 -3
  177. data/app/models/spree/return.rb +30 -2
  178. data/app/models/spree/return_line_item.rb +65 -14
  179. data/app/models/spree/role.rb +7 -7
  180. data/app/models/spree/saved_report.rb +1 -1
  181. data/app/models/spree/seller.rb +2 -1
  182. data/app/models/spree/seller_payout.rb +7 -0
  183. data/app/models/spree/seller_requirement.rb +4 -12
  184. data/app/models/spree/seller_requirement_custom_field.rb +1 -2
  185. data/app/models/spree/seller_requirement_submission.rb +2 -2
  186. data/app/models/spree/seller_requirements/accept_terms.rb +2 -3
  187. data/app/models/spree/seller_transfer.rb +5 -0
  188. data/app/models/spree/shipping_label.rb +1 -0
  189. data/app/models/spree/stock/availability_validator.rb +2 -2
  190. data/app/models/spree/stock/inventory_unit_builder.rb +1 -1
  191. data/app/models/spree/stock/packer.rb +2 -2
  192. data/app/models/spree/stock/splitter/weight.rb +1 -1
  193. data/app/models/spree/stock_level/custom_events.rb +6 -0
  194. data/app/models/spree/stock_level.rb +1 -1
  195. data/app/models/spree/stock_movement.rb +1 -1
  196. data/app/models/spree/stock_receipt_item.rb +1 -1
  197. data/app/models/spree/stock_reservation.rb +2 -2
  198. data/app/models/spree/stock_transfer.rb +4 -2
  199. data/app/models/spree/store.rb +33 -7
  200. data/app/models/spree/store_credit.rb +8 -9
  201. data/app/models/spree/store_credit_event.rb +5 -5
  202. data/app/models/spree/tax_exemption_certificate.rb +2 -0
  203. data/app/models/spree/tax_identifier.rb +3 -1
  204. data/app/models/spree/tax_line.rb +53 -3
  205. data/app/models/spree/tax_provider/base.rb +71 -14
  206. data/app/models/spree/tax_provider/internal.rb +59 -33
  207. data/app/models/spree/tax_provider/recorded_share.rb +114 -0
  208. data/app/models/spree/tax_rate.rb +1 -2
  209. data/app/models/spree/taxonomy.rb +0 -1
  210. data/app/models/spree/variant.rb +4 -3
  211. data/app/models/spree/variant_media.rb +1 -1
  212. data/app/models/spree/webhook_endpoint.rb +10 -13
  213. data/app/models/spree/wishlist.rb +1 -6
  214. data/app/models/spree/wishlist_item/custom_events.rb +6 -0
  215. data/app/presenters/spree/csv/customer_presenter.rb +1 -1
  216. data/app/presenters/spree/csv/newsletter_subscriber_presenter.rb +1 -1
  217. data/app/presenters/spree/csv/order_line_item_presenter.rb +1 -1
  218. data/app/presenters/spree/csv/product_variant_presenter.rb +42 -12
  219. data/app/serializers/spree/emails/base_serializer.rb +14 -0
  220. data/app/serializers/spree/emails/export_serializer.rb +13 -0
  221. data/app/serializers/spree/emails/import_serializer.rb +19 -0
  222. data/app/serializers/spree/emails/invitation_serializer.rb +28 -0
  223. data/app/serializers/spree/emails/store_serializer.rb +31 -0
  224. data/app/serializers/spree/emails/user_serializer.rb +12 -0
  225. data/app/serializers/spree/emails/webhook_endpoint_serializer.rb +16 -0
  226. data/app/services/spree/carts/create.rb +8 -2
  227. data/app/services/spree/carts/destroy.rb +2 -2
  228. data/app/services/spree/carts/remove_out_of_stock_items.rb +2 -2
  229. data/app/services/spree/carts/split_by_seller.rb +1 -1
  230. data/app/services/spree/carts/update.rb +19 -5
  231. data/app/services/spree/catalogs/set_product_terms.rb +1 -1
  232. data/app/services/spree/categories/add_products.rb +13 -31
  233. data/app/services/spree/categories/remove_products.rb +12 -51
  234. data/app/services/spree/checkout/advance.rb +1 -4
  235. data/app/services/spree/collections/add_products.rb +10 -23
  236. data/app/services/spree/collections/remove_products.rb +7 -43
  237. data/app/services/spree/coupon_codes/bulk_generate.rb +8 -14
  238. data/app/services/spree/data_requests/create.rb +1 -1
  239. data/app/services/spree/deliveries/destroy.rb +2 -2
  240. data/app/services/spree/email_templates/check.rb +58 -0
  241. data/app/services/spree/email_templates/no_sample_record.rb +7 -0
  242. data/app/services/spree/email_templates/preview.rb +99 -0
  243. data/app/services/spree/emails/file_system.rb +23 -0
  244. data/app/services/spree/emails/filters.rb +84 -0
  245. data/app/services/spree/emails/liquid_context.rb +48 -0
  246. data/app/services/spree/emails/rendered_email.rb +14 -0
  247. data/app/services/spree/emails/renderer.rb +125 -0
  248. data/app/services/spree/emails/template.rb +51 -0
  249. data/app/services/spree/emails/template_data.rb +23 -0
  250. data/app/services/spree/emails/template_resolver.rb +109 -0
  251. data/app/services/spree/emails/text_converter.rb +72 -0
  252. data/app/services/spree/emails/translation_inliner.rb +134 -0
  253. data/app/services/spree/imports/row_processors/price_list_price.rb +10 -10
  254. data/app/services/spree/imports/row_processors/product_variant.rb +65 -34
  255. data/app/services/spree/imports/row_processors/purchase_order.rb +13 -13
  256. data/app/services/spree/locales.rb +4 -5
  257. data/app/services/spree/newsletter/subscribe.rb +8 -12
  258. data/app/services/spree/orders/build_fulfillments.rb +3 -2
  259. data/app/services/spree/orders/create.rb +2 -1
  260. data/app/services/spree/orders/discounts/create.rb +7 -4
  261. data/app/services/spree/orders/discounts/destroy.rb +1 -0
  262. data/app/services/spree/orders/discounts/update.rb +1 -0
  263. data/app/services/spree/orders/fees/create.rb +1 -0
  264. data/app/services/spree/orders/fees/destroy.rb +1 -0
  265. data/app/services/spree/orders/fees/update.rb +1 -0
  266. data/app/services/spree/orders/remove_line_item.rb +13 -3
  267. data/app/services/spree/orders/update.rb +10 -6
  268. data/app/services/spree/orders/update_item.rb +6 -3
  269. data/app/services/spree/orders/update_statuses.rb +3 -1
  270. data/app/services/spree/product_memberships.rb +61 -0
  271. data/app/services/spree/returns/eligibility_validator.rb +1 -1
  272. data/app/services/spree/search_provider/custom_field_schema.rb +2 -2
  273. data/app/services/spree/seeds/commission_rates.rb +1 -1
  274. data/app/services/spree/seeds/digital_delivery.rb +1 -1
  275. data/app/services/spree/seeds/payment_methods.rb +2 -2
  276. data/app/services/spree/seeds/saved_reports.rb +3 -3
  277. data/app/services/spree/sellers/requirements.rb +1 -2
  278. data/app/services/spree/shipping_labels/confirm_refund.rb +1 -1
  279. data/app/services/spree/shipping_labels/store_file.rb +3 -3
  280. data/app/services/spree/stock_levels/correct.rb +3 -3
  281. data/app/services/spree/stock_reservations/reserve.rb +2 -3
  282. data/app/services/spree/store_credits/apply.rb +15 -13
  283. data/app/services/spree/stores/provision_defaults.rb +15 -14
  284. data/app/subscribers/spree/seller_onboarding_subscriber.rb +1 -1
  285. data/app/views/layouts/spree/base_mailer.html.erb +2 -43
  286. data/app/views/layouts/spree/base_mailer.liquid +79 -0
  287. data/app/views/spree/admin_user_mailer/password_reset_email.liquid +14 -0
  288. data/app/views/spree/export_mailer/export_done.liquid +12 -0
  289. data/app/views/spree/import_mailer/import_done.liquid +15 -0
  290. data/app/views/spree/invitation_mailer/invitation_accepted.liquid +9 -0
  291. data/app/views/spree/invitation_mailer/invitation_email.liquid +13 -0
  292. data/app/views/spree/seller_user_mailer/password_reset_email.liquid +14 -0
  293. data/app/views/spree/shared/_mailer_button.html.erb +4 -5
  294. data/app/views/spree/shared/_mailer_hero.html.erb +6 -5
  295. data/app/views/spree/shared/_summary_row.liquid +8 -0
  296. data/app/views/spree/webhook_mailer/endpoint_disabled.liquid +21 -0
  297. data/app/workflows/spree/carts/add_item.rb +4 -4
  298. data/app/workflows/spree/carts/complete.rb +13 -3
  299. data/app/workflows/spree/carts/merge.rb +1 -1
  300. data/app/workflows/spree/carts/recalculate_totals.rb +5 -0
  301. data/app/workflows/spree/carts/upsert_items.rb +18 -9
  302. data/app/workflows/spree/claims/approve.rb +5 -22
  303. data/app/workflows/spree/claims/cancel.rb +5 -21
  304. data/app/workflows/spree/claims/create.rb +15 -0
  305. data/app/workflows/spree/claims/deny.rb +7 -0
  306. data/app/workflows/spree/claims/resolve.rb +34 -31
  307. data/app/workflows/spree/customers/anonymize.rb +3 -4
  308. data/app/workflows/spree/customers/create.rb +1 -1
  309. data/app/workflows/spree/data_requests/fulfill.rb +2 -2
  310. data/app/workflows/spree/deliveries/update_tracking.rb +1 -1
  311. data/app/workflows/spree/email_templates/discard_draft.rb +20 -0
  312. data/app/workflows/spree/email_templates/publish.rb +70 -0
  313. data/app/workflows/spree/email_templates/restore_revision.rb +33 -0
  314. data/app/workflows/spree/email_templates/revert.rb +29 -0
  315. data/app/workflows/spree/email_templates/save_draft.rb +85 -0
  316. data/app/workflows/spree/exchanges/approve.rb +5 -22
  317. data/app/workflows/spree/exchanges/cancel.rb +5 -21
  318. data/app/workflows/spree/exchanges/create.rb +6 -0
  319. data/app/workflows/spree/exchanges/fulfill.rb +75 -51
  320. data/app/workflows/spree/exchanges/receive.rb +6 -65
  321. data/app/workflows/spree/fulfillments/cancel.rb +1 -1
  322. data/app/workflows/spree/fulfillments/create.rb +51 -47
  323. data/app/workflows/spree/fulfillments/fulfill.rb +23 -27
  324. data/app/workflows/spree/fulfillments/mark_delivered.rb +1 -1
  325. data/app/workflows/spree/fulfillments/replacements.rb +59 -0
  326. data/app/workflows/spree/gift_cards/apply.rb +2 -2
  327. data/app/workflows/spree/orders/add_item.rb +5 -1
  328. data/app/workflows/spree/orders/cancel.rb +3 -3
  329. data/app/workflows/spree/orders/complete.rb +16 -8
  330. data/app/workflows/spree/payments/process.rb +2 -2
  331. data/app/workflows/spree/post_sale/approval.rb +35 -0
  332. data/app/workflows/spree/post_sale/cancellation.rb +44 -0
  333. data/app/workflows/spree/post_sale/receipt.rb +92 -0
  334. data/app/workflows/spree/products/nested_attributes.rb +1 -1
  335. data/app/workflows/spree/purchase_orders/cancel.rb +1 -1
  336. data/app/workflows/spree/purchase_orders/close.rb +3 -31
  337. data/app/workflows/spree/purchase_orders/mark_draft.rb +2 -2
  338. data/app/workflows/spree/purchase_orders/mark_ordered.rb +2 -2
  339. data/app/workflows/spree/purchase_orders/receive.rb +1 -1
  340. data/app/workflows/spree/purchase_orders/update.rb +5 -34
  341. data/app/workflows/spree/receivables/closing_short.rb +46 -0
  342. data/app/workflows/spree/receivables/draft_editing.rb +48 -0
  343. data/app/workflows/spree/refunds/create.rb +5 -2
  344. data/app/workflows/spree/refunds/order_payments.rb +14 -2
  345. data/app/workflows/spree/refunds/tax_credit.rb +67 -0
  346. data/app/workflows/spree/returns/approve.rb +5 -22
  347. data/app/workflows/spree/returns/cancel.rb +5 -22
  348. data/app/workflows/spree/returns/create.rb +8 -0
  349. data/app/workflows/spree/returns/receive.rb +5 -76
  350. data/app/workflows/spree/returns/refund.rb +31 -8
  351. data/app/workflows/spree/seller_requirement_submissions/create.rb +1 -2
  352. data/app/workflows/spree/seller_transfers/reverse.rb +28 -1
  353. data/app/workflows/spree/shipping_labels/purchase.rb +8 -8
  354. data/app/workflows/spree/shipping_labels/record.rb +5 -5
  355. data/app/workflows/spree/shipping_labels/refund.rb +2 -2
  356. data/app/workflows/spree/stock_receipts/recording.rb +4 -4
  357. data/app/workflows/spree/stock_transfers/cancel.rb +2 -2
  358. data/app/workflows/spree/stock_transfers/close.rb +3 -30
  359. data/app/workflows/spree/stock_transfers/mark_draft.rb +1 -1
  360. data/app/workflows/spree/stock_transfers/mark_in_transit.rb +3 -3
  361. data/app/workflows/spree/stock_transfers/mark_ready.rb +2 -2
  362. data/app/workflows/spree/stock_transfers/receive.rb +1 -1
  363. data/app/workflows/spree/stock_transfers/update.rb +5 -33
  364. data/config/i18n-tasks.yml +32 -18
  365. data/config/initializers/alba.rb +7 -0
  366. data/config/language_names.csv +264 -0
  367. data/config/locales/ar.yml +811 -0
  368. data/config/locales/be.yml +855 -0
  369. data/config/locales/bg.yml +723 -0
  370. data/config/locales/ca.yml +689 -0
  371. data/config/locales/cs.yml +855 -0
  372. data/config/locales/da.yml +771 -0
  373. data/config/locales/de-CH.yml +248 -0
  374. data/config/locales/de.yml +835 -0
  375. data/config/locales/el.yml +769 -0
  376. data/config/locales/en.yml +37 -503
  377. data/config/locales/es-CL.yml +301 -0
  378. data/config/locales/es-EC.yml +186 -0
  379. data/config/locales/es-MX.yml +334 -0
  380. data/config/locales/es.yml +831 -0
  381. data/config/locales/et.yml +644 -0
  382. data/config/locales/fa.yml +709 -0
  383. data/config/locales/fi.yml +771 -0
  384. data/config/locales/fr.yml +830 -0
  385. data/config/locales/hu.yml +751 -0
  386. data/config/locales/id.yml +756 -0
  387. data/config/locales/it.yml +833 -0
  388. data/config/locales/ja.yml +726 -0
  389. data/config/locales/km.yml +759 -0
  390. data/config/locales/ko.yml +575 -0
  391. data/config/locales/ku.yml +753 -0
  392. data/config/locales/lt.yml +821 -0
  393. data/config/locales/lv.yml +685 -0
  394. data/config/locales/nb.yml +824 -0
  395. data/config/locales/ne.yml +823 -0
  396. data/config/locales/nl.yml +826 -0
  397. data/config/locales/pl.yml +835 -0
  398. data/config/locales/pt-BR.yml +547 -0
  399. data/config/locales/pt.yml +636 -0
  400. data/config/locales/ro.yml +750 -0
  401. data/config/locales/ru.yml +834 -0
  402. data/config/locales/sk.yml +680 -0
  403. data/config/locales/sl-SI.yml +600 -0
  404. data/config/locales/sv.yml +827 -0
  405. data/config/locales/th.yml +745 -0
  406. data/config/locales/tr.yml +777 -0
  407. data/config/locales/uk.yml +836 -0
  408. data/config/locales/vi.yml +768 -0
  409. data/config/locales/zh-CN.yml +786 -0
  410. data/config/locales/zh-TW.yml +834 -0
  411. data/db/migrate/20260925000001_add_replacement_to_spree_fulfillment_items.rb +5 -0
  412. data/db/migrate/20261001000001_add_post_sale_tax.rb +30 -0
  413. data/db/migrate/20261001000001_convert_preferences_to_json.rb +166 -0
  414. data/db/migrate/20261001000001_create_spree_email_templates.rb +52 -0
  415. data/lib/generators/spree/dummy/dummy_generator.rb +0 -9
  416. data/lib/generators/spree/dummy/templates/rails/test.rb +7 -0
  417. data/lib/spree/checkout/default_requirements.rb +37 -13
  418. data/lib/spree/core/configuration.rb +1 -1
  419. data/lib/spree/core/controller_helpers/store.rb +1 -1
  420. data/lib/spree/core/dependencies.rb +5 -4
  421. data/lib/spree/core/emails/escaped_output.rb +60 -0
  422. data/lib/spree/core/engine.rb +48 -167
  423. data/lib/spree/core/permissions/default_catalog.rb +5 -0
  424. data/lib/spree/core/preferences/json_conversion.rb +182 -0
  425. data/lib/spree/core/preferences/masking.rb +4 -1
  426. data/lib/spree/core/preferences/preferable.rb +137 -83
  427. data/lib/spree/core/preferences/preferable_class_methods.rb +81 -146
  428. data/lib/spree/core/previews/import_preview.rb +10 -0
  429. data/lib/spree/core/tax/provider_error.rb +37 -0
  430. data/lib/spree/core/version.rb +1 -1
  431. data/lib/spree/core.rb +85 -370
  432. data/lib/spree/emails/editable_templates.rb +82 -0
  433. data/lib/spree/events/catalog.rb +189 -0
  434. data/lib/spree/events.rb +21 -1
  435. data/lib/spree/hooks.rb +0 -17
  436. data/lib/spree/i18n.rb +32 -15
  437. data/lib/spree/reporting/adapters/live.rb +6 -6
  438. data/lib/spree/reporting/default_vocabulary.rb +22 -10
  439. data/lib/spree/reporting/hydration.rb +1 -1
  440. data/lib/spree/reporting/query.rb +8 -0
  441. data/lib/spree/reporting/schema.rb +10 -10
  442. data/lib/spree/testing_support/editable_email_templates.rb +61 -0
  443. data/lib/spree/testing_support/emails.rb +22 -0
  444. data/lib/spree/testing_support/factories/cart_factory.rb +1 -1
  445. data/lib/spree/testing_support/factories/email_template_factory.rb +28 -0
  446. data/lib/spree/testing_support/factories/order_factory.rb +2 -2
  447. data/lib/spree/testing_support/factories/refund_factory.rb +1 -1
  448. data/lib/spree/testing_support/factories/stock_factory.rb +1 -1
  449. data/lib/spree/testing_support/factories/variant_factory.rb +1 -1
  450. data/lib/spree/testing_support/i18n.rb +3 -94
  451. data/lib/spree/testing_support/lifecycle_events.rb +1 -1
  452. data/lib/spree/testing_support/order_walkthrough.rb +1 -1
  453. data/lib/spree/testing_support/preferences.rb +0 -5
  454. data/lib/spree/testing_support/store.rb +9 -1
  455. data/lib/spree/upgrades/5_6_to_6_0/manifest.yml +45 -0
  456. data/lib/tasks/categories_and_collections.rake +3 -3
  457. data/lib/tasks/core.rake +6 -4
  458. data/lib/tasks/media.rake +3 -3
  459. data/lib/tasks/package_types.rake +1 -1
  460. data/lib/tasks/preferences_json.rake +101 -0
  461. data/spec/fixtures/mailer_views/custom_views_probe_mailer/welcome_email.html.erb +4 -0
  462. metadata +188 -44
  463. data/app/models/acts_as_taggable_on/tag_decorator.rb +0 -10
  464. data/app/models/concerns/spree/has_image_alt_text.rb +0 -18
  465. data/app/models/spree/base_analytics_event_handler.rb +0 -54
  466. data/app/models/spree/invitations/store.rb +0 -6
  467. data/app/models/spree/preference.rb +0 -14
  468. data/app/models/spree/promotion_handler/page.rb +0 -25
  469. data/app/models/spree/promotion_handler/promotion_duplicator.rb +0 -60
  470. data/app/models/spree/stock/differentiator.rb +0 -45
  471. data/app/presenters/spree/filters/options_presenter.rb +0 -47
  472. data/app/services/spree/carts/empty.rb +0 -42
  473. data/app/services/spree/country_to_timezone.rb +0 -273
  474. data/app/services/spree/payments/create.rb +0 -92
  475. data/app/validators/spree/url_validator.rb +0 -23
  476. data/app/views/active_storage/blobs/_blob.html.erb +0 -14
  477. data/app/views/spree/admin_user_mailer/password_reset_email.html.erb +0 -8
  478. data/app/views/spree/export_mailer/export_done.html.erb +0 -7
  479. data/app/views/spree/import_mailer/import_done.html.erb +0 -12
  480. data/app/views/spree/invitation_mailer/invitation_accepted.html.erb +0 -4
  481. data/app/views/spree/invitation_mailer/invitation_email.html.erb +0 -12
  482. data/app/views/spree/seller_user_mailer/password_reset_email.html.erb +0 -8
  483. data/app/views/spree/shared/_base_mailer_footer.html.erb +0 -19
  484. data/app/views/spree/shared/_base_mailer_header.html.erb +0 -8
  485. data/app/views/spree/shared/_base_mailer_stylesheets.html.erb +0 -399
  486. data/app/views/spree/shared/_mailer_logo.html.erb +0 -41
  487. data/app/views/spree/shared/_purchased_items_styles.html.erb +0 -119
  488. data/app/views/spree/webhook_mailer/endpoint_disabled.html.erb +0 -51
  489. data/app/views/spree/webhook_mailer/endpoint_disabled.text.erb +0 -10
  490. data/app/workflows/spree/fulfillments/purchase_label.rb +0 -40
  491. data/app/workflows/spree/returns/purchase_label.rb +0 -32
  492. data/lib/spree/analytics.rb +0 -11
  493. data/lib/spree/core/preferences/scoped_store.rb +0 -34
  494. data/lib/spree/core/preferences/store.rb +0 -105
  495. data/lib/spree/translation_migrations.rb +0 -52
@@ -121,8 +121,6 @@ en:
121
121
  phone: Shipping address phone
122
122
  postal_code: Shipping address zip code
123
123
  state: Shipping address state
124
- spree/page_link:
125
- open_in_new_tab: Open in new tab
126
124
  spree/payment:
127
125
  amount: Amount
128
126
  number: Number
@@ -247,6 +245,7 @@ en:
247
245
  sign_in_count: Sign in count
248
246
  errors:
249
247
  messages:
248
+ already_linked: is already linked to this product
250
249
  blank: can't be blank
251
250
  must_apply_to_products: must be a custom field definition for products
252
251
  must_belong_to_same_store: must belong to the same store
@@ -259,17 +258,18 @@ en:
259
258
  must_be_origin_only: must be an origin (scheme and host) without path, query, or fragment
260
259
  spree/calculator/tiered_flat_rate:
261
260
  attributes:
262
- base:
263
- keys_should_be_positive_number: Tier keys should all be numbers larger than 0
264
261
  preferred_tiers:
265
- should_be_hash: should be a hash
262
+ should_be_list: should be a list of tiers, each with a threshold and a value
263
+ thresholds_should_be_positive_number: should all have a threshold larger than 0
264
+ thresholds_should_be_unique: should not repeat a threshold
265
+ values_should_be_number: should all have a value of 0 or more
266
266
  spree/calculator/tiered_percent:
267
267
  attributes:
268
- base:
269
- keys_should_be_positive_number: Tier keys should all be numbers larger than 0
270
- values_should_be_percent: Tier values should all be percentages between 0% and 100%
271
268
  preferred_tiers:
272
- should_be_hash: should be a hash
269
+ should_be_list: should be a list of tiers, each with a threshold and a value
270
+ thresholds_should_be_positive_number: should all have a threshold larger than 0
271
+ thresholds_should_be_unique: should not repeat a threshold
272
+ values_should_be_percent: should all have a value between 0% and 100%
273
273
  spree/catalog:
274
274
  attributes:
275
275
  base:
@@ -334,14 +334,6 @@ en:
334
334
  content_type: has not allowed content type
335
335
  type:
336
336
  inclusion: is not included in the list of allowed types
337
- spree/legacy_user:
338
- attributes:
339
- bill_address_id:
340
- belongs_to_other_user: belongs to other user
341
- deprecated_in_completed_order: deprecated in completed order
342
- ship_address_id:
343
- belongs_to_other_user: belongs to other user
344
- deprecated_in_completed_order: deprecated in completed order
345
337
  spree/line_item:
346
338
  attributes:
347
339
  currency:
@@ -439,12 +431,10 @@ en:
439
431
  attributes:
440
432
  company:
441
433
  must_be_legal_entity: must be a legal entity, not a division
434
+ owner:
435
+ must_be_legal_entity: must be the legal entity, not a division
442
436
  value:
443
437
  invalid: does not look like a valid %{kind} registration
444
- spree/taxon_image:
445
- attributes:
446
- attachment:
447
- not_allowed_content_type: has not allowed content type
448
438
  spree/user:
449
439
  attributes:
450
440
  bill_address_id:
@@ -479,12 +469,6 @@ en:
479
469
  spree/classification:
480
470
  one: Classification
481
471
  other: Classifications
482
- spree/cms_page:
483
- one: Page
484
- other: Pages
485
- spree/cms_section:
486
- one: Section
487
- other: Sections
488
472
  spree/country:
489
473
  one: Country
490
474
  other: Countries
@@ -521,18 +505,6 @@ en:
521
505
  spree/order:
522
506
  one: Order
523
507
  other: Orders
524
- spree/page:
525
- one: Page
526
- other: Pages
527
- spree/page_block:
528
- one: Page Block
529
- other: Page Blocks
530
- spree/page_link:
531
- one: Page Link
532
- other: Page Links
533
- spree/page_section:
534
- one: Page Section
535
- other: Page Sections
536
508
  spree/payment:
537
509
  one: Payment
538
510
  other: Payments
@@ -626,12 +598,6 @@ en:
626
598
  spree/taxonomy:
627
599
  one: Category
628
600
  other: Categories
629
- spree/theme:
630
- one: Theme
631
- other: Themes
632
- spree/tracker:
633
- one: Tracker
634
- other: Trackers
635
601
  spree/user:
636
602
  one: User
637
603
  other: Users
@@ -641,9 +607,6 @@ en:
641
607
  spree/zone:
642
608
  one: Zone
643
609
  other: Zones
644
- address_book:
645
- save: Save
646
- successfully_created: New address has been successfully created
647
610
  errors:
648
611
  messages:
649
612
  already_confirmed: was already confirmed
@@ -666,48 +629,21 @@ en:
666
629
  percentage:
667
630
  format:
668
631
  precision: 1
669
- pagination:
670
- first: "«"
671
- last: "»"
672
- next: "›"
673
- previous: "‹"
674
- truncate: "…"
675
632
  spree:
676
- abbreviation: Abbreviation
677
633
  accept: Accept
678
- acceptance_status: Acceptance status
679
634
  accepted: Accepted
680
635
  accepts_email_marketing: Accepts email marketing
681
636
  account: Account
682
- action: Action
683
- activate: Activate
684
637
  active: Active
685
- add: Add
686
- add_customers: Add Customers
687
- add_product: Add Product
688
- add_products: Add Products
689
- add_store: New Store
690
- add_store_credit: Add Store Credit
691
- added_to_cart: Added to cart successfully!
692
- additional_item: Additional Item
693
638
  address: Address
694
639
  address1: Address
695
640
  address2: Address (contd.)
696
- address_book:
697
- add_house_number: Add a house number if you have one
698
- address_not_owned_by_user: The specified address does not belong to this user.
699
- addresses: Addresses
700
- adjustable: Adjustable
701
641
  adjustment: Adjustment
702
- adjustment_amount: Amount
703
642
  adjustment_labels:
704
643
  tax_rates:
705
644
  excluding_tax: "%{name}%{amount}"
706
645
  including_tax: "%{name}%{amount} (Included in Price)"
707
- adjustment_total: Adjustment Total
708
- adjustments: Adjustments
709
646
  adjustments_deleted: Adjustments Deleted
710
- admin_locale: Admin locale
711
647
  admin_user_mailer:
712
648
  password_reset_email:
713
649
  action: Reset Password
@@ -716,68 +652,26 @@ en:
716
652
  ignore_notice: If you did not request a password reset, you can safely ignore this email. Your password will not be changed.
717
653
  instructions: We received a request to reset the password for your %{store_name} admin account. Click the button below to choose a new password.
718
654
  subject: Password Reset Instructions
719
- administration: Administration
720
- advertise: Advertise
721
655
  all: All
722
- all_products: All products
723
- allowed_origin: Allowed Origin
724
- allowed_origins: Allowed Origins
725
- alternative_phone: Alternative Phone
726
656
  amount: Amount
727
- analytics: Analytics
728
- and: and
729
- api_key: API Key
657
+ any: Any
730
658
  api_key_channel_immutable: cannot be changed after the key is created; create a new key bound to the channel you need and revoke this one
731
659
  api_key_channel_must_belong_to_store: must belong to the same store as the key
732
660
  api_key_channel_publishable_only: can only be set on publishable keys
733
661
  api_key_no_current_key: No API key authenticated this request
734
662
  api_key_scopes_immutable: cannot be changed after the key is created; create a new key with the scopes you need and revoke this one
735
- api_keys: API Keys
736
- apply: Apply
737
- apply_only_on_full_priced_items: Apply only on full priced items
738
- apply_store_credit: Apply Store Credit
739
- approve: approve
740
- approved_at: Approved at
741
663
  approver: Approver
742
- assets: Media
743
- at_symbol: "@"
744
- attachments: Attachments
745
- author: Author
746
664
  authorized: Authorized
747
- auto_capture: Auto Capture
748
665
  availability: availability
749
- available: Available
750
- available_on: Available On
751
- average_order_value: Average Order Value
752
- avs_response: AVS Response
753
- back: Back
754
- back_end: Backend
755
666
  backorderable: Backorderable
756
- backorderable_default: Backorderable default
757
667
  backordered: Backordered
758
- balance: Balance
759
- balance_due: Balance Due
760
- barcode: Barcode
761
- base_amount: Base Amount
762
- base_percent: Base Percent
763
668
  bill_address: Bill Address
764
- billing: Billing
765
669
  billing_address: Billing Address
766
- both: Both
767
- brand: Brand
768
670
  calculator: Calculator
769
- cancel: cancel
770
671
  canceled: Canceled
771
- canceled_at: Canceled at
772
672
  canceler: Canceler
773
673
  cannot_be_destroyed: Order cannot be destroyed.
774
- cannot_empty: Cannot empty order.
775
- cannot_empty_completed_order: Order has already been processed so it cannot be emptied
776
- cannot_return_more_than_bought_quantity: Cannot return more than bought quantity.
777
674
  capture: Capture
778
- capture_events: Capture events
779
- card_code: Card Verification Code (CVC)
780
- card_number: Card Number
781
675
  cart: Cart
782
676
  cart_already_updated: The cart has already been updated.
783
677
  cart_completion_in_progress: The cart is being completed. Please retry in a moment.
@@ -786,6 +680,7 @@ en:
786
680
  delivery_unavailable: "%{li_name} cannot be delivered to the selected address"
787
681
  discontinued: "%{li_name} was removed because it was discontinued"
788
682
  invalid_price: Price must be a non-negative number
683
+ not_orderable: "%{li_name} is not available to order. Remove it to continue."
789
684
  out_of_stock: "%{li_name} was removed because it was sold out"
790
685
  price_override_not_allowed: Prices cannot be changed on a placed order — use fees or discounts instead
791
686
  pricing_unavailable: Prices could not be confirmed. Please try again.
@@ -796,11 +691,8 @@ en:
796
691
  product_not_in_store: One of those products belongs to another store.
797
692
  categories: Categories
798
693
  category: Category
799
- change: Change
800
694
  channel: Sales channel
801
- channel_ids: Sales channels
802
695
  channels: Sales channels
803
- charged: Charged
804
696
  checkout: Checkout
805
697
  checkout_requirements:
806
698
  delivery_method_required: Select a delivery method for all fulfillments
@@ -810,15 +702,7 @@ en:
810
702
  payment_required: Add a payment method
811
703
  po_number_required: A purchase order number is required for this account
812
704
  ship_address_required: Shipping address is required
813
- choose_currency: Choose Currency
814
705
  city: City
815
- clear: Clear
816
- clear_all: Clear all
817
- clear_cache: Clear Cache
818
- clone: Clone
819
- close: Close
820
- closed: Closed
821
- code: Code
822
706
  collection_rule_types:
823
707
  available_on:
824
708
  description: Products published within the last N days
@@ -830,7 +714,6 @@ en:
830
714
  description: Products carrying a matching tag
831
715
  name: Tag
832
716
  color_code: Color Code
833
- colors: Colors
834
717
  commission_rule_types:
835
718
  category_rule:
836
719
  description: Charges this rate only for products in the selected categories, and anything filed beneath them
@@ -844,36 +727,16 @@ en:
844
727
  seller_rule:
845
728
  description: Charges this rate only when the seller is one of the selected
846
729
  name: Seller
847
- companies: Companies
848
730
  company: Company
849
731
  company_invitations:
850
- email_mismatch: This invitation was sent to a different email address.
851
732
  not_pending: This invitation is no longer pending and cannot be revoked.
852
733
  compare_at_amount: Compare at amount
853
734
  compare_at_price: Compare at price
854
735
  complete: complete
855
- configuration: Configuration
856
- configurations: Configurations
857
736
  confirm: Confirm
858
- contact: Contact
859
- contact_phone: Contact phone
860
- content: Content
861
- continue: Continue
862
- continue_shopping: Continue shopping
863
- copy: Copy
864
- copy_link: Copy link
865
- cost_currency: Cost Currency
866
737
  cost_price: Cost Price
867
738
  count_on_hand: Count On Hand
868
- countries: Countries
869
739
  country: Country
870
- country_name: Name
871
- country_names:
872
- CA: Canada
873
- FRA: France
874
- ITA: Italy
875
- US: United States of America
876
- coupon: Coupon
877
740
  coupon_code: Coupon code
878
741
  coupon_code_already_applied: The coupon code has already been applied to this order
879
742
  coupon_code_applied: The coupon code was successfully applied to your order.
@@ -882,60 +745,30 @@ en:
882
745
  coupon_code_max_usage: Coupon code usage limit exceeded
883
746
  coupon_code_not_eligible: This coupon code is not eligible for this order
884
747
  coupon_code_not_found: The coupon code you entered doesn't exist. Please try again.
748
+ coupon_code_unavailable: The coupon code on your cart is no longer available.
885
749
  coupon_code_unknown_error: This coupon code could not be applied to the cart at this time.
886
750
  coupon_code_used: The coupon code you entered has already been used. Please try again.
887
- coupon_codes: Coupon codes
888
- create: Create
889
- create_new: Create new
890
751
  created_at: Created at
891
- created_by: Created by
892
- credit: Credit
893
- credit_allowed: Credit allowed
894
752
  credit_card: Credit Card
895
- credit_cards: Credit Cards
896
- credit_owed: Credit Owed
897
- credited: Credited
898
- credits: Credits
899
- currencies: Currencies
900
753
  currency: Currency
901
754
  currency_not_supported_by_store: is not supported by this store
902
- current: Current
903
- current_password: Current password
904
755
  custom_field_definitions: Custom Field Definitions
905
756
  custom_fields: Custom Fields
906
757
  customer: Customer
907
758
  customer_errors:
908
759
  anonymize_failed: The erasure could not be completed and nothing was changed
909
- customer_group: Customer Group
910
- customer_groups: Customer Groups
911
- customer_support_email: Customer Support Email
912
760
  customers: Customers
913
- cut: Cut
914
- cvv: CVV
915
- cvv_response: CVV Response
916
761
  data_request_errors:
917
762
  already_anonymized: This customer's personal data has already been erased
918
763
  download_unavailable: This download link has expired or is no longer valid
919
764
  not_pending: This request has already been processed
920
- date: Date
921
- date_range: Date Range
922
765
  default: Default
923
- default_billing_address: Default billing address
924
- default_country: Default Country
925
- default_currency: Default currency
926
- default_locale: Default locale
927
- default_shipping_address: Default shipping address
928
766
  default_stock_location_name: Shop location
929
- default_tax: Default Tax
930
- default_tax_zone: Default Tax Zone
931
767
  default_wishlist_name: Wishlist
932
- delete: Delete
933
- deleted: Deleted
934
768
  deliveries:
935
769
  errors:
936
770
  delivered: This consignment has already arrived — its arrival is what the returns window counts from, so it cannot be deleted
937
771
  has_label: This delivery was created by a shipping label — refund the label instead of deleting the delivery
938
- not_found: This fulfillment has no delivery to track yet
939
772
  delivery: Delivery
940
773
  delivery_method_rule_types:
941
774
  channel_rule:
@@ -963,27 +796,14 @@ en:
963
796
  destination: Destination
964
797
  destroy: Destroy
965
798
  details: Details
966
- developers: Developers
967
799
  digital:
968
800
  digital_delivery: Digital Delivery
969
801
  digital_assets: Digital assets
970
802
  digital_assets_attachment_must_be_private: Upload the file to private storage before attaching it
971
- discontinue_on: Discontinue On
972
803
  discontinued: Discontinued
973
804
  discontinued_variants_present: Some line items in this order have products that are no longer available.
974
- discount: Discount
975
- discount_amount: Discount Amount
976
- discounts: Discounts
977
- display: Display
978
805
  display_delivery_range: Delivery in %{delivery_range} business days
979
- display_on: Display on
980
- domain: Domain
981
- done: Done
982
- download: Download
983
806
  draft: Draft
984
- duplicate: Duplicate
985
- duplicating: Duplicating
986
- edit: Edit
987
807
  eligibility_errors:
988
808
  messages:
989
809
  has_excluded_product: Your cart contains a product that prevents this coupon code from being applied.
@@ -1002,13 +822,15 @@ en:
1002
822
  no_user_specified: You need to login before applying this coupon code.
1003
823
  not_first_order: This coupon code can only be applied to your first order.
1004
824
  wrong_country: This coupon code is not eligible in your country
825
+ wrong_currency: This coupon code is not eligible for orders in this currency.
1005
826
  email: Email
1006
- email_marketing: Email marketing
1007
- emails: Emails
1008
- empty: Empty
1009
- end: End
1010
- ends_at: Ends at
1011
- enter: Enter
827
+ email_templates:
828
+ another_admin: another admin
829
+ no_sample_record: There is no %{record} in this store to preview this email with yet.
830
+ sample_needs_permission: Previewing this email shows your store's records, which needs the %{permissions} permission.
831
+ stale_draft: "%{name} saved this draft after you opened it. Reload to see their changes before saving yours."
832
+ test_email_needs_admin: A test email goes to the signed-in admin, so it needs one.
833
+ test_email_subject: "[Test] %{subject}"
1012
834
  error: error
1013
835
  error_user_destroy_with_orders: User associated with orders cannot be destroyed
1014
836
  error_user_does_not_have_any_store_credits: User does not have any Store Credits available
@@ -1039,19 +861,19 @@ en:
1039
861
  flat_fee_cannot_charge_delivery: is not available on a flat fee, which already charges for the sale the delivery belongs to — add a separate rate to charge delivery
1040
862
  integration_connection_failed: could not connect with the saved credentials
1041
863
  integration_type_not_registered: is not a registered integration
864
+ invalid_collection_rule: is not a registered collection rule
1042
865
  invalid_commission_rule: is not a commission rule kind this store has
1043
866
  invalid_commission_rule_type: "%{type} is not a commission rule kind this store has"
1044
867
  invalid_delivery_method_rule: is not a registered delivery method rule
1045
868
  invalid_json: 'must be valid JSON: %{detail}'
1046
- invalid_oauth_state: Invalid or expired authentication state. Please start the sign-in again.
1047
869
  invalid_order_routing_rule: is not a registered order routing rule
1048
870
  invalid_order_routing_strategy: is not a registered order routing strategy
1049
871
  invalid_refund_method: must be one of original_payment, store_credit
1050
872
  invalid_seller_requirement: is not a registered seller requirement
873
+ invalid_status: Invalid status
1051
874
  invalid_storefront_access: is not a valid storefront access level
1052
875
  items_not_a_list: items must be a list of objects
1053
876
  must_be_greater_than_min_amount: must be greater than or equal to the minimum
1054
- must_be_origin_only: must be an origin (scheme and host) without path, query, or fragment
1055
877
  no_pickup_point_provider: this delivery method has no pickup point provider configured
1056
878
  not_cancellable: cannot be canceled once its goods have been dispatched
1057
879
  oidc_account_not_provisioned: This account is not authorized for this store. Ask an administrator for an invitation.
@@ -1064,7 +886,6 @@ en:
1064
886
  promotion_discount_not_editable: promotion discounts are managed by recalculation and cannot be edited
1065
887
  rate_provider_requires_shipping: "%{provider} quotes shipments, so this method must ship to an address"
1066
888
  rate_provider_unavailable: is not available for this store — connect its integration first
1067
- received_exceeds_expected: cannot be more than the %{expected} expected
1068
889
  refund_amount_requires_shared_payment: can only be set when the payment is shared across a split checkout
1069
890
  same_as_inviter: cannot be the same as the inviter
1070
891
  seller_delivery_method_not_shareable: only the marketplace's own delivery methods can be shared with sellers
@@ -1077,47 +898,19 @@ en:
1077
898
  unknown_scopes: 'contains unknown scopes: %{scopes}'
1078
899
  unregistered_actor: is not a registered actor class
1079
900
  variant_product_mismatch: must belong to the same product as the variant
1080
- services:
1081
- get_shipping_rates:
1082
- no_line_items: To generate Shipping Rates you need to add some Line Items to Order
1083
- no_shipping_address: To generate Shipping Rates Order needs to have a Shipping Address
1084
- estimated_transit_business_days: Estimated transit business days
1085
- event: Event
1086
- excl: excl.
1087
- existing_address: Existing address
1088
- expiration: Expiration
901
+ exchange_fee_label: Exchange %{number}
1089
902
  expired: Expired
1090
- expires_at: Expires at
1091
- export: Export
1092
903
  export_mailer:
1093
904
  export_done:
1094
905
  message: Good work, your export is ready! Please use the link below to download it.
1095
906
  subject: Your export %{export_number} was successfully processed!
1096
907
  greeting: Hi %{user_name},
1097
- thanks: Thank you,
1098
- extension: Extension
1099
- facebook: Facebook
1100
- featured_image: Featured image
1101
908
  field: Field
1102
- filename: Filename
1103
- filled: Filled
1104
- filter: Filter
1105
- filterable: Filterable
1106
- finalize: Finalize
1107
- finalized: Finalized
1108
- first_item: First Item
1109
909
  first_name: First Name
1110
- firstname: First Name
1111
910
  flat_percent: Flat Percent
1112
911
  flat_rate_per_order: Flat Rate
1113
912
  flexible_rate: Flexible Rate
1114
- fonts: Fonts
1115
- footer: Footer
1116
- forbidden: Access denied
1117
913
  free: Free
1118
- free_shipping: Free Shipping
1119
- from: From
1120
- front_end: Front End
1121
914
  fulfillments:
1122
915
  errors:
1123
916
  backordered_units: This fulfillment holds backordered units and cannot be handed over yet
@@ -1125,7 +918,6 @@ en:
1125
918
  cannot_fulfill: This fulfillment cannot be fulfilled in its current status
1126
919
  cannot_mark_delivered: Only a fulfilled shipment can be marked delivered
1127
920
  cannot_purchase_label: Labels can only be bought before the fulfillment ships
1128
- cannot_resume: This fulfillment cannot be resumed in its current status
1129
921
  insufficient_quantity: Requested quantity (%{requested}) for item %{item} exceeds its unfulfilled quantity (%{available})
1130
922
  insufficient_stock_on_hand: This dispatch needs %{requested} of %{item} but only %{on_hand} are on hand at this location — correct the stock count or force the dispatch
1131
923
  invalid_cost: cost must be a non-negative number
@@ -1138,17 +930,13 @@ en:
1138
930
  order_draft: Draft orders cannot be fulfilled — complete the order first
1139
931
  order_not_completed: Fulfillments can only be created manually on completed orders
1140
932
  order_not_paid: This order is not paid for yet
1141
- provider_has_no_labels: This delivery method's provider does not produce labels
1142
933
  unknown_tracking_status: "%{status} is not a known tracking status"
1143
934
  gateway: Gateway
1144
935
  gateway_error: Gateway Error
1145
- general: General
1146
- generate_code: Generate coupon code
1147
936
  gift_card: Gift Card
1148
937
  gift_card_already_canceled: The Gift Card has already been canceled.
1149
938
  gift_card_already_redeemed: The Gift Card has already been redeemed.
1150
939
  gift_card_applied: The Gift Card was successfully applied to your order!
1151
- gift_card_batch: Gift Card Batch
1152
940
  gift_card_canceled: The Gift Card has been canceled.
1153
941
  gift_card_customer_not_logged_in: Gift Card cannot be applied with guest user.
1154
942
  gift_card_expired: The Gift Card has expired.
@@ -1160,22 +948,12 @@ en:
1160
948
  gift_card_not_found: The Gift Card was not found.
1161
949
  gift_card_removed: The Gift Card was successfully removed from your order
1162
950
  gift_card_using_store_credit_error: You can't apply the Gift Card after you applied the store credit.
1163
- gift_cards: Gift Cards
1164
- guest_checkout: Guest Checkout
1165
951
  guest_checkout_not_allowed: You must be signed in to complete checkout.
1166
- has_no_shipped_units: has no shipped units
1167
952
  height: Height
1168
- hide: Hide
1169
- home: Home
1170
953
  i18n:
1171
954
  this_file_language: English (US)
1172
- icon: Icon
1173
955
  idempotency_key_reused: This Idempotency-Key has already been used with different request parameters.
1174
956
  image: Image
1175
- images: Images
1176
- immediately: Immediately
1177
- implement_eligible_for_return: 'Must implement #eligible_for_return? for your EligibilityValidator.'
1178
- implement_requires_manual_intervention: 'Must implement #requires_manual_intervention? for your EligibilityValidator.'
1179
957
  import: Import
1180
958
  import_has_no_failed_rows: This import has no failed rows to retry.
1181
959
  import_mailer:
@@ -1190,20 +968,12 @@ en:
1190
968
  import_not_processing: This import is not processing.
1191
969
  in_stock: In Stock
1192
970
  inactive: Inactive
1193
- incl: incl.
1194
- included_in_price: Included in Price
1195
971
  incomplete: Incomplete
1196
- instagram: Instagram
1197
- insufficient_stock: Insufficient stock available, only %{on_hand} remaining
972
+ insufficient_stock_for_reservation: "%{item} has only %{available} available"
1198
973
  insufficient_stock_lines_present: Some line items in this order have insufficient quantity.
1199
- integrations: Integrations
1200
974
  internal_note: Internal Note
1201
- internationalization: Internationalization
1202
- invalid_credit_card: Invalid credit card.
1203
- invalid_exchange_variant: Invalid exchange variant.
1204
975
  invalid_password: Invalid password.
1205
976
  inventory: Inventory
1206
- invitation_accepted: Invitation accepted!
1207
977
  invitation_already_accepted: This invitation has already been accepted.
1208
978
  invitation_expired: This invitation has expired. Invite them again to send a new one.
1209
979
  invitation_invitee_missing: This invitation has no invitee.
@@ -1216,117 +986,51 @@ en:
1216
986
  body: "%{inviter_name} has invited you to join %{resource_name}"
1217
987
  link_description: 'To accept this invitation, please click the link below:'
1218
988
  subject: Invitation to join %{resource_name}
1219
- thanks: Thank you,
1220
989
  invitation_not_acceptable: Invitation not found, expired, or already accepted.
1221
990
  invitation_role_resource_mismatch: must belong to the same store or seller as the invitation
1222
- invitations: Invitations
1223
- invited_by: Invited by
1224
991
  iso: ISO Alpha-2
1225
- iso3: ISO Alpha-3
1226
- iso_name: ISO Name
1227
992
  item: Item
1228
- item_description: Item Description
1229
- item_total: Item Total
1230
993
  items_cannot_be_shipped: We are unable to calculate shipping rates for the selected items.
1231
994
  key: Key
1232
995
  kind: Kind
1233
996
  label: Label
1234
- language: Language
1235
997
  last_name: Last Name
1236
- lastname: Last Name
1237
998
  line_item: Line Item
1238
- line_item_adjustments: Line item adjustments
1239
999
  line_items: Line items
1240
1000
  link: Link
1241
- list: List
1242
- live: Live
1243
- loading: Loading
1244
1001
  locale: Locale
1245
1002
  locale_not_supported_by_store: is not supported by this store
1246
- location: Location
1247
- lock: Lock
1248
- logged_in_successfully: Logged in successfully
1249
- login: Login
1250
- logo: Logo
1251
- logout: Logout
1252
- logs: Logs
1253
- mail_from_address: Mail from address
1254
- mailer_logo: Mailer logo (JPG or PNG images only)
1255
- make_active_at: Make Active At
1256
1003
  manual: Manual
1257
- manual_intervention_required: Manual intervention required
1258
1004
  market: Market
1259
- market_ids: Markets
1260
- markets: Markets
1261
- master: Master
1262
- master_price: Master Price
1263
- max: Max
1264
- max_items: Max Items
1265
- max_quantity: Max Quantity
1266
1005
  me_no_current_user: No admin user authenticated this request
1267
1006
  media: Media
1268
- memo: Memo
1269
1007
  meta_description: Meta Description
1270
1008
  meta_keywords: Meta Keywords
1271
1009
  meta_title: Meta Title
1272
1010
  metadata: Metadata
1273
- min: Min
1274
1011
  min_quantity: Min Quantity
1275
- minimal_amount: Minimal Amount
1276
1012
  month: Month
1277
- more: More
1278
- move: Move
1279
- my_account: My Account
1280
- my_orders: My Orders
1281
1013
  name: Name
1282
- name_or_sku: Name or SKU (enter at least first 3 characters of product name)
1283
- navigation: Navigation
1284
- never: Never
1285
- new: New
1286
- new_address: New address
1287
- new_image: New Image
1288
- new_order: New Order
1289
- new_order_notifications_email: New Order Notifications Email
1290
- new_price_list: New Price List
1291
- new_product: New Product
1292
- new_promotion: New Promotion
1293
- new_state: New State
1294
- new_user: New User
1295
1014
  new_variant: New Variant
1296
- newsletter_subscribers: Newsletter Subscribers
1297
- next: Next
1298
1015
  no_cc_type: N/A
1016
+ no_maximum: No maximum
1299
1017
  no_payment_found: No payment found
1300
1018
  no_refundable_payments: There is no payment left on this order to refund.
1301
- no_report_data: No report data
1302
1019
  none: None
1303
- normal_amount: Normal Amount
1304
- not: not
1305
- not_available: N/A
1306
- not_enough_stock: There is not enough inventory at the source location to complete this transfer.
1307
- not_found: "%{resource} is not found"
1308
1020
  not_received: This return cannot be refunded until its items are marked received.
1309
- note: Note
1310
1021
  nothing_to_refund: There is nothing left to refund on this return.
1311
1022
  number: Number
1312
- ok: OK
1313
1023
  on_hand: On Hand
1314
1024
  only_active_products_can_be_added_to_cart: Draft and archived products cannot be added to cart, please mark the product as active before.
1315
1025
  open: Open
1316
1026
  option_name: Option name
1317
1027
  option_type: Option Type
1318
- option_types: Option Types
1319
1028
  option_value: Option Value
1320
- option_values: Option Values
1321
- optional: Optional
1322
1029
  options: Options
1323
1030
  or: or
1324
1031
  order: Order
1325
1032
  order_canceled: Order canceled
1326
1033
  order_cannot_be_deleted: Completed orders and orders with settled payments cannot be deleted
1327
- order_not_found: We couldn't find your order. Please try that action again.
1328
- order_number: Order %{number}
1329
- order_resumed: Order resumed
1330
1034
  order_routing:
1331
1035
  strategies:
1332
1036
  legacy: Legacy
@@ -1342,34 +1046,22 @@ en:
1342
1046
  description: Fulfill from the location pinned on the order, when one is set
1343
1047
  name: Preferred location
1344
1048
  order_summary: Order Summary
1345
- order_total: Order Total
1346
1049
  orders: Orders
1347
- origin: Origin
1348
- other: Other
1349
1050
  out_of_stock: Out of Stock
1350
- outstanding_balance: Outstanding Balance
1351
1051
  package_types:
1352
1052
  default_name: Shipping box
1353
- page: Page
1354
- pages: Pages
1355
1053
  password: Password
1356
1054
  password_required_to_create_account: Password is required to create your account.
1357
1055
  path: Path
1358
- pay: Pay
1359
1056
  payment: Payment
1360
1057
  payment_method: Payment Method
1361
1058
  payment_method_not_supported: That payment method is unsupported. Please choose another one.
1362
1059
  payment_methods: Payment Methods
1363
1060
  payment_processing_failed: Payment could not be processed, please check the details you entered
1364
1061
  payment_source: Payment source
1365
- payment_state: Payment State
1366
- payment_total: Payment Total
1367
- payments: Payments
1368
1062
  pending: Pending
1369
1063
  percent: Percent
1370
1064
  percent_per_item: Percent Per Item
1371
- permalink: Permalink
1372
- permissions: Permissions
1373
1065
  permissions_catalog:
1374
1066
  groups:
1375
1067
  access: Access
@@ -1401,6 +1093,9 @@ en:
1401
1093
  dashboard:
1402
1094
  description: Sales and performance analytics
1403
1095
  label: Analytics dashboard
1096
+ email_templates:
1097
+ description: Customer email templates and the email layout
1098
+ label: Email templates
1404
1099
  fulfillments:
1405
1100
  description: Pack, ship and track order fulfillments
1406
1101
  label: Fulfillments
@@ -1448,13 +1143,6 @@ en:
1448
1143
  po_document_missing: This order has no attached purchase order document.
1449
1144
  po_document_too_large: is larger than %{size}.
1450
1145
  po_document_upload_incomplete: The purchase order document was not uploaded completely. Please try attaching it again.
1451
- policies: Policies
1452
- powered_by: Powered by
1453
- pre_tax_amount: Pre-Tax Amount
1454
- pre_tax_total: Pre-Tax Total
1455
- presentation: Presentation
1456
- preview: Preview
1457
- previous: Previous
1458
1146
  price: Price
1459
1147
  price_list_import_ambiguous_sku: More than one product in this store has the SKU %{sku}. Give each a SKU of its own before importing prices for it.
1460
1148
  price_list_import_failed: The price could not be written.
@@ -1466,7 +1154,6 @@ en:
1466
1154
  price_list_import_too_many_breaks: A variant can carry at most %{count} quantity breaks on one price list.
1467
1155
  price_list_import_unknown_sku: No product in this store has the SKU %{sku}.
1468
1156
  price_list_import_unsupported_currency: This store does not sell in %{currency}.
1469
- price_lists: Price Lists
1470
1157
  price_range: Price Range
1471
1158
  price_rules:
1472
1159
  channel_rule:
@@ -1475,19 +1162,14 @@ en:
1475
1162
  description: Apply pricing to specific customer groups
1476
1163
  price_sack: Price Sack
1477
1164
  prices: Prices
1478
- pricing: Pricing
1479
1165
  privacy_policy: Privacy Policy
1480
- process: Process
1481
1166
  processing: Processing
1482
1167
  product: Product
1483
- product_has_no_description: This product has no description
1484
- product_name: Product Name
1485
- product_properties: Product Properties
1168
+ product_import_unknown_stock_location: You have no stock location named %{name}.
1486
1169
  product_translations: Product Translations
1487
1170
  products: Products
1488
1171
  products_cannot_be_shipped: We cannot ship %{product_names} to your current location at the moment. Please change your shipping address or remove %{product_names} from your cart.
1489
1172
  promotion: Promotion
1490
- promotion_action: Promotion Action
1491
1173
  promotion_action_types:
1492
1174
  create_adjustment:
1493
1175
  description: Creates a promotion credit adjustment on the order
@@ -1503,9 +1185,7 @@ en:
1503
1185
  name: Free shipping
1504
1186
  promotion_actions: Actions
1505
1187
  promotion_already_used: You can not destroy promotion that was already applied
1506
- promotion_category: Promotion Category
1507
1188
  promotion_label: Promotion (%{name})
1508
- promotion_rule: Promotion Rule
1509
1189
  promotion_rule_types:
1510
1190
  category:
1511
1191
  description: Order includes products in specified categories
@@ -1546,13 +1226,7 @@ en:
1546
1226
  product:
1547
1227
  description: Order includes specified product(s)
1548
1228
  name: Product(s)
1549
- promotionable: Promotable
1550
1229
  promotions: Promotions
1551
- propagate_all_variants: Propagate all variants
1552
- properties: Properties
1553
- property: Property
1554
- provider: Provider
1555
- published_at: Published at
1556
1230
  purchase_order:
1557
1231
  errors:
1558
1232
  already_closed: This purchase order has already been received or cancelled
@@ -1581,33 +1255,21 @@ en:
1581
1255
  purchase_order_import_unknown_sku: No product in this store has the SKU %{sku}.
1582
1256
  purchase_order_import_unknown_supplier: This store has no supplier named %{name}. Add them first.
1583
1257
  purchase_order_import_unsupported_currency: This store does not buy in %{currency}.
1584
- qty: Qty
1585
1258
  quantity: Quantity
1586
1259
  query: Query
1587
- rate: Rate
1588
1260
  reason: Reason
1589
- receive: receive
1590
1261
  received: Received
1591
- reception_status: Reception Status
1592
1262
  reference: Reference
1593
1263
  refund: Refund
1594
1264
  refund_amount: Refund Amount
1265
+ refund_amount_negative: The refund amount cannot be negative.
1266
+ refund_amount_required: Enter an amount greater than zero, because the customer is still owed money on this return.
1595
1267
  refund_exceeds_balance: That is more than the amount still refundable.
1596
1268
  refunds: Refunds
1597
- register: Register
1598
1269
  registration: Registration
1599
- reimburse: Reimburse
1600
- reimbursed: Reimbursed
1601
- reject: Reject
1602
1270
  rejected: Rejected
1603
- remember_me: Remember me
1604
1271
  remove: Remove
1605
1272
  remove_gift_card_on_completed_order_error: You can't remove the gift card after the order was placed
1606
- rename: Rename
1607
- report: Report
1608
- report_names:
1609
- products_performance: Products performance
1610
- sales_total: Sales total
1611
1273
  reporting:
1612
1274
  dimensions:
1613
1275
  cart_channel:
@@ -1914,46 +1576,24 @@ en:
1914
1576
  partially_refunded: Partially refunded
1915
1577
  refunded: Refunded
1916
1578
  voided: Voided
1917
- reports: Reports
1918
- required: "*"
1919
- required_fields: required fields
1920
1579
  resellable: Resellable
1921
1580
  resend: Resend
1922
- reset_password: Reset my password
1923
- resource: Resource
1924
1581
  response_code: Response Code
1925
- resume: resume
1926
- resumed: Resumed
1927
1582
  return: return
1928
1583
  return_errors:
1929
1584
  outside_window: This order is outside the %{days}-day return window
1930
- return_quantity: Return Quantity
1931
1585
  returned: Returned
1932
- returns: Returns
1933
1586
  returns_policy: Returns Policy
1934
- review: Review
1935
- risk: Risk
1936
- risky: Risky
1937
1587
  role_cannot_be_deleted: This role is protected or still referenced by staff members or pending invitations and cannot be deleted
1938
- role_id: Role ID
1939
1588
  role_immutable: cannot be changed on a protected role
1940
1589
  role_permissions_not_grantable_for_audience: 'cannot be granted to a %{audience} role: %{keys}'
1941
1590
  role_permissions_unknown: 'contains unknown permissions: %{keys}'
1942
1591
  role_resource_immutable: cannot be changed once the role exists
1943
- roles: Roles
1944
1592
  row: Row
1945
1593
  rules: Rules
1946
- safe: Safe
1947
- sale: Sale
1948
- sales_total: Sales Total
1949
- saving: Saving
1950
1594
  say_no: 'No'
1951
1595
  say_yes: 'Yes'
1952
1596
  scope: Scope
1953
- scopes: Scopes
1954
- search: Search
1955
- search_by: 'Search by:'
1956
- security: Security
1957
1597
  seed:
1958
1598
  commission_rates:
1959
1599
  marketplace_default: Marketplace default
@@ -1962,8 +1602,6 @@ en:
1962
1602
  product_types:
1963
1603
  default: Default
1964
1604
  digital: Digital
1965
- select: Select
1966
- select_stock: Select stock
1967
1605
  selected_quantity_not_available: selected of %{item} is not available.
1968
1606
  seller: Seller
1969
1607
  seller_access_denied: You do not have access to this seller.
@@ -2007,9 +1645,10 @@ en:
2007
1645
  description: The address customer returns are sent to
2008
1646
  name: Returns address
2009
1647
  seller_requirements:
1648
+ custom_field_not_for_sellers: must be a custom field defined for sellers
2010
1649
  file_required: A file is required for this requirement
2011
- file_type_not_accepted: This requirement accepts %{types}
2012
1650
  incomplete: "%{name} is not complete"
1651
+ invalid_terms_effective_from: Terms effective from is not a date
2013
1652
  seller_submission_no_file: This submission has no attached file.
2014
1653
  seller_team_last_member: A seller needs at least one team member. Invite someone else before removing this one.
2015
1654
  seller_user_mailer:
@@ -2020,26 +1659,15 @@ en:
2020
1659
  ignore_notice: If you did not request a password reset, you can safely ignore this email. Your password will not be changed.
2021
1660
  instructions: We received a request to reset the password for your %{store_name} seller account. Click the button below to choose a new password.
2022
1661
  subject: Password Reset Instructions
2023
- send_consumer_transactional_emails: Send Customer Transactional Emails
2024
- seo: SEO
2025
- seo_title: SEO Title
2026
- server: Server
2027
- settings: Settings
2028
1662
  ship: Ship
2029
1663
  ship_address: Ship Address
2030
- ship_to: 'Shipping to:'
2031
- ship_total: Ship Total
2032
1664
  shipment: Shipment
2033
- shipment_adjustments: Shipment adjustments
2034
- shipment_state: Shipment State
2035
- shipments: Shipments
2036
1665
  shipped: Shipped
2037
1666
  shipping: Shipping
2038
1667
  shipping_address: Shipping Address
2039
1668
  shipping_flat_rate_per_item: Flat rate per package item
2040
1669
  shipping_flat_rate_per_order: Flat rate
2041
1670
  shipping_flexible_rate: Flexible Rate per package item
2042
- shipping_instructions: Shipping Instructions
2043
1671
  shipping_labels:
2044
1672
  errors:
2045
1673
  already_purchased: This parcel already has an active shipping label
@@ -2054,44 +1682,20 @@ en:
2054
1682
  return_closed: A return label can only be bought while the return is open
2055
1683
  tracking_number_required: An uploaded label needs its tracking number
2056
1684
  uploaded_not_refundable: An uploaded label was not bought through Spree and cannot be refunded — delete it instead
2057
- shipping_method: Shipping Method
2058
- shipping_methods: Shipping Methods
2059
1685
  shipping_policy: Shipping Policy
2060
1686
  shipping_price_sack: Price sack
2061
1687
  shipping_rates:
2062
1688
  display_price:
2063
1689
  excluding_tax: "%{price} (+ %{tax_amount} %{tax_rate_name})"
2064
1690
  including_tax: "%{price} (incl. %{tax_amount} %{tax_rate_name})"
2065
- shipping_zone: Shipping Zone
2066
- shopping_cart: Shopping Cart
2067
- show: Show
2068
- show_deleted: Show Deleted
2069
- show_discontinued: Show Discontinued
2070
- show_only_complete_orders: Only show complete orders
2071
- show_rate_in_label: Show rate in label
2072
- sign_up: Sign Up
2073
- site_name: Site name
2074
- size: Size
2075
1691
  sku: SKU
2076
- skus: SKUs
2077
1692
  slug: Slug
2078
- social: Social
2079
1693
  sort_a_to_z: A-Z
2080
- sort_by: Sort by
2081
1694
  sort_high_to_low: high-low
2082
1695
  sort_low_to_high: low-high
2083
1696
  sort_z_to_a: Z-A
2084
1697
  source: Source
2085
- special_instructions: Special Instructions
2086
- split: Split
2087
- square_image: Square image
2088
- start: Start
2089
- starts_at: Starts at
2090
- state: State
2091
- states: States
2092
- states_required: States Required
2093
1698
  status: Status
2094
- stock: Stock
2095
1699
  stock_level:
2096
1700
  errors:
2097
1701
  adjustment_exclusive_with_count_on_hand: Send either a count on hand or an adjustment, not both
@@ -2111,20 +1715,13 @@ en:
2111
1715
  received: Received
2112
1716
  return_restock: Return restock
2113
1717
  theft_or_loss: Theft or loss
2114
- stock_movements: Stock Movements
2115
1718
  stock_receipt:
2116
1719
  errors:
2117
1720
  nothing_counted: A line on a delivery must count at least one unit, accepted or rejected
2118
- rejection_reasons:
2119
- damaged: Damaged
2120
- expired: Expired
2121
- other: Other
2122
- wrong_item: Wrong item
2123
1721
  stock_transfer:
2124
1722
  errors:
2125
1723
  already_closed: This transfer has already been completed or cancelled
2126
1724
  in_transit_resolution_required: Choose whether the units come back to the source warehouse or are written off
2127
- invalid_quantity: Every variant must move a quantity above zero
2128
1725
  invalid_receipt_quantity: The quantities for %{variant} cannot be negative
2129
1726
  item_not_on_document: One of the lines does not belong to this transfer
2130
1727
  locations_in_different_stores: must belong to the same store as the source location
@@ -2140,7 +1737,6 @@ en:
2140
1737
  repeated_item: "%{variant} was listed more than once. Send one entry per line, with what this delivery brought"
2141
1738
  same_location: cannot be the same as the destination location
2142
1739
  variants_unavailable: Some variants are not available on %{stock}
2143
- stop: Stop
2144
1740
  store: Store
2145
1741
  store_credit:
2146
1742
  allocated: Added
@@ -2148,7 +1744,6 @@ en:
2148
1744
  captured: Used
2149
1745
  credit: Credit
2150
1746
  eligible: Eligible
2151
- store_credit_events: Store Credit Events
2152
1747
  store_credit_name: Store Credit
2153
1748
  store_credit_payment_method:
2154
1749
  currency_mismatch: Store credit currency does not match order currency
@@ -2159,19 +1754,8 @@ en:
2159
1754
  unable_to_find: Could not find store credit
2160
1755
  unable_to_find_for_action: 'Could not find store credit for auth code: %{auth_code} for action: %{action}'
2161
1756
  unable_to_void: 'Unable to void code: %{auth_code}'
2162
- store_credits: Store Credits
2163
- store_default: Default store
2164
- store_name: Store name
2165
- stores: Stores
2166
- street_address: Street Address
2167
- subscribed: Subscribed
2168
- subtotal: Subtotal
2169
- subtract: Subtract
1757
+ store_credit_using_gift_card_error: You can't apply store credit after you applied a gift card.
2170
1758
  success: Success
2171
- summary: Summary
2172
- support: Support
2173
- supported_currencies: Supported Currencies
2174
- supported_locales: Supported Locales
2175
1759
  tags: Tags
2176
1760
  tax: Tax
2177
1761
  tax_capabilities:
@@ -2188,74 +1772,34 @@ en:
2188
1772
  description: County, city and district rates are not applied — only the rates configured per country or state. Sales into US states that levy local tax will be under-collected.
2189
1773
  label: US local tax
2190
1774
  tax_category: Tax Category
2191
- tax_code: Tax Code
2192
1775
  tax_identifier_kinds:
2193
1776
  au_abn: Australian Business Number
2194
1777
  ch_vat: Swiss VAT
2195
1778
  eu_vat: EU VAT
2196
1779
  gb_vat: UK VAT
2197
1780
  us_ein: US EIN
2198
- tax_inclusive: Tax inclusive
2199
- tax_rates: Tax Rates
2200
- taxes: Taxes
2201
- taxon: Taxon
2202
- taxonomies: Categories
2203
- taxonomy: Category
2204
- taxonomy_brands_name: Brands
2205
- taxonomy_categories_name: Categories
2206
- taxonomy_collections_name: Collections
2207
- taxons: Categories
1781
+ tax_provider_unavailable: The tax service could not work out the tax to give back. Try again in a few minutes.
2208
1782
  terms_of_service: Terms of Service
2209
- test: Test
2210
- test_mode: Test Mode
2211
- theme: Theme
2212
- themes: Themes
2213
1783
  there_are_no_items_for_this_order: There are no items for this order
2214
- thumbnail: Thumbnail
2215
1784
  tiered_flat_rate: Tiered Flat Rate
2216
1785
  tiered_percent: Tiered Percent
2217
- tiers: Tiers
2218
- time: Time
2219
- timezone: Timezone
2220
- title: Title
2221
- to: To
2222
1786
  total: Total
2223
1787
  track_inventory: Track Inventory
2224
1788
  tracking: Tracking
2225
1789
  tracking_number: Tracking Number
2226
1790
  tracking_url: Tracking URL
2227
- transaction_id: Transaction ID
2228
- transfer_to_location: Transfer To
2229
- translations: Translations
2230
- tree: Tree
2231
- twitter: Twitter
2232
1791
  type: Type
2233
1792
  unable_to_connect_to_gateway: Unable to connect to gateway.
2234
- unit: Unit
2235
- unit_system: Unit system
2236
- unlimited: Unlimited
2237
- update: Update
2238
1793
  updated_at: Updated at
2239
- updating: Updating
2240
1794
  url: URL
2241
- usage_limit: Usage Limit
2242
- used: Used
2243
1795
  user: User
2244
- user_ids: Users
2245
- users: Users
2246
1796
  validation:
2247
1797
  must_be_int: must be an integer
2248
- unpaid_amount_not_zero: 'Amount was not fully reimbursed. Still due: %{amount}'
2249
1798
  value: Value
2250
1799
  variant: Variant
2251
1800
  variants: Variants
2252
1801
  verified: Verified
2253
- verified_at: Verified at
2254
- version: Version
2255
- view: View
2256
- visibility: Visibility
2257
1802
  void: Void
2258
- webhook_endpoints: Webhook Endpoints
2259
1803
  webhook_mailer:
2260
1804
  endpoint_disabled:
2261
1805
  disabled_at_label: Disabled at
@@ -2266,18 +1810,8 @@ en:
2266
1810
  reason_label: Reason
2267
1811
  subject: 'Webhook endpoint disabled: %{endpoint_name}'
2268
1812
  url_label: URL
2269
- webhooks: Webhooks
2270
1813
  weight: Weight
2271
1814
  weight_unit: Weight unit
2272
1815
  width: Width
2273
- wishlist: Wishlist
2274
1816
  year: Year
2275
1817
  zip: Zip
2276
- zipcode: Zip Code
2277
- zipcode_required: Zip Code Required
2278
- zone: Zone
2279
- zone_ids: Zones
2280
- zones: Zones
2281
- views:
2282
- pagination:
2283
- truncate: Truncate