spree_core 6.0.0.beta3 → 6.0.0.rc1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (495) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +2 -2
  3. data/app/helpers/spree/images_helper.rb +0 -57
  4. data/app/jobs/spree/base_job.rb +21 -0
  5. data/app/jobs/spree/carts/reap_expired_job.rb +2 -2
  6. data/app/jobs/spree/collections/regenerate_time_based_job.rb +6 -3
  7. data/app/jobs/spree/orders/finalize_stale_drafts_job.rb +8 -5
  8. data/app/jobs/spree/payments/cancel_unused_sessions_job.rb +61 -0
  9. data/app/jobs/spree/seller_payouts/sweep_seller_job.rb +2 -0
  10. data/app/mailers/spree/admin_user_mailer.rb +4 -19
  11. data/app/mailers/spree/base_mailer.rb +96 -13
  12. data/app/mailers/spree/email_template_mailer.rb +27 -0
  13. data/app/mailers/spree/export_mailer.rb +3 -4
  14. data/app/mailers/spree/import_mailer.rb +3 -4
  15. data/app/mailers/spree/invitation_mailer.rb +24 -7
  16. data/app/mailers/spree/seller_user_mailer.rb +4 -16
  17. data/app/mailers/spree/webhook_mailer.rb +2 -2
  18. data/app/models/concerns/spree/acted_by.rb +1 -1
  19. data/app/models/concerns/spree/admin_user_methods.rb +13 -1
  20. data/app/models/concerns/spree/api_typed.rb +91 -0
  21. data/app/models/concerns/spree/calculator/tiers.rb +76 -0
  22. data/app/models/concerns/spree/customer_methods.rb +15 -14
  23. data/app/models/concerns/spree/email_template_identity.rb +52 -0
  24. data/app/models/concerns/spree/parameterizable_name.rb +2 -0
  25. data/app/models/concerns/spree/payment_session_transitions.rb +8 -2
  26. data/app/models/concerns/spree/post_sale/taxation.rb +54 -0
  27. data/app/models/concerns/spree/post_sale/taxed_line.rb +51 -0
  28. data/app/models/concerns/spree/preference_schema.rb +4 -12
  29. data/app/models/concerns/spree/product_scopes.rb +11 -1
  30. data/app/models/concerns/spree/provider_listing.rb +41 -0
  31. data/app/models/concerns/spree/publishable.rb +82 -14
  32. data/app/models/concerns/spree/purchase/addresses.rb +23 -10
  33. data/app/models/concerns/spree/purchase/currency.rb +1 -1
  34. data/app/models/concerns/spree/purchase/deprecated_aliases.rb +87 -0
  35. data/app/models/concerns/spree/purchase/gift_cards.rb +10 -4
  36. data/app/models/concerns/spree/purchase/locale.rb +1 -1
  37. data/app/models/concerns/spree/purchase/payment_processing.rb +7 -3
  38. data/app/models/concerns/spree/purchase/purchase_order.rb +2 -2
  39. data/app/models/concerns/spree/purchase/totals.rb +49 -1
  40. data/app/models/concerns/spree/receivable.rb +1 -1
  41. data/app/models/concerns/spree/searchable.rb +0 -4
  42. data/app/models/concerns/spree/secret_preferences.rb +59 -0
  43. data/app/models/concerns/spree/single_store_resource.rb +1 -1
  44. data/app/models/concerns/spree/stores/email_branding.rb +31 -0
  45. data/app/models/concerns/spree/type_labels.rb +38 -0
  46. data/app/models/concerns/spree/typed_adjustment_line.rb +1 -1
  47. data/app/models/concerns/spree/typed_associations.rb +6 -0
  48. data/app/models/spree/address.rb +11 -1
  49. data/app/models/spree/adjusters/promotion.rb +1 -15
  50. data/app/models/spree/allowed_origin.rb +0 -1
  51. data/app/models/spree/api_key.rb +5 -6
  52. data/app/models/spree/authentication/strategies/oidc_strategy.rb +5 -5
  53. data/app/models/spree/base.rb +70 -22
  54. data/app/models/spree/calculator/flat_percent_item_total.rb +1 -3
  55. data/app/models/spree/calculator/flat_rate.rb +1 -3
  56. data/app/models/spree/calculator/flexi_rate.rb +1 -3
  57. data/app/models/spree/calculator/percent_on_line_item.rb +1 -1
  58. data/app/models/spree/calculator/price_sack.rb +1 -3
  59. data/app/models/spree/calculator/shipping/digital_delivery.rb +1 -3
  60. data/app/models/spree/calculator/shipping/flat_percent_item_total.rb +1 -3
  61. data/app/models/spree/calculator/shipping/flat_rate.rb +1 -3
  62. data/app/models/spree/calculator/shipping/flexi_rate.rb +1 -3
  63. data/app/models/spree/calculator/shipping/per_item.rb +1 -3
  64. data/app/models/spree/calculator/shipping/price_sack.rb +1 -3
  65. data/app/models/spree/calculator/tiered_flat_rate.rb +6 -23
  66. data/app/models/spree/calculator/tiered_percent.rb +7 -25
  67. data/app/models/spree/cart.rb +78 -18
  68. data/app/models/spree/channel/gating.rb +1 -1
  69. data/app/models/spree/channel.rb +4 -4
  70. data/app/models/spree/claim.rb +21 -1
  71. data/app/models/spree/claim_line_item.rb +41 -6
  72. data/app/models/spree/collection.rb +0 -1
  73. data/app/models/spree/collection_rule.rb +5 -21
  74. data/app/models/spree/commission_line.rb +1 -1
  75. data/app/models/spree/commission_rate.rb +2 -3
  76. data/app/models/spree/commission_rate_value.rb +1 -1
  77. data/app/models/spree/commission_rule.rb +4 -11
  78. data/app/models/spree/commission_rules/product_rule.rb +1 -1
  79. data/app/models/spree/company_invitation.rb +1 -0
  80. data/app/models/spree/consent_record.rb +0 -1
  81. data/app/models/spree/credit_card.rb +1 -1
  82. data/app/models/spree/current.rb +23 -0
  83. data/app/models/spree/custom_field.rb +2 -2
  84. data/app/models/spree/custom_field_definition.rb +9 -23
  85. data/app/models/spree/custom_fields/boolean.rb +1 -1
  86. data/app/models/spree/custom_fields/json.rb +1 -1
  87. data/app/models/spree/data_feed/google.rb +0 -2
  88. data/app/models/spree/data_request.rb +1 -1
  89. data/app/models/spree/delivery_method.rb +30 -13
  90. data/app/models/spree/delivery_method_rule.rb +4 -11
  91. data/app/models/spree/delivery_rate.rb +4 -5
  92. data/app/models/spree/delivery_rate_provider/base.rb +1 -0
  93. data/app/models/spree/delivery_zone.rb +0 -1
  94. data/app/models/spree/delivery_zone_member.rb +4 -4
  95. data/app/models/spree/digital_asset.rb +7 -0
  96. data/app/models/spree/digital_asset_provider/base.rb +2 -0
  97. data/app/models/spree/digital_link.rb +2 -5
  98. data/app/models/spree/discount.rb +1 -1
  99. data/app/models/spree/email_template.rb +25 -0
  100. data/app/models/spree/email_template_draft.rb +13 -0
  101. data/app/models/spree/email_template_revision.rb +17 -0
  102. data/app/models/spree/email_templates/entry.rb +118 -0
  103. data/app/models/spree/email_templates/sample_record.rb +16 -0
  104. data/app/models/spree/emails/branding.rb +80 -0
  105. data/app/models/spree/exchange.rb +15 -1
  106. data/app/models/spree/exchange_line_item.rb +121 -5
  107. data/app/models/spree/export.rb +0 -1
  108. data/app/models/spree/exports/products.rb +10 -1
  109. data/app/models/spree/exports/report.rb +1 -1
  110. data/app/models/spree/fee.rb +4 -2
  111. data/app/models/spree/fulfillment.rb +53 -27
  112. data/app/models/spree/fulfillment_changer.rb +2 -2
  113. data/app/models/spree/fulfillment_item.rb +0 -4
  114. data/app/models/spree/fulfillment_provider/base.rb +1 -0
  115. data/app/models/spree/gateway/bogus.rb +4 -0
  116. data/app/models/spree/gateway/custom_payment_source_method.rb +5 -0
  117. data/app/models/spree/gateway.rb +5 -1
  118. data/app/models/spree/gift_card.rb +12 -1
  119. data/app/models/spree/gift_card_batch.rb +0 -1
  120. data/app/models/spree/import.rb +2 -7
  121. data/app/models/spree/import_mapping.rb +1 -2
  122. data/app/models/spree/import_row.rb +2 -2
  123. data/app/models/spree/import_schemas/products.rb +1 -0
  124. data/app/models/spree/integration.rb +8 -18
  125. data/app/models/spree/invitation.rb +5 -5
  126. data/app/models/spree/line_item.rb +13 -2
  127. data/app/models/spree/locale.rb +11 -8
  128. data/app/models/spree/market.rb +1 -0
  129. data/app/models/spree/newsletter_subscriber.rb +3 -0
  130. data/app/models/spree/order.rb +56 -138
  131. data/app/models/spree/order_group.rb +11 -2
  132. data/app/models/spree/order_inventory.rb +10 -5
  133. data/app/models/spree/order_promotion.rb +1 -1
  134. data/app/models/spree/order_routing/has_strategy_preference.rb +1 -1
  135. data/app/models/spree/order_routing/strategy/base.rb +4 -2
  136. data/app/models/spree/order_routing/strategy/rules.rb +1 -1
  137. data/app/models/spree/order_routing_rule.rb +6 -22
  138. data/app/models/spree/package_type.rb +1 -2
  139. data/app/models/spree/payment/gateway_options.rb +14 -52
  140. data/app/models/spree/payment/processing.rb +2 -4
  141. data/app/models/spree/payment.rb +20 -5
  142. data/app/models/spree/payment_method/session_instrumentation.rb +1 -0
  143. data/app/models/spree/payment_method/store_credit.rb +4 -4
  144. data/app/models/spree/payment_method.rb +36 -4
  145. data/app/models/spree/payment_session.rb +5 -1
  146. data/app/models/spree/payment_setup_session.rb +1 -0
  147. data/app/models/spree/payout_provider/base.rb +3 -1
  148. data/app/models/spree/pickup_point_provider/base.rb +2 -0
  149. data/app/models/spree/price_list.rb +1 -2
  150. data/app/models/spree/price_rules/channel_rule.rb +1 -1
  151. data/app/models/spree/price_rules/customer_group_rule.rb +1 -1
  152. data/app/models/spree/product.rb +31 -7
  153. data/app/models/spree/product_submission.rb +0 -12
  154. data/app/models/spree/product_type.rb +0 -1
  155. data/app/models/spree/promotion/actions/create_line_items.rb +27 -17
  156. data/app/models/spree/promotion/rules/category.rb +0 -4
  157. data/app/models/spree/promotion/rules/channel.rb +0 -4
  158. data/app/models/spree/promotion/rules/country.rb +0 -4
  159. data/app/models/spree/promotion/rules/currency.rb +0 -4
  160. data/app/models/spree/promotion/rules/customer_group.rb +0 -4
  161. data/app/models/spree/promotion/rules/first_order.rb +0 -4
  162. data/app/models/spree/promotion/rules/item_total.rb +4 -8
  163. data/app/models/spree/promotion/rules/market.rb +0 -4
  164. data/app/models/spree/promotion/rules/one_use_per_user.rb +0 -4
  165. data/app/models/spree/promotion/rules/option_value.rb +0 -3
  166. data/app/models/spree/promotion/rules/product.rb +0 -4
  167. data/app/models/spree/promotion/rules/user.rb +0 -4
  168. data/app/models/spree/promotion/rules/user_logged_in.rb +0 -4
  169. data/app/models/spree/promotion.rb +35 -6
  170. data/app/models/spree/promotion_action.rb +7 -14
  171. data/app/models/spree/promotion_action_line_item.rb +1 -1
  172. data/app/models/spree/promotion_handler/coupon.rb +59 -27
  173. data/app/models/spree/promotion_rule.rb +7 -14
  174. data/app/models/spree/purchase_order.rb +1 -0
  175. data/app/models/spree/quantity_rule.rb +1 -1
  176. data/app/models/spree/refund.rb +28 -3
  177. data/app/models/spree/return.rb +30 -2
  178. data/app/models/spree/return_line_item.rb +65 -14
  179. data/app/models/spree/role.rb +7 -7
  180. data/app/models/spree/saved_report.rb +1 -1
  181. data/app/models/spree/seller.rb +2 -1
  182. data/app/models/spree/seller_payout.rb +7 -0
  183. data/app/models/spree/seller_requirement.rb +4 -12
  184. data/app/models/spree/seller_requirement_custom_field.rb +1 -2
  185. data/app/models/spree/seller_requirement_submission.rb +2 -2
  186. data/app/models/spree/seller_requirements/accept_terms.rb +2 -3
  187. data/app/models/spree/seller_transfer.rb +5 -0
  188. data/app/models/spree/shipping_label.rb +1 -0
  189. data/app/models/spree/stock/availability_validator.rb +2 -2
  190. data/app/models/spree/stock/inventory_unit_builder.rb +1 -1
  191. data/app/models/spree/stock/packer.rb +2 -2
  192. data/app/models/spree/stock/splitter/weight.rb +1 -1
  193. data/app/models/spree/stock_level/custom_events.rb +6 -0
  194. data/app/models/spree/stock_level.rb +1 -1
  195. data/app/models/spree/stock_movement.rb +1 -1
  196. data/app/models/spree/stock_receipt_item.rb +1 -1
  197. data/app/models/spree/stock_reservation.rb +2 -2
  198. data/app/models/spree/stock_transfer.rb +4 -2
  199. data/app/models/spree/store.rb +33 -7
  200. data/app/models/spree/store_credit.rb +8 -9
  201. data/app/models/spree/store_credit_event.rb +5 -5
  202. data/app/models/spree/tax_exemption_certificate.rb +2 -0
  203. data/app/models/spree/tax_identifier.rb +3 -1
  204. data/app/models/spree/tax_line.rb +53 -3
  205. data/app/models/spree/tax_provider/base.rb +71 -14
  206. data/app/models/spree/tax_provider/internal.rb +59 -33
  207. data/app/models/spree/tax_provider/recorded_share.rb +114 -0
  208. data/app/models/spree/tax_rate.rb +1 -2
  209. data/app/models/spree/taxonomy.rb +0 -1
  210. data/app/models/spree/variant.rb +4 -3
  211. data/app/models/spree/variant_media.rb +1 -1
  212. data/app/models/spree/webhook_endpoint.rb +10 -13
  213. data/app/models/spree/wishlist.rb +1 -6
  214. data/app/models/spree/wishlist_item/custom_events.rb +6 -0
  215. data/app/presenters/spree/csv/customer_presenter.rb +1 -1
  216. data/app/presenters/spree/csv/newsletter_subscriber_presenter.rb +1 -1
  217. data/app/presenters/spree/csv/order_line_item_presenter.rb +1 -1
  218. data/app/presenters/spree/csv/product_variant_presenter.rb +42 -12
  219. data/app/serializers/spree/emails/base_serializer.rb +14 -0
  220. data/app/serializers/spree/emails/export_serializer.rb +13 -0
  221. data/app/serializers/spree/emails/import_serializer.rb +19 -0
  222. data/app/serializers/spree/emails/invitation_serializer.rb +28 -0
  223. data/app/serializers/spree/emails/store_serializer.rb +31 -0
  224. data/app/serializers/spree/emails/user_serializer.rb +12 -0
  225. data/app/serializers/spree/emails/webhook_endpoint_serializer.rb +16 -0
  226. data/app/services/spree/carts/create.rb +8 -2
  227. data/app/services/spree/carts/destroy.rb +2 -2
  228. data/app/services/spree/carts/remove_out_of_stock_items.rb +2 -2
  229. data/app/services/spree/carts/split_by_seller.rb +1 -1
  230. data/app/services/spree/carts/update.rb +19 -5
  231. data/app/services/spree/catalogs/set_product_terms.rb +1 -1
  232. data/app/services/spree/categories/add_products.rb +13 -31
  233. data/app/services/spree/categories/remove_products.rb +12 -51
  234. data/app/services/spree/checkout/advance.rb +1 -4
  235. data/app/services/spree/collections/add_products.rb +10 -23
  236. data/app/services/spree/collections/remove_products.rb +7 -43
  237. data/app/services/spree/coupon_codes/bulk_generate.rb +8 -14
  238. data/app/services/spree/data_requests/create.rb +1 -1
  239. data/app/services/spree/deliveries/destroy.rb +2 -2
  240. data/app/services/spree/email_templates/check.rb +58 -0
  241. data/app/services/spree/email_templates/no_sample_record.rb +7 -0
  242. data/app/services/spree/email_templates/preview.rb +99 -0
  243. data/app/services/spree/emails/file_system.rb +23 -0
  244. data/app/services/spree/emails/filters.rb +84 -0
  245. data/app/services/spree/emails/liquid_context.rb +48 -0
  246. data/app/services/spree/emails/rendered_email.rb +14 -0
  247. data/app/services/spree/emails/renderer.rb +125 -0
  248. data/app/services/spree/emails/template.rb +51 -0
  249. data/app/services/spree/emails/template_data.rb +23 -0
  250. data/app/services/spree/emails/template_resolver.rb +109 -0
  251. data/app/services/spree/emails/text_converter.rb +72 -0
  252. data/app/services/spree/emails/translation_inliner.rb +134 -0
  253. data/app/services/spree/imports/row_processors/price_list_price.rb +10 -10
  254. data/app/services/spree/imports/row_processors/product_variant.rb +65 -34
  255. data/app/services/spree/imports/row_processors/purchase_order.rb +13 -13
  256. data/app/services/spree/locales.rb +4 -5
  257. data/app/services/spree/newsletter/subscribe.rb +8 -12
  258. data/app/services/spree/orders/build_fulfillments.rb +3 -2
  259. data/app/services/spree/orders/create.rb +2 -1
  260. data/app/services/spree/orders/discounts/create.rb +7 -4
  261. data/app/services/spree/orders/discounts/destroy.rb +1 -0
  262. data/app/services/spree/orders/discounts/update.rb +1 -0
  263. data/app/services/spree/orders/fees/create.rb +1 -0
  264. data/app/services/spree/orders/fees/destroy.rb +1 -0
  265. data/app/services/spree/orders/fees/update.rb +1 -0
  266. data/app/services/spree/orders/remove_line_item.rb +13 -3
  267. data/app/services/spree/orders/update.rb +10 -6
  268. data/app/services/spree/orders/update_item.rb +6 -3
  269. data/app/services/spree/orders/update_statuses.rb +3 -1
  270. data/app/services/spree/product_memberships.rb +61 -0
  271. data/app/services/spree/returns/eligibility_validator.rb +1 -1
  272. data/app/services/spree/search_provider/custom_field_schema.rb +2 -2
  273. data/app/services/spree/seeds/commission_rates.rb +1 -1
  274. data/app/services/spree/seeds/digital_delivery.rb +1 -1
  275. data/app/services/spree/seeds/payment_methods.rb +2 -2
  276. data/app/services/spree/seeds/saved_reports.rb +3 -3
  277. data/app/services/spree/sellers/requirements.rb +1 -2
  278. data/app/services/spree/shipping_labels/confirm_refund.rb +1 -1
  279. data/app/services/spree/shipping_labels/store_file.rb +3 -3
  280. data/app/services/spree/stock_levels/correct.rb +3 -3
  281. data/app/services/spree/stock_reservations/reserve.rb +2 -3
  282. data/app/services/spree/store_credits/apply.rb +15 -13
  283. data/app/services/spree/stores/provision_defaults.rb +15 -14
  284. data/app/subscribers/spree/seller_onboarding_subscriber.rb +1 -1
  285. data/app/views/layouts/spree/base_mailer.html.erb +2 -43
  286. data/app/views/layouts/spree/base_mailer.liquid +79 -0
  287. data/app/views/spree/admin_user_mailer/password_reset_email.liquid +14 -0
  288. data/app/views/spree/export_mailer/export_done.liquid +12 -0
  289. data/app/views/spree/import_mailer/import_done.liquid +15 -0
  290. data/app/views/spree/invitation_mailer/invitation_accepted.liquid +9 -0
  291. data/app/views/spree/invitation_mailer/invitation_email.liquid +13 -0
  292. data/app/views/spree/seller_user_mailer/password_reset_email.liquid +14 -0
  293. data/app/views/spree/shared/_mailer_button.html.erb +4 -5
  294. data/app/views/spree/shared/_mailer_hero.html.erb +6 -5
  295. data/app/views/spree/shared/_summary_row.liquid +8 -0
  296. data/app/views/spree/webhook_mailer/endpoint_disabled.liquid +21 -0
  297. data/app/workflows/spree/carts/add_item.rb +4 -4
  298. data/app/workflows/spree/carts/complete.rb +13 -3
  299. data/app/workflows/spree/carts/merge.rb +1 -1
  300. data/app/workflows/spree/carts/recalculate_totals.rb +5 -0
  301. data/app/workflows/spree/carts/upsert_items.rb +18 -9
  302. data/app/workflows/spree/claims/approve.rb +5 -22
  303. data/app/workflows/spree/claims/cancel.rb +5 -21
  304. data/app/workflows/spree/claims/create.rb +15 -0
  305. data/app/workflows/spree/claims/deny.rb +7 -0
  306. data/app/workflows/spree/claims/resolve.rb +34 -31
  307. data/app/workflows/spree/customers/anonymize.rb +3 -4
  308. data/app/workflows/spree/customers/create.rb +1 -1
  309. data/app/workflows/spree/data_requests/fulfill.rb +2 -2
  310. data/app/workflows/spree/deliveries/update_tracking.rb +1 -1
  311. data/app/workflows/spree/email_templates/discard_draft.rb +20 -0
  312. data/app/workflows/spree/email_templates/publish.rb +70 -0
  313. data/app/workflows/spree/email_templates/restore_revision.rb +33 -0
  314. data/app/workflows/spree/email_templates/revert.rb +29 -0
  315. data/app/workflows/spree/email_templates/save_draft.rb +85 -0
  316. data/app/workflows/spree/exchanges/approve.rb +5 -22
  317. data/app/workflows/spree/exchanges/cancel.rb +5 -21
  318. data/app/workflows/spree/exchanges/create.rb +6 -0
  319. data/app/workflows/spree/exchanges/fulfill.rb +75 -51
  320. data/app/workflows/spree/exchanges/receive.rb +6 -65
  321. data/app/workflows/spree/fulfillments/cancel.rb +1 -1
  322. data/app/workflows/spree/fulfillments/create.rb +51 -47
  323. data/app/workflows/spree/fulfillments/fulfill.rb +23 -27
  324. data/app/workflows/spree/fulfillments/mark_delivered.rb +1 -1
  325. data/app/workflows/spree/fulfillments/replacements.rb +59 -0
  326. data/app/workflows/spree/gift_cards/apply.rb +2 -2
  327. data/app/workflows/spree/orders/add_item.rb +5 -1
  328. data/app/workflows/spree/orders/cancel.rb +3 -3
  329. data/app/workflows/spree/orders/complete.rb +16 -8
  330. data/app/workflows/spree/payments/process.rb +2 -2
  331. data/app/workflows/spree/post_sale/approval.rb +35 -0
  332. data/app/workflows/spree/post_sale/cancellation.rb +44 -0
  333. data/app/workflows/spree/post_sale/receipt.rb +92 -0
  334. data/app/workflows/spree/products/nested_attributes.rb +1 -1
  335. data/app/workflows/spree/purchase_orders/cancel.rb +1 -1
  336. data/app/workflows/spree/purchase_orders/close.rb +3 -31
  337. data/app/workflows/spree/purchase_orders/mark_draft.rb +2 -2
  338. data/app/workflows/spree/purchase_orders/mark_ordered.rb +2 -2
  339. data/app/workflows/spree/purchase_orders/receive.rb +1 -1
  340. data/app/workflows/spree/purchase_orders/update.rb +5 -34
  341. data/app/workflows/spree/receivables/closing_short.rb +46 -0
  342. data/app/workflows/spree/receivables/draft_editing.rb +48 -0
  343. data/app/workflows/spree/refunds/create.rb +5 -2
  344. data/app/workflows/spree/refunds/order_payments.rb +14 -2
  345. data/app/workflows/spree/refunds/tax_credit.rb +67 -0
  346. data/app/workflows/spree/returns/approve.rb +5 -22
  347. data/app/workflows/spree/returns/cancel.rb +5 -22
  348. data/app/workflows/spree/returns/create.rb +8 -0
  349. data/app/workflows/spree/returns/receive.rb +5 -76
  350. data/app/workflows/spree/returns/refund.rb +31 -8
  351. data/app/workflows/spree/seller_requirement_submissions/create.rb +1 -2
  352. data/app/workflows/spree/seller_transfers/reverse.rb +28 -1
  353. data/app/workflows/spree/shipping_labels/purchase.rb +8 -8
  354. data/app/workflows/spree/shipping_labels/record.rb +5 -5
  355. data/app/workflows/spree/shipping_labels/refund.rb +2 -2
  356. data/app/workflows/spree/stock_receipts/recording.rb +4 -4
  357. data/app/workflows/spree/stock_transfers/cancel.rb +2 -2
  358. data/app/workflows/spree/stock_transfers/close.rb +3 -30
  359. data/app/workflows/spree/stock_transfers/mark_draft.rb +1 -1
  360. data/app/workflows/spree/stock_transfers/mark_in_transit.rb +3 -3
  361. data/app/workflows/spree/stock_transfers/mark_ready.rb +2 -2
  362. data/app/workflows/spree/stock_transfers/receive.rb +1 -1
  363. data/app/workflows/spree/stock_transfers/update.rb +5 -33
  364. data/config/i18n-tasks.yml +32 -18
  365. data/config/initializers/alba.rb +7 -0
  366. data/config/language_names.csv +264 -0
  367. data/config/locales/ar.yml +811 -0
  368. data/config/locales/be.yml +855 -0
  369. data/config/locales/bg.yml +723 -0
  370. data/config/locales/ca.yml +689 -0
  371. data/config/locales/cs.yml +855 -0
  372. data/config/locales/da.yml +771 -0
  373. data/config/locales/de-CH.yml +248 -0
  374. data/config/locales/de.yml +835 -0
  375. data/config/locales/el.yml +769 -0
  376. data/config/locales/en.yml +37 -503
  377. data/config/locales/es-CL.yml +301 -0
  378. data/config/locales/es-EC.yml +186 -0
  379. data/config/locales/es-MX.yml +334 -0
  380. data/config/locales/es.yml +831 -0
  381. data/config/locales/et.yml +644 -0
  382. data/config/locales/fa.yml +709 -0
  383. data/config/locales/fi.yml +771 -0
  384. data/config/locales/fr.yml +830 -0
  385. data/config/locales/hu.yml +751 -0
  386. data/config/locales/id.yml +756 -0
  387. data/config/locales/it.yml +833 -0
  388. data/config/locales/ja.yml +726 -0
  389. data/config/locales/km.yml +759 -0
  390. data/config/locales/ko.yml +575 -0
  391. data/config/locales/ku.yml +753 -0
  392. data/config/locales/lt.yml +821 -0
  393. data/config/locales/lv.yml +685 -0
  394. data/config/locales/nb.yml +824 -0
  395. data/config/locales/ne.yml +823 -0
  396. data/config/locales/nl.yml +826 -0
  397. data/config/locales/pl.yml +835 -0
  398. data/config/locales/pt-BR.yml +547 -0
  399. data/config/locales/pt.yml +636 -0
  400. data/config/locales/ro.yml +750 -0
  401. data/config/locales/ru.yml +834 -0
  402. data/config/locales/sk.yml +680 -0
  403. data/config/locales/sl-SI.yml +600 -0
  404. data/config/locales/sv.yml +827 -0
  405. data/config/locales/th.yml +745 -0
  406. data/config/locales/tr.yml +777 -0
  407. data/config/locales/uk.yml +836 -0
  408. data/config/locales/vi.yml +768 -0
  409. data/config/locales/zh-CN.yml +786 -0
  410. data/config/locales/zh-TW.yml +834 -0
  411. data/db/migrate/20260925000001_add_replacement_to_spree_fulfillment_items.rb +5 -0
  412. data/db/migrate/20261001000001_add_post_sale_tax.rb +30 -0
  413. data/db/migrate/20261001000001_convert_preferences_to_json.rb +166 -0
  414. data/db/migrate/20261001000001_create_spree_email_templates.rb +52 -0
  415. data/lib/generators/spree/dummy/dummy_generator.rb +0 -9
  416. data/lib/generators/spree/dummy/templates/rails/test.rb +7 -0
  417. data/lib/spree/checkout/default_requirements.rb +37 -13
  418. data/lib/spree/core/configuration.rb +1 -1
  419. data/lib/spree/core/controller_helpers/store.rb +1 -1
  420. data/lib/spree/core/dependencies.rb +5 -4
  421. data/lib/spree/core/emails/escaped_output.rb +60 -0
  422. data/lib/spree/core/engine.rb +48 -167
  423. data/lib/spree/core/permissions/default_catalog.rb +5 -0
  424. data/lib/spree/core/preferences/json_conversion.rb +182 -0
  425. data/lib/spree/core/preferences/masking.rb +4 -1
  426. data/lib/spree/core/preferences/preferable.rb +137 -83
  427. data/lib/spree/core/preferences/preferable_class_methods.rb +81 -146
  428. data/lib/spree/core/previews/import_preview.rb +10 -0
  429. data/lib/spree/core/tax/provider_error.rb +37 -0
  430. data/lib/spree/core/version.rb +1 -1
  431. data/lib/spree/core.rb +85 -370
  432. data/lib/spree/emails/editable_templates.rb +82 -0
  433. data/lib/spree/events/catalog.rb +189 -0
  434. data/lib/spree/events.rb +21 -1
  435. data/lib/spree/hooks.rb +0 -17
  436. data/lib/spree/i18n.rb +32 -15
  437. data/lib/spree/reporting/adapters/live.rb +6 -6
  438. data/lib/spree/reporting/default_vocabulary.rb +22 -10
  439. data/lib/spree/reporting/hydration.rb +1 -1
  440. data/lib/spree/reporting/query.rb +8 -0
  441. data/lib/spree/reporting/schema.rb +10 -10
  442. data/lib/spree/testing_support/editable_email_templates.rb +61 -0
  443. data/lib/spree/testing_support/emails.rb +22 -0
  444. data/lib/spree/testing_support/factories/cart_factory.rb +1 -1
  445. data/lib/spree/testing_support/factories/email_template_factory.rb +28 -0
  446. data/lib/spree/testing_support/factories/order_factory.rb +2 -2
  447. data/lib/spree/testing_support/factories/refund_factory.rb +1 -1
  448. data/lib/spree/testing_support/factories/stock_factory.rb +1 -1
  449. data/lib/spree/testing_support/factories/variant_factory.rb +1 -1
  450. data/lib/spree/testing_support/i18n.rb +3 -94
  451. data/lib/spree/testing_support/lifecycle_events.rb +1 -1
  452. data/lib/spree/testing_support/order_walkthrough.rb +1 -1
  453. data/lib/spree/testing_support/preferences.rb +0 -5
  454. data/lib/spree/testing_support/store.rb +9 -1
  455. data/lib/spree/upgrades/5_6_to_6_0/manifest.yml +45 -0
  456. data/lib/tasks/categories_and_collections.rake +3 -3
  457. data/lib/tasks/core.rake +6 -4
  458. data/lib/tasks/media.rake +3 -3
  459. data/lib/tasks/package_types.rake +1 -1
  460. data/lib/tasks/preferences_json.rake +101 -0
  461. data/spec/fixtures/mailer_views/custom_views_probe_mailer/welcome_email.html.erb +4 -0
  462. metadata +188 -44
  463. data/app/models/acts_as_taggable_on/tag_decorator.rb +0 -10
  464. data/app/models/concerns/spree/has_image_alt_text.rb +0 -18
  465. data/app/models/spree/base_analytics_event_handler.rb +0 -54
  466. data/app/models/spree/invitations/store.rb +0 -6
  467. data/app/models/spree/preference.rb +0 -14
  468. data/app/models/spree/promotion_handler/page.rb +0 -25
  469. data/app/models/spree/promotion_handler/promotion_duplicator.rb +0 -60
  470. data/app/models/spree/stock/differentiator.rb +0 -45
  471. data/app/presenters/spree/filters/options_presenter.rb +0 -47
  472. data/app/services/spree/carts/empty.rb +0 -42
  473. data/app/services/spree/country_to_timezone.rb +0 -273
  474. data/app/services/spree/payments/create.rb +0 -92
  475. data/app/validators/spree/url_validator.rb +0 -23
  476. data/app/views/active_storage/blobs/_blob.html.erb +0 -14
  477. data/app/views/spree/admin_user_mailer/password_reset_email.html.erb +0 -8
  478. data/app/views/spree/export_mailer/export_done.html.erb +0 -7
  479. data/app/views/spree/import_mailer/import_done.html.erb +0 -12
  480. data/app/views/spree/invitation_mailer/invitation_accepted.html.erb +0 -4
  481. data/app/views/spree/invitation_mailer/invitation_email.html.erb +0 -12
  482. data/app/views/spree/seller_user_mailer/password_reset_email.html.erb +0 -8
  483. data/app/views/spree/shared/_base_mailer_footer.html.erb +0 -19
  484. data/app/views/spree/shared/_base_mailer_header.html.erb +0 -8
  485. data/app/views/spree/shared/_base_mailer_stylesheets.html.erb +0 -399
  486. data/app/views/spree/shared/_mailer_logo.html.erb +0 -41
  487. data/app/views/spree/shared/_purchased_items_styles.html.erb +0 -119
  488. data/app/views/spree/webhook_mailer/endpoint_disabled.html.erb +0 -51
  489. data/app/views/spree/webhook_mailer/endpoint_disabled.text.erb +0 -10
  490. data/app/workflows/spree/fulfillments/purchase_label.rb +0 -40
  491. data/app/workflows/spree/returns/purchase_label.rb +0 -32
  492. data/lib/spree/analytics.rb +0 -11
  493. data/lib/spree/core/preferences/scoped_store.rb +0 -34
  494. data/lib/spree/core/preferences/store.rb +0 -105
  495. data/lib/spree/translation_migrations.rb +0 -52
