spree_core 6.0.0.beta4 → 6.0.0.rc2

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 (575) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +5 -5
  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/search_provider/index_job.rb +4 -0
  10. data/app/jobs/spree/seller_payouts/sweep_seller_job.rb +2 -0
  11. data/app/jobs/spree/uploads/purge_unattached_job.rb +49 -0
  12. data/app/mailers/spree/admin_user_mailer.rb +4 -19
  13. data/app/mailers/spree/base_mailer.rb +97 -13
  14. data/app/mailers/spree/email_template_mailer.rb +27 -0
  15. data/app/mailers/spree/export_mailer.rb +3 -4
  16. data/app/mailers/spree/import_mailer.rb +3 -4
  17. data/app/mailers/spree/invitation_mailer.rb +24 -7
  18. data/app/mailers/spree/seller_user_mailer.rb +4 -16
  19. data/app/mailers/spree/webhook_mailer.rb +2 -2
  20. data/app/models/concerns/spree/acted_by.rb +1 -1
  21. data/app/models/concerns/spree/admin_user_methods.rb +15 -1
  22. data/app/models/concerns/spree/api_typed.rb +91 -0
  23. data/app/models/concerns/spree/calculated_adjustments.rb +41 -13
  24. data/app/models/concerns/spree/calculator/currency_amounts.rb +1 -1
  25. data/app/models/concerns/spree/calculator/tiers.rb +63 -0
  26. data/app/models/concerns/spree/canonical_decimals.rb +61 -0
  27. data/app/models/concerns/spree/customer_methods.rb +23 -18
  28. data/app/models/concerns/spree/derived_number.rb +11 -13
  29. data/app/models/concerns/spree/email_template_identity.rb +52 -0
  30. data/app/models/concerns/spree/parameterizable_name.rb +2 -0
  31. data/app/models/concerns/spree/payment_session_transitions.rb +8 -2
  32. data/app/models/concerns/spree/post_sale/taxation.rb +54 -0
  33. data/app/models/concerns/spree/post_sale/taxed_line.rb +51 -0
  34. data/app/models/concerns/spree/preference_schema/json_schema.rb +139 -0
  35. data/app/models/concerns/spree/preference_schema.rb +62 -32
  36. data/app/models/concerns/spree/product_scopes.rb +16 -2
  37. data/app/models/concerns/spree/provider_listing.rb +41 -0
  38. data/app/models/concerns/spree/publishable.rb +82 -14
  39. data/app/models/concerns/spree/purchase/addresses.rb +23 -10
  40. data/app/models/concerns/spree/purchase/currency.rb +1 -1
  41. data/app/models/concerns/spree/purchase/deprecated_aliases.rb +87 -0
  42. data/app/models/concerns/spree/purchase/gift_cards.rb +10 -4
  43. data/app/models/concerns/spree/purchase/locale.rb +1 -1
  44. data/app/models/concerns/spree/purchase/payment_processing.rb +8 -4
  45. data/app/models/concerns/spree/purchase/purchase_order.rb +9 -4
  46. data/app/models/concerns/spree/purchase/store_credits.rb +36 -1
  47. data/app/models/concerns/spree/purchase/totals.rb +49 -8
  48. data/app/models/concerns/spree/ransackable_attributes.rb +46 -0
  49. data/app/models/concerns/spree/receivable.rb +1 -1
  50. data/app/models/concerns/spree/searchable.rb +0 -4
  51. data/app/models/concerns/spree/secret_preferences.rb +59 -0
  52. data/app/models/concerns/spree/signed_id_attachments.rb +54 -0
  53. data/app/models/concerns/spree/single_store_resource.rb +1 -1
  54. data/app/models/concerns/spree/stores/email_branding.rb +32 -0
  55. data/app/models/concerns/spree/stores/markets.rb +5 -2
  56. data/app/models/concerns/spree/type_labels.rb +38 -0
  57. data/app/models/concerns/spree/typed_adjustment_line.rb +5 -6
  58. data/app/models/concerns/spree/typed_associations.rb +12 -18
  59. data/app/models/concerns/spree/vat_price_calculation.rb +5 -6
  60. data/app/models/spree/address.rb +12 -2
  61. data/app/models/spree/adjusters/largest_remainder.rb +14 -1
  62. data/app/models/spree/adjusters/promotion.rb +4 -19
  63. data/app/models/spree/allowed_origin.rb +3 -1
  64. data/app/models/spree/api_key.rb +5 -6
  65. data/app/models/spree/authentication/strategies/oidc_strategy.rb +5 -5
  66. data/app/models/spree/base.rb +99 -22
  67. data/app/models/spree/calculator/flat_percent_item_total.rb +2 -4
  68. data/app/models/spree/calculator/flat_rate.rb +3 -5
  69. data/app/models/spree/calculator/flexi_rate.rb +4 -6
  70. data/app/models/spree/calculator/percent_on_line_item.rb +2 -2
  71. data/app/models/spree/calculator/price_sack.rb +5 -7
  72. data/app/models/spree/calculator/shipping/digital_delivery.rb +3 -5
  73. data/app/models/spree/calculator/shipping/flat_percent_item_total.rb +7 -7
  74. data/app/models/spree/calculator/shipping/flat_rate.rb +5 -7
  75. data/app/models/spree/calculator/shipping/flexi_rate.rb +4 -6
  76. data/app/models/spree/calculator/shipping/per_item.rb +3 -5
  77. data/app/models/spree/calculator/shipping/price_sack.rb +5 -7
  78. data/app/models/spree/calculator/tiered_flat_rate.rb +7 -24
  79. data/app/models/spree/calculator/tiered_percent.rb +7 -25
  80. data/app/models/spree/cart.rb +78 -18
  81. data/app/models/spree/catalog.rb +1 -0
  82. data/app/models/spree/catalog_price.rb +0 -7
  83. data/app/models/spree/catalog_price_tier.rb +0 -8
  84. data/app/models/spree/category.rb +3 -1
  85. data/app/models/spree/channel/gating.rb +3 -2
  86. data/app/models/spree/channel.rb +6 -4
  87. data/app/models/spree/claim.rb +22 -1
  88. data/app/models/spree/claim_line_item.rb +41 -6
  89. data/app/models/spree/collection.rb +2 -1
  90. data/app/models/spree/collection_rule.rb +5 -21
  91. data/app/models/spree/commission_line.rb +1 -1
  92. data/app/models/spree/commission_rate.rb +7 -4
  93. data/app/models/spree/commission_rate_value.rb +1 -1
  94. data/app/models/spree/commission_rule.rb +4 -11
  95. data/app/models/spree/commission_rules/category_rule.rb +2 -5
  96. data/app/models/spree/commission_rules/item_total_rule.rb +2 -2
  97. data/app/models/spree/commission_rules/product_rule.rb +1 -1
  98. data/app/models/spree/commission_rules/seller_rule.rb +2 -5
  99. data/app/models/spree/company.rb +1 -0
  100. data/app/models/spree/company_invitation.rb +1 -0
  101. data/app/models/spree/consent_record.rb +0 -1
  102. data/app/models/spree/credit_card.rb +1 -1
  103. data/app/models/spree/current.rb +23 -0
  104. data/app/models/spree/custom_field.rb +2 -2
  105. data/app/models/spree/custom_field_definition.rb +20 -35
  106. data/app/models/spree/custom_fields/boolean.rb +1 -1
  107. data/app/models/spree/custom_fields/json.rb +1 -1
  108. data/app/models/spree/customer_group.rb +1 -0
  109. data/app/models/spree/data_feed/google.rb +0 -2
  110. data/app/models/spree/data_request.rb +2 -1
  111. data/app/models/spree/delivery_method.rb +36 -14
  112. data/app/models/spree/delivery_method_rule.rb +4 -11
  113. data/app/models/spree/delivery_method_rules/channel_rule.rb +2 -5
  114. data/app/models/spree/delivery_method_rules/item_total_rule.rb +2 -2
  115. data/app/models/spree/delivery_profile.rb +1 -0
  116. data/app/models/spree/delivery_rate.rb +7 -8
  117. data/app/models/spree/delivery_rate_provider/base.rb +1 -0
  118. data/app/models/spree/delivery_zone.rb +1 -2
  119. data/app/models/spree/delivery_zone_member.rb +4 -4
  120. data/app/models/spree/digital_asset.rb +7 -0
  121. data/app/models/spree/digital_asset_provider/base.rb +2 -0
  122. data/app/models/spree/digital_link.rb +2 -5
  123. data/app/models/spree/discount.rb +1 -1
  124. data/app/models/spree/email_template.rb +25 -0
  125. data/app/models/spree/email_template_draft.rb +13 -0
  126. data/app/models/spree/email_template_revision.rb +17 -0
  127. data/app/models/spree/email_templates/entry.rb +118 -0
  128. data/app/models/spree/email_templates/sample_record.rb +16 -0
  129. data/app/models/spree/emails/branding.rb +80 -0
  130. data/app/models/spree/exchange.rb +16 -1
  131. data/app/models/spree/exchange_line_item.rb +121 -5
  132. data/app/models/spree/export.rb +0 -1
  133. data/app/models/spree/exports/products.rb +10 -1
  134. data/app/models/spree/exports/report.rb +3 -3
  135. data/app/models/spree/fee.rb +4 -2
  136. data/app/models/spree/file_upload.rb +155 -0
  137. data/app/models/spree/fulfillment.rb +66 -30
  138. data/app/models/spree/fulfillment_changer.rb +2 -2
  139. data/app/models/spree/fulfillment_group.rb +6 -1
  140. data/app/models/spree/fulfillment_item.rb +0 -4
  141. data/app/models/spree/fulfillment_provider/base.rb +1 -0
  142. data/app/models/spree/gateway/bogus.rb +6 -0
  143. data/app/models/spree/gateway/custom_payment_source_method.rb +5 -0
  144. data/app/models/spree/gateway.rb +6 -2
  145. data/app/models/spree/gift_card.rb +18 -8
  146. data/app/models/spree/gift_card_batch.rb +3 -5
  147. data/app/models/spree/import.rb +5 -7
  148. data/app/models/spree/import_mapping.rb +1 -2
  149. data/app/models/spree/import_row.rb +2 -2
  150. data/app/models/spree/import_schemas/products.rb +1 -0
  151. data/app/models/spree/integration.rb +9 -19
  152. data/app/models/spree/invitation.rb +5 -5
  153. data/app/models/spree/line_item.rb +15 -4
  154. data/app/models/spree/locale.rb +11 -8
  155. data/app/models/spree/market.rb +8 -2
  156. data/app/models/spree/media.rb +1 -9
  157. data/app/models/spree/newsletter_subscriber.rb +4 -0
  158. data/app/models/spree/option_type.rb +2 -1
  159. data/app/models/spree/option_value.rb +2 -1
  160. data/app/models/spree/order.rb +60 -142
  161. data/app/models/spree/order_group.rb +18 -4
  162. data/app/models/spree/order_inventory.rb +10 -5
  163. data/app/models/spree/order_promotion.rb +1 -1
  164. data/app/models/spree/order_routing/has_strategy_preference.rb +1 -1
  165. data/app/models/spree/order_routing/strategy/base.rb +4 -2
  166. data/app/models/spree/order_routing/strategy/rules.rb +1 -1
  167. data/app/models/spree/order_routing_rule.rb +6 -22
  168. data/app/models/spree/package_type.rb +2 -2
  169. data/app/models/spree/payment/gateway_options.rb +15 -53
  170. data/app/models/spree/payment/processing.rb +2 -4
  171. data/app/models/spree/payment.rb +21 -13
  172. data/app/models/spree/payment_method/check.rb +2 -0
  173. data/app/models/spree/payment_method/session_instrumentation.rb +1 -0
  174. data/app/models/spree/payment_method/store_credit.rb +15 -13
  175. data/app/models/spree/payment_method.rb +78 -6
  176. data/app/models/spree/payment_session.rb +5 -1
  177. data/app/models/spree/payment_setup_session.rb +1 -0
  178. data/app/models/spree/payout_provider/base.rb +3 -1
  179. data/app/models/spree/pickup_point_provider/base.rb +2 -0
  180. data/app/models/spree/policy.rb +1 -0
  181. data/app/models/spree/price.rb +17 -14
  182. data/app/models/spree/price_adjustment_tier.rb +4 -0
  183. data/app/models/spree/price_list.rb +14 -9
  184. data/app/models/spree/price_rules/channel_rule.rb +3 -6
  185. data/app/models/spree/price_rules/customer_group_rule.rb +3 -6
  186. data/app/models/spree/price_rules/market_rule.rb +2 -5
  187. data/app/models/spree/price_rules/user_rule.rb +1 -3
  188. data/app/models/spree/product/channels.rb +9 -2
  189. data/app/models/spree/product.rb +54 -30
  190. data/app/models/spree/product_submission.rb +0 -12
  191. data/app/models/spree/product_type.rb +1 -1
  192. data/app/models/spree/promotion/actions/create_line_items.rb +28 -18
  193. data/app/models/spree/promotion/rules/category.rb +1 -5
  194. data/app/models/spree/promotion/rules/channel.rb +2 -9
  195. data/app/models/spree/promotion/rules/country.rb +3 -8
  196. data/app/models/spree/promotion/rules/currency.rb +1 -5
  197. data/app/models/spree/promotion/rules/customer_group.rb +2 -9
  198. data/app/models/spree/promotion/rules/first_order.rb +0 -4
  199. data/app/models/spree/promotion/rules/item_total.rb +6 -10
  200. data/app/models/spree/promotion/rules/market.rb +2 -9
  201. data/app/models/spree/promotion/rules/one_use_per_user.rb +0 -4
  202. data/app/models/spree/promotion/rules/option_value.rb +2 -6
  203. data/app/models/spree/promotion/rules/product.rb +1 -5
  204. data/app/models/spree/promotion/rules/user.rb +0 -4
  205. data/app/models/spree/promotion/rules/user_logged_in.rb +0 -4
  206. data/app/models/spree/promotion.rb +36 -6
  207. data/app/models/spree/promotion_action.rb +7 -14
  208. data/app/models/spree/promotion_action_line_item.rb +1 -1
  209. data/app/models/spree/promotion_handler/coupon.rb +59 -27
  210. data/app/models/spree/promotion_rule.rb +7 -14
  211. data/app/models/spree/purchase_order.rb +3 -0
  212. data/app/models/spree/quantity_rule.rb +1 -1
  213. data/app/models/spree/refund.rb +41 -18
  214. data/app/models/spree/return.rb +31 -2
  215. data/app/models/spree/return_line_item.rb +65 -14
  216. data/app/models/spree/role.rb +7 -7
  217. data/app/models/spree/saved_report.rb +2 -1
  218. data/app/models/spree/search_provider/base.rb +4 -0
  219. data/app/models/spree/seller.rb +10 -2
  220. data/app/models/spree/seller_payout.rb +8 -0
  221. data/app/models/spree/seller_requirement.rb +5 -12
  222. data/app/models/spree/seller_requirement_custom_field.rb +1 -2
  223. data/app/models/spree/seller_requirement_submission.rb +3 -2
  224. data/app/models/spree/seller_requirements/accept_terms.rb +2 -3
  225. data/app/models/spree/seller_transfer.rb +6 -0
  226. data/app/models/spree/shipping_label.rb +2 -0
  227. data/app/models/spree/stock/availability_validator.rb +2 -2
  228. data/app/models/spree/stock/estimator.rb +1 -1
  229. data/app/models/spree/stock/inventory_unit_builder.rb +1 -1
  230. data/app/models/spree/stock/packer.rb +2 -2
  231. data/app/models/spree/stock/splitter/weight.rb +1 -1
  232. data/app/models/spree/stock_level/custom_events.rb +6 -0
  233. data/app/models/spree/stock_level.rb +3 -1
  234. data/app/models/spree/stock_location.rb +1 -0
  235. data/app/models/spree/stock_movement.rb +1 -1
  236. data/app/models/spree/stock_receipt_item.rb +1 -1
  237. data/app/models/spree/stock_reservation.rb +2 -2
  238. data/app/models/spree/stock_transfer.rb +6 -2
  239. data/app/models/spree/store.rb +70 -19
  240. data/app/models/spree/store_credit.rb +13 -13
  241. data/app/models/spree/store_credit_event.rb +5 -5
  242. data/app/models/spree/supplier.rb +1 -0
  243. data/app/models/spree/tax_category.rb +1 -0
  244. data/app/models/spree/tax_exemption_certificate.rb +3 -0
  245. data/app/models/spree/tax_identifier.rb +3 -1
  246. data/app/models/spree/tax_line.rb +53 -3
  247. data/app/models/spree/tax_provider/base.rb +71 -14
  248. data/app/models/spree/tax_provider/internal.rb +70 -41
  249. data/app/models/spree/tax_provider/recorded_share.rb +114 -0
  250. data/app/models/spree/tax_rate.rb +30 -8
  251. data/app/models/spree/taxon.rb +1 -1
  252. data/app/models/spree/taxonomy.rb +0 -1
  253. data/app/models/spree/update_status.rb +25 -0
  254. data/app/models/spree/variant.rb +10 -12
  255. data/app/models/spree/variant_media.rb +1 -1
  256. data/app/models/spree/webhook_delivery.rb +1 -0
  257. data/app/models/spree/webhook_endpoint.rb +46 -13
  258. data/app/models/spree/wishlist.rb +1 -6
  259. data/app/models/spree/wishlist_item/custom_events.rb +6 -0
  260. data/app/presenters/spree/csv/customer_presenter.rb +1 -1
  261. data/app/presenters/spree/csv/newsletter_subscriber_presenter.rb +1 -1
  262. data/app/presenters/spree/csv/order_line_item_presenter.rb +10 -6
  263. data/app/presenters/spree/csv/price_list_price_presenter.rb +3 -8
  264. data/app/presenters/spree/csv/product_variant_presenter.rb +59 -20
  265. data/app/presenters/spree/csv/purchase_order_item_presenter.rb +1 -3
  266. data/app/serializers/spree/emails/base_serializer.rb +14 -0
  267. data/app/serializers/spree/emails/export_serializer.rb +13 -0
  268. data/app/serializers/spree/emails/import_serializer.rb +19 -0
  269. data/app/serializers/spree/emails/invitation_serializer.rb +28 -0
  270. data/app/serializers/spree/emails/store_serializer.rb +31 -0
  271. data/app/serializers/spree/emails/user_serializer.rb +12 -0
  272. data/app/serializers/spree/emails/webhook_endpoint_serializer.rb +16 -0
  273. data/app/services/spree/carts/create.rb +8 -2
  274. data/app/services/spree/carts/destroy.rb +2 -2
  275. data/app/services/spree/carts/remove_out_of_stock_items.rb +2 -2
  276. data/app/services/spree/carts/split_by_seller.rb +1 -1
  277. data/app/services/spree/carts/update.rb +22 -8
  278. data/app/services/spree/catalogs/set_product_terms.rb +1 -1
  279. data/app/services/spree/categories/add_products.rb +13 -31
  280. data/app/services/spree/categories/remove_products.rb +12 -51
  281. data/app/services/spree/checkout/advance.rb +1 -4
  282. data/app/services/spree/collections/add_products.rb +10 -23
  283. data/app/services/spree/collections/remove_products.rb +7 -43
  284. data/app/services/spree/coupon_codes/bulk_generate.rb +8 -14
  285. data/app/services/spree/data_requests/create.rb +1 -1
  286. data/app/services/spree/deliveries/destroy.rb +2 -2
  287. data/app/services/spree/email_templates/check.rb +58 -0
  288. data/app/services/spree/email_templates/no_sample_record.rb +7 -0
  289. data/app/services/spree/email_templates/preview.rb +99 -0
  290. data/app/services/spree/emails/file_system.rb +23 -0
  291. data/app/services/spree/emails/filters.rb +84 -0
  292. data/app/services/spree/emails/liquid_context.rb +48 -0
  293. data/app/services/spree/emails/rendered_email.rb +14 -0
  294. data/app/services/spree/emails/renderer.rb +125 -0
  295. data/app/services/spree/emails/template.rb +51 -0
  296. data/app/services/spree/emails/template_data.rb +23 -0
  297. data/app/services/spree/emails/template_resolver.rb +109 -0
  298. data/app/services/spree/emails/text_converter.rb +72 -0
  299. data/app/services/spree/emails/translation_inliner.rb +134 -0
  300. data/app/services/spree/imports/row_processors/price_list_price.rb +10 -10
  301. data/app/services/spree/imports/row_processors/product_variant.rb +77 -34
  302. data/app/services/spree/imports/row_processors/purchase_order.rb +13 -13
  303. data/app/services/spree/locales.rb +43 -10
  304. data/app/services/spree/newsletter/subscribe.rb +8 -12
  305. data/app/services/spree/orders/build_fulfillments.rb +3 -2
  306. data/app/services/spree/orders/create.rb +5 -4
  307. data/app/services/spree/orders/discounts/create.rb +14 -11
  308. data/app/services/spree/orders/discounts/destroy.rb +1 -0
  309. data/app/services/spree/orders/discounts/update.rb +1 -0
  310. data/app/services/spree/orders/fees/create.rb +1 -0
  311. data/app/services/spree/orders/fees/destroy.rb +1 -0
  312. data/app/services/spree/orders/fees/update.rb +1 -0
  313. data/app/services/spree/orders/remove_line_item.rb +13 -3
  314. data/app/services/spree/orders/update.rb +10 -6
  315. data/app/services/spree/orders/update_item.rb +6 -3
  316. data/app/services/spree/orders/update_statuses.rb +3 -1
  317. data/app/services/spree/prices/bulk_upsert.rb +32 -25
  318. data/app/services/spree/product_memberships.rb +61 -0
  319. data/app/services/spree/returns/eligibility_validator.rb +1 -1
  320. data/app/services/spree/search_provider/custom_field_schema.rb +2 -2
  321. data/app/services/spree/seeds/commission_rates.rb +1 -1
  322. data/app/services/spree/seeds/digital_delivery.rb +1 -1
  323. data/app/services/spree/seeds/payment_methods.rb +2 -2
  324. data/app/services/spree/seeds/saved_reports.rb +3 -3
  325. data/app/services/spree/seeds/stores.rb +1 -1
  326. data/app/services/spree/sellers/requirements.rb +1 -2
  327. data/app/services/spree/shipping_labels/confirm_refund.rb +1 -1
  328. data/app/services/spree/shipping_labels/store_file.rb +3 -3
  329. data/app/services/spree/stock_levels/correct.rb +3 -3
  330. data/app/services/spree/stock_reservations/reserve.rb +2 -3
  331. data/app/services/spree/store_credits/apply.rb +15 -13
  332. data/app/services/spree/stores/provision_defaults.rb +23 -25
  333. data/app/services/spree/update_check.rb +160 -0
  334. data/app/services/spree/uploads/assign_stores.rb +92 -0
  335. data/app/subscribers/spree/seller_onboarding_subscriber.rb +1 -1
  336. data/app/validators/spree/attachment_content_type_validator.rb +19 -2
  337. data/app/validators/spree/locale_codes_validator.rb +22 -0
  338. data/app/views/layouts/spree/base_mailer.html.erb +2 -43
  339. data/app/views/layouts/spree/base_mailer.liquid +79 -0
  340. data/app/views/spree/admin_user_mailer/password_reset_email.liquid +14 -0
  341. data/app/views/spree/export_mailer/export_done.liquid +12 -0
  342. data/app/views/spree/import_mailer/import_done.liquid +15 -0
  343. data/app/views/spree/invitation_mailer/invitation_accepted.liquid +9 -0
  344. data/app/views/spree/invitation_mailer/invitation_email.liquid +13 -0
  345. data/app/views/spree/seller_user_mailer/password_reset_email.liquid +14 -0
  346. data/app/views/spree/shared/_mailer_button.html.erb +4 -5
  347. data/app/views/spree/shared/_mailer_hero.html.erb +6 -5
  348. data/app/views/spree/shared/_summary_row.liquid +8 -0
  349. data/app/views/spree/webhook_mailer/endpoint_disabled.liquid +21 -0
  350. data/app/workflows/spree/carts/add_item.rb +4 -4
  351. data/app/workflows/spree/carts/complete.rb +13 -3
  352. data/app/workflows/spree/carts/merge.rb +1 -1
  353. data/app/workflows/spree/carts/recalculate_totals.rb +5 -0
  354. data/app/workflows/spree/carts/upsert_items.rb +18 -9
  355. data/app/workflows/spree/claims/approve.rb +5 -22
  356. data/app/workflows/spree/claims/cancel.rb +5 -21
  357. data/app/workflows/spree/claims/create.rb +15 -0
  358. data/app/workflows/spree/claims/deny.rb +7 -0
  359. data/app/workflows/spree/claims/resolve.rb +34 -31
  360. data/app/workflows/spree/customers/anonymize.rb +3 -4
  361. data/app/workflows/spree/customers/create.rb +1 -1
  362. data/app/workflows/spree/data_requests/fulfill.rb +2 -2
  363. data/app/workflows/spree/deliveries/update_tracking.rb +1 -1
  364. data/app/workflows/spree/email_templates/discard_draft.rb +20 -0
  365. data/app/workflows/spree/email_templates/publish.rb +70 -0
  366. data/app/workflows/spree/email_templates/restore_revision.rb +33 -0
  367. data/app/workflows/spree/email_templates/revert.rb +29 -0
  368. data/app/workflows/spree/email_templates/save_draft.rb +85 -0
  369. data/app/workflows/spree/exchanges/approve.rb +5 -22
  370. data/app/workflows/spree/exchanges/cancel.rb +5 -21
  371. data/app/workflows/spree/exchanges/create.rb +6 -0
  372. data/app/workflows/spree/exchanges/fulfill.rb +75 -51
  373. data/app/workflows/spree/exchanges/receive.rb +6 -65
  374. data/app/workflows/spree/fulfillments/cancel.rb +1 -1
  375. data/app/workflows/spree/fulfillments/create.rb +53 -49
  376. data/app/workflows/spree/fulfillments/fulfill.rb +23 -27
  377. data/app/workflows/spree/fulfillments/mark_delivered.rb +1 -1
  378. data/app/workflows/spree/fulfillments/replacements.rb +59 -0
  379. data/app/workflows/spree/gift_cards/apply.rb +2 -2
  380. data/app/workflows/spree/orders/add_item.rb +5 -1
  381. data/app/workflows/spree/orders/cancel.rb +3 -3
  382. data/app/workflows/spree/orders/complete.rb +16 -8
  383. data/app/workflows/spree/payments/capture.rb +20 -5
  384. data/app/workflows/spree/payments/process.rb +5 -3
  385. data/app/workflows/spree/post_sale/approval.rb +35 -0
  386. data/app/workflows/spree/post_sale/cancellation.rb +44 -0
  387. data/app/workflows/spree/post_sale/receipt.rb +92 -0
  388. data/app/workflows/spree/price_lists/update.rb +4 -4
  389. data/app/workflows/spree/products/nested_attributes.rb +1 -1
  390. data/app/workflows/spree/purchase_orders/cancel.rb +1 -1
  391. data/app/workflows/spree/purchase_orders/close.rb +3 -31
  392. data/app/workflows/spree/purchase_orders/create.rb +3 -1
  393. data/app/workflows/spree/purchase_orders/mark_draft.rb +2 -2
  394. data/app/workflows/spree/purchase_orders/mark_ordered.rb +2 -2
  395. data/app/workflows/spree/purchase_orders/receive.rb +1 -1
  396. data/app/workflows/spree/purchase_orders/update.rb +5 -34
  397. data/app/workflows/spree/receivables/closing_short.rb +46 -0
  398. data/app/workflows/spree/receivables/draft_editing.rb +48 -0
  399. data/app/workflows/spree/refunds/create.rb +5 -2
  400. data/app/workflows/spree/refunds/order_payments.rb +14 -2
  401. data/app/workflows/spree/refunds/tax_credit.rb +67 -0
  402. data/app/workflows/spree/returns/approve.rb +5 -22
  403. data/app/workflows/spree/returns/cancel.rb +5 -22
  404. data/app/workflows/spree/returns/create.rb +8 -0
  405. data/app/workflows/spree/returns/receive.rb +5 -76
  406. data/app/workflows/spree/returns/refund.rb +31 -8
  407. data/app/workflows/spree/seller_requirement_submissions/create.rb +1 -2
  408. data/app/workflows/spree/seller_transfers/reverse.rb +28 -1
  409. data/app/workflows/spree/shipping_labels/purchase.rb +8 -8
  410. data/app/workflows/spree/shipping_labels/record.rb +7 -7
  411. data/app/workflows/spree/shipping_labels/refund.rb +2 -2
  412. data/app/workflows/spree/stock_receipts/recording.rb +4 -4
  413. data/app/workflows/spree/stock_transfers/cancel.rb +2 -2
  414. data/app/workflows/spree/stock_transfers/close.rb +3 -30
  415. data/app/workflows/spree/stock_transfers/create.rb +3 -1
  416. data/app/workflows/spree/stock_transfers/mark_draft.rb +1 -1
  417. data/app/workflows/spree/stock_transfers/mark_in_transit.rb +3 -3
  418. data/app/workflows/spree/stock_transfers/mark_ready.rb +2 -2
  419. data/app/workflows/spree/stock_transfers/receive.rb +1 -1
  420. data/app/workflows/spree/stock_transfers/update.rb +5 -33
  421. data/config/currency_exponents.json +180 -0
  422. data/config/i18n-tasks.yml +32 -18
  423. data/config/initializers/alba.rb +7 -0
  424. data/config/language_names.csv +264 -0
  425. data/config/locales/ar.yml +811 -0
  426. data/config/locales/be.yml +855 -0
  427. data/config/locales/bg.yml +723 -0
  428. data/config/locales/ca.yml +689 -0
  429. data/config/locales/content_locales.rb +9 -0
  430. data/config/locales/cs.yml +855 -0
  431. data/config/locales/da.yml +771 -0
  432. data/config/locales/de-CH.yml +248 -0
  433. data/config/locales/de.yml +835 -0
  434. data/config/locales/el.yml +769 -0
  435. data/config/locales/en.yml +47 -505
  436. data/config/locales/es-CL.yml +301 -0
  437. data/config/locales/es-EC.yml +186 -0
  438. data/config/locales/es-MX.yml +334 -0
  439. data/config/locales/es.yml +831 -0
  440. data/config/locales/et.yml +644 -0
  441. data/config/locales/fa.yml +709 -0
  442. data/config/locales/fi.yml +771 -0
  443. data/config/locales/fr.yml +830 -0
  444. data/config/locales/hu.yml +751 -0
  445. data/config/locales/id.yml +756 -0
  446. data/config/locales/it.yml +833 -0
  447. data/config/locales/ja.yml +726 -0
  448. data/config/locales/km.yml +759 -0
  449. data/config/locales/ko.yml +575 -0
  450. data/config/locales/ku.yml +753 -0
  451. data/config/locales/lt.yml +821 -0
  452. data/config/locales/lv.yml +685 -0
  453. data/config/locales/nb.yml +824 -0
  454. data/config/locales/ne.yml +823 -0
  455. data/config/locales/nl.yml +826 -0
  456. data/config/locales/pl.yml +835 -0
  457. data/config/locales/pt-BR.yml +547 -0
  458. data/config/locales/pt.yml +636 -0
  459. data/config/locales/ro.yml +750 -0
  460. data/config/locales/ru.yml +834 -0
  461. data/config/locales/sk.yml +680 -0
  462. data/config/locales/sl-SI.yml +600 -0
  463. data/config/locales/sv.yml +827 -0
  464. data/config/locales/th.yml +745 -0
  465. data/config/locales/tr.yml +777 -0
  466. data/config/locales/uk.yml +836 -0
  467. data/config/locales/vi.yml +768 -0
  468. data/config/locales/zh-CN.yml +786 -0
  469. data/config/locales/zh-TW.yml +834 -0
  470. data/db/migrate/20260925000001_add_replacement_to_spree_fulfillment_items.rb +5 -0
  471. data/db/migrate/20261001000001_add_post_sale_tax.rb +30 -0
  472. data/db/migrate/20261001000001_convert_preferences_to_json.rb +166 -0
  473. data/db/migrate/20261001000001_create_spree_email_templates.rb +52 -0
  474. data/db/migrate/20261009000001_change_money_columns_to_decimal_19_4.rb +116 -0
  475. data/db/migrate/20261010000001_add_store_id_to_active_storage_blobs.rb +12 -0
  476. data/lib/generators/spree/dummy/dummy_generator.rb +0 -9
  477. data/lib/generators/spree/dummy/templates/rails/test.rb +26 -0
  478. data/lib/spree/checkout/default_requirements.rb +37 -13
  479. data/lib/spree/core/configuration.rb +19 -1
  480. data/lib/spree/core/controller_helpers/store.rb +1 -1
  481. data/lib/spree/core/dependencies.rb +5 -4
  482. data/lib/spree/core/emails/escaped_output.rb +60 -0
  483. data/lib/spree/core/engine.rb +72 -165
  484. data/lib/spree/core/permissions/default_catalog.rb +5 -0
  485. data/lib/spree/core/preferences/invalid_preferences.rb +18 -0
  486. data/lib/spree/core/preferences/json_conversion.rb +186 -0
  487. data/lib/spree/core/preferences/masking.rb +55 -2
  488. data/lib/spree/core/preferences/preferable.rb +343 -103
  489. data/lib/spree/core/preferences/preferable_class_methods.rb +188 -136
  490. data/lib/spree/core/previews/import_preview.rb +10 -0
  491. data/lib/spree/core/ransack_configuration.rb +13 -2
  492. data/lib/spree/core/tax/provider_error.rb +37 -0
  493. data/lib/spree/core/version.rb +1 -1
  494. data/lib/spree/core.rb +91 -373
  495. data/lib/spree/emails/editable_templates.rb +82 -0
  496. data/lib/spree/events/catalog.rb +189 -0
  497. data/lib/spree/events.rb +21 -1
  498. data/lib/spree/hooks.rb +0 -17
  499. data/lib/spree/i18n.rb +32 -15
  500. data/lib/spree/iso_data.rb +7 -0
  501. data/lib/spree/localized_number.rb +6 -0
  502. data/lib/spree/migrations.rb +4 -1
  503. data/lib/spree/money.rb +196 -15
  504. data/lib/spree/reporting/adapters/base.rb +7 -6
  505. data/lib/spree/reporting/adapters/live.rb +6 -6
  506. data/lib/spree/reporting/default_vocabulary.rb +22 -10
  507. data/lib/spree/reporting/hydration.rb +1 -1
  508. data/lib/spree/reporting/query.rb +8 -0
  509. data/lib/spree/reporting/registry.rb +13 -0
  510. data/lib/spree/reporting/schema.rb +10 -10
  511. data/lib/spree/testing_support/editable_email_templates.rb +61 -0
  512. data/lib/spree/testing_support/emails.rb +22 -0
  513. data/lib/spree/testing_support/factories/cart_factory.rb +1 -1
  514. data/lib/spree/testing_support/factories/email_template_factory.rb +28 -0
  515. data/lib/spree/testing_support/factories/order_factory.rb +2 -2
  516. data/lib/spree/testing_support/factories/product_factory.rb +9 -0
  517. data/lib/spree/testing_support/factories/refund_factory.rb +1 -1
  518. data/lib/spree/testing_support/factories/stock_factory.rb +1 -1
  519. data/lib/spree/testing_support/factories/variant_factory.rb +1 -1
  520. data/lib/spree/testing_support/i18n.rb +3 -94
  521. data/lib/spree/testing_support/lifecycle_events.rb +1 -1
  522. data/lib/spree/testing_support/order_walkthrough.rb +1 -1
  523. data/lib/spree/testing_support/preferences.rb +0 -5
  524. data/lib/spree/testing_support/store.rb +9 -1
  525. data/lib/spree/upgrades/5_6_to_6_0/manifest.yml +67 -1
  526. data/lib/spree/uploads.rb +101 -0
  527. data/lib/tasks/categories_and_collections.rake +3 -3
  528. data/lib/tasks/core.rake +6 -4
  529. data/lib/tasks/markets.rake +2 -1
  530. data/lib/tasks/media.rake +3 -3
  531. data/lib/tasks/migrate_users_to_customers.rake +23 -18
  532. data/lib/tasks/money.rake +46 -0
  533. data/lib/tasks/package_types.rake +1 -1
  534. data/lib/tasks/preferences_json.rake +101 -0
  535. data/lib/tasks/seller_sample_data.rake +2 -2
  536. data/lib/tasks/store_settings.rake +13 -6
  537. data/lib/tasks/typed_adjustments_migration.rake +1 -1
  538. data/lib/tasks/uploads.rake +19 -0
  539. data/spec/fixtures/mailer_views/custom_views_probe_mailer/welcome_email.html.erb +4 -0
  540. metadata +219 -46
  541. data/app/jobs/spree/products/touch_categories_job.rb +0 -15
  542. data/app/jobs/spree/products/touch_taxons_job.rb +0 -13
  543. data/app/models/acts_as_taggable_on/tag_decorator.rb +0 -10
  544. data/app/models/concerns/spree/has_image_alt_text.rb +0 -18
  545. data/app/models/spree/base_analytics_event_handler.rb +0 -54
  546. data/app/models/spree/invitations/store.rb +0 -6
  547. data/app/models/spree/preference.rb +0 -14
  548. data/app/models/spree/promotion_handler/page.rb +0 -25
  549. data/app/models/spree/promotion_handler/promotion_duplicator.rb +0 -60
  550. data/app/models/spree/stock/differentiator.rb +0 -45
  551. data/app/presenters/spree/filters/options_presenter.rb +0 -47
  552. data/app/services/spree/carts/empty.rb +0 -42
  553. data/app/services/spree/country_to_timezone.rb +0 -273
  554. data/app/services/spree/payments/create.rb +0 -92
  555. data/app/validators/spree/url_validator.rb +0 -23
  556. data/app/views/active_storage/blobs/_blob.html.erb +0 -14
  557. data/app/views/spree/admin_user_mailer/password_reset_email.html.erb +0 -8
  558. data/app/views/spree/export_mailer/export_done.html.erb +0 -7
  559. data/app/views/spree/import_mailer/import_done.html.erb +0 -12
  560. data/app/views/spree/invitation_mailer/invitation_accepted.html.erb +0 -4
  561. data/app/views/spree/invitation_mailer/invitation_email.html.erb +0 -12
  562. data/app/views/spree/seller_user_mailer/password_reset_email.html.erb +0 -8
  563. data/app/views/spree/shared/_base_mailer_footer.html.erb +0 -19
  564. data/app/views/spree/shared/_base_mailer_header.html.erb +0 -8
  565. data/app/views/spree/shared/_base_mailer_stylesheets.html.erb +0 -399
  566. data/app/views/spree/shared/_mailer_logo.html.erb +0 -41
  567. data/app/views/spree/shared/_purchased_items_styles.html.erb +0 -119
  568. data/app/views/spree/webhook_mailer/endpoint_disabled.html.erb +0 -51
  569. data/app/views/spree/webhook_mailer/endpoint_disabled.text.erb +0 -10
  570. data/app/workflows/spree/fulfillments/purchase_label.rb +0 -40
  571. data/app/workflows/spree/returns/purchase_label.rb +0 -32
  572. data/lib/spree/analytics.rb +0 -11
  573. data/lib/spree/core/preferences/scoped_store.rb +0 -34
  574. data/lib/spree/core/preferences/store.rb +0 -105
  575. data/lib/spree/translation_migrations.rb +0 -52
