spree_core 6.0.0.beta3 → 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
@@ -0,0 +1,644 @@
1
+ ---
2
+ et:
3
+ activemodel:
4
+ errors:
5
+ messages:
6
+ blank: ei tohi olla tühi
7
+ activerecord:
8
+ attributes:
9
+ spree/address:
10
+ address1: Aadress
11
+ address2: Aadress (jätkub)
12
+ city: Linn
13
+ company: Ettevõte
14
+ country: Riik
15
+ label: Aadressi nimi
16
+ phone: Telefon
17
+ state: Maakond
18
+ spree/country:
19
+ iso: ISO
20
+ iso3: ISO3
21
+ iso_name: ISO Name
22
+ name: Name
23
+ numcode: ISO Code
24
+ spree/customer_group:
25
+ description: Kirjeldus
26
+ name: Nimi
27
+ spree/gift_card:
28
+ amount_used: Kasutatud summa
29
+ expires_at: Aegub
30
+ spree/import:
31
+ preferred_delimiter: Eraldaja
32
+ spree/import_mapping:
33
+ file_column: Faili veerg
34
+ schema_field: Skeemi väli
35
+ spree/import_row:
36
+ row_number: Number
37
+ spree/invitation:
38
+ inviter: Kutsuja
39
+ spree/option_type:
40
+ filterable: Filtreeritav
41
+ kind: Liik
42
+ spree/option_value:
43
+ color_code: Värvikood
44
+ image: Värvinäidise pilt
45
+ spree/order:
46
+ completed_at: Esitatud
47
+ created_at: Tellimuse kuupäev
48
+ email: Kliendi e-post
49
+ internal_note: Sisemine märkus
50
+ ip_address: IP Aadress
51
+ item_count: Tooteid
52
+ total: Kokku
53
+ spree/payment:
54
+ amount: Summa
55
+ number: Number
56
+ spree/payment_method:
57
+ name: Nimetus
58
+ spree/policy:
59
+ body: Sisu
60
+ owner: Reeglistik objektile
61
+ spree/price_list:
62
+ description: Kirjeldus
63
+ ends_at: Lõpeb
64
+ match_policy: Vastavuse reegel
65
+ name: Nimi
66
+ priority: Prioriteet
67
+ starts_at: Algab
68
+ status: Olek
69
+ spree/price_rule:
70
+ priority: Prioriteet
71
+ type: Tüüp
72
+ spree/product:
73
+ available_on: Saadaval alates
74
+ cost_price: Cost Price
75
+ description: Kirjeldus
76
+ discontinue_on: Lõpetamise kuupäev
77
+ less_than: Vähem kui
78
+ make_active_at: Aktiveerimise kuupäev
79
+ master_price: Hind
80
+ more_than: Rohkem kui
81
+ name: Nimetus
82
+ on_hand: Laoseis
83
+ tax_category: Maksukategooria
84
+ spree/promotion:
85
+ generate_code: Genereeri sooduskood
86
+ promotion_category: Kampaania kategooria
87
+ spree/promotion_category:
88
+ code: Kood
89
+ spree/property:
90
+ name: Nimetus
91
+ presentation: Presentation
92
+ spree/role:
93
+ name: Nimetus
94
+ spree/shipment:
95
+ number: Number
96
+ spree/store:
97
+ address: Aadress
98
+ contact_phone: Kontakttelefon
99
+ preferred_digital_asset_authorized_clicks: Allalaadimiste klikkide limiit
100
+ preferred_digital_asset_authorized_days: Allalaadimise päevade limiit
101
+ preferred_limit_digital_download_count: Piira digitaalsete linkide allalaadimiste arvu
102
+ preferred_limit_digital_download_days: Piira digitaalsete linkide allalaadimise päevi
103
+ seo_robots: SEO robotid
104
+ storefront_custom_code_body_end: Kohandatud kood enne body-sildi sulgemist
105
+ storefront_custom_code_body_start: Kohandatud kood pärast body-sildi avamist
106
+ storefront_custom_code_head: Kohandatud kood lehe päises
107
+ spree/store_credit:
108
+ amount_used: Kasutatud summa
109
+ spree/tax_category:
110
+ description: Kirjeldus
111
+ name: Nimetus
112
+ spree/tax_rate:
113
+ amount: Rate
114
+ included_in_price: Included in Price
115
+ show_rate_in_label: Show rate in label
116
+ spree/taxon:
117
+ name: Nimetus
118
+ permalink: Püsiviide
119
+ position: Positsioon
120
+ sort_order: Sorteerimisjärjekord
121
+ spree/taxonomy:
122
+ name: Nimetus
123
+ spree/user:
124
+ avatar: Avatar
125
+ email: Email
126
+ password: Salasõna
127
+ password_confirmation: Salasõna kordus
128
+ spree/zone:
129
+ description: Kirjeldus
130
+ name: Nimetus
131
+ user:
132
+ current_sign_in: Praegune sisselogimine
133
+ last_sign_in: Viimane sisselogimine
134
+ sign_in_count: Sisselogimiste arv
135
+ errors:
136
+ messages:
137
+ blank: ei tohi olla tühi
138
+ models:
139
+ spree/allowed_origin:
140
+ attributes:
141
+ origin:
142
+ must_be_origin_only: peab olema päritolu (skeem ja host) ilma teekonna, päringu või fragmendita
143
+ spree/credit_card:
144
+ attributes:
145
+ base:
146
+ card_expired: Kaart on aegunud
147
+ spree/gift_card:
148
+ attributes:
149
+ base:
150
+ cannot_destroy_used_gift_card: Kasutatud kinkekaarti ei saa kustutada
151
+ spree/import:
152
+ attributes:
153
+ attachment:
154
+ content_type: on lubamatu sisutüübiga
155
+ type:
156
+ inclusion: ei kuulu lubatud tüüpide loendisse
157
+ spree/market:
158
+ attributes:
159
+ base:
160
+ cannot_destroy_default_market: Vaiketurgu ei saa kustutada.
161
+ cannot_destroy_last_market: Ainsat turgu ei saa kustutada.
162
+ spree/market_country:
163
+ attributes:
164
+ country:
165
+ already_in_market: on selles poes juba teisele turule määratud
166
+ not_in_shipping_zone: ei ole kaetud ühegi tarnetsooniga. Palun seadistage esmalt tarnetsoon.
167
+ spree/payment:
168
+ attributes:
169
+ amount:
170
+ greater_than_max_amount: on suurem kui lubatud maksimaalne summa %{max_amount}
171
+ spree/price_list:
172
+ attributes:
173
+ ends_at:
174
+ must_be_after_starts_at: peab olema pärast algusaega
175
+ spree/product:
176
+ attributes:
177
+ base:
178
+ cannot_destroy_if_attached_to_line_items: Esitatud tellimustesse lisatud tooteid ei saa kustutada. Sellistel juhtudel palun lõpetage nende müük.
179
+ discontinue_on:
180
+ invalid_date_range: peab olema hilisem kui saadavuse kuupäev
181
+ spree/product_publication:
182
+ attributes:
183
+ unpublished_at:
184
+ must_be_after_published_at: peab olema pärast avaldamise kuupäeva
185
+ spree/promotion:
186
+ attributes:
187
+ expires_at:
188
+ invalid_date_range: peab olema hilisem kui alguskuupäev
189
+ spree/store:
190
+ attributes:
191
+ base:
192
+ cannot_destroy_only_store: Ainsat poodi ei saa kustutada.
193
+ spree/store_credit:
194
+ attributes:
195
+ amount_authorized:
196
+ exceeds_total_credits: Ületab kogukrediidi summa.
197
+ amount_used:
198
+ cannot_be_greater_than_amount: Ei tohi olla suurem kui summa.
199
+ greater_than_zero_restrict_delete: on suurem kui null. Poekrediiti ei saa kustutada.
200
+ spree/user:
201
+ attributes:
202
+ bill_address_id:
203
+ belongs_to_other_user: kuulub teisele kasutajale
204
+ deprecated_in_completed_order: on lõpetatud tellimuses aegunud
205
+ ship_address_id:
206
+ belongs_to_other_user: kuulub teisele kasutajale
207
+ deprecated_in_completed_order: on lõpetatud tellimuses aegunud
208
+ spree/variant:
209
+ attributes:
210
+ base:
211
+ cannot_destroy_if_attached_to_line_items: Esitatud tellimustesse lisatud variante ei saa kustutada. Sellistel juhtudel palun lõpetage nende müük.
212
+ spree/webhook_endpoint:
213
+ attributes:
214
+ url:
215
+ internal_address_not_allowed: ei tohi viidata sisemisele ega privaatvõrgu aadressile
216
+ models:
217
+ spree/address:
218
+ one: Aadress
219
+ other: Adaressid
220
+ spree/classification:
221
+ one: Klassifikatsioon
222
+ other: Klassifikatsioonid
223
+ spree/country:
224
+ one: Riik
225
+ other: Riigid
226
+ spree/credit_card:
227
+ one: Krediitkaart
228
+ other: Krediitkaardid
229
+ spree/customer_group:
230
+ one: Kliendigrupp
231
+ other: Kliendigrupid
232
+ spree/customer_group_user:
233
+ one: Kliendigrupi kasutaja
234
+ other: Kliendigrupi kasutajad
235
+ spree/export:
236
+ one: Eksport
237
+ other: Ekspordid
238
+ spree/integration:
239
+ one: Integratsioon
240
+ other: Integratsioonid
241
+ spree/inventory_unit:
242
+ one: Laoühik
243
+ other: Laoühikud
244
+ spree/line_item:
245
+ one: Tellimusrida
246
+ other: Tellimusread
247
+ spree/option_type:
248
+ one: Valiku tüüp
249
+ other: Valiku tüübid
250
+ spree/option_value:
251
+ one: Valiku väärtus
252
+ other: Valiku väärtused
253
+ spree/order:
254
+ one: Tellimus
255
+ other: Tellimused
256
+ spree/payment:
257
+ one: Makse
258
+ other: Maksed
259
+ spree/payment_method:
260
+ one: Makseviis
261
+ other: Makseviisid
262
+ spree/price:
263
+ one: Hind
264
+ other: Hinnad
265
+ spree/price_list:
266
+ one: Hinnakiri
267
+ other: Hinnakirjad
268
+ spree/price_rule:
269
+ one: Hinnareegel
270
+ other: Hinnareeglid
271
+ spree/product:
272
+ one: Toode
273
+ other: Tooted
274
+ spree/promotion:
275
+ one: Kampaania
276
+ other: Kampaaniad
277
+ spree/promotion_category:
278
+ one: Kampaania kategooria
279
+ other: Kampaania kategooriad
280
+ spree/property:
281
+ one: Omadus
282
+ other: Omadused
283
+ spree/refund_reason:
284
+ one: Tagasimakse põhjus
285
+ other: Tagasimakse põhjused
286
+ spree/role:
287
+ one: Rollid
288
+ other: Rollid
289
+ spree/shipment:
290
+ one: Tarne
291
+ other: Tarned
292
+ spree/shipping_method:
293
+ one: Tarneviis
294
+ other: Tarneviisid
295
+ spree/state:
296
+ one: Maakond
297
+ other: Maakonnad
298
+ spree/stock_location:
299
+ one: Laoasukoht
300
+ other: Laoasukohad
301
+ spree/stock_movement:
302
+ one: Laoliikumine
303
+ other: Laoliikumised
304
+ spree/stock_transfer:
305
+ one: Laosiire
306
+ other: Laosiirded
307
+ spree/store:
308
+ one: Pood
309
+ other: Poed
310
+ spree/store_credit:
311
+ one: Poekrediit
312
+ other: Poekrediidid
313
+ spree/tax_category:
314
+ one: Maksukategooria
315
+ other: Maksukategooriad
316
+ spree/tax_rate:
317
+ one: Maksumäär
318
+ other: Maksumäärad
319
+ spree/taxon:
320
+ one: Takson
321
+ other: Taksonid
322
+ spree/taxonomy:
323
+ one: Taksonoomia
324
+ other: Taksonoomiad
325
+ spree/user:
326
+ one: Kasutaja
327
+ other: Kasutajad
328
+ spree/variant:
329
+ one: Variant
330
+ other: Variandid
331
+ spree/zone:
332
+ one: Zone
333
+ other: Zones
334
+ errors:
335
+ messages:
336
+ already_confirmed: on juba kinnitatud
337
+ not_found: ei leitud
338
+ not_locked: ei olnud lukus
339
+ not_saved:
340
+ one: '1 viga takistas salvestamast objekti %{resource}:'
341
+ other: "%{count} viga takistasid salvestamast objekti %{resource}:"
342
+ number:
343
+ percentage:
344
+ format:
345
+ precision: 1
346
+ spree:
347
+ accepts_email_marketing: Nõustub e-posti turundusega
348
+ account: Konto
349
+ active: Aktiivne
350
+ address: Aadress
351
+ address1: Aadress
352
+ address2: Aadress (jätkub)
353
+ adjustment: Täiendus
354
+ adjustment_labels:
355
+ tax_rates:
356
+ excluding_tax: "%{name}%{amount}"
357
+ including_tax: "%{name}%{amount} (sisaldub hinnas)"
358
+ adjustments_deleted: Korrektsioonid kustutatud
359
+ all: Kõik
360
+ amount: Summa
361
+ api_key_no_current_key: Ükski API võti ei autentinud seda päringut
362
+ api_key_scopes_immutable: ei saa pärast võtme loomist muuta; looge uus võti vajalike õigustega ja tühistage see
363
+ availability: saadavus
364
+ bill_address: Arve saaja aadress
365
+ billing_address: Arve saaja aadress
366
+ calculator: Kalkulaator
367
+ canceled: Tühistatud
368
+ cannot_be_destroyed: Tellimust ei saa kustutada.
369
+ capture: Lõpeta makse
370
+ cart: Ostukorv
371
+ cart_already_updated: Ostukorv on juba uuendatud.
372
+ cart_line_item:
373
+ delivery_unavailable: Toodet %{li_name} ei saa valitud aadressile tarnida
374
+ discontinued: "%{li_name} eemaldati, kuna selle müük lõpetati"
375
+ out_of_stock: "%{li_name} eemaldati, kuna see oli välja müüdud"
376
+ categories: Katergooriad
377
+ category: Kategooria
378
+ channel: Müügikanal
379
+ channels: Müügikanalid
380
+ checkout: Vormista tellimus
381
+ checkout_requirements:
382
+ email_required: E-posti aadress on nõutav
383
+ line_items_required: Lisage ostukorvi vähemalt üks toode
384
+ payment_required: Lisage makseviis
385
+ ship_address_required: Tarneaadress on nõutav
386
+ city: Linn
387
+ color_code: Värvikood
388
+ company: Ettevõte
389
+ compare_at_amount: Võrdlussumma
390
+ compare_at_price: Võrdlushind
391
+ complete: Esitatud
392
+ confirm: Kinnita
393
+ cost_price: Omahind
394
+ country: Riik
395
+ coupon_code_used: Sisestatud sooduskood on juba kasutatud. Palun proovige uuesti.
396
+ created_at: Loodud
397
+ credit_card: Krediitkaart
398
+ currency_not_supported_by_store: ei ole selle poe poolt toetatud
399
+ customer: Klient
400
+ customers: Kliendid
401
+ default_stock_location_name: Poe asukoht
402
+ default_wishlist_name: Soovinimekiri
403
+ delivery: Delivery
404
+ depth: Sügavus
405
+ description: Kirjeldus
406
+ destroy: Kustuta
407
+ digital:
408
+ digital_delivery: Digitaalne tarne
409
+ digital_assets: Digitaalsed failid
410
+ discontinued: Müük lõpetatud
411
+ discontinued_variants_present: Mõned selle tellimuse tellimusread sisaldavad tooteid, mis ei ole enam saadaval.
412
+ display_delivery_range: Tarne %{delivery_range} tööpäeva jooksul
413
+ draft: Mustand
414
+ eligibility_errors:
415
+ messages:
416
+ no_matching_channel: See sooduskood ei kehti selle müügikanali jaoks.
417
+ no_matching_market: See sooduskood ei kehti teie turul.
418
+ wrong_country: See sooduskood ei kehti teie riigis
419
+ error: Viga
420
+ error_user_destroy_with_orders: Tellimustega seotud kasutajat ei saa kustutada
421
+ error_user_does_not_have_any_store_credits: Kasutajal ei ole ühtegi saadaolevat poekrediiti
422
+ errors:
423
+ messages:
424
+ cannot_delete_default_channel: Vaikekanalit ei saa kustutada. Tõstke esmalt mõni teine kanal vaikekanaliks.
425
+ channel_store_mismatch: peab kuuluma samasse poodi
426
+ invalid_order_routing_rule: ei ole registreeritud tellimuste suunamise reegel
427
+ invalid_order_routing_strategy: ei ole registreeritud tellimuste suunamise strateegia
428
+ store_association_can_not_be_changed: Poe seost ei saa muuta
429
+ store_is_already_set: Pood on juba määratud
430
+ expired: Aegunud
431
+ export_mailer:
432
+ export_done:
433
+ message: Tubli töö, teie eksport on valmis! Selle allalaadimiseks kasutage allolevat linki.
434
+ subject: Teie eksport %{export_number} on edukalt töödeldud!
435
+ greeting: Tere %{user_name},
436
+ field: Väli
437
+ first_name: Eesnimi
438
+ flat_percent: Fikseeritud protsent
439
+ flat_rate_per_order: Fikseeritud summa tellimuse kohta
440
+ flexible_rate: Paindlik summa
441
+ free: Tasuta
442
+ gateway: Lüüs
443
+ gateway_error: Lüüsi viga
444
+ gift_card: Kinkekaart
445
+ gift_card_already_redeemed: Kinkekaart on juba lunastatud.
446
+ gift_card_applied: Kinkekaart rakendati edukalt teie tellimusele!
447
+ gift_card_customer_not_logged_in: Kinkekaarti ei saa külaliskasutajaga rakendada.
448
+ gift_card_expired: Kinkekaart on aegunud.
449
+ gift_card_mismatched_currency: Kinkekaarti ei saa praeguse valuutaga rakendada.
450
+ gift_card_mismatched_customer: See kinkekaart on seotud teise kasutajaga.
451
+ gift_card_not_found: Kinkekaarti ei leitud.
452
+ gift_card_removed: Kinkekaart eemaldati edukalt teie tellimuselt
453
+ gift_card_using_store_credit_error: Te ei saa kinkekaarti rakendada pärast poekrediidi rakendamist.
454
+ height: Kõrgus
455
+ i18n:
456
+ this_file_language: Eesti keel (ET)
457
+ idempotency_key_reused: Seda Idempotency-Key võtit on juba kasutatud erinevate päringuparameetritega.
458
+ image: Pilt
459
+ import: Import
460
+ in_stock: Laos
461
+ internal_note: Sisemine märkus
462
+ inventory: Varustus
463
+ invitation_mailer:
464
+ greeting: Tere %{user_name},
465
+ invitation_accepted:
466
+ body: "%{invitee_name} võttis vastu teie kutse liituda kohaga %{resource_name}"
467
+ subject: "%{invitee_name} võttis vastu teie kutse liituda kohaga %{resource_name}"
468
+ invitation_email:
469
+ body: "%{inviter_name} kutsus teid liituma kohaga %{resource_name}"
470
+ link_description: 'Kutse vastuvõtmiseks klõpsake allolevat linki:'
471
+ subject: Kutse liituda kohaga %{resource_name}
472
+ iso: ISO Alpha-2
473
+ item: Toode
474
+ key: Võti
475
+ kind: Liik
476
+ label: Silt
477
+ last_name: Perekonnanimi
478
+ line_item: Tellimusrida
479
+ line_items: Tellimusread
480
+ link: Link
481
+ locale: Keel
482
+ locale_not_supported_by_store: ei ole selle poe poolt toetatud
483
+ manual: Käsitsi
484
+ market: Turg
485
+ me_no_current_user: Ükski administraator ei autentinud seda päringut
486
+ media: Meedia
487
+ meta_description: Kirjeldus
488
+ meta_keywords: Märksõnad
489
+ metadata: Metaandmed
490
+ min_quantity: Minimaalne kogus
491
+ month: Kuu
492
+ name: Nimi
493
+ new_variant: Uus variant
494
+ no_cc_type: Puudub
495
+ none: Puuduvad
496
+ number: Number
497
+ on_hand: Laoseis
498
+ only_active_products_can_be_added_to_cart: Mustand- ja arhiveeritud tooteid ei saa ostukorvi lisada, palun märkige toode esmalt aktiivseks.
499
+ open: Ava
500
+ option_name: Valiku nimi
501
+ options: Variatsioonid
502
+ or: või
503
+ order: Tellimus
504
+ order_routing:
505
+ strategies:
506
+ legacy: Pärand
507
+ rules: Reeglid (järjestatud)
508
+ order_summary: Tellimuse kokkuvõte
509
+ orders: Tellimused
510
+ out_of_stock: Laost lõppenud
511
+ password: Salasõna
512
+ path: Teekond
513
+ payment: Makse
514
+ payment_method: Makseviis
515
+ payment_methods: Makseviisid
516
+ payment_source: Makseallikas
517
+ percent: Protsent
518
+ percent_per_item: Percent Per Item
519
+ phone: Telefon
520
+ price: Hind
521
+ price_rules:
522
+ channel_rule:
523
+ description: Rakenda hinnastamine müügikanali alusel
524
+ customer_group_rule:
525
+ description: Rakenda hinnastamist kindlatele kliendigruppidele
526
+ prices: Hinnad
527
+ privacy_policy: Privaatsuspoliitika
528
+ processing: Töötlemine
529
+ product: Toode
530
+ product_translations: Toodete tõlked
531
+ products_cannot_be_shipped: Me ei saa hetkel tarnida tooteid %{product_names} teie praegusesse asukohta. Palun muutke oma tarneaadressi või eemaldage %{product_names} oma ostukorvist.
532
+ promotion_already_used: Te ei saa kustutada kampaaniat, mida on juba rakendatud
533
+ promotion_label: Kampaania (%{name})
534
+ promotion_rule_types:
535
+ category:
536
+ description: Tellimus sisaldab tooteid määratud kategooriatest
537
+ name: Kategooriad
538
+ channel:
539
+ description: Piira tellimustega, mis on esitatud kindlate kanalite kaudu
540
+ name: Kanal(id)
541
+ country:
542
+ description: Piira tellimustele, mille tarneaadress on kindlas riigis
543
+ name: Riik
544
+ currency:
545
+ description: Piira kindlas valuutas tellimustele
546
+ name: Valuuta
547
+ customer:
548
+ description: Saadaval ainult määratud klientidele
549
+ name: Kliendid
550
+ customer_group:
551
+ description: Saadaval ainult määratud kliendigruppi(de)sse kuuluvatele klientidele
552
+ name: Kliendigrupp(id)
553
+ customer_logged_in:
554
+ description: Saadaval ainult sisselogitud klientidele
555
+ name: Ainult sisselogitud kliendid
556
+ market:
557
+ description: Piira tellimustega, mis on esitatud kindlatel turgudel
558
+ name: Turg(turud)
559
+ promotions: Kampaaniad
560
+ quantity: Kogus
561
+ query: Päring
562
+ reason: Põhjus
563
+ received: Vastu võetud
564
+ refund: Tagasimakse
565
+ refund_amount: Tagasimakse summa
566
+ registration: Registreeru või vormista ost külalisena
567
+ remove: Eemalda
568
+ remove_gift_card_on_completed_order_error: Te ei saa kinkekaarti eemaldada pärast tellimuse esitamist
569
+ resellable: Edasimüüdav
570
+ resend: Saada uuesti
571
+ response_code: Vastuse kood
572
+ return: Tagastama
573
+ returned: Tagastatud
574
+ returns_policy: Tagastuspoliitika
575
+ row: Rida
576
+ scope: Käsitlusala
577
+ selected_quantity_not_available: valitud kogust %{item} ei ole saadaval.
578
+ ship: Saada
579
+ ship_address: Kättetoimetamise aadress
580
+ shipment: Tarne
581
+ shipped: Saadetud
582
+ shipping: Transport
583
+ shipping_address: Kättetoimetamise aadress
584
+ shipping_policy: Tarnepoliitika
585
+ shipping_rates:
586
+ display_price:
587
+ excluding_tax: "%{price} (+ %{tax_amount} %{tax_rate_name})"
588
+ including_tax: "%{price} (sis. %{tax_amount} %{tax_rate_name})"
589
+ sku: SKU
590
+ status: Staatus
591
+ stock_transfer:
592
+ errors:
593
+ must_have_variant: Peate lisama vähemalt ühe variandi
594
+ same_location: ei tohi olla sama mis sihtasukoht
595
+ variants_unavailable: Mõned variandid ei ole asukohas %{stock} saadaval
596
+ store: Pood
597
+ store_credit:
598
+ allocated: Lisatud
599
+ authorized: Autoriseeritud
600
+ captured: Kasutatud
601
+ credit: Krediit
602
+ eligible: Sobiv
603
+ store_credit_name: Poekrediit
604
+ store_credit_payment_method:
605
+ currency_mismatch: Poekrediidi valuuta ei vasta tellimuse valuutale
606
+ insufficient_authorized_amount: Ei saa hõivata rohkem kui autoriseeritud summa
607
+ insufficient_funds: Poekrediidi järelejäänud summa ei ole piisav
608
+ successful_action: Edukas poekrediidi %{action}
609
+ unable_to_credit: 'Koodi ei õnnestunud krediteerida: %{auth_code}'
610
+ unable_to_find: Poekrediiti ei leitud
611
+ unable_to_find_for_action: 'Poekrediiti ei leitud autoriseerimiskoodi %{auth_code} jaoks toimingule: %{action}'
612
+ unable_to_void: 'Koodi ei õnnestunud tühistada: %{auth_code}'
613
+ tags: Sildid
614
+ tax: Maksud
615
+ tax_category: Maksukategooria
616
+ terms_of_service: Kasutustingimused
617
+ total: Kokku
618
+ tracking: Jälgimisnumber
619
+ type: Tüüp
620
+ unable_to_connect_to_gateway: Juurdepääs ebaõnnestus.
621
+ updated_at: Uuendatud
622
+ url: URL
623
+ user: Kasutaja
624
+ validation:
625
+ must_be_int: peab olema täisarv
626
+ value: Väärtus
627
+ variants: Variandid
628
+ verified: Kinnitatud
629
+ void: Muuda kehtetuks
630
+ webhook_mailer:
631
+ endpoint_disabled:
632
+ disabled_at_label: Keelatud
633
+ heading: Veebihaagi lõpp-punkt keelatud
634
+ instructions: Palun kontrollige lõpp-punkti URL-i ja teenust, seejärel lubage see uuesti menüüs Seaded → Arendajad → Veebihaagid.
635
+ message: Veebihaagi lõpp-punkt "%{endpoint_name}" keelati automaatselt pärast korduvaid edastamistõrkeid.
636
+ name_label: Nimi
637
+ reason_label: Põhjus
638
+ subject: 'Veebihaagi lõpp-punkt keelatud: %{endpoint_name}'
639
+ url_label: URL
640
+ weight: Kaal
641
+ weight_unit: Kaaluühik
642
+ width: Laius
643
+ year: Aasta
644
+ zip: Postiindeks