@@ -0,0 +1,833 @@
1
+ ---
2
+ it:
3
+ activemodel:
4
+ errors:
5
+ messages:
6
+ blank: non può essere lasciato in bianco
7
+ activerecord:
8
+ attributes:
9
+ spree/address:
10
+ address1: Indirizzo
11
+ address2: Indirizzo (agg.)
12
+ city: Città
13
+ company: Azienda
14
+ country: Nazione
15
+ label: Nome indirizzo
16
+ phone: Telefono
17
+ state: Provincia
18
+ spree/calculator/tiered_flat_rate:
19
+ preferred_base_amount: Importo Base
20
+ preferred_tiers: Livelli
21
+ spree/calculator/tiered_percent:
22
+ preferred_base_percent: Percentuale Base
23
+ preferred_tiers: Livelli
24
+ spree/country:
25
+ iso: ISO
26
+ iso3: ISO3
27
+ iso_name: Nome ISO
28
+ name: Nome
29
+ numcode: Codice ISO
30
+ spree/credit_card:
31
+ cc_type: Tipologia
32
+ month: Mese
33
+ name: Nome
34
+ number: Numero
35
+ verification_value: Codice di Verifica
36
+ year: Anno
37
+ spree/customer_group:
38
+ description: Descrizione
39
+ name: Nome
40
+ spree/gift_card:
41
+ amount_used: Importo utilizzato
42
+ expires_at: Scade il
43
+ spree/import:
44
+ preferred_delimiter: Delimitatore
45
+ spree/import_mapping:
46
+ file_column: Colonna del file
47
+ schema_field: Campo dello schema
48
+ spree/import_row:
49
+ row_number: Numero
50
+ spree/inventory_unit:
51
+ state: Stato
52
+ spree/invitation:
53
+ inviter: Invitante
54
+ spree/line_item:
55
+ price: Prezzo
56
+ quantity: Quantità
57
+ spree/option_type:
58
+ filterable: Filtrabile
59
+ kind: Tipo
60
+ name: Nome
61
+ spree/option_value:
62
+ color_code: Codice colore
63
+ image: Immagine campione
64
+ spree/order:
65
+ checkout_complete: Checkout Completato
66
+ completed_at: Completato il
67
+ considered_risky: A rischio
68
+ coupon_code: Codice Coupon
69
+ created_at: Data Ordine
70
+ email: E-Mail Cliente
71
+ internal_note: Nota interna
72
+ ip_address: Indirizzo IP
73
+ item_count: Articoli
74
+ item_total: Totale Articoli
75
+ number: Numero
76
+ payment_state: Stato Pagamento
77
+ shipment_state: Stato Spedizione
78
+ special_instructions: Istruzioni Aggiuntive
79
+ state: Stato
80
+ total: Totale
81
+ spree/order/bill_address:
82
+ address1: Indirizzo di fatturazione
83
+ city: Città di fatturazione
84
+ phone: Telefono indirizzo di fatturazione
85
+ state: Provincia indirizzo di fatturazione
86
+ spree/order/ship_address:
87
+ address1: Indirizzo di spedizione
88
+ city: Città indirizzo di spedizione
89
+ phone: Telefono indirizzo di spedizione
90
+ state: Provincia indirizzo di spedizione
91
+ spree/payment:
92
+ amount: Quantità
93
+ number: Numero
94
+ spree/payment_method:
95
+ name: Nome
96
+ spree/policy:
97
+ body: Corpo
98
+ owner: Informativa per
99
+ spree/price_list:
100
+ description: Descrizione
101
+ ends_at: Termina il
102
+ match_policy: Criterio di corrispondenza
103
+ name: Nome
104
+ priority: Priorità
105
+ starts_at: Inizia il
106
+ status: Stato
107
+ spree/price_rule:
108
+ priority: Priorità
109
+ type: Tipo
110
+ spree/product:
111
+ available_on: Disponibile dal
112
+ cost_currency: Valuta Costo
113
+ cost_price: Prezzo di Costo
114
+ description: Descrizione
115
+ discontinue_on: Sospendi il
116
+ less_than: Meno di
117
+ make_active_at: Attiva il
118
+ master_price: Prezzo
119
+ more_than: Più di
120
+ name: Nome
121
+ on_hand: Disponibilità
122
+ tax_category: Categoria di Tassazione
123
+ spree/promotion:
124
+ advertise: Publicizza
125
+ code: Codice
126
+ description: Descrizione
127
+ event_name: Nome Evento
128
+ expires_at: Scade il
129
+ generate_code: Genera codice coupon
130
+ name: Nome
131
+ path: Percorso
132
+ promotion_category: Categoria Promozione
133
+ starts_at: Inizia il
134
+ usage_limit: Limite di Utilizzo
135
+ spree/promotion_category:
136
+ code: Codice
137
+ name: Nome
138
+ spree/property:
139
+ name: Nome
140
+ presentation: Presentazione
141
+ spree/role:
142
+ name: Nome
143
+ spree/shipment:
144
+ number: Numero
145
+ spree/state:
146
+ abbr: Abbreviazione
147
+ name: Nome
148
+ spree/store:
149
+ address: Indirizzo
150
+ contact_phone: Telefono di contatto
151
+ mail_from_address: Indirizzo Mittente Email
152
+ meta_description: Meta Description
153
+ meta_keywords: Meta Keywords
154
+ name: Nome
155
+ preferred_digital_asset_authorized_clicks: Limite di clic per il download
156
+ preferred_digital_asset_authorized_days: Limite di giorni per il download
157
+ preferred_limit_digital_download_count: Limita il numero di download dei link digitali
158
+ preferred_limit_digital_download_days: Limita i giorni di download dei link digitali
159
+ seo_robots: Robot SEO
160
+ seo_title: Titolo SEO
161
+ storefront_custom_code_body_end: Codice personalizzato prima della chiusura del tag body
162
+ storefront_custom_code_body_start: Codice personalizzato dopo l'apertura del tag body
163
+ storefront_custom_code_head: Codice personalizzato nell'head della pagina
164
+ url: URL Sito
165
+ spree/store_credit:
166
+ amount_used: Importo utilizzato
167
+ spree/tax_category:
168
+ description: Descrizione
169
+ name: Nome
170
+ spree/tax_rate:
171
+ amount: Tasso
172
+ included_in_price: Incluso nel Prezzo
173
+ show_rate_in_label: Mostra tasso nell'etichetta
174
+ spree/taxon:
175
+ name: Nome
176
+ permalink: Permalink
177
+ position: Posizione
178
+ sort_order: Ordinamento
179
+ spree/taxonomy:
180
+ name: Nome
181
+ spree/user:
182
+ avatar: Avatar
183
+ email: Email
184
+ password: Password
185
+ password_confirmation: Conferma Password
186
+ spree/variant:
187
+ cost_currency: Valuta Costo
188
+ cost_price: Prezzo di Costo
189
+ depth: Profondità
190
+ height: Altezza
191
+ price: Prezzo
192
+ sku: SKU
193
+ weight: Peso
194
+ width: Larghezza
195
+ spree/zone:
196
+ description: Descrizione
197
+ name: Nome
198
+ user:
199
+ current_sign_in: Accesso corrente il
200
+ last_sign_in: Ultimo accesso il
201
+ sign_in_count: Numero di accessi
202
+ errors:
203
+ messages:
204
+ blank: non può essere lasciato in bianco
205
+ models:
206
+ spree/allowed_origin:
207
+ attributes:
208
+ origin:
209
+ must_be_origin_only: deve essere un'origine (schema e host) senza percorso, query o frammento
210
+ spree/classification:
211
+ attributes:
212
+ taxon_id:
213
+ already_linked: è già collegato a questo prodotto
214
+ spree/credit_card:
215
+ attributes:
216
+ base:
217
+ card_expired: La Carta è scaduta
218
+ expiry_invalid: La scadenza della Carta non è valida
219
+ spree/gift_card:
220
+ attributes:
221
+ base:
222
+ cannot_destroy_used_gift_card: Impossibile eliminare una gift card utilizzata
223
+ spree/import:
224
+ attributes:
225
+ attachment:
226
+ content_type: ha un tipo di contenuto non consentito
227
+ type:
228
+ inclusion: non è incluso nell'elenco dei tipi consentiti
229
+ spree/line_item:
230
+ attributes:
231
+ currency:
232
+ must_match_order_currency: Deve corrispondere alla Valuta dell'Ordine
233
+ spree/market:
234
+ attributes:
235
+ base:
236
+ cannot_destroy_default_market: Impossibile eliminare il mercato predefinito.
237
+ cannot_destroy_last_market: Impossibile eliminare l'unico mercato.
238
+ spree/market_country:
239
+ attributes:
240
+ country:
241
+ already_in_market: è già assegnato a un altro mercato in questo negozio
242
+ not_in_shipping_zone: non è coperto da alcuna zona di spedizione. Configura prima una zona di spedizione.
243
+ spree/payment:
244
+ attributes:
245
+ amount:
246
+ greater_than_max_amount: è superiore all'importo massimo consentito di %{max_amount}
247
+ spree/price_list:
248
+ attributes:
249
+ ends_at:
250
+ must_be_after_starts_at: deve essere successivo alla data di inizio
251
+ spree/product:
252
+ attributes:
253
+ base:
254
+ cannot_destroy_if_attached_to_line_items: Impossibile eliminare prodotti aggiunti a ordini effettuati. In tali casi, sospendili.
255
+ discontinue_on:
256
+ invalid_date_range: deve essere successivo alla data di disponibilità
257
+ spree/product_publication:
258
+ attributes:
259
+ unpublished_at:
260
+ must_be_after_published_at: deve essere successivo alla data di pubblicazione
261
+ spree/promotion:
262
+ attributes:
263
+ expires_at:
264
+ invalid_date_range: deve essere successivo alla data di inizio
265
+ spree/refund:
266
+ attributes:
267
+ amount:
268
+ greater_than_allowed: è maggiore dell'importo consentito.
269
+ spree/store:
270
+ attributes:
271
+ base:
272
+ cannot_destroy_only_store: Impossibile eliminare l'unico negozio.
273
+ spree/store_credit:
274
+ attributes:
275
+ amount_authorized:
276
+ exceeds_total_credits: Supera il credito totale.
277
+ amount_used:
278
+ cannot_be_greater_than_amount: Non può essere superiore all'importo.
279
+ greater_than_zero_restrict_delete: è maggiore di zero. Impossibile eliminare il credito negozio.
280
+ spree/user:
281
+ attributes:
282
+ bill_address_id:
283
+ belongs_to_other_user: appartiene a un altro utente
284
+ deprecated_in_completed_order: obsoleto in un ordine completato
285
+ ship_address_id:
286
+ belongs_to_other_user: appartiene a un altro utente
287
+ deprecated_in_completed_order: obsoleto in un ordine completato
288
+ spree/variant:
289
+ attributes:
290
+ base:
291
+ cannot_destroy_if_attached_to_line_items: Impossibile eliminare varianti aggiunte a ordini effettuati. In tali casi, sospendile.
292
+ spree/webhook_endpoint:
293
+ attributes:
294
+ url:
295
+ internal_address_not_allowed: non deve puntare a un indirizzo di rete interna o privata
296
+ models:
297
+ spree/address:
298
+ one: Indirizzo
299
+ other: Indirizzi
300
+ spree/classification:
301
+ one: Classificazione
302
+ other: Classificazioni
303
+ spree/country:
304
+ one: Nazione
305
+ other: Nazioni
306
+ spree/credit_card:
307
+ one: Carta di Credito
308
+ other: Carte di Credito
309
+ spree/customer_group:
310
+ one: Gruppo di clienti
311
+ other: Gruppi di clienti
312
+ spree/customer_group_user:
313
+ one: Utente del gruppo di clienti
314
+ other: Utenti del gruppo di clienti
315
+ spree/export:
316
+ one: Esportazione
317
+ other: Esportazioni
318
+ spree/integration:
319
+ one: Integrazione
320
+ other: Integrazioni
321
+ spree/inventory_unit:
322
+ one: Unità di Inventario
323
+ other: Unità di Inventario
324
+ spree/line_item:
325
+ one: Riga d'Ordine
326
+ other: Righe d'Ordine
327
+ spree/option_type:
328
+ one: Opzione
329
+ other: Opzioni
330
+ spree/option_value:
331
+ one: Valore Opzione
332
+ other: Valori Opzione
333
+ spree/order:
334
+ one: Ordine
335
+ other: Ordini
336
+ spree/payment:
337
+ one: Pagamento
338
+ other: Pagamenti
339
+ spree/payment_method:
340
+ one: Metodo di Pagamento
341
+ other: Metodi di Pagamento
342
+ spree/price:
343
+ one: Prezzo
344
+ other: Prezzi
345
+ spree/price_list:
346
+ one: Listino prezzi
347
+ other: Listini prezzi
348
+ spree/price_rule:
349
+ one: Regola di prezzo
350
+ other: Regole di prezzo
351
+ spree/product:
352
+ one: Prodotto
353
+ other: Prodotti
354
+ spree/promotion:
355
+ one: Promozione
356
+ other: Promozioni
357
+ spree/promotion_category:
358
+ one: Categoria Promozione
359
+ other: Categorie Promozione
360
+ spree/property:
361
+ one: Proprietà
362
+ other: Proprietà
363
+ spree/refund_reason:
364
+ one: Ragione Rimborso
365
+ other: Ragioni Rimborso
366
+ spree/role:
367
+ one: Ruolo
368
+ other: Ruoli
369
+ spree/shipment:
370
+ one: Spedizione
371
+ other: Spedizioni
372
+ spree/shipping_method:
373
+ one: Metodo di Spedizione
374
+ other: Metodi di Spedizione
375
+ spree/state:
376
+ one: Provincia
377
+ other: Province
378
+ spree/stock_location:
379
+ one: Magazzino
380
+ other: Magazzini
381
+ spree/stock_movement:
382
+ one: Movimento di Magazzino
383
+ other: Movimenti di Magazzino
384
+ spree/stock_transfer:
385
+ one: Trasferimento di Magazzino
386
+ other: Trasferimenti di Magazzino
387
+ spree/store:
388
+ one: Negozio
389
+ other: Negozi
390
+ spree/store_credit:
391
+ one: Credito negozio
392
+ other: Crediti negozio
393
+ spree/tax_category:
394
+ one: Categoria di Tassazione
395
+ other: Categorie di Tassazione
396
+ spree/tax_rate:
397
+ one: Aliquota
398
+ other: Aliquote
399
+ spree/taxon:
400
+ one: Taxon
401
+ other: Taxon
402
+ spree/taxonomy:
403
+ one: Tassonomia
404
+ other: Tassonomie
405
+ spree/user:
406
+ one: Utente
407
+ other: Utenti
408
+ spree/variant:
409
+ one: Variante
410
+ other: Varianti
411
+ spree/zone:
412
+ one: Zona
413
+ other: Zone
414
+ errors:
415
+ messages:
416
+ already_confirmed: è già stato confermato
417
+ not_found: non trovato
418
+ not_locked: non era bloccato
419
+ not_saved:
420
+ one: 'questo %{resource} non può essere salvato a causa di 1 errore:'
421
+ other: 'questo %{resource} non può essere salvato a causa di %{count} errori:'
422
+ number:
423
+ percentage:
424
+ format:
425
+ precision: 1
426
+ spree:
427
+ accept: Accetta
428
+ accepted: Accettato
429
+ accepts_email_marketing: Accetta l'email marketing
430
+ account: Account
431
+ active: Attivo
432
+ address: Indirizzo
433
+ address1: Indirizzo
434
+ address2: Indirizzo (cont.)
435
+ adjustment: Variazione
436
+ adjustment_labels:
437
+ tax_rates:
438
+ excluding_tax: "%{name}%{amount}"
439
+ including_tax: "%{name}%{amount} (Inclusa nel prezzo)"
440
+ adjustments_deleted: Rettifiche eliminate
441
+ admin_user_mailer:
442
+ password_reset_email:
443
+ action: Reimposta password
444
+ expiry_notice: Questo link per reimpostare la password scadrà a breve. Se non hai richiesto tu questa operazione, non è necessaria alcuna azione.
445
+ greeting: Ciao %{name},
446
+ ignore_notice: Se non hai richiesto la reimpostazione della password, puoi ignorare questa email in tutta sicurezza. La tua password non verrà modificata.
447
+ instructions: Abbiamo ricevuto una richiesta di reimpostazione della password per il tuo account amministratore %{store_name}. Fai clic sul pulsante qui sotto per scegliere una nuova password.
448
+ subject: Istruzioni per la reimpostazione della password
449
+ all: Tutto
450
+ amount: Quantità
451
+ api_key_no_current_key: Nessuna chiave API ha autenticato questa richiesta
452
+ api_key_scopes_immutable: non possono essere modificati dopo la creazione della chiave; crea una nuova chiave con gli ambiti necessari e revoca questa
453
+ approver: Approvatore
454
+ authorized: Autorizzato
455
+ availability: disponibilità
456
+ backorderable: Ordinabile anche se terminato
457
+ backordered: Arretrato
458
+ bill_address: Indirizzo di Fatturazione
459
+ billing_address: Indirizzo di Fatturazione
460
+ calculator: Calcolatore
461
+ canceled: Annullato
462
+ canceler: Annullatore
463
+ cannot_be_destroyed: Impossibile eliminare l'ordine.
464
+ capture: Riscuoti
465
+ cart: Carrello
466
+ cart_already_updated: Il carrello è già stato aggiornato.
467
+ cart_line_item:
468
+ delivery_unavailable: "%{li_name} non può essere spedito all'indirizzo selezionato"
469
+ discontinued: "%{li_name} è stato rimosso perché non più disponibile"
470
+ out_of_stock: "%{li_name} è stato rimosso perché esaurito"
471
+ categories: Categorie
472
+ category: Categoria
473
+ channel: Canale di vendita
474
+ channels: Canali di vendita
475
+ checkout: Checkout
476
+ checkout_requirements:
477
+ email_required: L'indirizzo email è obbligatorio
478
+ line_items_required: Aggiungi almeno un articolo al carrello
479
+ payment_required: Aggiungi un metodo di pagamento
480
+ ship_address_required: L'indirizzo di spedizione è obbligatorio
481
+ city: Città
482
+ color_code: Codice colore
483
+ company: Azienda
484
+ compare_at_amount: Importo di confronto
485
+ compare_at_price: Prezzo di confronto
486
+ complete: completo
487
+ confirm: Conferma
488
+ cost_price: Prezzo di Costo
489
+ count_on_hand: Disponibilità
490
+ country: Paese
491
+ coupon_code: Codice coupon
492
+ coupon_code_already_applied: Il codice coupon è stato già applicato a quest'ordine
493
+ coupon_code_applied: Il codice coupon è stato applicato al tuo ordine con successo.
494
+ coupon_code_better_exists: Il coupon applicato in precedenza garantisce un'offerta migliore
495
+ coupon_code_expired: Il codice coupon è scaduto
496
+ coupon_code_max_usage: Limite di utilizzo codice coupon superato
497
+ coupon_code_not_eligible: Questo codice coupon non è applicabile a quest'ordine
498
+ coupon_code_not_found: Il codice coupon inserito non esiste. Per favore prova ancora.
499
+ coupon_code_unknown_error: Questo codice coupon non può essere applicabile a quest'ordine
500
+ coupon_code_used: Il codice coupon che hai inserito è già stato utilizzato. Riprova.
501
+ created_at: Creato Il
502
+ credit_card: Carta di Credito
503
+ currency: Valuta
504
+ currency_not_supported_by_store: non è supportata da questo negozio
505
+ customer: Cliente
506
+ customers: Clienti
507
+ default: Default
508
+ default_stock_location_name: Sede del negozio
509
+ default_wishlist_name: Lista dei desideri
510
+ delivery: Consegna
511
+ depth: Profondità
512
+ description: Descrizione
513
+ destination: Destinazione
514
+ destroy: Elimina
515
+ details: Dettagli
516
+ digital:
517
+ digital_delivery: Consegna digitale
518
+ digital_assets: Risorse digitali
519
+ discontinued: Sospeso
520
+ discontinued_variants_present: Alcuni articoli di questo ordine contengono prodotti non più disponibili.
521
+ display_delivery_range: Consegna in %{delivery_range} giorni lavorativi
522
+ draft: Bozza
523
+ eligibility_errors:
524
+ messages:
525
+ has_excluded_product: Il carrello contiene un prodotto che non permette l'applicazione di questo codice coupon.
526
+ item_total_less_than: Questo codice coupon non può essere applicato a ordini di importo inferiore a %{amount}.
527
+ item_total_less_than_or_equal: Questo codice coupon non può essere applicato a ordini di importo inferiore o uguale a %{amount}.
528
+ item_total_more_than: Questo codice coupon non può essere applicato a ordini di importo maggiore di %{amount}.
529
+ item_total_more_than_or_equal: Questo codice coupon non può essere applicato a ordini di importo maggiore o uguale di %{amount}.
530
+ limit_once_per_user: Questo codice coupon può essere usato solamente una volta per utente.
531
+ missing_product: Questo codice coupon non può essere applicato poiché non hai nel carrello tutti i prodotti necessari.
532
+ missing_taxon: Devi aggiungere un prodotto da tutte le categorie appropriate prima di applicare questo codice coupon.
533
+ no_applicable_products: Devi aggiungere un prodotto appropriato prima di applicare questo codice coupon.
534
+ no_matching_channel: Questo codice coupon non è valido per questo canale di vendita.
535
+ no_matching_market: Questo codice coupon non è valido nel tuo mercato.
536
+ no_matching_taxons: Devi aggiungere un prodotto da una categorie appropriata prima di applicare questo codice coupon.
537
+ no_user_or_email_specified: Devi fare il login o fornire una email prima di applicare questo codice coupon.
538
+ no_user_specified: Devi fare il login prima di applicare questo codice coupon.
539
+ not_first_order: Questo codice coupon può essere applicato solo al tuo primo ordine.
540
+ wrong_country: Questo codice coupon non è valido nel tuo Paese
541
+ email: Email
542
+ error: errore
543
+ error_user_destroy_with_orders: Impossibile eliminare un utente associato a degli ordini
544
+ error_user_does_not_have_any_store_credits: L'utente non dispone di alcun credito negozio
545
+ errors:
546
+ messages:
547
+ cannot_delete_default_channel: Impossibile eliminare il canale predefinito. Promuovi prima un altro canale a predefinito.
548
+ channel_store_mismatch: deve appartenere allo stesso negozio
549
+ invalid_order_routing_rule: non è una regola di instradamento ordini registrata
550
+ invalid_order_routing_strategy: non è una strategia di instradamento ordini registrata
551
+ store_association_can_not_be_changed: L'associazione al negozio non può essere modificata
552
+ store_is_already_set: Il negozio è già impostato
553
+ expired: Scaduto
554
+ export_mailer:
555
+ export_done:
556
+ message: Ottimo lavoro, la tua esportazione è pronta! Usa il link qui sotto per scaricarla.
557
+ subject: La tua esportazione %{export_number} è stata elaborata con successo!
558
+ greeting: Ciao %{user_name},
559
+ field: Campo
560
+ first_name: Nome
561
+ flat_percent: Percentuale Uniforme
562
+ flat_rate_per_order: Tariffa Flat
563
+ flexible_rate: Rata Flessibile
564
+ free: Gratuito
565
+ gateway: Gateway
566
+ gateway_error: Errore Gateway
567
+ gift_card: Gift card
568
+ gift_card_already_redeemed: La gift card è già stata riscattata.
569
+ gift_card_applied: La gift card è stata applicata con successo al tuo ordine!
570
+ gift_card_customer_not_logged_in: La gift card non può essere applicata da un utente ospite.
571
+ gift_card_expired: La gift card è scaduta.
572
+ gift_card_mismatched_currency: La gift card non può essere applicata con la valuta attuale.
573
+ gift_card_mismatched_customer: Questa gift card è associata a un altro utente.
574
+ gift_card_not_found: La gift card non è stata trovata.
575
+ gift_card_removed: La gift card è stata rimossa con successo dal tuo ordine
576
+ gift_card_using_store_credit_error: Non puoi applicare la gift card dopo aver applicato il credito negozio.
577
+ height: Altezza
578
+ i18n:
579
+ this_file_language: Italiano (IT)
580
+ idempotency_key_reused: Questa Idempotency-Key è già stata utilizzata con parametri di richiesta diversi.
581
+ image: Immagine
582
+ import: Importa
583
+ in_stock: Disponibile
584
+ inactive: Inattivo
585
+ incomplete: incompleto
586
+ insufficient_stock_lines_present: Alcune linee di questo ordine hanno quantità insufficiente.
587
+ internal_note: Nota interna
588
+ inventory: Inventario
589
+ invitation_mailer:
590
+ greeting: Ciao %{user_name},
591
+ invitation_accepted:
592
+ body: "%{invitee_name} ha accettato il tuo invito a unirsi a %{resource_name}"
593
+ subject: "%{invitee_name} ha accettato il tuo invito a unirsi a %{resource_name}"
594
+ invitation_email:
595
+ body: "%{inviter_name} ti ha invitato a unirti a %{resource_name}"
596
+ link_description: 'Per accettare questo invito, fai clic sul link qui sotto:'
597
+ subject: Invito a unirti a %{resource_name}
598
+ iso: ISO Alpha-2
599
+ item: articolo
600
+ items_cannot_be_shipped: Non siamo in grado di spedire l'articolo selezionato al tuo indirizzo. Per favore scegli un altro indirizzo di spedizione.
601
+ key: Chiave
602
+ kind: Tipo
603
+ label: Etichetta
604
+ last_name: Cognome
605
+ line_item: Articolo
606
+ line_items: Articoli
607
+ link: Link
608
+ locale: Lingua
609
+ locale_not_supported_by_store: non è supportata da questo negozio
610
+ manual: Manuale
611
+ market: Mercato
612
+ me_no_current_user: Nessun utente amministratore ha autenticato questa richiesta
613
+ media: Media
614
+ meta_description: Meta Description
615
+ meta_keywords: Meta Keywords
616
+ meta_title: Meta Title
617
+ metadata: Metadata
618
+ min_quantity: Quantità minima
619
+ month: Mese
620
+ name: Nome
621
+ new_variant: Nuova Variante
622
+ no_cc_type: N/D
623
+ no_payment_found: Nessun pagamento trovato
624
+ none: Niente
625
+ number: Numero
626
+ on_hand: Disponibilità
627
+ only_active_products_can_be_added_to_cart: I prodotti in bozza e archiviati non possono essere aggiunti al carrello, contrassegna prima il prodotto come attivo.
628
+ open: Apri
629
+ option_name: Nome opzione
630
+ option_type: Opzione
631
+ option_value: Valore Opzione
632
+ options: Opzioni
633
+ or: o
634
+ order: Ordine
635
+ order_canceled: Ordine Annullato
636
+ order_routing:
637
+ strategies:
638
+ legacy: Legacy
639
+ rules: Regole (ordinate)
640
+ order_summary: Riassunto Ordine
641
+ orders: Ordini
642
+ out_of_stock: Non disponibile
643
+ password: Password
644
+ path: Percorso
645
+ payment: Pagamento
646
+ payment_method: Metodo di Pagamento
647
+ payment_method_not_supported: Quel metodo di pagamento non è supportato. Per favore scegline un'altro.
648
+ payment_methods: Metodi di Pagamento
649
+ payment_processing_failed: Il pagamento non è stato processato correttamente, per favore controlla i dati inseriti
650
+ payment_source: Fonte di pagamento
651
+ pending: in sospeso
652
+ percent: Percentuale
653
+ percent_per_item: Percentuale per articolo
654
+ phone: Telefono
655
+ price: Prezzo
656
+ price_range: Gamma di Prezzo
657
+ price_rules:
658
+ channel_rule:
659
+ description: Applica i prezzi in base al canale di vendita
660
+ customer_group_rule:
661
+ description: Applica i prezzi a specifici gruppi di clienti
662
+ price_sack: Costo imballaggio
663
+ prices: Prezzi
664
+ privacy_policy: Informativa sulla privacy
665
+ processing: Elaborazione in corso
666
+ product: Prodotto
667
+ product_translations: Traduzioni prodotto
668
+ products: Prodotti
669
+ products_cannot_be_shipped: Al momento non possiamo spedire %{product_names} alla tua posizione attuale. Modifica il tuo indirizzo di spedizione o rimuovi %{product_names} dal carrello.
670
+ promotion: Promozioni
671
+ promotion_action_types:
672
+ create_adjustment:
673
+ description: Crea una variazione promozionale sull'ordine
674
+ name: Crea variazione per tutto l'ordine
675
+ create_item_adjustments:
676
+ description: Crea una variazione promozionale per un articolo
677
+ name: Crea variazione per un articolo
678
+ create_line_items:
679
+ description: Popola il carrello con la quantità specificata per la variante
680
+ name: Crea righe d'ordine
681
+ free_shipping:
682
+ description: Rendi gratuite tutte le spedizioni dell'ordine
683
+ name: Spedizione Gratuita
684
+ promotion_actions: Azioni
685
+ promotion_already_used: Non puoi eliminare una promozione che è già stata applicata
686
+ promotion_label: Promozione (%{name})
687
+ promotion_rule_types:
688
+ category:
689
+ description: L'ordine include prodotti in categorie specificate
690
+ name: Categorie
691
+ channel:
692
+ description: Limita agli ordini effettuati tramite i canali specificati
693
+ name: Canale/i
694
+ country:
695
+ description: Limita agli ordini con indirizzo di spedizione in un Paese specifico
696
+ name: Paese
697
+ currency:
698
+ description: Limita agli ordini in una valuta specifica
699
+ name: Valuta
700
+ customer:
701
+ description: Disponibile solo per i clienti specificati
702
+ name: Clienti
703
+ customer_group:
704
+ description: Disponibile solo per i clienti dei gruppi di clienti specificati
705
+ name: Gruppo/i di clienti
706
+ customer_logged_in:
707
+ description: Disponibile solo per i clienti che hanno effettuato l'accesso
708
+ name: Solo clienti che hanno effettuato l'accesso
709
+ first_order:
710
+ description: Deve essere il primo ordine del cliente
711
+ name: Primo Ordine
712
+ item_total:
713
+ description: Il totale dell'ordine soddisfa questi criteri
714
+ name: Totale Articolo
715
+ market:
716
+ description: Limita agli ordini effettuati nei mercati specificati
717
+ name: Mercato/i
718
+ one_use_per_user:
719
+ description: Descrizione
720
+ name: Nome
721
+ option_value:
722
+ description: Descrizione
723
+ name: Nome
724
+ product:
725
+ description: L'ordine include i prodotti specificati
726
+ name: Prodotto/i
727
+ promotions: Promozioni
728
+ quantity: Quantità
729
+ query: Query
730
+ reason: Ragione
731
+ received: Ricevuto
732
+ reference: Riferimento
733
+ refund: Rimborso
734
+ refund_amount: Importo del rimborso
735
+ refunds: Rimborsi
736
+ registration: Registrazione
737
+ rejected: Rifiutato
738
+ remove: Rimuovi
739
+ remove_gift_card_on_completed_order_error: Non puoi rimuovere la gift card dopo che l'ordine è stato effettuato
740
+ resellable: Rivendibile
741
+ resend: Rinvio
742
+ response_code: Codice di Risposta
743
+ return: ritorna
744
+ returned: Restituito
745
+ returns_policy: Politica di reso
746
+ row: Riga
747
+ rules: Regole
748
+ say_no: 'No'
749
+ say_yes: Sì
750
+ scope: Campo
751
+ ship: spedisci
752
+ ship_address: Indirizzo di Spedizione
753
+ shipment: Spedizione
754
+ shipped: Spedito
755
+ shipping: Spedizione
756
+ shipping_address: Indirizzo di Spedizione
757
+ shipping_flat_rate_per_item: Tariffa fissa per articolo
758
+ shipping_flat_rate_per_order: Tariffa fissa
759
+ shipping_flexible_rate: Tariffa flessibile
760
+ shipping_policy: Politica di spedizione
761
+ shipping_price_sack: Costo imballaggio
762
+ shipping_rates:
763
+ display_price:
764
+ excluding_tax: "%{price} (+ %{tax_amount} %{tax_rate_name})"
765
+ including_tax: "%{price} (incl. %{tax_amount} %{tax_rate_name})"
766
+ sku: SKU
767
+ slug: Slug
768
+ source: Origine
769
+ status: Stato
770
+ stock_location: Magazzino
771
+ stock_locations: Magazzini
772
+ stock_transfer:
773
+ errors:
774
+ must_have_variant: Devi aggiungere almeno una variante
775
+ same_location: non può essere uguale al magazzino di destinazione
776
+ variants_unavailable: Alcune varianti non sono disponibili in %{stock}
777
+ store: Negozio
778
+ store_credit:
779
+ allocated: Aggiunto
780
+ authorized: Autorizzato
781
+ captured: Utilizzato
782
+ credit: Credito
783
+ eligible: Idoneo
784
+ store_credit_name: Credito negozio
785
+ store_credit_payment_method:
786
+ currency_mismatch: La valuta del credito negozio non corrisponde alla valuta dell'ordine
787
+ insufficient_authorized_amount: Impossibile acquisire più dell'importo autorizzato
788
+ insufficient_funds: Il credito negozio rimanente non è sufficiente
789
+ successful_action: Credito negozio %{action} con successo
790
+ unable_to_credit: 'Impossibile accreditare il codice: %{auth_code}'
791
+ unable_to_find: Impossibile trovare il credito negozio
792
+ unable_to_find_for_action: 'Impossibile trovare il credito negozio per il codice di autorizzazione: %{auth_code} per l''azione: %{action}'
793
+ unable_to_void: 'Impossibile annullare il codice: %{auth_code}'
794
+ success: Successo
795
+ tags: Tag
796
+ tax: Tassazione
797
+ tax_category: Categoria di Tassazione
798
+ terms_of_service: Termini di servizio
799
+ there_are_no_items_for_this_order: Non ci sono articoli per questo ordine. Per favore aggiungi un articolo all'ordine per continuare.
800
+ tiered_flat_rate: Tariffa Fissa a Livelli
801
+ tiered_percent: Tariffa Fissa a Percentuale
802
+ total: Totale
803
+ track_inventory: Traccia Inventario
804
+ tracking: Tracciamento
805
+ tracking_number: Codice Tracciamento
806
+ tracking_url: URL Tracciamento
807
+ type: Tipo
808
+ unable_to_connect_to_gateway: Impossibile connettersi al gateway.
809
+ updated_at: Aggiornato il
810
+ url: URL
811
+ user: Utente
812
+ validation:
813
+ must_be_int: deve essere un intero
814
+ value: Valore
815
+ variant: Variante
816
+ variants: Varianti
817
+ verified: Verificato
818
+ void: Annullato
819
+ webhook_mailer:
820
+ endpoint_disabled:
821
+ disabled_at_label: Disabilitato il
822
+ heading: Endpoint webhook disabilitato
823
+ instructions: Controlla l'URL e il servizio dell'endpoint, quindi riabilitalo in Impostazioni → Sviluppatori → Webhook.
824
+ message: L'endpoint webhook "%{endpoint_name}" è stato disabilitato automaticamente dopo ripetuti errori di consegna.
825
+ name_label: Nome
826
+ reason_label: Motivo
827
+ subject: 'Endpoint webhook disabilitato: %{endpoint_name}'
828
+ url_label: URL
829
+ weight: Peso
830
+ weight_unit: Unità di peso
831
+ width: Larghezza
832
+ year: Anno
833
+ zip: Cap