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
@@ -0,0 +1,777 @@
1
+ ---
2
+ tr:
3
+ activemodel:
4
+ errors:
5
+ messages:
6
+ blank: boş olamaz
7
+ activerecord:
8
+ attributes:
9
+ spree/address:
10
+ address1: Adres
11
+ address2: Adres (Devamı)
12
+ city: Şehir
13
+ company: Şirket
14
+ country: Ülke
15
+ label: Adres adı
16
+ phone: Telefon
17
+ state: Eyalet
18
+ spree/calculator/tiered_flat_rate:
19
+ preferred_base_amount: Tercih edilen taban fiyat
20
+ preferred_tiers: Tercih edilen basamaklar
21
+ spree/calculator/tiered_percent:
22
+ preferred_base_percent: Tercih edilen yüzde
23
+ preferred_tiers: Tercih edilen basamaklar
24
+ spree/country:
25
+ iso: ISO
26
+ iso3: ISO3
27
+ iso_name: ISO İsmi
28
+ name: Ad
29
+ numcode: ISO Kodu
30
+ spree/credit_card:
31
+ cc_type: Tür
32
+ month: Ay
33
+ name: İsim Soyisim
34
+ number: Numara
35
+ verification_value: Doğrulama Kodu
36
+ year: Yıl
37
+ spree/customer_group:
38
+ description: Açıklama
39
+ name: Ad
40
+ spree/gift_card:
41
+ amount_used: Kullanılan tutar
42
+ expires_at: Son kullanma tarihi
43
+ spree/import:
44
+ preferred_delimiter: Ayırıcı
45
+ spree/import_mapping:
46
+ file_column: Dosya Sütunu
47
+ schema_field: Şema Alanı
48
+ spree/import_row:
49
+ row_number: Numara
50
+ spree/inventory_unit:
51
+ state: Eyalet
52
+ spree/invitation:
53
+ inviter: Davet eden
54
+ spree/line_item:
55
+ price: Fiyat
56
+ quantity: Miktar
57
+ spree/option_type:
58
+ filterable: Filtrelenebilir
59
+ kind: Tür
60
+ name: Ad
61
+ spree/option_value:
62
+ color_code: Renk Kodu
63
+ image: Örnek Görsel
64
+ spree/order:
65
+ checkout_complete: Ödeme Tamamlandı
66
+ completed_at: Tamamlanma zamanı
67
+ considered_risky: Riskli Olarak Belirtildi
68
+ coupon_code: Kupon Kodu
69
+ created_at: Sipariş Tarihi
70
+ email: Müşteri E-posta
71
+ internal_note: Dahili Not
72
+ ip_address: IP Adresi
73
+ item_count: Ürünler
74
+ item_total: Toplam Miktar
75
+ number: Numara
76
+ payment_state: Ödeme Bölgesi
77
+ shipment_state: Kargo Bölgesi
78
+ special_instructions: Özel Tanımlar
79
+ state: Bölge
80
+ total: Toplam
81
+ spree/order/bill_address:
82
+ address1: Fatura adresi, cadde
83
+ city: Fatura adresi, şehir
84
+ phone: Fatura adresi, telefon
85
+ state: Fatura adresi, bölge
86
+ spree/order/ship_address:
87
+ address1: Kargo adresi, cadde
88
+ city: Kargo adresi, şehir
89
+ phone: Kargo adresi, telefon
90
+ state: Kargo adresi, bölge
91
+ spree/payment:
92
+ amount: Miktar
93
+ number: Numara
94
+ spree/payment_method:
95
+ name: Ad
96
+ spree/policy:
97
+ body: İçerik
98
+ owner: Politika sahibi
99
+ spree/price_list:
100
+ description: Açıklama
101
+ ends_at: Bitiş Tarihi
102
+ match_policy: Eşleştirme Politikası
103
+ name: Ad
104
+ priority: Öncelik
105
+ starts_at: Başlangıç Tarihi
106
+ status: Durum
107
+ spree/price_rule:
108
+ priority: Öncelik
109
+ type: Tür
110
+ spree/product:
111
+ available_on: Stoğa Geliş Tarihi
112
+ cost_currency: Maliyet Kuru
113
+ cost_price: Maliyet Fiyatı
114
+ description: Açıklama
115
+ discontinue_on: Üretimden Kaldırma Tarihi
116
+ less_than: Şundan az
117
+ make_active_at: Aktifleştirme Tarihi
118
+ master_price: Asıl Fiyat
119
+ more_than: Şundan fazla
120
+ name: Ad
121
+ on_hand: Elde
122
+ tax_category: Vergi Türü
123
+ spree/promotion:
124
+ advertise: Duyuru
125
+ code: Kod
126
+ description: Açıklama
127
+ event_name: Olay Adı
128
+ expires_at: Bitiş Tarihi
129
+ generate_code: Kupon kodu oluştur
130
+ name: Ad
131
+ path: Yol
132
+ promotion_category: Promosyon Kategorisi
133
+ starts_at: Başlama Tarihi
134
+ usage_limit: Kullanım Limiti
135
+ spree/promotion_category:
136
+ code: Kod
137
+ spree/property:
138
+ name: Ad
139
+ presentation: Tanıtım
140
+ spree/role:
141
+ name: Ad
142
+ spree/shipment:
143
+ number: Numara
144
+ spree/state:
145
+ abbr: Kısaltma
146
+ name: Ad
147
+ spree/store:
148
+ address: Adres
149
+ contact_phone: İletişim Telefonu
150
+ preferred_digital_asset_authorized_clicks: İndirme tıklama sınırı
151
+ preferred_digital_asset_authorized_days: İndirme gün sınırı
152
+ preferred_limit_digital_download_count: Dijital bağlantı indirme sayısını sınırla
153
+ preferred_limit_digital_download_days: Dijital bağlantı indirme günlerini sınırla
154
+ seo_robots: SEO Robotları
155
+ storefront_custom_code_body_end: Body etiketi kapanmadan önceki Özel Kod
156
+ storefront_custom_code_body_start: Body etiketi açıldıktan sonraki Özel Kod
157
+ storefront_custom_code_head: Sayfa başlığındaki Özel Kod
158
+ spree/store_credit:
159
+ amount_used: Kullanılan tutar
160
+ spree/tax_category:
161
+ description: Açıklama
162
+ name: Ad
163
+ spree/tax_rate:
164
+ amount: Miktar
165
+ included_in_price: Fiyata Dahil
166
+ show_rate_in_label: Oranları etikette göster
167
+ spree/taxon:
168
+ name: Ad
169
+ permalink: Kalıcı Bağlantı
170
+ position: Konum
171
+ sort_order: Sıralama Düzeni
172
+ spree/taxonomy:
173
+ name: Ad
174
+ spree/user:
175
+ avatar: Avatar
176
+ email: E-posta
177
+ password: Şifre
178
+ password_confirmation: Şifre Tekrarı
179
+ spree/variant:
180
+ cost_currency: Maliyet Kuru
181
+ cost_price: Maliyet Fiyatı
182
+ depth: Derinlik
183
+ height: Yükseklik
184
+ price: Fiyat
185
+ sku: SKU
186
+ weight: Ağırlık
187
+ width: Genişlik
188
+ spree/zone:
189
+ description: Açıklama
190
+ name: Ad
191
+ user:
192
+ current_sign_in: Mevcut giriş zamanı
193
+ last_sign_in: Son giriş zamanı
194
+ sign_in_count: Giriş sayısı
195
+ errors:
196
+ messages:
197
+ blank: boş olamaz
198
+ models:
199
+ spree/allowed_origin:
200
+ attributes:
201
+ origin:
202
+ must_be_origin_only: yalnızca bir kaynak (şema ve ana bilgisayar) olmalıdır; yol, sorgu veya parça içermemelidir
203
+ spree/credit_card:
204
+ attributes:
205
+ base:
206
+ card_expired: Kart süresi doldu
207
+ spree/gift_card:
208
+ attributes:
209
+ base:
210
+ cannot_destroy_used_gift_card: Kullanılmış bir hediye kartı silinemez
211
+ spree/import:
212
+ attributes:
213
+ attachment:
214
+ content_type: izin verilmeyen bir içerik türüne sahip
215
+ type:
216
+ inclusion: izin verilen türler listesinde yer almıyor
217
+ spree/market:
218
+ attributes:
219
+ base:
220
+ cannot_destroy_default_market: Varsayılan pazar silinemez.
221
+ cannot_destroy_last_market: Tek pazar silinemez.
222
+ spree/market_country:
223
+ attributes:
224
+ country:
225
+ already_in_market: bu mağazada zaten başka bir pazara atanmış
226
+ not_in_shipping_zone: herhangi bir kargo bölgesi tarafından kapsanmıyor. Lütfen önce bir kargo bölgesi oluşturun.
227
+ spree/payment:
228
+ attributes:
229
+ amount:
230
+ greater_than_max_amount: izin verilen maksimum tutar olan %{max_amount} değerinden büyük
231
+ spree/price_list:
232
+ attributes:
233
+ ends_at:
234
+ must_be_after_starts_at: başlangıç tarihinden sonra olmalıdır
235
+ spree/product:
236
+ attributes:
237
+ base:
238
+ cannot_destroy_if_attached_to_line_items: Verilmiş Siparişlere eklenen Ürünler silinemez. Bu durumlarda lütfen onları üretimden kaldırın.
239
+ discontinue_on:
240
+ invalid_date_range: satışa sunulma tarihinden sonra olmalıdır
241
+ spree/product_publication:
242
+ attributes:
243
+ unpublished_at:
244
+ must_be_after_published_at: yayınlanma tarihinden sonra olmalıdır
245
+ spree/promotion:
246
+ attributes:
247
+ expires_at:
248
+ invalid_date_range: başlangıç tarihinden sonra olmalıdır
249
+ spree/store:
250
+ attributes:
251
+ base:
252
+ cannot_destroy_only_store: Tek Mağaza silinemez.
253
+ spree/store_credit:
254
+ attributes:
255
+ amount_authorized:
256
+ exceeds_total_credits: Toplam krediyi aşıyor.
257
+ amount_used:
258
+ cannot_be_greater_than_amount: Tutardan büyük olamaz.
259
+ greater_than_zero_restrict_delete: sıfırdan büyük. Mağaza kredisi silinemez.
260
+ spree/user:
261
+ attributes:
262
+ bill_address_id:
263
+ belongs_to_other_user: başka bir kullanıcıya ait
264
+ deprecated_in_completed_order: tamamlanmış siparişte kullanımdan kaldırıldı
265
+ ship_address_id:
266
+ belongs_to_other_user: başka bir kullanıcıya ait
267
+ deprecated_in_completed_order: tamamlanmış siparişte kullanımdan kaldırıldı
268
+ spree/variant:
269
+ attributes:
270
+ base:
271
+ cannot_destroy_if_attached_to_line_items: Verilmiş Siparişlere eklenen Çeşitler silinemez. Bu durumlarda lütfen onları üretimden kaldırın.
272
+ spree/webhook_endpoint:
273
+ attributes:
274
+ url:
275
+ internal_address_not_allowed: dahili veya özel bir ağ adresine işaret etmemelidir
276
+ models:
277
+ spree/address:
278
+ one: Adresler
279
+ other: Adresler
280
+ spree/classification:
281
+ one: Sınıflandırma
282
+ other: Sınıflandırmalar
283
+ spree/country:
284
+ one: Ülkeler
285
+ other: Ülkeler
286
+ spree/credit_card:
287
+ one: Kredi Kartları
288
+ other: Kredi Kartları
289
+ spree/customer_group:
290
+ one: Müşteri Grubu
291
+ other: Müşteri Grupları
292
+ spree/customer_group_user:
293
+ one: Müşteri Grubu Kullanıcısı
294
+ other: Müşteri Grubu Kullanıcıları
295
+ spree/export:
296
+ one: Dışa Aktarma
297
+ other: Dışa Aktarmalar
298
+ spree/integration:
299
+ one: Entegrasyon
300
+ other: Entegrasyonlar
301
+ spree/inventory_unit:
302
+ one: Stok Birimi
303
+ other: Envanter Birimleri
304
+ spree/line_item:
305
+ one: Kalem
306
+ other: Sipariş Kalemleri
307
+ spree/option_type:
308
+ one: Seçenek Türü
309
+ other: Seçenek Türleri
310
+ spree/option_value:
311
+ one: Seçenek Değeri
312
+ other: Seçenek Değerleri
313
+ spree/order:
314
+ one: Siparişler
315
+ other: Siparişler
316
+ spree/payment:
317
+ one: Ödemeler
318
+ other: Ödemeler
319
+ spree/payment_method:
320
+ one: Ödeme Yöntemi
321
+ other: Ödeme Yöntemleri
322
+ spree/price:
323
+ one: Fiyat
324
+ other: Fiyatlar
325
+ spree/price_list:
326
+ one: Fiyat Listesi
327
+ other: Fiyat Listeleri
328
+ spree/price_rule:
329
+ one: Fiyat Kuralı
330
+ other: Fiyat Kuralları
331
+ spree/product:
332
+ one: Ürünler
333
+ other: Ürünler
334
+ spree/promotion:
335
+ one: Promosyon
336
+ other: Promosyonlar
337
+ spree/promotion_category:
338
+ one: Promosyon Kategorisi
339
+ other: Promosyon Kategorileri
340
+ spree/property:
341
+ one: Özellikler
342
+ other: Özellikler
343
+ spree/refund_reason:
344
+ one: Geri ödeme sebebi
345
+ other: İade Nedenleri
346
+ spree/role:
347
+ one: Roller
348
+ other: Roller
349
+ spree/shipment:
350
+ one: Kargolar
351
+ other: Kargolar
352
+ spree/shipping_method:
353
+ one: Kargo Yöntemi
354
+ other: Kargo Yöntemleri
355
+ spree/state:
356
+ one: Bölgeler
357
+ other: İller
358
+ spree/stock_location:
359
+ one: Stok lokasyonu
360
+ other: Stok Konumları
361
+ spree/stock_movement:
362
+ one: Stok hareketi
363
+ other: Stok Hareketleri
364
+ spree/stock_transfer:
365
+ one: Stok transferi
366
+ other: Stok Transferleri
367
+ spree/store:
368
+ one: Mağaza
369
+ other: Mağazalar
370
+ spree/store_credit:
371
+ one: Mağaza Kredisi
372
+ other: Mağaza Kredileri
373
+ spree/tax_category:
374
+ one: Vergi Sınıfları
375
+ other: Vergi Kategorileri
376
+ spree/tax_rate:
377
+ one: Vergi Oranları
378
+ other: Vergi Oranları
379
+ spree/taxon:
380
+ one: Gruplar
381
+ other: Kategoriler
382
+ spree/taxonomy:
383
+ one: Gruplandırmalar
384
+ other: Kategoriler
385
+ spree/user:
386
+ one: Kullanıcılar
387
+ other: Kullanıcılar
388
+ spree/variant:
389
+ one: Çeşitler
390
+ other: Çeşitler
391
+ spree/zone:
392
+ one: Bölgeler
393
+ other: Bölgeler
394
+ errors:
395
+ messages:
396
+ already_confirmed: zaten onaylanmış
397
+ not_found: bulunamadı
398
+ not_locked: kilitli değil
399
+ not_saved:
400
+ one: '1 hata bu %{resource} kaydının kaydedilmesini engelledi:'
401
+ other: "%{count} hata bu %{resource} kaydının kaydedilmesini engelledi:"
402
+ number:
403
+ percentage:
404
+ format:
405
+ precision: 1
406
+ spree:
407
+ accepts_email_marketing: E-posta pazarlamasını kabul ediyor
408
+ account: Hesap
409
+ active: Etkin
410
+ address: Adres
411
+ address1: Adres
412
+ address2: Adres(Devamı)
413
+ adjustment: Fiyat ayarlamaları
414
+ adjustment_labels:
415
+ tax_rates:
416
+ excluding_tax: "%{name}%{amount}"
417
+ including_tax: "%{name}%{amount} (Fiyata Dahil)"
418
+ adjustments_deleted: Düzeltmeler Silindi
419
+ admin_user_mailer:
420
+ password_reset_email:
421
+ action: Parolayı Sıfırla
422
+ expiry_notice: Bu parola sıfırlama bağlantısının süresi yakında dolacak. Bu talebi siz göndermediyseniz herhangi bir işlem yapmanıza gerek yoktur.
423
+ greeting: Merhaba %{name},
424
+ ignore_notice: Parola sıfırlama talebinde bulunmadıysanız bu e-postayı güvenle yok sayabilirsiniz. Parolanız değiştirilmeyecektir.
425
+ instructions: "%{store_name} yönetici hesabınızın parolasını sıfırlamak için bir talep aldık. Yeni bir parola seçmek için aşağıdaki düğmeye tıklayın."
426
+ subject: Parola Sıfırlama Talimatları
427
+ all: Tümü
428
+ amount: Miktar
429
+ api_key_no_current_key: Bu isteğin kimliğini doğrulayan bir API anahtarı yok
430
+ api_key_scopes_immutable: anahtar oluşturulduktan sonra değiştirilemez; ihtiyacınız olan kapsamlarla yeni bir anahtar oluşturun ve bunu iptal edin
431
+ availability: uygunluk
432
+ backorderable: İade Edilebilir
433
+ bill_address: Fatura Adresi
434
+ billing_address: Fatura Adresi
435
+ calculator: Hesap Makinesi
436
+ canceled: İptal Edildi
437
+ cannot_be_destroyed: Sipariş silinemez.
438
+ capture: Yakala
439
+ cart: Sepet
440
+ cart_already_updated: Sepet zaten güncellendi.
441
+ cart_line_item:
442
+ delivery_unavailable: "%{li_name} seçilen adrese teslim edilemiyor"
443
+ discontinued: "%{li_name} üretimden kaldırıldığı için çıkarıldı"
444
+ out_of_stock: "%{li_name} stokta kalmadığı için çıkarıldı"
445
+ categories: Kategoriler
446
+ category: Kategori
447
+ channel: Satış kanalı
448
+ channels: Satış kanalları
449
+ checkout: Ödeme
450
+ checkout_requirements:
451
+ email_required: E-posta adresi gereklidir
452
+ line_items_required: Sepetinize en az bir ürün ekleyin
453
+ payment_required: Bir ödeme yöntemi ekleyin
454
+ ship_address_required: Kargo adresi gereklidir
455
+ city: Şehir
456
+ color_code: Renk Kodu
457
+ company: Şirket
458
+ compare_at_amount: Karşılaştırma tutarı
459
+ compare_at_price: Karşılaştırma fiyatı
460
+ complete: tamamı
461
+ confirm: Onay
462
+ cost_price: Maliyet Fiyatı
463
+ count_on_hand: Elde olan miktar
464
+ country: Ülke
465
+ coupon_code: Kupon kodu
466
+ coupon_code_already_applied: Girdiğiniz kupon kodu bu siparişe önceden uygulandı
467
+ coupon_code_applied: Kupon kodunuz siparişinize başarıyla uygulandı.
468
+ coupon_code_better_exists: Daha önce girdiğiniz kupon kodu daha kazançlıydı
469
+ coupon_code_expired: Kupon kodunun süresi geçmiş
470
+ coupon_code_max_usage: Kupon kodu kullanma limitine ulaşıldı
471
+ coupon_code_not_eligible: Kupon kodu bu siparişe uygulanabilir değil
472
+ coupon_code_not_found: Girdiğiniz kupon kodu bulunamadı. Lütfen tekrar deneyiniz.
473
+ coupon_code_used: Girdiğiniz kupon kodu zaten kullanılmış. Lütfen tekrar deneyin.
474
+ created_at: Oluşturulma zamanı
475
+ credit_card: Kredi Kartı
476
+ currency: Kur
477
+ currency_not_supported_by_store: bu mağaza tarafından desteklenmiyor
478
+ customer: Müşteri
479
+ customers: Müşteriler
480
+ default: Varsayılan
481
+ default_stock_location_name: Mağaza konumu
482
+ default_wishlist_name: İstek Listesi
483
+ delivery: Teslimat
484
+ depth: Derinlik
485
+ description: Açıklama
486
+ destination: Gideceği Yer
487
+ destroy: Sil
488
+ details: Ayrıntılar
489
+ digital:
490
+ digital_delivery: Dijital Teslimat
491
+ digital_assets: Dijital varlıklar
492
+ discontinued: Üretimden Kaldırıldı
493
+ discontinued_variants_present: Bu siparişteki bazı kalemlerde artık mevcut olmayan ürünler bulunuyor.
494
+ display_delivery_range: "%{delivery_range} iş günü içinde teslimat"
495
+ draft: Taslak
496
+ eligibility_errors:
497
+ messages:
498
+ missing_product: Ürün bulunamadı
499
+ missing_taxon: Sınıflandırma bulunamadı
500
+ no_matching_channel: Bu kupon kodu bu satış kanalı için geçerli değildir.
501
+ no_matching_market: Bu kupon kodu pazarınızda geçerli değildir.
502
+ no_matching_taxons: Eşleşen ürün yok
503
+ not_first_order: İlk sipariş değil
504
+ wrong_country: Bu kupon kodu ülkenizde geçerli değil
505
+ email: E-posta
506
+ error: hata
507
+ error_user_destroy_with_orders: Siparişlerle ilişkili kullanıcı silinemez
508
+ error_user_does_not_have_any_store_credits: Kullanıcının kullanılabilir Mağaza Kredisi yok
509
+ errors:
510
+ messages:
511
+ cannot_delete_default_channel: Varsayılan kanal silinemez. Önce başka bir kanalı varsayılan yapın.
512
+ channel_store_mismatch: aynı mağazaya ait olmalıdır
513
+ invalid_order_routing_rule: kayıtlı bir sipariş yönlendirme kuralı değil
514
+ invalid_order_routing_strategy: kayıtlı bir sipariş yönlendirme stratejisi değil
515
+ store_association_can_not_be_changed: Mağaza ilişkilendirmesi değiştirilemez
516
+ store_is_already_set: Mağaza zaten ayarlanmış
517
+ expired: Süresi doldu
518
+ export_mailer:
519
+ export_done:
520
+ message: İyi iş, dışa aktarmanız hazır! Lütfen indirmek için aşağıdaki bağlantıyı kullanın.
521
+ subject: "%{export_number} numaralı dışa aktarmanız başarıyla işlendi!"
522
+ greeting: Merhaba %{user_name},
523
+ field: Alan
524
+ first_name: İsim
525
+ flat_percent: Sabit Yüzde
526
+ flat_rate_per_order: Sabit Oran (sipariş bazlı)
527
+ flexible_rate: Esnek Oran
528
+ free: Ücretsiz
529
+ gateway: Yöntem
530
+ gateway_error: Yöntem Hatası
531
+ gift_card: Hediye Kartı
532
+ gift_card_already_redeemed: Hediye Kartı zaten kullanıldı.
533
+ gift_card_applied: Hediye Kartı siparişinize başarıyla uygulandı!
534
+ gift_card_customer_not_logged_in: Hediye Kartı misafir kullanıcıyla uygulanamaz.
535
+ gift_card_expired: Hediye Kartının süresi doldu.
536
+ gift_card_mismatched_currency: Hediye Kartı mevcut para birimiyle uygulanamaz.
537
+ gift_card_mismatched_customer: Bu hediye kartı başka bir kullanıcıyla ilişkilendirilmiş.
538
+ gift_card_not_found: Hediye Kartı bulunamadı.
539
+ gift_card_removed: Hediye Kartı siparişinizden başarıyla çıkarıldı
540
+ gift_card_using_store_credit_error: Mağaza kredisini uyguladıktan sonra Hediye Kartını uygulayamazsınız.
541
+ height: Yükseklik
542
+ i18n:
543
+ this_file_language: Türkçe (TR)
544
+ idempotency_key_reused: Bu Idempotency-Key farklı istek parametreleriyle zaten kullanıldı.
545
+ image: Resim
546
+ import: İçe Aktar
547
+ in_stock: Stokta
548
+ inactive: Pasif
549
+ incomplete: Tamamlanmamış
550
+ internal_note: Dahili Not
551
+ inventory: Stok
552
+ invitation_mailer:
553
+ greeting: Merhaba %{user_name},
554
+ invitation_accepted:
555
+ body: "%{invitee_name}, %{resource_name} hesabına katılma davetinizi kabul etti"
556
+ subject: "%{invitee_name}, %{resource_name} hesabına katılma davetinizi kabul etti"
557
+ invitation_email:
558
+ body: "%{inviter_name} sizi %{resource_name} hesabına katılmaya davet etti"
559
+ link_description: 'Bu daveti kabul etmek için lütfen aşağıdaki bağlantıya tıklayın:'
560
+ subject: "%{resource_name} hesabına katılma daveti"
561
+ iso: ISO Alpha-2
562
+ item: Ürün
563
+ items_cannot_be_shipped: Seçtiğiniz ülkeye gönderim yapılamamaktadır
564
+ key: Anahtar
565
+ kind: Tür
566
+ label: Etiket
567
+ last_name: Soyisim
568
+ line_item: Sipariş Kalemi
569
+ line_items: Sipariş kalemleri
570
+ link: Bağlantı
571
+ locale: Dil
572
+ locale_not_supported_by_store: bu mağaza tarafından desteklenmiyor
573
+ manual: Manuel
574
+ market: Pazar
575
+ me_no_current_user: Bu isteğin kimliğini doğrulayan bir yönetici kullanıcısı yok
576
+ media: Medya
577
+ meta_description: Meta Açıklaması
578
+ meta_keywords: Meta Kelimeleri
579
+ meta_title: Meta Başlığı
580
+ metadata: Meta verisi
581
+ min_quantity: Min Miktar
582
+ month: Ay
583
+ name: İsim
584
+ new_variant: Yeni Değişken
585
+ no_cc_type: Yok
586
+ no_payment_found: Hiçbir ödeme bulunamadı
587
+ none: Hiçbiri
588
+ number: Numara
589
+ on_hand: Elde
590
+ only_active_products_can_be_added_to_cart: Taslak ve arşivlenmiş ürünler sepete eklenemez, lütfen önce ürünü aktif olarak işaretleyin.
591
+ open: Açık
592
+ option_name: Seçenek adı
593
+ option_type: Seçenek Tipi
594
+ option_value: Seçenek Değeri
595
+ options: Seçenekler
596
+ or: veya
597
+ order: Sipariş
598
+ order_routing:
599
+ strategies:
600
+ legacy: Eski
601
+ rules: Kurallar (sıralı)
602
+ order_summary: Sipariş Özeti
603
+ orders: Siparişler
604
+ out_of_stock: Stokta Yok
605
+ password: Şifre
606
+ path: Yol
607
+ payment: Ödeme
608
+ payment_method: Ödeme Yöntemi
609
+ payment_method_not_supported: Ödeme yöntemi desteklenmiyor
610
+ payment_methods: Ödeme Yöntemleri
611
+ payment_processing_failed: Ödeme gerçekleştirilemedi, lütfen girmiş olduğunuz bilgileri kontrol ediniz
612
+ payment_source: Ödeme kaynağı
613
+ percent: Yüzde
614
+ percent_per_item: Ürün Başına Yüzde
615
+ phone: Telefon
616
+ price: Fiyat
617
+ price_range: Fiyat Aralığı
618
+ price_rules:
619
+ channel_rule:
620
+ description: Satış kanalına göre fiyatlandırma uygulayın
621
+ customer_group_rule:
622
+ description: Belirli müşteri gruplarına fiyatlandırma uygula
623
+ price_sack: Fiyat Torbası
624
+ prices: Fiyatlar
625
+ privacy_policy: Gizlilik Politikası
626
+ processing: İşleniyor
627
+ product: Ürün
628
+ product_translations: Ürün Çevirileri
629
+ products: Ürünler
630
+ products_cannot_be_shipped: Şu anda %{product_names} ürününü mevcut konumunuza gönderemiyoruz. Lütfen kargo adresinizi değiştirin veya %{product_names} ürününü sepetinizden çıkarın.
631
+ promotion: Promosyon
632
+ promotion_action_types:
633
+ create_adjustment:
634
+ description: Sipariş için bir promosyon kredisi oluşturur
635
+ name: Kredi oluştur
636
+ create_line_items:
637
+ description: Sepeti tanımlanmış değişkenlerle doldurur
638
+ name: Sıralı ürünler oluştur
639
+ promotion_actions: Hareketler
640
+ promotion_already_used: Zaten uygulanmış bir promosyonu silemezsiniz
641
+ promotion_label: Promosyon (%{name})
642
+ promotion_rule_types:
643
+ category:
644
+ description: Sipariş belirtilen kategorilerdeki ürünleri içeriyor
645
+ name: Kategoriler
646
+ channel:
647
+ description: Belirtilen kanal(lar) üzerinden verilen siparişlerle sınırla
648
+ name: Kanal(lar)
649
+ country:
650
+ description: Belirli bir ülkede kargo adresi olan siparişlerle sınırla
651
+ name: Ülke
652
+ currency:
653
+ description: Belirli bir para birimindeki siparişlerle sınırla
654
+ name: Para Birimi
655
+ customer:
656
+ description: Yalnızca belirtilen müşteriler için kullanılabilir
657
+ name: Müşteriler
658
+ customer_group:
659
+ description: Yalnızca belirtilen müşteri grubundaki/gruplarındaki müşteriler için kullanılabilir
660
+ name: Müşteri Grubu/Grupları
661
+ customer_logged_in:
662
+ description: Yalnızca giriş yapmış müşteriler için kullanılabilir
663
+ name: Yalnızca giriş yapmış müşteriler
664
+ first_order:
665
+ description: Müşterinin ilk siparişi olmak zorundadır
666
+ name: İlk sipariş
667
+ item_total:
668
+ description: Sipariş toplamı bu şartları sağlamalıdır
669
+ name: Ürün toplamı
670
+ market:
671
+ description: Belirtilen pazar(lar)da verilen siparişlerle sınırla
672
+ name: Pazar(lar)
673
+ product:
674
+ description: Sipariş sadece tanımlanmış ürünleri içerir
675
+ name: Ürün(ler)
676
+ promotions: Promosyonlar
677
+ quantity: Miktar
678
+ query: Sorgu
679
+ reason: Sebep
680
+ received: Gelen
681
+ reference: Referans
682
+ refund: Geri Ödeme
683
+ refund_amount: İade Tutarı
684
+ registration: Kayıt
685
+ remove: Kaldır
686
+ remove_gift_card_on_completed_order_error: Sipariş verildikten sonra hediye kartını çıkaramazsınız
687
+ resellable: Yeniden satılabilir
688
+ resend: Tekrar Gönder
689
+ response_code: Yanıt Kodu
690
+ return: iade
691
+ returned: İade Edilmiş
692
+ returns_policy: İade Politikası
693
+ row: Satır
694
+ rules: Kurallar
695
+ say_no: Hayır
696
+ say_yes: Evet
697
+ scope: Kapsam
698
+ selected_quantity_not_available: seçilen miktar %{item} için mevcut değil.
699
+ ship: kargo
700
+ ship_address: Kargo Adresi
701
+ shipment: Kargo
702
+ shipped: Kargolanan
703
+ shipping: Kargolama
704
+ shipping_address: Kargo Adresi
705
+ shipping_flat_rate_per_item: Paketteki her bir ürün için sabit oran
706
+ shipping_flat_rate_per_order: Sabit oran
707
+ shipping_flexible_rate: Paketteki her bir ürün için değişken oran
708
+ shipping_policy: Kargo Politikası
709
+ shipping_price_sack: Fiyat pakedi
710
+ shipping_rates:
711
+ display_price:
712
+ excluding_tax: "%{price} (+ %{tax_amount} %{tax_rate_name})"
713
+ including_tax: "%{price} (%{tax_amount} %{tax_rate_name} dahil)"
714
+ sku: Stok Kodu
715
+ slug: slug
716
+ source: Kaynak
717
+ status: Durum
718
+ stock_location: Stok Bölgesi
719
+ stock_locations: Stok Bölgeleri
720
+ stock_transfer:
721
+ errors:
722
+ must_have_variant: En az bir çeşit eklemelisiniz
723
+ same_location: hedef konumla aynı olamaz
724
+ variants_unavailable: Bazı çeşitler %{stock} konumunda mevcut değil
725
+ store: Mağaza
726
+ store_credit:
727
+ allocated: Eklendi
728
+ authorized: Yetkilendirildi
729
+ captured: Kullanıldı
730
+ credit: Kredi
731
+ eligible: Uygun
732
+ store_credit_name: Mağaza Kredisi
733
+ store_credit_payment_method:
734
+ currency_mismatch: Mağaza kredisi para birimi sipariş para birimiyle eşleşmiyor
735
+ insufficient_authorized_amount: Yetkilendirilen tutardan fazlası tahsil edilemez
736
+ insufficient_funds: Kalan mağaza kredisi tutarı yeterli değil
737
+ successful_action: Mağaza kredisi %{action} işlemi başarılı
738
+ unable_to_credit: 'Kod kredilendirilemedi: %{auth_code}'
739
+ unable_to_find: Mağaza kredisi bulunamadı
740
+ unable_to_find_for_action: "%{action} işlemi için %{auth_code} yetkilendirme kodlu mağaza kredisi bulunamadı"
741
+ unable_to_void: 'Kod iptal edilemedi: %{auth_code}'
742
+ tags: Etiketler
743
+ tax: Vergi
744
+ tax_category: Vergi Sınıfı
745
+ terms_of_service: Hizmet Şartları
746
+ total: Toplam
747
+ track_inventory: Stoğu takip et
748
+ tracking: Takip
749
+ tracking_number: Takip Numarası
750
+ tracking_url: Takip URL'si
751
+ type: Tip
752
+ unable_to_connect_to_gateway: Ödeme sağlayıcıya bağlanılamıyor.
753
+ updated_at: Güncellenme tarihi
754
+ url: URL
755
+ user: Kullanıcı
756
+ validation:
757
+ must_be_int: bir sayı olmak zorundadır
758
+ value: Değer
759
+ variant: Değişken
760
+ variants: Değişkenler
761
+ verified: Doğrulandı
762
+ void: Geçersiz
763
+ webhook_mailer:
764
+ endpoint_disabled:
765
+ disabled_at_label: Devre dışı bırakılma tarihi
766
+ heading: Webhook Uç Noktası Devre Dışı Bırakıldı
767
+ instructions: Lütfen uç nokta URL'sini ve hizmeti kontrol edin, ardından Ayarlar → Geliştiriciler → Webhook'lar bölümünden yeniden etkinleştirin.
768
+ message: '"%{endpoint_name}" webhook uç noktası, tekrarlanan teslimat hatalarının ardından otomatik olarak devre dışı bırakıldı.'
769
+ name_label: Ad
770
+ reason_label: Neden
771
+ subject: 'Webhook uç noktası devre dışı bırakıldı: %{endpoint_name}'
772
+ url_label: URL
773
+ weight: Ağırlık
774
+ weight_unit: Ağırlık birimi
775
+ width: Genişlik
776
+ year: Yıl
777
+ zip: Posta Kodu