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,753 @@
1
+ ---
2
+ ku:
3
+ activemodel:
4
+ errors:
5
+ messages:
6
+ blank: nikare vala be
7
+ activerecord:
8
+ attributes:
9
+ spree/address:
10
+ address1: ناونیشانی یه‌كه‌م
11
+ address2: ناونیشانی دووه‌م
12
+ city: شار
13
+ company: Pargîdanî
14
+ country: ووڵات
15
+ label: Navê navnîşanê
16
+ phone: ته‌له‌فۆن
17
+ state: پارێزگا
18
+ spree/country:
19
+ iso: ISO
20
+ iso3: ISO3
21
+ iso_name: ISO ناوی
22
+ name: ناو
23
+ numcode: ISO كۆدی
24
+ spree/credit_card:
25
+ cc_type: جۆر
26
+ month: مانگ
27
+ number: ژماره‌
28
+ verification_value: Verification Value
29
+ year: ساڵ
30
+ spree/customer_group:
31
+ description: Şirove
32
+ name: Nav
33
+ spree/gift_card:
34
+ amount_used: Mîqdara bikaranînî
35
+ expires_at: Diqede di
36
+ spree/import:
37
+ preferred_delimiter: Veqetandek
38
+ spree/import_mapping:
39
+ file_column: Stûna Pelê
40
+ schema_field: Qada Şemayê
41
+ spree/import_row:
42
+ row_number: Hejmar
43
+ spree/inventory_unit:
44
+ state: پارێزگا
45
+ spree/invitation:
46
+ inviter: Vexwendker
47
+ spree/line_item:
48
+ price: نرخ
49
+ quantity: چه‌ندێتی
50
+ spree/option_type:
51
+ filterable: Parzûnbar
52
+ kind: Cure
53
+ name: ناو
54
+ spree/option_value:
55
+ color_code: Koda Rengê
56
+ image: Wêneya Nimûnê
57
+ spree/order:
58
+ checkout_complete: Checkout Complete
59
+ completed_at: Completed At
60
+ coupon_code: Coupon Code
61
+ created_at: Order Date
62
+ email: Customer E-Mail
63
+ internal_note: Têbîniya Hundirîn
64
+ ip_address: IP Address
65
+ item_count: Tişt
66
+ item_total: Item Total
67
+ number: ژماره‌
68
+ payment_state: Payment State
69
+ shipment_state: Shipment State
70
+ special_instructions: Special Instructions
71
+ state: پارێزگا
72
+ total: گشتی
73
+ spree/order/bill_address:
74
+ address1: Billing address street
75
+ city: Billing address city
76
+ phone: Billing address phone
77
+ state: Billing address county
78
+ spree/order/ship_address:
79
+ address1: Shipping address street
80
+ city: Shipping address city
81
+ phone: Shipping address phone
82
+ state: Shipping address county
83
+ spree/payment:
84
+ amount: Amount
85
+ number: Hejmar
86
+ spree/payment_method:
87
+ name: ناو
88
+ spree/policy:
89
+ body: Naverok
90
+ owner: Polîtîka ji bo
91
+ spree/price_list:
92
+ description: Şirove
93
+ ends_at: Diqede di
94
+ match_policy: Polîtîkaya Lihevhatinê
95
+ name: Nav
96
+ priority: Pêşîn
97
+ starts_at: Dest pê dike di
98
+ status: Rewş
99
+ spree/price_rule:
100
+ priority: Pêşîn
101
+ type: Cure
102
+ spree/product:
103
+ available_on: Available On
104
+ cost_currency: Cost Currency
105
+ cost_price: Cost Price
106
+ description: Description
107
+ discontinue_on: Rawestandin di
108
+ less_than: Kêmtir ji
109
+ make_active_at: Çalakkirin di
110
+ master_price: Master Price
111
+ more_than: Zêdetir ji
112
+ name: ناو
113
+ on_hand: On Hand
114
+ tax_category: Tax Category
115
+ spree/promotion:
116
+ advertise: Advertise
117
+ code: Code
118
+ description: Description
119
+ event_name: Event ناو
120
+ expires_at: Expires At
121
+ generate_code: Koda kûponê çêbike
122
+ name: ناو
123
+ path: Path
124
+ promotion_category: Kategoriya Kampanyayê
125
+ starts_at: Starts At
126
+ usage_limit: Usage Limit
127
+ spree/promotion_category:
128
+ code: Kod
129
+ spree/property:
130
+ name: ناو
131
+ presentation: Presentation
132
+ spree/role:
133
+ name: ناو
134
+ spree/shipment:
135
+ number: Hejmar
136
+ spree/state:
137
+ abbr: Abbreviation
138
+ name: ناو
139
+ spree/store:
140
+ address: Navnîşan
141
+ contact_phone: Telefona Têkilî
142
+ preferred_digital_asset_authorized_clicks: Sînorê tikandinên daxistinê
143
+ preferred_digital_asset_authorized_days: Sînorê rojên daxistinê
144
+ preferred_limit_digital_download_count: Sînorê hejmara daxistina lînkên dîjîtal
145
+ preferred_limit_digital_download_days: Sînorê rojên daxistina lînkên dîjîtal
146
+ seo_robots: Robotên SEO
147
+ storefront_custom_code_body_end: Koda Taybet beriya girtina tagê body
148
+ storefront_custom_code_body_start: Koda Taybet piştî vekirina tagê body
149
+ storefront_custom_code_head: Koda Taybet di serê rûpelê de
150
+ spree/store_credit:
151
+ amount_used: Mîqdara bikaranînî
152
+ spree/tax_category:
153
+ description: Description
154
+ name: ناو
155
+ spree/tax_rate:
156
+ amount: Rate
157
+ included_in_price: Included in Price
158
+ show_rate_in_label: Show rate in label
159
+ spree/taxon:
160
+ name: ناو
161
+ permalink: Permalink
162
+ position: Position
163
+ sort_order: Rêza Rêzkirinê
164
+ spree/taxonomy:
165
+ name: ناو
166
+ spree/user:
167
+ avatar: Avatar
168
+ email: Email
169
+ password: Password
170
+ password_confirmation: Password Confirmation
171
+ spree/variant:
172
+ cost_currency: Cost Currency
173
+ cost_price: Cost Price
174
+ depth: Depth
175
+ height: Height
176
+ price: Price
177
+ sku: SKU
178
+ weight: Weight
179
+ width: Width
180
+ spree/zone:
181
+ description: Description
182
+ name: ناو
183
+ user:
184
+ current_sign_in: Têketina niha di
185
+ last_sign_in: Têketina dawî di
186
+ sign_in_count: Hejmara têketinan
187
+ errors:
188
+ messages:
189
+ blank: nikare vala be
190
+ models:
191
+ spree/allowed_origin:
192
+ attributes:
193
+ origin:
194
+ must_be_origin_only: divê bingehek be (şema û hostê) bê rê, lêpirsîn an perçe
195
+ spree/credit_card:
196
+ attributes:
197
+ base:
198
+ card_expired: Card has expired
199
+ spree/gift_card:
200
+ attributes:
201
+ base:
202
+ cannot_destroy_used_gift_card: Karta diyariyê ya bikaranî nayê jêbirin
203
+ spree/import:
204
+ attributes:
205
+ attachment:
206
+ content_type: cureyê naverokê ya destûrdayî nîn e
207
+ type:
208
+ inclusion: di lîsteya cureyên destûrdayî de cih nagire
209
+ spree/market:
210
+ attributes:
211
+ base:
212
+ cannot_destroy_default_market: Bazara berbijar nayê jêbirin.
213
+ cannot_destroy_last_market: Bazara tenê nayê jêbirin.
214
+ spree/market_country:
215
+ attributes:
216
+ country:
217
+ already_in_market: berê di vê firotgeyê de ji bazarek din re hatiye veqetandin
218
+ not_in_shipping_zone: ji aliyê tu herêma şandinê ve nayê veguhastin. Ji kerema xwe pêşî herêmek şandinê saz bike.
219
+ spree/payment:
220
+ attributes:
221
+ amount:
222
+ greater_than_max_amount: ji mîqdara herî zêde ya destûrdayî %{max_amount} mezintir e
223
+ spree/price_list:
224
+ attributes:
225
+ ends_at:
226
+ must_be_after_starts_at: divê piştî dema destpêkê be
227
+ spree/product:
228
+ attributes:
229
+ base:
230
+ cannot_destroy_if_attached_to_line_items: Berhemên ku li siparîşên hatine danîn zêdekirî nayên jêbirin. Di vî halî de ji kerema xwe wan rawestîne.
231
+ discontinue_on:
232
+ invalid_date_range: divê piştî dîroka berdestiyê be
233
+ spree/product_publication:
234
+ attributes:
235
+ unpublished_at:
236
+ must_be_after_published_at: divê piştî dîroka weşandinê be
237
+ spree/promotion:
238
+ attributes:
239
+ expires_at:
240
+ invalid_date_range: divê piştî dîroka destpêkê be
241
+ spree/store:
242
+ attributes:
243
+ base:
244
+ cannot_destroy_only_store: Firotgeha tenê nayê jêbirin.
245
+ spree/store_credit:
246
+ attributes:
247
+ amount_authorized:
248
+ exceeds_total_credits: Ji tevahiya krediyan zêdetir e.
249
+ amount_used:
250
+ cannot_be_greater_than_amount: Nikare ji mîqdarê mezintir be.
251
+ greater_than_zero_restrict_delete: ji sifirê mezintir e. Krediya firotgeyê nayê jêbirin.
252
+ spree/user:
253
+ attributes:
254
+ bill_address_id:
255
+ belongs_to_other_user: ji bikarhênerek din e
256
+ deprecated_in_completed_order: di siparîşa temamkirî de betal e
257
+ ship_address_id:
258
+ belongs_to_other_user: ji bikarhênerek din e
259
+ deprecated_in_completed_order: di siparîşa temamkirî de betal e
260
+ spree/variant:
261
+ attributes:
262
+ base:
263
+ cannot_destroy_if_attached_to_line_items: Guhertoyên ku li siparîşên hatine danîn zêdekirî nayên jêbirin. Di vî halî de ji kerema xwe wan rawestîne.
264
+ spree/webhook_endpoint:
265
+ attributes:
266
+ url:
267
+ internal_address_not_allowed: divê li ser navnîşanek torê ya hundirîn an taybet neyê nîşankirin
268
+ models:
269
+ spree/address:
270
+ one: Address
271
+ other: Addresses
272
+ spree/classification:
273
+ one: Dabeşkirin
274
+ other: Dabeşkirin
275
+ spree/country:
276
+ one: Country
277
+ other: Countries
278
+ spree/credit_card:
279
+ one: Credit Card
280
+ other: Credit Cards
281
+ spree/customer_group:
282
+ one: Koma Mişteriyan
283
+ other: Komên Mişteriyan
284
+ spree/customer_group_user:
285
+ one: Bikarhênerê Koma Mişteriyan
286
+ other: Bikarhênerên Koma Mişteriyan
287
+ spree/export:
288
+ one: Hinardekirin
289
+ other: Hinardekirin
290
+ spree/integration:
291
+ one: Entegrasyon
292
+ other: Entegrasyon
293
+ spree/inventory_unit:
294
+ one: Inventory Unit
295
+ other: Inventory Units
296
+ spree/line_item:
297
+ one: Line Item
298
+ other: Line Items
299
+ spree/option_type:
300
+ one: Cureyê Vebijarkê
301
+ other: Cureyên Vebijarkê
302
+ spree/option_value:
303
+ one: Nirxa Vebijarkê
304
+ other: Nirxên Vebijarkê
305
+ spree/order:
306
+ one: Order
307
+ other: Orders
308
+ spree/payment:
309
+ one: Payment
310
+ other: Payments
311
+ spree/payment_method:
312
+ one: Rêbaza Tediyeyê
313
+ other: Rêbazên Tediyeyê
314
+ spree/price:
315
+ one: Biha
316
+ other: Biha
317
+ spree/price_list:
318
+ one: Lîsteya Bihayan
319
+ other: Lîsteyên Bihayan
320
+ spree/price_rule:
321
+ one: Rêzika Bihayê
322
+ other: Rêzikên Bihayê
323
+ spree/product:
324
+ one: Product
325
+ other: Products
326
+ spree/promotion:
327
+ one: Kampanya
328
+ other: Kampanya
329
+ spree/promotion_category:
330
+ one: Kategoriya Kampanyayê
331
+ other: Kategoriyên Kampanyayê
332
+ spree/property:
333
+ one: Property
334
+ other: Properties
335
+ spree/refund_reason:
336
+ one: Sedema Vegerandina Drav
337
+ other: Sedemên Vegerandina Drav
338
+ spree/role:
339
+ one: Roles
340
+ other: Roles
341
+ spree/shipment:
342
+ one: Shipment
343
+ other: Shipments
344
+ spree/shipping_method:
345
+ one: Rêbaza Şandinê
346
+ other: Rêbazên Şandinê
347
+ spree/state:
348
+ one: County
349
+ other: Counties
350
+ spree/stock_location:
351
+ one: Cihê Embarê
352
+ other: Cihên Embarê
353
+ spree/stock_movement:
354
+ one: Tevgera Embarê
355
+ other: Tevgerên Embarê
356
+ spree/stock_transfer:
357
+ one: Veguhastina Embarê
358
+ other: Veguhastinên Embarê
359
+ spree/store:
360
+ one: Firotge
361
+ other: Firotge
362
+ spree/store_credit:
363
+ one: Krediya Firotgeyê
364
+ other: Krediyên Firotgeyê
365
+ spree/tax_category:
366
+ one: Tax Category
367
+ other: Tax Categories
368
+ spree/tax_rate:
369
+ one: Tax Rate
370
+ other: Tax Rates
371
+ spree/taxon:
372
+ one: Taxon
373
+ other: Taxons
374
+ spree/taxonomy:
375
+ one: Taxonomy
376
+ other: Taxonomies
377
+ spree/user:
378
+ one: User
379
+ other: Users
380
+ spree/variant:
381
+ one: Variant
382
+ other: Variants
383
+ spree/zone:
384
+ one: Zone
385
+ other: Zones
386
+ errors:
387
+ messages:
388
+ already_confirmed: was already confirmed
389
+ not_a_number: ne hejmar e
390
+ not_found: not found
391
+ not_locked: was not locked
392
+ not_saved:
393
+ one: '1 error prohibited with %{resource} from being saved:'
394
+ other: "%{count} errors prohibited this %{resource} from being saved:"
395
+ number:
396
+ currency:
397
+ format:
398
+ delimiter: ","
399
+ separator: "."
400
+ percentage:
401
+ format:
402
+ precision: 1
403
+ spree:
404
+ accepts_email_marketing: Bazarkirina bi e-nameyê qebûl dike
405
+ account: Account
406
+ active: Active
407
+ address: Navnîşan
408
+ address1: Address
409
+ address2: Address (contd.)
410
+ adjustment: Adjustment
411
+ adjustment_labels:
412
+ tax_rates:
413
+ excluding_tax: "%{name}%{amount}"
414
+ including_tax: "%{name}%{amount} (Di Bihayê de Tê de Ye)"
415
+ adjustments_deleted: Sererastkirin Hatin Jêbirin
416
+ all: All
417
+ amount: Amount
418
+ api_key_no_current_key: Tu mifteya API ev daxwaz piştrast nekir
419
+ api_key_scopes_immutable: piştî çêkirina mifteyê nayê guhertin; mifteyek nû bi qadên ku hewce ne çêbike û vê betal bike
420
+ availability: berdestî
421
+ backorderable: Backorderable
422
+ bill_address: Bill Address
423
+ billing_address: Billing Address
424
+ calculator: Calculator
425
+ canceled: Hatiye betalkirin
426
+ cannot_be_destroyed: Siparîş nayê jêbirin.
427
+ capture: capture
428
+ cart: Basket
429
+ cart_already_updated: Selik berê hat nûkirin.
430
+ cart_line_item:
431
+ delivery_unavailable: "%{li_name} nikare bo navnîşana hilbijartî bê gihandin"
432
+ discontinued: "%{li_name} hat rakirin ji ber ku rawestiyabû"
433
+ out_of_stock: "%{li_name} hat rakirin ji ber ku temam bûbû"
434
+ categories: Categories
435
+ category: Category
436
+ channel: Kanala firotinê
437
+ channels: Kanalên firotinê
438
+ checkout: Checkout
439
+ checkout_requirements:
440
+ email_required: Navnîşana e-nameyê pêwîst e
441
+ line_items_required: Herî kêm tiştek li selika xwe zêde bike
442
+ payment_required: Rêbazek tediyeyê zêde bike
443
+ ship_address_required: Navnîşana şandinê pêwîst e
444
+ city: Town / City
445
+ color_code: Koda Rengê
446
+ company: Company
447
+ compare_at_amount: Mîqdara berawirdkirinê
448
+ compare_at_price: Bihayê berawirdkirinê
449
+ complete: complete
450
+ confirm: Confirm
451
+ cost_price: Cost Price
452
+ count_on_hand: Count On Hand
453
+ country: Country
454
+ coupon_code: Coupon code
455
+ coupon_code_already_applied: The coupon code has already been applied to this order
456
+ coupon_code_applied: The coupon code was successfully applied to your order.
457
+ coupon_code_better_exists: The previously applied coupon code results in a better deal
458
+ coupon_code_expired: The coupon code is expired
459
+ coupon_code_max_usage: Coupon code usage limit exceeded
460
+ coupon_code_not_eligible: This coupon code is not eligible for this order
461
+ coupon_code_not_found: The coupon code you entered doesn't exist. Please try again.
462
+ coupon_code_used: Koda kûponê ya ku te têxist berê hat bikaranîn. Ji kerema xwe dîsa biceribîne.
463
+ created_at: Created At
464
+ credit_card: Credit Card
465
+ currency: Currency
466
+ currency_not_supported_by_store: ji aliyê vê firotgeyê ve nayê piştevankirin
467
+ customer: Customer
468
+ customers: Mişterî
469
+ default: Default
470
+ default_stock_location_name: Cihê firotgeyê
471
+ default_wishlist_name: Lîsteya Xwestekan
472
+ delivery: Delivery
473
+ depth: Depth
474
+ description: Description
475
+ destination: Destination
476
+ destroy: Destroy
477
+ digital:
478
+ digital_delivery: Radestkirina Dîjîtal
479
+ digital_assets: Mêlakên dîjîtal
480
+ discontinued: Rawestandî
481
+ discontinued_variants_present: Hin tiştên vê siparîşê berhemên wan ên ku êdî berdest nînin hene.
482
+ display_delivery_range: Radestkirin di %{delivery_range} rojên kar de
483
+ draft: Reşnivîs
484
+ eligibility_errors:
485
+ messages:
486
+ no_matching_channel: Ev koda kûponê ji bo vê kanala firotinê ne maqbûl e.
487
+ no_matching_market: Ev koda kûponê di bazara we de ne maqbûl e.
488
+ wrong_country: Ev koda kûponê li welatê te ne maqûl e
489
+ email: Email
490
+ error: error
491
+ error_user_destroy_with_orders: Bikarhênerê ku bi siparîşan ve girêdayî ye nayê jêbirin
492
+ error_user_does_not_have_any_store_credits: Bikarhêner tu krediya firotgeyê ya berdest nîn e
493
+ errors:
494
+ messages:
495
+ cannot_delete_default_channel: Kanala berbijar nayê jêbirin. Pêşî kanalek din wek berbijar dabigire.
496
+ channel_store_mismatch: divê ji heman firotgeyê be
497
+ invalid_order_routing_rule: rêzikek qeydkirî ya rêvebirina siparîşan nîn e
498
+ invalid_order_routing_strategy: stratejiyek qeydkirî ya rêvebirina siparîşan nîn e
499
+ store_association_can_not_be_changed: Girêdana firotgeyê nayê guhertin
500
+ store_is_already_set: Firotge berê hatiye danîn
501
+ expired: Qediyaye
502
+ export_mailer:
503
+ export_done:
504
+ message: Karek baş, hinardekirina te amade ye! Ji kerema xwe ji bo daxistina wê lînka jêrîn bikar bîne.
505
+ subject: Hinardekirina te %{export_number} bi serfirazî hat pêvajokirin!
506
+ greeting: Silav %{user_name},
507
+ field: Qad
508
+ first_name: First ناو
509
+ flat_percent: Flat Percent
510
+ flat_rate_per_order: Flat Rate (per order)
511
+ flexible_rate: Flexible Rate
512
+ free: Belaş
513
+ gateway: Gateway
514
+ gateway_error: Gateway Error
515
+ gift_card: Karta Diyariyê
516
+ gift_card_already_redeemed: Karta Diyariyê berê hat bikaranîn.
517
+ gift_card_applied: Karta Diyariyê bi serfirazî li siparîşa te hat sepandin!
518
+ gift_card_customer_not_logged_in: Karta Diyariyê bi bikarhênerê mêvan nayê sepandin.
519
+ gift_card_expired: Karta Diyariyê qediyaye.
520
+ gift_card_mismatched_currency: Karta Diyariyê bi diravê niha nayê sepandin.
521
+ gift_card_mismatched_customer: Ev karta diyariyê bi bikarhênerek din ve girêdayî ye.
522
+ gift_card_not_found: Karta Diyariyê nehat dîtin.
523
+ gift_card_removed: Karta Diyariyê bi serfirazî ji siparîşa te hat rakirin
524
+ gift_card_using_store_credit_error: Piştî ku te krediya firotgeyê sepand, tu nikarî Karta Diyariyê bisepînî.
525
+ height: Height
526
+ i18n:
527
+ this_file_language: کردی (KU)
528
+ idempotency_key_reused: Ev Idempotency-Key berê bi parametreyên daxwazê yên cûda hatiye bikaranîn.
529
+ image: Image
530
+ import: Înport bike
531
+ in_stock: Di Embarê de
532
+ internal_note: Têbîniya Hundirîn
533
+ inventory: Inventory
534
+ invitation_mailer:
535
+ greeting: Silav %{user_name},
536
+ invitation_accepted:
537
+ body: "%{invitee_name} vexwendina te ya beşdarbûna %{resource_name} qebûl kir"
538
+ subject: "%{invitee_name} vexwendina te ya beşdarbûna %{resource_name} qebûl kir"
539
+ invitation_email:
540
+ body: "%{inviter_name} tu vexwendî ku beşdarî %{resource_name} bibî"
541
+ link_description: 'Ji bo qebûlkirina vê vexwendinê, ji kerema xwe lînka jêrîn bitikîne:'
542
+ subject: Vexwendin ji bo beşdarbûna %{resource_name}
543
+ iso: ISO Alpha-2
544
+ item: Item
545
+ items_cannot_be_shipped: We are unable to ship the selected items to your shipping address. Please choose another shipping address.
546
+ key: Mifte
547
+ kind: Cure
548
+ label: Etîket
549
+ last_name: Last ناو
550
+ line_item: Tişt
551
+ line_items: Tişt
552
+ link: Lînk
553
+ locale: Ziman
554
+ locale_not_supported_by_store: ji aliyê vê firotgeyê ve nayê piştevankirin
555
+ manual: Bi destan
556
+ market: Bazar
557
+ me_no_current_user: Tu bikarhênerê rêveberiyê ev daxwaz piştrast nekir
558
+ media: Medya
559
+ meta_description: Meta Description
560
+ meta_keywords: Meta Keywords
561
+ metadata: Metadata
562
+ min_quantity: Mîqdara Herî Kêm
563
+ month: Month
564
+ name: ناو
565
+ new_variant: New Variant
566
+ no_cc_type: N/A
567
+ none: None
568
+ number: Hejmar
569
+ on_hand: On Hand
570
+ only_active_products_can_be_added_to_cart: Berhemên reşnivîs û arşîvkirî nayên li selikê zêdekirin, ji kerema xwe pêşî berhemê wek çalak nîşan bike.
571
+ open: Open
572
+ option_name: Navê vebijarkê
573
+ option_type: Option Type
574
+ option_value: Option Value
575
+ options: Options
576
+ or: or
577
+ order: Order
578
+ order_routing:
579
+ strategies:
580
+ legacy: Kevneşopî
581
+ rules: Rêzik (bi rêzkirî)
582
+ order_summary: Order Summary
583
+ orders: Orders
584
+ out_of_stock: Out of Stock
585
+ password: Password
586
+ path: Path
587
+ payment: Payment
588
+ payment_method: Payment Method
589
+ payment_methods: Payment Methods
590
+ payment_processing_failed: Payment could not be processed, please check the details you entered
591
+ payment_source: Çavkaniya tediyeyê
592
+ percent: Percent
593
+ percent_per_item: Percent Per Item
594
+ phone: Phone
595
+ price: Price
596
+ price_range: Price Range
597
+ price_rules:
598
+ channel_rule:
599
+ description: Buhayan li gorî kanala firotinê bisepîne
600
+ customer_group_rule:
601
+ description: Bihayê li komên mişterî yên diyarkirî bisepîne
602
+ price_sack: Price Sack
603
+ prices: Biha
604
+ privacy_policy: Polîtîkaya Nepenîtiyê
605
+ processing: Tê pêvajokirin
606
+ product: Product
607
+ product_translations: Wergerên Berhemê
608
+ products: Products
609
+ products_cannot_be_shipped: Em niha nikarin %{product_names} ji cihê te yê niha re bişînin. Ji kerema xwe navnîşana şandinê biguherîne an %{product_names} ji selika xwe rake.
610
+ promotion: Promotion
611
+ promotion_action_types:
612
+ create_adjustment:
613
+ description: Creates a promotion credit adjustment on the order
614
+ name: Create adjustment
615
+ create_line_items:
616
+ description: Populates the cart with the specified quantity of variant
617
+ name: Create line items
618
+ promotion_actions: Actions
619
+ promotion_already_used: Tu nikarî kampanyayek ku berê hatiye sepandin jê bibî
620
+ promotion_label: Kampanya (%{name})
621
+ promotion_rule_types:
622
+ category:
623
+ description: Siparîş berhemên di kategoriyên diyarkirî de digire nav xwe
624
+ name: Kategorî
625
+ channel:
626
+ description: Bi tenê bo siparîşên ku bi kanal(ên) diyarkirî hatine kirin sînorkirî bike
627
+ name: Kanal(ên)
628
+ country:
629
+ description: Bi siparîşên bi navnîşana şandinê ya li welatek diyarkirî sînorkirî
630
+ name: Welat
631
+ currency:
632
+ description: Bi siparîşên bi diravek diyarkirî sînorkirî
633
+ name: Diravan
634
+ customer:
635
+ description: Tenê ji bo mişteriyên diyarkirî berdest e
636
+ name: Mişterî
637
+ customer_group:
638
+ description: Tenê ji bo mişteriyên di koma/komên mişterî yên diyarkirî de berdest e
639
+ name: Koma/Komên Mişteriyan
640
+ customer_logged_in:
641
+ description: Tenê ji bo mişteriyên têketî berdest e
642
+ name: Tenê mişteriyên têketî
643
+ first_order:
644
+ description: Must be the customer's first order
645
+ name: First order
646
+ item_total:
647
+ description: Order total meets these criteria
648
+ name: Item total
649
+ market:
650
+ description: Bi tenê bo siparîşên ku di bazar(ên) diyarkirî de hatine kirin sînorkirî bike
651
+ name: Bazar(ên)
652
+ product:
653
+ description: Order includes specified product(s)
654
+ name: Product(s)
655
+ promotions: Promotions
656
+ quantity: Quantity
657
+ query: Lêpirsîn
658
+ reason: Reason
659
+ received: Received
660
+ reference: Reference
661
+ refund: Refund
662
+ refund_amount: Mîqdara Vegerandinê
663
+ registration: Registration
664
+ remove: Remove
665
+ remove_gift_card_on_completed_order_error: Piştî ku siparîş hat danîn tu nikarî karta diyariyê rakî
666
+ resellable: Ji nû ve firotbar
667
+ resend: Resend
668
+ response_code: Response Code
669
+ return: return
670
+ returned: Returned
671
+ returns_policy: Polîtîkaya Vegerandinê
672
+ row: Rêz
673
+ rules: Rules
674
+ scope: Scope
675
+ selected_quantity_not_available: ji %{item} ya hilbijartî berdest nîn e.
676
+ ship: ship
677
+ ship_address: Ship Address
678
+ shipment: Shipment
679
+ shipped: Shipped
680
+ shipping: Delivery
681
+ shipping_address: Delivery Address
682
+ shipping_flat_rate_per_item: Flat rate per package item
683
+ shipping_flat_rate_per_order: Flat rate
684
+ shipping_flexible_rate: Flexible Rate per package item
685
+ shipping_policy: Polîtîkaya Şandinê
686
+ shipping_price_sack: Price sack
687
+ shipping_rates:
688
+ display_price:
689
+ excluding_tax: "%{price} (+ %{tax_amount} %{tax_rate_name})"
690
+ including_tax: "%{price} (bi %{tax_amount} %{tax_rate_name})"
691
+ sku: SKU
692
+ source: Source
693
+ status: Status
694
+ stock_location: Stock Location
695
+ stock_locations: Stock Locations
696
+ stock_transfer:
697
+ errors:
698
+ must_have_variant: Divê tu herî kêm guhertoyek zêde bikî
699
+ same_location: nikare wek cihê mebestê be
700
+ variants_unavailable: Hin guherto li %{stock} berdest nînin
701
+ store: Store
702
+ store_credit:
703
+ allocated: Hat zêdekirin
704
+ authorized: Destûrdayî
705
+ captured: Bikaranî
706
+ credit: Kredî
707
+ eligible: Maqûl
708
+ store_credit_name: Krediya Firotgeyê
709
+ store_credit_payment_method:
710
+ currency_mismatch: Diravê krediya firotgeyê bi diravê siparîşê re lê nayê
711
+ insufficient_authorized_amount: Ji mîqdara destûrdayî zêdetir nayê girtin
712
+ insufficient_funds: Mîqdara mayî ya krediya firotgeyê têra nake
713
+ successful_action: Krediya firotgeyê ya serfiraz %{action}
714
+ unable_to_credit: 'Koda nayê krediyekirin: %{auth_code}'
715
+ unable_to_find: Krediya firotgeyê nehat dîtin
716
+ unable_to_find_for_action: Krediya firotgeyê ji bo koda destûrê %{auth_code} ji bo kar %{action} nehat dîtin
717
+ unable_to_void: 'Koda nayê betalkirin: %{auth_code}'
718
+ tags: Etîket
719
+ tax: Tax
720
+ tax_category: Tax Category
721
+ terms_of_service: Mercên Karûbarê
722
+ there_are_no_items_for_this_order: There are no items for this order. Please add an item to the order to continue.
723
+ total: Total
724
+ tracking: Tracking
725
+ tracking_number: Tracking Number
726
+ tracking_url: Tracking URL
727
+ type: Type
728
+ unable_to_connect_to_gateway: Unable to connect to gateway.
729
+ updated_at: Hat nûkirin di
730
+ url: URL
731
+ user: User
732
+ validation:
733
+ must_be_int: must be an integer
734
+ value: Value
735
+ variant: Variant
736
+ variants: Variants
737
+ verified: Piştrastkirî
738
+ void: Void
739
+ webhook_mailer:
740
+ endpoint_disabled:
741
+ disabled_at_label: Hat neçalakkirin di
742
+ heading: Xala Dawî ya Webhook Hat Neçalakkirin
743
+ instructions: Ji kerema xwe URL û karûbarê xala dawî kontrol bike, paşê wê di Mîheng → Pêşvebir → Webhook de ji nû ve çalak bike.
744
+ message: Xala dawî ya webhook "%{endpoint_name}" piştî têkçûnên dubare yên radestkirinê bixweber hat neçalakkirin.
745
+ name_label: Nav
746
+ reason_label: Sedem
747
+ subject: 'Xala dawî ya webhook hat neçalakkirin: %{endpoint_name}'
748
+ url_label: URL
749
+ weight: Weight
750
+ weight_unit: Yekeya giraniyê
751
+ width: Width
752
+ year: Year
753
+ zip: Post Code