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,301 @@
1
+ ---
2
+ es-CL:
3
+ activerecord:
4
+ attributes:
5
+ spree/address:
6
+ address2: Dirección Complementaria
7
+ company: Empresa
8
+ state: Comuna
9
+ spree/calculator/tiered_flat_rate:
10
+ preferred_base_amount: Valor base
11
+ preferred_tiers: Niveles
12
+ spree/calculator/tiered_percent:
13
+ preferred_base_percent: Porcentaje base
14
+ preferred_tiers: Niveles
15
+ spree/credit_card:
16
+ verification_value: Código de verificación (CVV)
17
+ spree/gift_card:
18
+ amount_used: Monto usado
19
+ expires_at: Vence el
20
+ spree/inventory_unit:
21
+ state: Estado
22
+ spree/order:
23
+ checkout_complete: Pedido completo
24
+ email: E-Mail del Cliente
25
+ spree/payment:
26
+ amount: Valor
27
+ spree/policy:
28
+ body: Contenido
29
+ owner: Política para
30
+ spree/price_list:
31
+ ends_at: Termina el
32
+ spree/product:
33
+ available_on: Disponible
34
+ cost_price: Precio costo
35
+ discontinue_on: Descontinuar el
36
+ less_than: Menos de
37
+ master_price: Precio principal
38
+ on_hand: En mano
39
+ tax_category: Categoría de Impuesto
40
+ spree/promotion:
41
+ expires_at: Expira en
42
+ generate_code: Generar código de cupón
43
+ promotion_category: Categoría de promoción
44
+ usage_limit: Límite de uso
45
+ spree/store:
46
+ mail_from_address: Dirección de email de envío
47
+ meta_description: Meta descripción
48
+ meta_keywords: Meta palabras claves
49
+ name: Nombre de la Tienda
50
+ preferred_digital_asset_authorized_clicks: Límite de clics de descarga
51
+ preferred_limit_digital_download_count: Limitar la cantidad de descargas de enlaces digitales
52
+ storefront_custom_code_head: Código personalizado en el head de la página
53
+ url: URL
54
+ spree/store_credit:
55
+ amount_used: Monto usado
56
+ spree/taxon:
57
+ permalink: Permalink
58
+ spree/user:
59
+ email: E-Mail
60
+ password: Contraseña
61
+ password_confirmation: Confirmación de Contraseña
62
+ spree/variant:
63
+ cost_currency: Moneda de costo
64
+ cost_price: Precio costo
65
+ depth: Profundidad
66
+ height: Alto
67
+ sku: SKU
68
+ width: Ancho
69
+ user:
70
+ sign_in_count: Cantidad de inicios de sesión
71
+ errors:
72
+ models:
73
+ spree/classification:
74
+ attributes:
75
+ taxon_id:
76
+ already_linked: is already linked to this product
77
+ spree/credit_card:
78
+ attributes:
79
+ base:
80
+ card_expired: Card has expired
81
+ expiry_invalid: Card expiration is invalid
82
+ spree/gift_card:
83
+ attributes:
84
+ base:
85
+ cannot_destroy_used_gift_card: No se puede eliminar una tarjeta de regalo usada
86
+ spree/line_item:
87
+ attributes:
88
+ currency:
89
+ must_match_order_currency: Must match order currency
90
+ spree/market_country:
91
+ attributes:
92
+ country:
93
+ not_in_shipping_zone: no está cubierto por ninguna zona de envío. Primero configura una zona de envío.
94
+ spree/payment:
95
+ attributes:
96
+ amount:
97
+ greater_than_max_amount: es mayor que el monto máximo permitido de %{max_amount}
98
+ spree/product:
99
+ attributes:
100
+ base:
101
+ cannot_destroy_if_attached_to_line_items: No se pueden eliminar productos que están agregados a pedidos realizados. En esos casos, descontinúalos.
102
+ discontinue_on:
103
+ invalid_date_range: debe ser posterior a la fecha de disponibilidad
104
+ spree/promotion:
105
+ attributes:
106
+ expires_at:
107
+ invalid_date_range: debe ser posterior a la fecha de inicio
108
+ spree/refund:
109
+ attributes:
110
+ amount:
111
+ greater_than_allowed: is greater than the allowed amount.
112
+ spree/store_credit:
113
+ attributes:
114
+ amount_authorized:
115
+ exceeds_total_credits: Supera el total de créditos.
116
+ amount_used:
117
+ cannot_be_greater_than_amount: No puede ser mayor que el monto.
118
+ greater_than_zero_restrict_delete: es mayor que cero. No se puede eliminar el crédito de tienda.
119
+ spree/variant:
120
+ attributes:
121
+ base:
122
+ cannot_destroy_if_attached_to_line_items: No se pueden eliminar variantes que están agregadas a pedidos realizados. En esos casos, descontinúalas.
123
+ models:
124
+ spree/country:
125
+ one: País
126
+ other: Paises
127
+ spree/credit_card:
128
+ one: Tarjeta de Crédito
129
+ other: Tarjetas de Crédito
130
+ spree/option_type:
131
+ one: Tipo de opción
132
+ other: Tipos de opciones
133
+ spree/payment_method:
134
+ one: Forma de Pago
135
+ other: Formas de Pago
136
+ spree/promotion_category:
137
+ one: Categoría Promoción
138
+ other: Categorías de Promoción
139
+ spree/refund_reason:
140
+ one: Refund Reason
141
+ other: Refund Reasons
142
+ spree/shipping_method:
143
+ one: Medio de envío
144
+ other: Medios de envío
145
+ spree/state:
146
+ one: Estado
147
+ other: Estados
148
+ spree/stock_location:
149
+ one: Ubicación de Stock
150
+ other: Ubicaciones de Stock
151
+ spree/stock_movement:
152
+ one: Movimiento de Stock
153
+ other: Movimientos de Stock
154
+ spree/stock_transfer:
155
+ one: Transferencia de Stock
156
+ other: Transferencias de Stock
157
+ spree/store_credit:
158
+ one: Crédito de tienda
159
+ other: Créditos de tienda
160
+ spree/tax_category:
161
+ one: Categoría de Impuesto
162
+ other: Categorías de Impuestos
163
+ spree/tax_rate:
164
+ one: Tarifa de impuesto
165
+ other: Tarifas de impuestos
166
+ spree/taxon:
167
+ one: Clasificación
168
+ other: Clasificaciónes
169
+ spree:
170
+ address2: Dirección Complementaria
171
+ adjustment_labels:
172
+ tax_rates:
173
+ including_tax: "%{name}%{amount} (Incluido en el precio)"
174
+ amount: Valor
175
+ api_key_scopes_immutable: no se pueden cambiar después de crear la clave; crea una clave nueva con los alcances que necesitas y revoca esta
176
+ approver: Aprobado
177
+ backorderable: backorderable
178
+ backordered: Pedido pendiente
179
+ canceler: Candelado
180
+ cannot_be_destroyed: El pedido no se puede eliminar.
181
+ cart_already_updated: El carro ya fue actualizado.
182
+ cart_line_item:
183
+ discontinued: "%{li_name} se eliminó porque fue descontinuado"
184
+ channel: Canal de venta
185
+ checkout_requirements:
186
+ email_required: El correo electrónico es obligatorio
187
+ line_items_required: Agrega al menos un artículo a tu carro
188
+ payment_required: Agrega un método de pago
189
+ company: Compañía
190
+ compare_at_amount: Monto de comparación
191
+ compare_at_price: Precio de comparación
192
+ coupon_code_max_usage: Excedido el límite de uso del código del cupón
193
+ coupon_code_unknown_error: Este código de cupón no se podría aplicar a la compra en este momento.
194
+ coupon_code_used: El código de cupón que ingresaste ya fue usado. Inténtalo de nuevo.
195
+ created_at: Creado el
196
+ digital_assets: Activos digitales
197
+ discontinued: Descontinuado
198
+ discontinued_variants_present: Algunos artículos de este pedido tienen productos que ya no están disponibles.
199
+ email: E-Mail
200
+ error_user_destroy_with_orders: No se puede eliminar un usuario asociado a pedidos
201
+ error_user_does_not_have_any_store_credits: El usuario no tiene créditos de tienda disponibles
202
+ errors:
203
+ messages:
204
+ cannot_delete_default_channel: No se puede eliminar el canal predeterminado. Primero promueve otro canal como predeterminado.
205
+ store_association_can_not_be_changed: La asociación de tienda no se puede cambiar
206
+ expired: Vencido
207
+ export_mailer:
208
+ greeting: Hola %{user_name},
209
+ gateway: Gateway
210
+ gateway_error: Error en Gateway
211
+ gift_card_already_redeemed: La tarjeta de regalo ya fue canjeada.
212
+ gift_card_customer_not_logged_in: La tarjeta de regalo no se puede aplicar como usuario invitado.
213
+ gift_card_expired: La tarjeta de regalo venció.
214
+ gift_card_using_store_credit_error: No puedes aplicar la tarjeta de regalo después de haber aplicado el crédito de tienda.
215
+ i18n:
216
+ this_file_language: Español (es-CL)
217
+ idempotency_key_reused: Esta Idempotency-Key ya fue usada con parámetros de solicitud distintos.
218
+ insufficient_stock_lines_present: Algunos artículos de este pedido no tienen la cantidad suficiente.
219
+ invitation_mailer:
220
+ greeting: Hola %{user_name},
221
+ invitation_accepted:
222
+ body: "%{invitee_name} aceptó tu invitación para unirse a %{resource_name}"
223
+ subject: "%{invitee_name} aceptó tu invitación para unirse a %{resource_name}"
224
+ invitation_email:
225
+ body: "%{inviter_name} te invitó a unirte a %{resource_name}"
226
+ media: Medios
227
+ meta_keywords: Meta palabras claves
228
+ meta_title: Meta Título
229
+ no_payment_found: No hay pagos encontrados
230
+ only_active_products_can_be_added_to_cart: Los productos en borrador y archivados no se pueden agregar al carro; primero marca el producto como activo.
231
+ order_routing:
232
+ strategies:
233
+ legacy: Heredada
234
+ order_summary: Resumen del pedido
235
+ password: Contraseña
236
+ payment_method: Medio de Pago
237
+ payment_method_not_supported: Medio de Pago no soportado, por favo seleccione otro.
238
+ payment_methods: Medios de Pago
239
+ payment_processing_failed: El pago no pudo ser procesado, por favor comprueba los detalles que has ingresado
240
+ price_sack: Precio Sack
241
+ product_translations: Traducciones del producto
242
+ products_cannot_be_shipped: Por el momento no podemos enviar %{product_names} a tu ubicación actual. Cambia tu dirección de envío o quita %{product_names} de tu carro.
243
+ promotion_action_types:
244
+ create_adjustment:
245
+ name: Crear ajuste para todo
246
+ create_item_adjustments:
247
+ description: Crea un ajuste de crédito de promoción por artículo
248
+ name: Crear ajuste por artículo
249
+ create_line_items:
250
+ description: Rellena el carrito con el valor especificado de la variante
251
+ free_shipping:
252
+ description: Envío Gratis
253
+ name: Envío Gratis
254
+ promotion_already_used: No puedes eliminar una promoción que ya fue aplicada
255
+ promotion_rule_types:
256
+ country:
257
+ description: Limitar a pedidos con dirección de envío en un país específico
258
+ customer_logged_in:
259
+ description: Disponible solo para clientes con sesión iniciada
260
+ name: Solo clientes con sesión iniciada
261
+ item_total:
262
+ name: Total del artículo
263
+ one_use_per_user:
264
+ description: Uno por usuario
265
+ name: Uno por usuario
266
+ option_value:
267
+ description: El pedido incluye producto(s) específico(s) con valor(es) de opción
268
+ name: Opción valor(es)
269
+ refund_amount: Monto del reembolso
270
+ remove: Quitar
271
+ remove_gift_card_on_completed_order_error: No puedes quitar la tarjeta de regalo después de realizar el pedido
272
+ resellable: Reusable
273
+ return: Volver
274
+ say_no: 'No'
275
+ selected_quantity_not_available: El artículo %{item} no está disponible.
276
+ shipping_price_sack: Precio empaque
277
+ sku: SKU
278
+ slug: Slug
279
+ stock_location: Ubicación de stock
280
+ stock_locations: Ubicaciones de Stock
281
+ store_credit:
282
+ allocated: Agregado
283
+ store_credit_name: Crédito de tienda
284
+ store_credit_payment_method:
285
+ currency_mismatch: La moneda del crédito de tienda no coincide con la moneda del pedido
286
+ insufficient_authorized_amount: No se puede capturar más que el monto autorizado
287
+ insufficient_funds: El monto restante de crédito de tienda no es suficiente
288
+ successful_action: Crédito de tienda %{action} correctamente
289
+ unable_to_credit: 'No se puede acreditar el código: %{auth_code}'
290
+ unable_to_find: No se pudo encontrar el crédito de tienda
291
+ unable_to_find_for_action: 'No se pudo encontrar el crédito de tienda para el código de autorización: %{auth_code} para la acción: %{action}'
292
+ unable_to_void: 'No se puede anular el código: %{auth_code}'
293
+ tax: Impuesto
294
+ tax_category: Categoría impuesto
295
+ tiered_flat_rate: Tarifa plana escalonada
296
+ tiered_percent: Porcentaje escalonado
297
+ track_inventory: Track Inventario
298
+ webhook_mailer:
299
+ endpoint_disabled:
300
+ instructions: Revisa la URL y el servicio del endpoint, luego vuelve a habilitarlo en Configuración → Desarrolladores → Webhooks.
301
+ message: El endpoint de webhook "%{endpoint_name}" se deshabilitó automáticamente tras varios fallos de entrega.
@@ -0,0 +1,186 @@
1
+ ---
2
+ es-EC:
3
+ activerecord:
4
+ attributes:
5
+ spree/address:
6
+ company: Empresa
7
+ country: Pais
8
+ state: Provincia ó Estado
9
+ spree/gift_card:
10
+ amount_used: Monto utilizado
11
+ expires_at: Vence el
12
+ spree/inventory_unit:
13
+ state: Provincia ó Estado
14
+ spree/invitation:
15
+ inviter: Invitador
16
+ spree/policy:
17
+ body: Contenido
18
+ owner: Política para
19
+ spree/product:
20
+ available_on: Disponible
21
+ discontinue_on: Descontinuar el
22
+ less_than: Menos de
23
+ on_hand: En mano
24
+ spree/promotion:
25
+ generate_code: Generar código de cupón
26
+ promotion_category: Categoría de promoción
27
+ spree/store:
28
+ preferred_digital_asset_authorized_clicks: Límite de clics de descarga
29
+ preferred_limit_digital_download_count: Limitar la cantidad de descargas de enlaces digitales
30
+ storefront_custom_code_body_end: Código personalizado antes de la etiqueta de cierre body
31
+ storefront_custom_code_body_start: Código personalizado después de la etiqueta de apertura body
32
+ storefront_custom_code_head: Código personalizado en el head de la página
33
+ spree/taxon:
34
+ permalink: Permalink
35
+ user:
36
+ sign_in_count: Cantidad de inicios de sesión
37
+ errors:
38
+ models:
39
+ spree/gift_card:
40
+ attributes:
41
+ base:
42
+ cannot_destroy_used_gift_card: No se puede eliminar una tarjeta de regalo utilizada
43
+ spree/market_country:
44
+ attributes:
45
+ country:
46
+ not_in_shipping_zone: no está cubierto por ninguna zona de envío. Por favor, configure primero una zona de envío.
47
+ spree/payment:
48
+ attributes:
49
+ amount:
50
+ greater_than_max_amount: es mayor que el monto máximo permitido de %{max_amount}
51
+ spree/product:
52
+ attributes:
53
+ base:
54
+ cannot_destroy_if_attached_to_line_items: No se pueden eliminar productos que estén agregados a pedidos realizados. En esos casos, por favor descontinúelos.
55
+ discontinue_on:
56
+ invalid_date_range: debe ser posterior a la fecha de disponibilidad
57
+ spree/promotion:
58
+ attributes:
59
+ expires_at:
60
+ invalid_date_range: debe ser posterior a la fecha de inicio
61
+ spree/store_credit:
62
+ attributes:
63
+ amount_authorized:
64
+ exceeds_total_credits: Supera el total de créditos.
65
+ amount_used:
66
+ cannot_be_greater_than_amount: No puede ser mayor que el monto.
67
+ greater_than_zero_restrict_delete: es mayor que cero. No se puede eliminar el crédito de tienda.
68
+ spree/variant:
69
+ attributes:
70
+ base:
71
+ cannot_destroy_if_attached_to_line_items: No se pueden eliminar variantes que estén agregadas a pedidos realizados. En esos casos, por favor descontinúelas.
72
+ models:
73
+ spree/address:
74
+ one: Dirección.
75
+ other: Direcciones
76
+ spree/customer_group_user:
77
+ one: Usuario de grupo de clientes
78
+ other: Usuarios de grupo de clientes
79
+ spree/inventory_unit:
80
+ one: Unidad de inventario.
81
+ other: Unidades de inventario
82
+ spree/promotion_category:
83
+ one: Categoría de promoción
84
+ other: Categorías de promoción
85
+ spree/refund_reason:
86
+ one: Motivo de reembolso
87
+ other: Motivos de reembolso
88
+ spree/role:
89
+ one: Función
90
+ other: Funciones
91
+ spree/stock_location:
92
+ one: Ubicación de stock
93
+ other: Ubicaciones de stock
94
+ spree/stock_transfer:
95
+ one: Transferencia de stock
96
+ other: Transferencias de stock
97
+ spree/store_credit:
98
+ one: Crédito de tienda
99
+ other: Créditos de tienda
100
+ spree:
101
+ adjustment_labels:
102
+ tax_rates:
103
+ including_tax: "%{name}%{amount} (incluido en el precio)"
104
+ api_key_scopes_immutable: no se pueden cambiar después de crear la clave; cree una nueva clave con los alcances que necesite y revoque esta
105
+ backorderable: Devuelto
106
+ cannot_be_destroyed: El pedido no se puede eliminar.
107
+ cart_already_updated: El carrito ya fue actualizado.
108
+ cart_line_item:
109
+ discontinued: "%{li_name} fue eliminado porque fue descontinuado"
110
+ out_of_stock: "%{li_name} fue eliminado porque se agotó"
111
+ channel: Canal de ventas
112
+ channels: Canales de ventas
113
+ checkout_requirements:
114
+ email_required: El correo electrónico es obligatorio
115
+ line_items_required: Agrega al menos un artículo a tu carrito
116
+ payment_required: Agrega un método de pago
117
+ company: Compañia
118
+ compare_at_amount: Monto de comparación
119
+ compare_at_price: Precio de comparación
120
+ coupon_code_used: El código de cupón que ingresaste ya fue utilizado. Por favor, inténtalo de nuevo.
121
+ depth: Ancho
122
+ discontinued: Descontinuado
123
+ discontinued_variants_present: Algunos artículos de este pedido tienen productos que ya no están disponibles.
124
+ error_user_destroy_with_orders: No se puede eliminar un usuario asociado a pedidos
125
+ error_user_does_not_have_any_store_credits: El usuario no tiene ningún crédito de tienda disponible
126
+ errors:
127
+ messages:
128
+ cannot_delete_default_channel: No se puede eliminar el canal predeterminado. Primero promueve otro canal como predeterminado.
129
+ expired: Vencido
130
+ export_mailer:
131
+ export_done:
132
+ message: "¡Buen trabajo, tu exportación está lista! Por favor, usa el enlace de abajo para descargarla."
133
+ greeting: Hola %{user_name},
134
+ gift_card_already_redeemed: La tarjeta de regalo ya fue canjeada.
135
+ gift_card_expired: La tarjeta de regalo ha vencido.
136
+ gift_card_using_store_credit_error: No puedes aplicar la tarjeta de regalo después de haber aplicado el crédito de tienda.
137
+ i18n:
138
+ this_file_language: Español (es-EC)
139
+ idempotency_key_reused: Esta Idempotency-Key ya fue utilizada con parámetros de solicitud diferentes.
140
+ invitation_mailer:
141
+ greeting: Hola %{user_name},
142
+ invitation_email:
143
+ link_description: 'Para aceptar esta invitación, por favor haz clic en el enlace de abajo:'
144
+ line_item: Artículo del pedido
145
+ line_items: Artículos del pedido
146
+ locale: Idioma
147
+ media: Medios
148
+ only_active_products_can_be_added_to_cart: Los productos en borrador y archivados no se pueden agregar al carrito, por favor marca el producto como activo antes.
149
+ or: ó
150
+ order_routing:
151
+ strategies:
152
+ legacy: Heredada
153
+ order_summary: Resumen del pedido
154
+ products_cannot_be_shipped: Por el momento no podemos enviar %{product_names} a tu ubicación actual. Por favor, cambia tu dirección de envío o elimina %{product_names} de tu carrito.
155
+ promotion_already_used: No puedes eliminar una promoción que ya fue aplicada
156
+ promotion_rule_types:
157
+ channel:
158
+ description: Limitar a pedidos realizados a través de los canales especificados
159
+ country:
160
+ description: Limitar a pedidos con dirección de envío en un país específico
161
+ customer_logged_in:
162
+ description: Disponible solo para clientes con sesión iniciada
163
+ name: Solo clientes con sesión iniciada
164
+ market:
165
+ description: Limitar a pedidos realizados en los mercados especificados
166
+ refund_amount: Monto del reembolso
167
+ remove: Quitar
168
+ return: Volver
169
+ selected_quantity_not_available: seleccionado de %{item} no está disponible.
170
+ status: Estatus
171
+ store_credit:
172
+ allocated: Agregado
173
+ captured: Utilizado
174
+ store_credit_name: Crédito de tienda
175
+ store_credit_payment_method:
176
+ currency_mismatch: La moneda del crédito de tienda no coincide con la moneda del pedido
177
+ insufficient_authorized_amount: No se puede capturar más del monto autorizado
178
+ insufficient_funds: El monto restante del crédito de tienda no es suficiente
179
+ successful_action: Crédito de tienda %{action} correctamente
180
+ unable_to_find: No se pudo encontrar el crédito de tienda
181
+ unable_to_find_for_action: 'No se pudo encontrar el crédito de tienda para el código de autorización: %{auth_code} para la acción: %{action}'
182
+ tax: Tasa
183
+ webhook_mailer:
184
+ endpoint_disabled:
185
+ instructions: Por favor, verifica la URL y el servicio del endpoint, luego vuelve a habilitarlo en Configuración → Desarrolladores → Webhooks.
186
+ message: El endpoint de webhook "%{endpoint_name}" se deshabilitó automáticamente tras repetidos fallos de entrega.