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,750 @@
1
+ ---
2
+ ro:
3
+ activemodel:
4
+ errors:
5
+ messages:
6
+ blank: nu poate fi gol
7
+ activerecord:
8
+ attributes:
9
+ spree/address:
10
+ address1: Adresă
11
+ address2: Adresă (continuare)
12
+ city: Localitate
13
+ company: Companie
14
+ country: Țara
15
+ label: Numele adresei
16
+ phone: Telefon
17
+ state: Județ / Regiune
18
+ spree/country:
19
+ iso: ISO
20
+ iso3: ISO3
21
+ iso_name: Denumire ISO
22
+ name: Nume
23
+ numcode: Cod ISO
24
+ spree/credit_card:
25
+ base: Bază
26
+ cc_type: Tip
27
+ month: Luna
28
+ number: Număr
29
+ verification_value: Cod de verificare
30
+ year: An
31
+ spree/customer_group:
32
+ description: Descriere
33
+ name: Nume
34
+ spree/gift_card:
35
+ amount_used: Sumă utilizată
36
+ expires_at: Expiră la
37
+ spree/import:
38
+ preferred_delimiter: Delimitator
39
+ spree/import_mapping:
40
+ file_column: Coloană fișier
41
+ schema_field: Câmp schemă
42
+ spree/import_row:
43
+ row_number: Număr
44
+ spree/inventory_unit:
45
+ state: Județ / Regiune
46
+ spree/invitation:
47
+ inviter: Invitator
48
+ spree/line_item:
49
+ price: Preț
50
+ quantity: Cantitate
51
+ spree/option_type:
52
+ filterable: Filtrabil
53
+ kind: Tip
54
+ name: Nume
55
+ spree/option_value:
56
+ color_code: Cod de culoare
57
+ image: Imagine mostră
58
+ spree/order:
59
+ checkout_complete: Comandă finalizată
60
+ completed_at: Finalizată la
61
+ coupon_code: Cod Cupon
62
+ created_at: Data comenzii
63
+ email: E-Mail Client
64
+ internal_note: Notă internă
65
+ ip_address: Adresa IP
66
+ item_count: Articole
67
+ item_total: Total articole
68
+ number: Număr
69
+ payment_state: Stare Plată
70
+ shipment_state: Stare Livrare
71
+ special_instructions: Instrucțiuni speciale
72
+ state: Județ / Regiune
73
+ total: Total
74
+ spree/order/bill_address:
75
+ address1: Strada adresă de facturare
76
+ city: Oraș adresă de facturare
77
+ phone: Telefon adresă de facturare
78
+ state: Județ adresă de facturare
79
+ spree/order/ship_address:
80
+ address1: Stradă adresă de livrare
81
+ city: Oraș adresă de livrare
82
+ phone: Telefon adresă de livrare
83
+ state: Județ adresă de livrare
84
+ spree/payment:
85
+ amount: Valoare
86
+ number: Număr
87
+ spree/payment_method:
88
+ name: Nume
89
+ spree/policy:
90
+ body: Conținut
91
+ owner: Politică pentru
92
+ spree/price_list:
93
+ description: Descriere
94
+ ends_at: Se termină la
95
+ match_policy: Politică de potrivire
96
+ name: Nume
97
+ priority: Prioritate
98
+ starts_at: Începe la
99
+ status: Stare
100
+ spree/price_rule:
101
+ priority: Prioritate
102
+ type: Tip
103
+ spree/product:
104
+ available_on: Disponibil de la
105
+ cost_currency: Valută preț de cost
106
+ cost_price: Preț de cost
107
+ description: Descriere
108
+ discontinue_on: Întrerupt la
109
+ less_than: Mai puțin de
110
+ make_active_at: Activează la
111
+ master_price: Preț de bază
112
+ more_than: Mai mult de
113
+ name: Nume
114
+ on_hand: În stoc
115
+ tax_category: Categorie taxă
116
+ spree/promotion:
117
+ advertise: Promovează
118
+ code: Cod
119
+ description: Descriere
120
+ event_name: Nume eveniment
121
+ expires_at: Expiră la
122
+ generate_code: Generează cod cupon
123
+ name: Nume
124
+ path: Cale
125
+ promotion_category: Categorie de promoție
126
+ starts_at: Începe la
127
+ usage_limit: Limită de folosire
128
+ spree/promotion_category:
129
+ code: Cod
130
+ spree/property:
131
+ name: Nume
132
+ presentation: Descriere
133
+ spree/role:
134
+ name: Nume
135
+ spree/shipment:
136
+ number: Număr
137
+ spree/state:
138
+ abbr: Prescurtare
139
+ name: Nume
140
+ spree/store:
141
+ address: Adresă
142
+ contact_phone: Telefon de contact
143
+ preferred_digital_asset_authorized_clicks: Limită clicuri de descărcare
144
+ preferred_digital_asset_authorized_days: Limită zile de descărcare
145
+ preferred_limit_digital_download_count: Limitează numărul de descărcări ale linkurilor digitale
146
+ preferred_limit_digital_download_days: Limitează zilele de descărcare ale linkurilor digitale
147
+ seo_robots: Roboți SEO
148
+ storefront_custom_code_body_end: Cod personalizat înainte de eticheta de închidere body
149
+ storefront_custom_code_body_start: Cod personalizat după eticheta de deschidere body
150
+ storefront_custom_code_head: Cod personalizat în head-ul paginii
151
+ spree/store_credit:
152
+ amount_used: Sumă utilizată
153
+ spree/tax_category:
154
+ description: Descriere
155
+ name: Nume
156
+ spree/tax_rate:
157
+ amount: Tarif
158
+ included_in_price: Inclus în preț
159
+ show_rate_in_label: Afișează cursul în etichetă
160
+ spree/taxon:
161
+ name: Nume
162
+ permalink: Permalink
163
+ position: Poziție
164
+ sort_order: Ordine de sortare
165
+ spree/taxonomy:
166
+ name: Nume
167
+ spree/user:
168
+ avatar: Avatar
169
+ email: Email
170
+ password: Parolă
171
+ password_confirmation: Confirmare parolă
172
+ spree/variant:
173
+ cost_currency: Valută preț de cost
174
+ cost_price: Preț de cost
175
+ depth: Adâncime
176
+ height: Înălțime
177
+ price: Preț
178
+ sku: Cod produs
179
+ weight: Greutate
180
+ width: Lățime
181
+ spree/zone:
182
+ description: Descriere
183
+ name: Naume
184
+ user:
185
+ current_sign_in: Autentificarea curentă la
186
+ last_sign_in: Ultima autentificare la
187
+ sign_in_count: Număr de autentificări
188
+ errors:
189
+ messages:
190
+ blank: nu poate fi gol
191
+ models:
192
+ spree/allowed_origin:
193
+ attributes:
194
+ origin:
195
+ must_be_origin_only: trebuie să fie o origine (schemă și gazdă) fără cale, interogare sau fragment
196
+ spree/credit_card:
197
+ attributes:
198
+ base:
199
+ card_expired: Cartela a expirat
200
+ spree/gift_card:
201
+ attributes:
202
+ base:
203
+ cannot_destroy_used_gift_card: Nu se poate șterge un card cadou utilizat
204
+ spree/import:
205
+ attributes:
206
+ attachment:
207
+ content_type: are un tip de conținut nepermis
208
+ type:
209
+ inclusion: nu este inclus în lista tipurilor permise
210
+ spree/market:
211
+ attributes:
212
+ base:
213
+ cannot_destroy_default_market: Nu se poate șterge piața implicită.
214
+ cannot_destroy_last_market: Nu se poate șterge singura piață.
215
+ spree/market_country:
216
+ attributes:
217
+ country:
218
+ already_in_market: este deja atribuită altei piețe din acest magazin
219
+ not_in_shipping_zone: nu este acoperită de nicio zonă de livrare. Vă rugăm să configurați mai întâi o zonă de livrare.
220
+ spree/payment:
221
+ attributes:
222
+ amount:
223
+ greater_than_max_amount: este mai mare decât suma maximă permisă de %{max_amount}
224
+ spree/price_list:
225
+ attributes:
226
+ ends_at:
227
+ must_be_after_starts_at: trebuie să fie după data de început
228
+ spree/product:
229
+ attributes:
230
+ base:
231
+ cannot_destroy_if_attached_to_line_items: Nu se pot șterge produsele care sunt adăugate la comenzi plasate. În astfel de cazuri, vă rugăm să le întrerupeți.
232
+ discontinue_on:
233
+ invalid_date_range: trebuie să fie ulterioară datei de disponibilitate
234
+ spree/product_publication:
235
+ attributes:
236
+ unpublished_at:
237
+ must_be_after_published_at: trebuie să fie ulterioară datei de publicare
238
+ spree/promotion:
239
+ attributes:
240
+ expires_at:
241
+ invalid_date_range: trebuie să fie ulterioară datei de început
242
+ spree/store:
243
+ attributes:
244
+ base:
245
+ cannot_destroy_only_store: Nu se poate șterge singurul magazin.
246
+ spree/store_credit:
247
+ attributes:
248
+ amount_authorized:
249
+ exceeds_total_credits: Depășește totalul creditelor.
250
+ amount_used:
251
+ cannot_be_greater_than_amount: Nu poate fi mai mare decât suma.
252
+ greater_than_zero_restrict_delete: este mai mare decât zero. Nu se poate șterge creditul de magazin.
253
+ spree/user:
254
+ attributes:
255
+ bill_address_id:
256
+ belongs_to_other_user: aparține altui utilizator
257
+ deprecated_in_completed_order: este învechit într-o comandă finalizată
258
+ ship_address_id:
259
+ belongs_to_other_user: aparține altui utilizator
260
+ deprecated_in_completed_order: este învechit într-o comandă finalizată
261
+ spree/variant:
262
+ attributes:
263
+ base:
264
+ cannot_destroy_if_attached_to_line_items: Nu se pot șterge variantele care sunt adăugate la comenzi plasate. În astfel de cazuri, vă rugăm să le întrerupeți.
265
+ spree/webhook_endpoint:
266
+ attributes:
267
+ url:
268
+ internal_address_not_allowed: nu trebuie să indice către o adresă de rețea internă sau privată
269
+ models:
270
+ spree/address:
271
+ one: Adresă
272
+ other: Adrese
273
+ spree/classification:
274
+ one: Clasificare
275
+ other: Clasificări
276
+ spree/country:
277
+ one: Țara
278
+ other: Țări
279
+ spree/credit_card:
280
+ one: Card de credit
281
+ other: Carduri de credit
282
+ spree/customer_group:
283
+ one: Grup de clienți
284
+ other: Grupuri de clienți
285
+ spree/customer_group_user:
286
+ one: Utilizator grup de clienți
287
+ other: Utilizatori grup de clienți
288
+ spree/export:
289
+ one: Export
290
+ other: Exporturi
291
+ spree/integration:
292
+ one: Integrare
293
+ other: Integrări
294
+ spree/inventory_unit:
295
+ one: Unitatea de inventar
296
+ other: Unități de inventar
297
+ spree/line_item:
298
+ one: Element
299
+ other: Elemente
300
+ spree/option_type:
301
+ one: Tip de opțiune
302
+ other: Tipuri de opțiuni
303
+ spree/option_value:
304
+ one: Valoare de opțiune
305
+ other: Valori de opțiuni
306
+ spree/order:
307
+ one: Comandă
308
+ other: Comenzi
309
+ spree/payment:
310
+ one: Plată
311
+ other: Plăți
312
+ spree/payment_method:
313
+ one: Metodă de plată
314
+ other: Metode de plată
315
+ spree/price:
316
+ one: Preț
317
+ other: Prețuri
318
+ spree/price_list:
319
+ one: Listă de prețuri
320
+ other: Liste de prețuri
321
+ spree/price_rule:
322
+ one: Regulă de preț
323
+ other: Reguli de preț
324
+ spree/product:
325
+ one: Produs
326
+ other: Produse
327
+ spree/promotion:
328
+ one: Promoție
329
+ other: Promoții
330
+ spree/promotion_category:
331
+ one: Categorie de promoție
332
+ other: Categorii de promoție
333
+ spree/property:
334
+ one: Proprietate
335
+ other: Proprietăți
336
+ spree/refund_reason:
337
+ one: Motiv de rambursare
338
+ other: Motive de rambursare
339
+ spree/role:
340
+ one: Roluri
341
+ other: Roluri
342
+ spree/shipment:
343
+ one: Expediție
344
+ other: Expediții
345
+ spree/shipping_method:
346
+ one: Metodă de livrare
347
+ other: Metode de livrare
348
+ spree/state:
349
+ one: Județ / Regiune
350
+ other: Județe / Regiuni
351
+ spree/stock_location:
352
+ one: Locație de stoc
353
+ other: Locații de stoc
354
+ spree/stock_movement:
355
+ one: Mișcare de stoc
356
+ other: Mișcări de stoc
357
+ spree/stock_transfer:
358
+ one: Transfer de stoc
359
+ other: Transferuri de stoc
360
+ spree/store:
361
+ one: Magazin
362
+ other: Magazine
363
+ spree/store_credit:
364
+ one: Credit de magazin
365
+ other: Credite de magazin
366
+ spree/tax_category:
367
+ one: Categorie de taxare
368
+ other: Categorii de taxare
369
+ spree/tax_rate:
370
+ one: Tarif taxă
371
+ other: Tarife taxe
372
+ spree/taxon:
373
+ one: Clasificare
374
+ other: Clasificări
375
+ spree/taxonomy:
376
+ one: Clasificare
377
+ other: Clasificări
378
+ spree/user:
379
+ one: Utilizator
380
+ other: Utilizatori
381
+ spree/variant:
382
+ one: Variantă
383
+ other: Variante
384
+ spree/zone:
385
+ one: Zonă
386
+ other: Zone
387
+ errors:
388
+ messages:
389
+ already_confirmed: a fost deja confirmat
390
+ not_found: nu a fost găsit
391
+ not_locked: nu a fost blocat
392
+ not_saved:
393
+ one: 'o eroare a împiedicat acest %{resource} să fie salvat:'
394
+ other: "%{count} erori au împiedicat acest %{resource} să fie salvat:"
395
+ number:
396
+ percentage:
397
+ format:
398
+ precision: 1
399
+ spree:
400
+ accepts_email_marketing: Acceptă marketing prin e-mail
401
+ account: Cont
402
+ active: Activ
403
+ address: Adresă
404
+ address1: Adresă
405
+ address2: Adresă (continuare)
406
+ adjustment: Re-evaluare
407
+ adjustment_labels:
408
+ tax_rates:
409
+ excluding_tax: "%{name}%{amount}"
410
+ including_tax: "%{name}%{amount} (Inclus în preț)"
411
+ adjustments_deleted: Ajustări șterse
412
+ all: Toate
413
+ amount: Suma
414
+ api_key_no_current_key: Nicio cheie API nu a autentificat această solicitare
415
+ api_key_scopes_immutable: nu poate fi modificat după crearea cheii; creați o cheie nouă cu domeniile de care aveți nevoie și revocați-o pe aceasta
416
+ availability: disponibilitate
417
+ backorderable: Permite comenzi în așteptare
418
+ bill_address: Adresă de facturare
419
+ billing_address: Adresă facturare
420
+ calculator: Calculator
421
+ canceled: Anulat
422
+ cannot_be_destroyed: Comanda nu poate fi ștearsă.
423
+ capture: Înregistrare
424
+ cart: Coșul meu
425
+ cart_already_updated: Coșul a fost deja actualizat.
426
+ cart_line_item:
427
+ delivery_unavailable: "%{li_name} nu poate fi livrat la adresa selectată"
428
+ discontinued: "%{li_name} a fost eliminat deoarece a fost întrerupt"
429
+ out_of_stock: "%{li_name} a fost eliminat deoarece s-a epuizat"
430
+ categories: Categorii
431
+ category: Categorie
432
+ channel: Canal de vânzare
433
+ channels: Canale de vânzare
434
+ checkout: Efectuați plata
435
+ checkout_requirements:
436
+ email_required: Adresa de e-mail este obligatorie
437
+ line_items_required: Adăugați cel puțin un articol în coș
438
+ payment_required: Adăugați o metodă de plată
439
+ ship_address_required: Adresa de livrare este obligatorie
440
+ city: Oraș / Localitate
441
+ color_code: Cod de culoare
442
+ company: Firma
443
+ compare_at_amount: Sumă de comparație
444
+ compare_at_price: Preț de comparație
445
+ complete: complet
446
+ confirm: Confirmă
447
+ cost_price: Preț de cost
448
+ count_on_hand: Valoare stoc
449
+ country: Țara
450
+ coupon_code: Cod cupon
451
+ coupon_code_already_applied: Codul voucher a fost deja aplicat acestei comenzi
452
+ coupon_code_applied: Codul voucher a fost aplicat cu succes comenzii dumneavoastră.
453
+ coupon_code_better_exists: Cuponul aplicat mai devreme reprezintă un avantaj client mai bun
454
+ coupon_code_expired: Codul voucher a expirat
455
+ coupon_code_max_usage: Limita de utilizare a acestui voucher a fost depășită
456
+ coupon_code_not_eligible: Acest cod voucher nu este eligibil pentru această comandă
457
+ coupon_code_not_found: Codoul voucherului introdus nu există. Încercați din nou.
458
+ coupon_code_used: Codul cuponului introdus a fost deja utilizat. Vă rugăm să încercați din nou.
459
+ created_at: Creat la
460
+ credit_card: Card de credit
461
+ currency: Valuta
462
+ currency_not_supported_by_store: nu este acceptată de acest magazin
463
+ customer: Client
464
+ customers: Clienți
465
+ default: Standard
466
+ default_stock_location_name: Locația magazinului
467
+ default_wishlist_name: Listă de dorințe
468
+ delivery: Livrare
469
+ depth: Adâncime
470
+ description: Descriere
471
+ destination: Destinație
472
+ destroy: Șterge
473
+ digital:
474
+ digital_delivery: Livrare digitală
475
+ digital_assets: Active digitale
476
+ discontinued: Întrerupt
477
+ discontinued_variants_present: Unele articole din această comandă conțin produse care nu mai sunt disponibile.
478
+ display_delivery_range: Livrare în %{delivery_range} zile lucrătoare
479
+ draft: Ciornă
480
+ eligibility_errors:
481
+ messages:
482
+ no_matching_channel: Acest cod de cupon nu este valabil pentru acest canal de vânzare.
483
+ no_matching_market: Acest cod de cupon nu este valabil pe piața dumneavoastră.
484
+ wrong_country: Acest cod cupon nu este eligibil în țara dvs.
485
+ email: Email
486
+ error: eroare
487
+ error_user_destroy_with_orders: Utilizatorul asociat cu comenzi nu poate fi șters
488
+ error_user_does_not_have_any_store_credits: Utilizatorul nu are credite de magazin disponibile
489
+ errors:
490
+ messages:
491
+ cannot_delete_default_channel: Canalul implicit nu poate fi șters. Promovați mai întâi un alt canal ca implicit.
492
+ channel_store_mismatch: trebuie să aparțină aceluiași magazin
493
+ invalid_order_routing_rule: nu este o regulă de rutare a comenzilor înregistrată
494
+ invalid_order_routing_strategy: nu este o strategie de rutare a comenzilor înregistrată
495
+ store_association_can_not_be_changed: Asocierea magazinului nu poate fi modificată
496
+ store_is_already_set: Magazinul este deja setat
497
+ expired: Expirat
498
+ export_mailer:
499
+ export_done:
500
+ message: Bună treabă, exportul dvs. este gata! Vă rugăm să folosiți linkul de mai jos pentru a-l descărca.
501
+ subject: Exportul dvs. %{export_number} a fost procesat cu succes!
502
+ greeting: Bună %{user_name},
503
+ field: Câmp
504
+ first_name: Prenume
505
+ flat_percent: Procentaj net
506
+ flat_rate_per_order: Procentaj net (pe comandă)
507
+ flexible_rate: Rată flexibilă
508
+ free: Gratuit
509
+ gateway: Metodă de plată
510
+ gateway_error: Eroare metodă de plată
511
+ gift_card: Card cadou
512
+ gift_card_already_redeemed: Cardul cadou a fost deja folosit.
513
+ gift_card_applied: Cardul cadou a fost aplicat cu succes comenzii dvs.!
514
+ gift_card_customer_not_logged_in: Cardul cadou nu poate fi aplicat de un utilizator invitat.
515
+ gift_card_expired: Cardul cadou a expirat.
516
+ gift_card_mismatched_currency: Cardul cadou nu poate fi aplicat cu moneda curentă.
517
+ gift_card_mismatched_customer: Acest card cadou este asociat cu un alt utilizator.
518
+ gift_card_not_found: Cardul cadou nu a fost găsit.
519
+ gift_card_removed: Cardul cadou a fost eliminat cu succes din comanda dvs.
520
+ gift_card_using_store_credit_error: Nu puteți aplica cardul cadou după ce ați aplicat creditul de magazin.
521
+ height: Înălțime
522
+ i18n:
523
+ this_file_language: Romanian (RO)
524
+ idempotency_key_reused: Această cheie de idempotență a fost deja utilizată cu parametri de solicitare diferiți.
525
+ image: Imagine
526
+ import: Import
527
+ in_stock: În stoc
528
+ internal_note: Notă internă
529
+ inventory: Inventar
530
+ invitation_mailer:
531
+ greeting: Bună %{user_name},
532
+ invitation_accepted:
533
+ body: "%{invitee_name} a acceptat invitația dvs. de a se alătura %{resource_name}"
534
+ subject: "%{invitee_name} a acceptat invitația dvs. de a se alătura %{resource_name}"
535
+ invitation_email:
536
+ body: "%{inviter_name} v-a invitat să vă alăturați %{resource_name}"
537
+ link_description: 'Pentru a accepta această invitație, vă rugăm să faceți clic pe linkul de mai jos:'
538
+ subject: Invitație de a vă alătura %{resource_name}
539
+ iso: ISO Alpha-2
540
+ item: Articol
541
+ items_cannot_be_shipped: Itemii nu pot fi cumpărați
542
+ key: Cheie
543
+ kind: Tip
544
+ label: Etichetă
545
+ last_name: Nume
546
+ line_item: Articol de comandă
547
+ line_items: Articole de comandă
548
+ link: Link
549
+ locale: Limbă
550
+ locale_not_supported_by_store: nu este acceptată de acest magazin
551
+ manual: Manual
552
+ market: Piață
553
+ me_no_current_user: Niciun utilizator administrator nu a autentificat această solicitare
554
+ media: Media
555
+ meta_description: Descriere meta
556
+ meta_keywords: Cuvinte cheie meta
557
+ metadata: Metadate
558
+ min_quantity: Cantitate minimă
559
+ month: Luna
560
+ name: Nume
561
+ new_variant: Variantă nouă
562
+ no_cc_type: N/A
563
+ none: Niciuna
564
+ number: Număr
565
+ on_hand: Pe stoc
566
+ only_active_products_can_be_added_to_cart: Produsele în ciornă și arhivate nu pot fi adăugate în coș, vă rugăm să marcați produsul ca activ înainte.
567
+ open: Deschis
568
+ option_name: Nume opțiune
569
+ option_type: Tip opțiune
570
+ option_value: Valoarea opțiune
571
+ options: Opțiuni
572
+ or: sau
573
+ order: Comanda
574
+ order_routing:
575
+ strategies:
576
+ legacy: Moștenit
577
+ rules: Reguli (ordonate)
578
+ order_summary: Sumarul comenzii
579
+ orders: Comenzi
580
+ out_of_stock: Nu mai este pe stoc
581
+ password: Parola
582
+ path: Rută
583
+ payment: Plată
584
+ payment_method: Metodă de plată
585
+ payment_methods: Metode de plată
586
+ payment_processing_failed: Plata nu a putut fi procesată, te rugăm verifică dacă datele introduse sunt corecte
587
+ payment_source: Sursă de plată
588
+ percent: Procent
589
+ percent_per_item: Procent per articol
590
+ phone: Telefon
591
+ price: Preț
592
+ price_range: Gamă de preț
593
+ price_rules:
594
+ channel_rule:
595
+ description: Aplică prețuri în funcție de canalul de vânzare
596
+ customer_group_rule:
597
+ description: Aplică prețuri pentru grupuri specifice de clienți
598
+ price_sack: Sac de preț
599
+ prices: Prețuri
600
+ privacy_policy: Politica de confidențialitate
601
+ processing: Se procesează
602
+ product: Produs
603
+ product_translations: Traduceri produse
604
+ products: Produse
605
+ products_cannot_be_shipped: Nu putem livra %{product_names} la locația dvs. curentă în acest moment. Vă rugăm să schimbați adresa de livrare sau să eliminați %{product_names} din coș.
606
+ promotion: Promoție
607
+ promotion_action_types:
608
+ create_adjustment:
609
+ description: Crează o ajustare de credit promoțională la comandă
610
+ name: Crează ajustare
611
+ create_line_items:
612
+ description: Populează coșul cu cantitatea specificată a variantei
613
+ name: Adaugă articole la comandă
614
+ promotion_actions: Acțiuni
615
+ promotion_already_used: Nu puteți șterge o promoție care a fost deja aplicată
616
+ promotion_label: Promoție (%{name})
617
+ promotion_rule_types:
618
+ category:
619
+ description: Comanda include produse din categoriile specificate
620
+ name: Categorii
621
+ channel:
622
+ description: Limitează la comenzile plasate prin canalul (canalele) specificat(e)
623
+ name: Canal(e)
624
+ country:
625
+ description: Limitează la comenzile cu adresă de livrare într-o anumită țară
626
+ name: Țară
627
+ currency:
628
+ description: Limitează la comenzile într-o anumită monedă
629
+ name: Monedă
630
+ customer:
631
+ description: Disponibil doar pentru clienții specificați
632
+ name: Clienți
633
+ customer_group:
634
+ description: Disponibil doar pentru clienții din grupul/grupurile de clienți specificate
635
+ name: Grup(uri) de clienți
636
+ customer_logged_in:
637
+ description: Disponibil doar pentru clienții autentificați
638
+ name: Doar clienții autentificați
639
+ first_order:
640
+ description: Trebui să fie prima comandă a clientului
641
+ name: Prima comandă
642
+ item_total:
643
+ description: Totalul comenzii îndeplinește aceste criterii
644
+ name: Total articole
645
+ market:
646
+ description: Limitează la comenzile plasate pe piața (piețele) specificată(e)
647
+ name: Piață (Piețe)
648
+ product:
649
+ description: Comanda include produsul / produsele specificate
650
+ name: Produs(e)
651
+ promotions: Promoții
652
+ quantity: Cantitate
653
+ query: Interogare
654
+ reason: Motiv
655
+ received: Primit
656
+ reference: Referință
657
+ refund: Restituire
658
+ refund_amount: Sumă de rambursare
659
+ registration: Înregistrare
660
+ remove: Șterge
661
+ remove_gift_card_on_completed_order_error: Nu puteți elimina cardul cadou după ce comanda a fost plasată
662
+ resellable: Revândabil
663
+ resend: Trimite din nou
664
+ response_code: Cod răspuns
665
+ return: retur
666
+ returned: Returnat
667
+ returns_policy: Politica de retur
668
+ row: Rând
669
+ rules: Reguli
670
+ say_no: Nu
671
+ say_yes: Da
672
+ scope: Gamă
673
+ selected_quantity_not_available: selectat din %{item} nu este disponibil.
674
+ ship: livrează
675
+ ship_address: Adresa de livrare
676
+ shipment: Livrare
677
+ shipped: Livrare
678
+ shipping: Livrare
679
+ shipping_address: Adresă livrare
680
+ shipping_flat_rate_per_item: Rată fixă per articol din pachet
681
+ shipping_flat_rate_per_order: Rată fixă
682
+ shipping_flexible_rate: Rată flexibilă per articol din pachet
683
+ shipping_policy: Politica de livrare
684
+ shipping_price_sack: Sac de preț
685
+ shipping_rates:
686
+ display_price:
687
+ excluding_tax: "%{price} (+ %{tax_amount} %{tax_rate_name})"
688
+ including_tax: "%{price} (incl. %{tax_amount} %{tax_rate_name})"
689
+ sku: Cod produs
690
+ source: Sursa
691
+ status: Status
692
+ stock_location: Locație stoc
693
+ stock_locations: Locații stoc
694
+ stock_transfer:
695
+ errors:
696
+ must_have_variant: Trebuie să adăugați cel puțin o variantă
697
+ same_location: nu poate fi aceeași cu locația de destinație
698
+ variants_unavailable: Unele variante nu sunt disponibile la %{stock}
699
+ store: Magazin
700
+ store_credit:
701
+ allocated: Adăugat
702
+ authorized: Autorizat
703
+ captured: Utilizat
704
+ credit: Credit
705
+ eligible: Eligibil
706
+ store_credit_name: Credit de magazin
707
+ store_credit_payment_method:
708
+ currency_mismatch: Moneda creditului de magazin nu se potrivește cu moneda comenzii
709
+ insufficient_authorized_amount: Nu se poate captura mai mult decât suma autorizată
710
+ insufficient_funds: Suma rămasă de credit de magazin nu este suficientă
711
+ successful_action: Credit de magazin %{action} cu succes
712
+ unable_to_credit: 'Nu se poate credita codul: %{auth_code}'
713
+ unable_to_find: Nu s-a putut găsi creditul de magazin
714
+ unable_to_find_for_action: 'Nu s-a putut găsi creditul de magazin pentru codul de autorizare: %{auth_code} pentru acțiunea: %{action}'
715
+ unable_to_void: 'Nu se poate anula codul: %{auth_code}'
716
+ tags: Etichete
717
+ tax: Taxe
718
+ tax_category: Categorie Taxe
719
+ terms_of_service: Termeni și condiții
720
+ total: Total
721
+ tracking: Tracking
722
+ tracking_number: Număr de tracking
723
+ tracking_url: URL de tracking
724
+ type: Tastează
725
+ unable_to_connect_to_gateway: Nu se poate conecta la procesator de plăți.
726
+ updated_at: Actualizat la
727
+ url: URL
728
+ user: Utilizator
729
+ validation:
730
+ must_be_int: trebuie să fie indivizibil
731
+ value: Valoare
732
+ variant: Variantă
733
+ variants: Variante
734
+ verified: Verificat
735
+ void: Void
736
+ webhook_mailer:
737
+ endpoint_disabled:
738
+ disabled_at_label: Dezactivat la
739
+ heading: Punct final webhook dezactivat
740
+ instructions: Vă rugăm să verificați adresa URL a punctului final și serviciul, apoi reactivați-l în Setări → Dezvoltatori → Webhook-uri.
741
+ message: Punctul final webhook „%{endpoint_name}” a fost dezactivat automat după eșecuri repetate de livrare.
742
+ name_label: Nume
743
+ reason_label: Motiv
744
+ subject: 'Punct final webhook dezactivat: %{endpoint_name}'
745
+ url_label: URL
746
+ weight: Greutate
747
+ weight_unit: Unitate de greutate
748
+ width: Lățime
749
+ year: An
750
+ zip: Cod poștal