@@ -0,0 +1,547 @@
1
+ ---
2
+ pt-BR:
3
+ activerecord:
4
+ attributes:
5
+ spree/address:
6
+ address2: Endereço (complemento)
7
+ label: Nome do endereço
8
+ spree/calculator/tiered_flat_rate:
9
+ preferred_base_amount: Quantia base
10
+ preferred_tiers: Níveis
11
+ spree/calculator/tiered_percent:
12
+ preferred_base_percent: Base Percentual
13
+ preferred_tiers: Níveis
14
+ spree/country:
15
+ iso_name: Nome do ISO
16
+ spree/credit_card:
17
+ cc_type: Tipo de Cartão
18
+ name: Nome no Cartão
19
+ verification_value: Código de Verificação
20
+ year: Ano
21
+ spree/gift_card:
22
+ amount_used: Valor utilizado
23
+ expires_at: Expira em
24
+ spree/import_mapping:
25
+ file_column: Coluna do arquivo
26
+ spree/inventory_unit:
27
+ state: Estado
28
+ spree/invitation:
29
+ inviter: Convidante
30
+ spree/option_value:
31
+ color_code: Código da cor
32
+ spree/order:
33
+ checkout_complete: Checkout Completo
34
+ completed_at: Completado em
35
+ considered_risky: Considerado arriscado
36
+ coupon_code: Código do cupom
37
+ created_at: Criado em
38
+ email: Email do cliente
39
+ ip_address: Endereço IP
40
+ item_count: Itens
41
+ item_total: Total de itens
42
+ payment_state: Status do Pagamento
43
+ shipment_state: Status do Envio
44
+ special_instructions: Instruções de Envio
45
+ state: Estado
46
+ total: Total
47
+ spree/order/bill_address:
48
+ address1: Endereço
49
+ city: Cidade
50
+ phone: Telefone
51
+ state: Estado
52
+ spree/order/ship_address:
53
+ address1: Endereço
54
+ city: Cidade
55
+ phone: Telefone
56
+ state: Estado
57
+ spree/payment:
58
+ amount: Valor
59
+ spree/policy:
60
+ body: Conteúdo
61
+ spree/price_list:
62
+ ends_at: Termina em
63
+ starts_at: Começa em
64
+ status: Status
65
+ spree/product:
66
+ available_on: Disponível em
67
+ cost_currency: Moeda
68
+ cost_price: Preço de Custo
69
+ discontinue_on: Indisponível em
70
+ less_than: Menor que
71
+ master_price: Preço Principal
72
+ more_than: Maior que
73
+ on_hand: Pronta Entrega
74
+ tax_category: Tipo de Taxa
75
+ spree/promotion:
76
+ advertise: Anunciar
77
+ event_name: Nome do Evento
78
+ expires_at: Expira em
79
+ generate_code: Gerar código de cupom
80
+ name: Nome
81
+ path: Caminho
82
+ promotion_category: Categoria de Promoção
83
+ starts_at: Início em
84
+ usage_limit: Limite de uso
85
+ spree/promotion_category:
86
+ name: Categorias de Promoções
87
+ spree/property:
88
+ name: Nome
89
+ presentation: Apresentação
90
+ spree/role:
91
+ name: Nome
92
+ spree/state:
93
+ abbr: Abreviação
94
+ name: Nome
95
+ spree/store:
96
+ address: Endereço
97
+ contact_phone: Telefone de contato
98
+ mail_from_address: E-mail para envio de mensagens
99
+ meta_description: Descrição
100
+ meta_keywords: Palavras-Chave
101
+ name: Nome
102
+ preferred_digital_asset_authorized_clicks: Limite de cliques de download
103
+ preferred_digital_asset_authorized_days: Limite de dias de download
104
+ preferred_limit_digital_download_count: Limitar quantidade de downloads de links digitais
105
+ preferred_limit_digital_download_days: Limitar dias de download de links digitais
106
+ seo_robots: Robôs de SEO
107
+ seo_title: Título SEO
108
+ storefront_custom_code_body_end: Código personalizado antes da tag de fechamento do body
109
+ storefront_custom_code_body_start: Código personalizado após a tag de abertura do body
110
+ url: URL do site
111
+ spree/store_credit:
112
+ amount_used: Quantidade utilizada
113
+ spree/tax_category:
114
+ description: Descrição
115
+ name: Nome
116
+ spree/tax_rate:
117
+ amount: Valor
118
+ included_in_price: Incluso no Preço
119
+ show_rate_in_label: Mostrar taxa separada
120
+ spree/taxon:
121
+ name: Nome
122
+ permalink: Permalink
123
+ position: Posição
124
+ sort_order: Ordem de exibição
125
+ spree/taxonomy:
126
+ name: Nome
127
+ spree/user:
128
+ email: Email
129
+ password: Senha
130
+ password_confirmation: Confirmação de Senha
131
+ spree/variant:
132
+ cost_currency: Moeda
133
+ cost_price: Preço de Custo
134
+ depth: Profundidade
135
+ height: Altura
136
+ price: Preço
137
+ sku: SKU
138
+ weight: Peso
139
+ width: Largura
140
+ spree/zone:
141
+ description: Descrição
142
+ name: Nome
143
+ user:
144
+ current_sign_in: Login atual em
145
+ last_sign_in: Último login em
146
+ sign_in_count: Contagem de logins
147
+ errors:
148
+ models:
149
+ spree/allowed_origin:
150
+ attributes:
151
+ origin:
152
+ must_be_origin_only: deve ser uma origem (esquema e host) sem caminho, consulta ou fragmento
153
+ spree/classification:
154
+ attributes:
155
+ taxon_id:
156
+ already_linked: já está ligado a este produto
157
+ spree/credit_card:
158
+ attributes:
159
+ base:
160
+ card_expired: Cartão expirou
161
+ expiry_invalid: Data de Expiração inválida
162
+ spree/gift_card:
163
+ attributes:
164
+ base:
165
+ cannot_destroy_used_gift_card: Não é possível excluir um cartão-presente utilizado
166
+ spree/import:
167
+ attributes:
168
+ attachment:
169
+ content_type: possui um tipo de conteúdo não permitido
170
+ spree/line_item:
171
+ attributes:
172
+ currency:
173
+ must_match_order_currency: Precisa ser a mesma moeda do pedido
174
+ spree/market:
175
+ attributes:
176
+ base:
177
+ cannot_destroy_default_market: Não é possível excluir o mercado padrão.
178
+ cannot_destroy_last_market: Não é possível excluir o único mercado.
179
+ spree/market_country:
180
+ attributes:
181
+ country:
182
+ not_in_shipping_zone: não está coberto por nenhuma zona de envio. Configure uma zona de envio primeiro.
183
+ spree/payment:
184
+ attributes:
185
+ amount:
186
+ greater_than_max_amount: é maior que o valor máximo permitido de %{max_amount}
187
+ spree/product:
188
+ attributes:
189
+ base:
190
+ cannot_destroy_if_attached_to_line_items: Não é possível deletar produtos que já estão em pedidos
191
+ discontinue_on:
192
+ invalid_date_range: precisa ser posterior a data de disponibilidade
193
+ spree/promotion:
194
+ attributes:
195
+ expires_at:
196
+ invalid_date_range: precisa ser posterior a data de início
197
+ spree/refund:
198
+ attributes:
199
+ amount:
200
+ greater_than_allowed: é maior que o valor permitido.
201
+ spree/store:
202
+ attributes:
203
+ base:
204
+ cannot_destroy_only_store: Não é possível excluir a única loja.
205
+ spree/store_credit:
206
+ attributes:
207
+ amount_used:
208
+ cannot_be_greater_than_amount: Não pode ser maior que a quantidade.
209
+ greater_than_zero_restrict_delete: é maior que zero. Não é possível apagar créditos da loja.
210
+ spree/user:
211
+ attributes:
212
+ bill_address_id:
213
+ belongs_to_other_user: pertence a outro usuário
214
+ deprecated_in_completed_order: obsoleto em pedido finalizado
215
+ ship_address_id:
216
+ belongs_to_other_user: pertence a outro usuário
217
+ deprecated_in_completed_order: obsoleto em pedido finalizado
218
+ spree/variant:
219
+ attributes:
220
+ base:
221
+ cannot_destroy_if_attached_to_line_items: Não é possível apagar variações que já façam parte de algum pedido.
222
+ models:
223
+ spree/address:
224
+ one: Endereço
225
+ other: Endereços
226
+ spree/credit_card:
227
+ one: Cartão de Crédito
228
+ other: Cartões de Crédito
229
+ spree/customer_group_user:
230
+ one: Usuário de grupo de clientes
231
+ other: Usuários de grupo de clientes
232
+ spree/inventory_unit:
233
+ one: Unidade de Inventário
234
+ other: Unidades de Inventário
235
+ spree/line_item:
236
+ one: Item
237
+ other: Itens
238
+ spree/option_value:
239
+ one: Valor da opção
240
+ other: Valores das opções
241
+ spree/order:
242
+ one: Pedido
243
+ other: Pedidos
244
+ spree/promotion_category:
245
+ one: Categoria de Promoção
246
+ other: Categorias de Promoções
247
+ spree/role:
248
+ one: Função
249
+ other: Funções
250
+ spree/state:
251
+ one: Estado
252
+ other: Estados
253
+ spree/stock_location:
254
+ one: Local do estoque
255
+ other: Locais do estoque
256
+ spree/stock_movement:
257
+ one: Movimento de estoque
258
+ other: Movimentos de estoque
259
+ spree/stock_transfer:
260
+ one: Transferência de estoque
261
+ other: Transferências de estoque
262
+ spree/tax_category:
263
+ one: Categoria de Imposto
264
+ other: Categorias de Imposto
265
+ spree/tax_rate:
266
+ one: Taxa do Imposto
267
+ other: Taxa dos Impostos
268
+ spree/taxon:
269
+ one: Árvore de Categorias
270
+ other: Árvores de Categorias
271
+ spree/user:
272
+ one: Usuário
273
+ other: Usuários
274
+ spree/variant:
275
+ one: Variação
276
+ other: Variações
277
+ spree/zone:
278
+ one: Região
279
+ other: Regiões
280
+ errors:
281
+ messages:
282
+ already_confirmed: já foi confirmado
283
+ not_found: não encontrado
284
+ not_locked: não foi trancado
285
+ not_saved:
286
+ one: '1 erro impediu %{resource} de ser salvo:'
287
+ other: "%{count} erros impediram o %{resource} de ser salvo:"
288
+ spree:
289
+ accept: Aceitar
290
+ accepted: Aceito
291
+ address: Endereço
292
+ address1: Endereço
293
+ address2: Endereço (complemento)
294
+ adjustment: Ajuste
295
+ adjustment_labels:
296
+ tax_rates:
297
+ including_tax: "%{name}%{amount} (Incluso no preço)"
298
+ adjustments_deleted: Ajustes excluídos
299
+ admin_user_mailer:
300
+ password_reset_email:
301
+ action: Redefinir senha
302
+ expiry_notice: Este link de redefinição de senha expirará em breve. Se você não fez essa solicitação, nenhuma ação é necessária.
303
+ ignore_notice: Se você não solicitou a redefinição de senha, pode ignorar este e-mail com segurança. Sua senha não será alterada.
304
+ instructions: Recebemos uma solicitação para redefinir a senha da sua conta de administrador da %{store_name}. Clique no botão abaixo para escolher uma nova senha.
305
+ subject: Instruções para redefinição de senha
306
+ all: Todos
307
+ amount: Quantidade
308
+ api_key_no_current_key: Nenhuma chave de API autenticou esta requisição
309
+ api_key_scopes_immutable: não pode ser alterado após a criação da chave; crie uma nova chave com os escopos necessários e revogue esta
310
+ approver: Aprovador
311
+ authorized: Autorizado
312
+ backorderable: Aceita pedido sem estoque
313
+ backordered: Pendente
314
+ bill_address: Endereço da Conta
315
+ billing_address: Endereço de Cobrança
316
+ canceled: Cancelado
317
+ canceler: Cancelado por
318
+ cannot_be_destroyed: O pedido não pode ser excluído.
319
+ cart: Carrinho
320
+ cart_line_item:
321
+ out_of_stock: "%{li_name} foi removido porque foi esgotado"
322
+ checkout: Finalizar Compra
323
+ checkout_requirements:
324
+ line_items_required: Adicione pelo menos um item ao seu carrinho
325
+ payment_required: Adicione uma forma de pagamento
326
+ ship_address_required: O endereço de entrega é obrigatório
327
+ color_code: Código da cor
328
+ company: Empresa
329
+ compare_at_amount: Valor comparativo
330
+ complete: Completo
331
+ cost_price: Preço de Custo
332
+ count_on_hand: Disponíveis
333
+ coupon_code: Código do Cupom
334
+ coupon_code_already_applied: O cupom já foi adicionado ao pedido
335
+ coupon_code_applied: O Código do cupom foi acrecentado ao seu pedido
336
+ coupon_code_better_exists: O pedido já possui um cupom com melhor desconto
337
+ coupon_code_expired: O cupom está expirado
338
+ coupon_code_max_usage: O limite de uso do cupom foi excedido
339
+ coupon_code_not_eligible: O cupom não é válido para esse pedido
340
+ coupon_code_not_found: O código do cupom não existe. Por favor tente novamente
341
+ coupon_code_unknown_error: Este código de cupom não pode ser aplicado desta vez.
342
+ coupon_code_used: O código de cupom que você inseriu já foi utilizado. Tente novamente.
343
+ created_at: Criado em
344
+ currency: Moeda
345
+ currency_not_supported_by_store: não é compatível com esta loja
346
+ default_stock_location_name: Local da loja
347
+ depth: Profundidade
348
+ destination: Destino
349
+ destroy: Apagar
350
+ details: Detalhes
351
+ digital_assets: Ativos digitais
352
+ discontinued: Indisponível
353
+ discontinued_variants_present: Alguns itens deste pedido não estão mais disponíveis.
354
+ eligibility_errors:
355
+ messages:
356
+ has_excluded_product: O carrinho possui um produto que não deixa o cupom ser aplicado.
357
+ item_total_less_than: Este código de cupom não pode ser aplicado em perdidos menores que %{amount}.
358
+ item_total_less_than_or_equal: Este código de cupom não pode ser aplicado em pedidos menores ou igual a %{amount}.
359
+ item_total_more_than: Este código de cupom não pode ser aplicado em pedidos maiores que %{amount}.
360
+ item_total_more_than_or_equal: Este código de cupom não pode ser aplicado em pedido maiores ou iguais a %{amount}.
361
+ limit_once_per_user: Este cupom só pode ser usado uma vez por usuário.
362
+ missing_product: Este cupom não pode ser aplicado porque não há todos os produtos necessários no carrinho.
363
+ missing_taxon: É necessário adicionar um produto de uma categoria válida antes de aplicar este cupom.
364
+ no_applicable_products: É necessário adicionar um produto válido antes de aplicar este código de produto.
365
+ no_matching_channel: Este cupom não é válido para este canal de venda.
366
+ no_matching_market: Este cupom não é válido no seu mercado.
367
+ no_matching_taxons: É necessário adicionar um produto de uma categoria válida antes de aplicar este cupom.
368
+ no_user_or_email_specified: É necessário fazer login ou fornecer seu email antes de aplicar este código de cupom.
369
+ no_user_specified: É necessário fazer login antes de aplicar este código de cupom.
370
+ not_first_order: Este cupom só pode ser aplicado na primeira compra.
371
+ wrong_country: Este código de cupom não é válido no seu país
372
+ error: Erro
373
+ error_user_destroy_with_orders: Um usuário que já realizou pedidos não pode ser apagado
374
+ error_user_does_not_have_any_store_credits: O usuário não possui créditos da loja disponíveis
375
+ errors:
376
+ messages:
377
+ cannot_delete_default_channel: O canal padrão não pode ser excluído. Promova outro canal a padrão primeiro.
378
+ invalid_order_routing_rule: não é uma regra de roteamento de pedidos registrada
379
+ invalid_order_routing_strategy: não é uma estratégia de roteamento de pedidos registrada
380
+ store_association_can_not_be_changed: A associação da loja não pode ser alterada
381
+ export_mailer:
382
+ export_done:
383
+ message: Bom trabalho, sua exportação está pronta! Use o link abaixo para baixá-la.
384
+ subject: Sua exportação %{export_number} foi processada com sucesso!
385
+ flat_percent: Porcentagem fixa
386
+ flat_rate_per_order: Taxa por pedido
387
+ flexible_rate: Taxa flexível
388
+ gateway_error: Erro no Gateway
389
+ gift_card: Cartão-presente
390
+ gift_card_already_redeemed: O cartão-presente já foi resgatado.
391
+ gift_card_applied: O cartão-presente foi aplicado ao seu pedido com sucesso!
392
+ gift_card_customer_not_logged_in: O cartão-presente não pode ser aplicado por usuário visitante.
393
+ gift_card_expired: O cartão-presente expirou.
394
+ gift_card_mismatched_currency: O cartão-presente não pode ser aplicado com a moeda atual.
395
+ gift_card_mismatched_customer: Este cartão-presente está associado a outro usuário.
396
+ gift_card_not_found: O cartão-presente não foi encontrado.
397
+ gift_card_removed: O cartão-presente foi removido do seu pedido com sucesso
398
+ gift_card_using_store_credit_error: Você não pode aplicar o cartão-presente após ter aplicado o crédito da loja.
399
+ i18n:
400
+ this_file_language: Português (pt-BR)
401
+ idempotency_key_reused: Esta Idempotency-Key já foi usada com parâmetros de requisição diferentes.
402
+ in_stock: Em estoque
403
+ inactive: Inativo
404
+ incomplete: Incompleto
405
+ insufficient_stock_lines_present: Algum item neste pedido não possui quantidade suficinte.
406
+ invitation_mailer:
407
+ invitation_accepted:
408
+ body: "%{invitee_name} aceitou seu convite para participar de %{resource_name}"
409
+ subject: "%{invitee_name} aceitou seu convite para participar de %{resource_name}"
410
+ invitation_email:
411
+ body: "%{inviter_name} convidou você para participar de %{resource_name}"
412
+ link_description: 'Para aceitar este convite, clique no link abaixo:'
413
+ subject: Convite para participar de %{resource_name}
414
+ item: Item
415
+ items_cannot_be_shipped: Estamos impossibilitados de enviar os itens selecionados para seu endereço de entrega. Por favor, escolha outro endereço.
416
+ label: Rótulo
417
+ line_item: Item do pedido
418
+ line_items: Itens do pedido
419
+ link: Link
420
+ locale_not_supported_by_store: não é compatível com esta loja
421
+ me_no_current_user: Nenhum usuário administrador autenticou esta requisição
422
+ media: Mídia
423
+ meta_title: Título da Página
424
+ no_payment_found: Nenhum pagamento encontrado
425
+ on_hand: Em Estoque
426
+ only_active_products_can_be_added_to_cart: Produtos em rascunho e arquivados não podem ser adicionados ao carrinho, marque o produto como ativo antes.
427
+ open: Abrir
428
+ option_value: Valor da Opcional
429
+ order_canceled: Pedido cancelado
430
+ orders: Pedidos
431
+ password: Senha
432
+ payment_method_not_supported: Esse método de pagamento não é suportado. Por favor escolha outro.
433
+ pending: Pendente
434
+ percent: porcentos
435
+ percent_per_item: Porcentagem por Item
436
+ price_range: Faixa de Preço
437
+ price_sack: Preço da Embalagem
438
+ processing: Processando
439
+ product_translations: Traduções do produto
440
+ products_cannot_be_shipped: No momento não conseguimos enviar %{product_names} para o seu local atual. Altere o endereço de entrega ou remova %{product_names} do seu carrinho.
441
+ promotion_action_types:
442
+ create_adjustment:
443
+ description: Criar um ajuste de crédito promocional no pedido
444
+ name: Criar ajuste no pedido inteiro
445
+ create_item_adjustments:
446
+ description: Preencha o carrinho com a quantidade especificada de variações
447
+ name: Criar ajuste por item
448
+ create_line_items:
449
+ description: Preencher o carrinho com a quantidade especificada de variantes
450
+ name: Criar Itens
451
+ free_shipping:
452
+ description: Deixar todos os envios do pedido gratuitos
453
+ name: Frete gratuito
454
+ promotion_actions: Ações das Promoções
455
+ promotion_already_used: Você não pode excluir uma promoção que já foi aplicada
456
+ promotion_rule_types:
457
+ category:
458
+ description: O pedido inclui produtos de categorias específicas
459
+ channel:
460
+ description: Limitar a pedidos feitos pelo(s) canal(is) especificado(s)
461
+ country:
462
+ description: Pedido é enviado para o mesmo país
463
+ currency:
464
+ description: Limitar a pedidos em uma moeda específica
465
+ customer_group:
466
+ description: Disponível apenas para clientes em grupos de clientes específicos
467
+ customer_logged_in:
468
+ description: Disponível apenas para clientes logados
469
+ name: Apenas clientes logados
470
+ first_order:
471
+ description: Deve ser o primeiro pedido do usuário
472
+ name: Primeiro Pedido
473
+ item_total:
474
+ description: Total do pedido fecha com estes critérios
475
+ name: Total do Item
476
+ one_use_per_user:
477
+ description: Apenas um por usuário
478
+ name: Um por usuário
479
+ option_value:
480
+ description: Pedido possui produto(s) específicos com certas opções
481
+ name: Opções de produto
482
+ quantity: Quantidade
483
+ reference: Referência
484
+ refund: Extorno
485
+ refund_amount: Valor do reembolso
486
+ refunds: Extornos
487
+ registration: Registro
488
+ rejected: Rejeitado
489
+ remove_gift_card_on_completed_order_error: Você não pode remover o cartão-presente após o pedido ter sido feito
490
+ resellable: Pode revender
491
+ say_no: Não
492
+ say_yes: Sim
493
+ scope: Escopo
494
+ selected_quantity_not_available: seleção de %{item} não disponível.
495
+ ship: Entrega
496
+ ship_address: Endereço da entrega
497
+ shipment: Envio
498
+ shipped: Despachado
499
+ shipping_address: Endereço de entrega
500
+ shipping_flat_rate_per_item: Taxa fixa por item no pedido
501
+ shipping_flat_rate_per_order: Taxa fixa
502
+ shipping_flexible_rate: Taxa flexível por item no pedido
503
+ shipping_price_sack: Preço
504
+ shipping_rates:
505
+ display_price:
506
+ including_tax: "%{price} (incluso %{tax_amount} %{tax_rate_name})"
507
+ slug: Url Amigável
508
+ source: Fonte
509
+ status: Status
510
+ stock_location: Local de Estoque
511
+ stock_locations: Locais de estoque
512
+ stock_transfer:
513
+ errors:
514
+ must_have_variant: Necessário adicionar pelo menos uma variação
515
+ same_location: não pode ser igual ao local de destino
516
+ store_credit:
517
+ allocated: Alocado
518
+ store_credit_payment_method:
519
+ currency_mismatch: A moeda dos créditos da loja não batem com moeda do pedido
520
+ insufficient_authorized_amount: Não é possível capturar mais que a quantia autorizada
521
+ insufficient_funds: Os créditos da loja restantes não são suficientes
522
+ successful_action: Ação realizada com sucesso %{action}
523
+ unable_to_credit: 'Não foi possível creditar o código: %{auth_code}'
524
+ unable_to_find_for_action: 'Não foi possível encontrar o código: %{auth_code} para: %{action}'
525
+ unable_to_void: 'Não foi possível pagar o código: %{auth_code}'
526
+ success: Sucesso
527
+ tags: Tags
528
+ tax_category: Categoria de imposto
529
+ terms_of_service: Termos de serviço
530
+ there_are_no_items_for_this_order: Não existem itens para esse pedido. Por favor adicione um item ao pedido para continuar.
531
+ tiered_flat_rate: Taxa fixa nivelada
532
+ tiered_percent: Porcentagem nivelada
533
+ track_inventory: Rastrear Inventário
534
+ tracking_number: Número de rastreio
535
+ tracking_url: URL de rastreio
536
+ unable_to_connect_to_gateway: Impossível se conectar no gateway
537
+ updated_at: Atualizado em
538
+ user: Usuário
539
+ validation:
540
+ must_be_int: Deve ser um inteiro
541
+ variant: Variante
542
+ webhook_mailer:
543
+ endpoint_disabled:
544
+ disabled_at_label: Desativado em
545
+ instructions: Verifique a URL e o serviço do endpoint e reative-o em Configurações → Desenvolvedores → Webhooks.
546
+ message: O endpoint de webhook "%{endpoint_name}" foi desativado automaticamente após falhas repetidas de entrega.
547
+ zip: CEP