spree_core 5.6.1 → 6.0.0.beta2

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 (1602) hide show
  1. checksums.yaml +4 -4
  2. data/LICENSE +30 -0
  3. data/README.md +2 -3
  4. data/app/finders/spree/line_items/find_by_variant.rb +5 -3
  5. data/app/finders/spree/sellers/panel_url.rb +47 -0
  6. data/app/finders/spree/stores/dashboard_url.rb +76 -0
  7. data/app/helpers/spree/images_helper.rb +1 -1
  8. data/app/jobs/spree/carts/reap_expired_job.rb +43 -0
  9. data/app/jobs/spree/collections/regenerate_time_based_job.rb +18 -0
  10. data/app/jobs/spree/data_requests/process_job.rb +42 -0
  11. data/app/jobs/spree/events/subscriber_job.rb +1 -1
  12. data/app/jobs/spree/images/migrate_product_media_job.rb +80 -0
  13. data/app/jobs/spree/images/save_from_url_job.rb +70 -13
  14. data/app/jobs/spree/imports/create_categories_job.rb +23 -14
  15. data/app/jobs/spree/imports/create_rows_job.rb +3 -62
  16. data/app/jobs/spree/imports/process_group_job.rb +1 -1
  17. data/app/jobs/spree/imports/process_job.rb +164 -0
  18. data/app/jobs/spree/imports/process_rows_job.rb +4 -71
  19. data/app/jobs/spree/orders/finalize_stale_drafts_job.rb +29 -0
  20. data/app/jobs/spree/payments/handle_webhook_job.rb +1 -1
  21. data/app/jobs/spree/price_lists/sync_currencies_job.rb +42 -0
  22. data/app/jobs/spree/product_types/apply_to_products_job.rb +74 -0
  23. data/app/jobs/spree/products/auto_match_collections_job.rb +14 -0
  24. data/app/jobs/spree/products/auto_match_taxons_job.rb +6 -7
  25. data/app/jobs/spree/products/refresh_metrics_job.rb +1 -1
  26. data/app/jobs/spree/products/touch_categories_job.rb +15 -0
  27. data/app/jobs/spree/products/touch_taxons_job.rb +7 -6
  28. data/app/jobs/spree/sample_data/load_job.rb +13 -0
  29. data/app/jobs/spree/seller_payouts/sweep_due_job.rb +57 -0
  30. data/app/jobs/spree/seller_payouts/sweep_seller_job.rb +70 -0
  31. data/app/jobs/spree/seller_transfers/execute_pending_due_job.rb +56 -0
  32. data/app/jobs/spree/seller_transfers/execute_pending_job.rb +52 -0
  33. data/app/jobs/spree/shipping_labels/store_file_job.rb +17 -0
  34. data/app/jobs/spree/stock_locations/stock_items/create_job.rb +7 -5
  35. data/app/jobs/spree/stock_locations/stock_levels/create_job.rb +13 -0
  36. data/app/jobs/spree/stock_reservations/expire_job.rb +1 -1
  37. data/app/jobs/spree/tax_identifiers/validate_job.rb +14 -0
  38. data/app/jobs/spree/variants/remove_line_item_job.rb +29 -1
  39. data/app/mailers/spree/admin_user_mailer.rb +6 -35
  40. data/app/mailers/spree/base_mailer.rb +1 -20
  41. data/app/mailers/spree/invitation_mailer.rb +1 -1
  42. data/app/mailers/spree/seller_user_mailer.rb +47 -0
  43. data/app/models/concerns/spree/account_lockout.rb +38 -0
  44. data/app/models/concerns/spree/acted_by.rb +210 -0
  45. data/app/models/concerns/spree/actor.rb +51 -0
  46. data/app/models/concerns/spree/admin_user_methods.rb +53 -42
  47. data/app/models/concerns/spree/calculated_adjustments.rb +8 -14
  48. data/app/models/concerns/spree/calculator/currency_amounts.rb +43 -0
  49. data/app/models/concerns/spree/capture_method.rb +33 -0
  50. data/app/models/concerns/spree/custom_field_filterable.rb +163 -0
  51. data/app/models/concerns/spree/customer_methods.rb +421 -0
  52. data/app/models/concerns/spree/deprecated_customer_alias.rb +22 -0
  53. data/app/models/concerns/spree/derived_number.rb +66 -0
  54. data/app/models/concerns/spree/has_address_book.rb +89 -0
  55. data/app/models/concerns/spree/has_custom_fields.rb +360 -0
  56. data/app/models/concerns/spree/has_external_references.rb +95 -0
  57. data/app/models/concerns/spree/has_iso_geography.rb +71 -0
  58. data/app/models/concerns/spree/has_library_media.rb +94 -0
  59. data/app/models/concerns/spree/has_list_position.rb +15 -0
  60. data/app/models/concerns/spree/has_number.rb +139 -0
  61. data/app/models/concerns/spree/has_status.rb +76 -0
  62. data/app/models/concerns/spree/has_tracking_carrier.rb +18 -0
  63. data/app/models/concerns/spree/instruments_gateway_calls.rb +20 -0
  64. data/app/models/concerns/spree/integration_backed_provider.rb +89 -0
  65. data/app/models/concerns/spree/integrations_concern.rb +15 -2
  66. data/app/models/concerns/spree/label_translatable.rb +37 -0
  67. data/app/models/concerns/spree/marketplace/order_group.rb +35 -0
  68. data/app/models/concerns/spree/metadata.rb +18 -22
  69. data/app/models/concerns/spree/named_type.rb +11 -1
  70. data/app/models/concerns/spree/parameterizable_name.rb +5 -5
  71. data/app/models/concerns/spree/password_policy.rb +37 -0
  72. data/app/models/concerns/spree/payment_session_transitions.rb +93 -0
  73. data/app/models/concerns/spree/payment_source_concern.rb +1 -1
  74. data/app/models/concerns/spree/personal_data_matching.rb +120 -0
  75. data/app/models/concerns/spree/preference_schema.rb +120 -19
  76. data/app/models/concerns/spree/prefixed_id.rb +25 -3
  77. data/app/models/concerns/spree/presentation_translatable.rb +4 -37
  78. data/app/models/concerns/spree/product_scopes.rb +51 -191
  79. data/app/models/concerns/spree/provider_failure_policy.rb +44 -0
  80. data/app/models/concerns/spree/publishable.rb +7 -7
  81. data/app/models/concerns/spree/purchase/addresses.rb +258 -0
  82. data/app/models/concerns/spree/purchase/channel.rb +19 -0
  83. data/app/models/concerns/spree/purchase/checkout_steps.rb +68 -0
  84. data/app/models/concerns/spree/purchase/company.rb +96 -0
  85. data/app/models/concerns/spree/purchase/currency.rb +29 -0
  86. data/app/models/concerns/spree/purchase/digital_items.rb +60 -0
  87. data/app/models/concerns/spree/purchase/freight.rb +52 -0
  88. data/app/models/concerns/spree/purchase/gift_cards.rb +70 -0
  89. data/app/models/concerns/spree/purchase/lifecycle.rb +53 -0
  90. data/app/models/concerns/spree/purchase/line_item_currencies.rb +38 -0
  91. data/app/models/concerns/spree/purchase/line_item_lookup.rb +25 -0
  92. data/app/models/concerns/spree/purchase/locale.rb +30 -0
  93. data/app/models/concerns/spree/purchase/market.rb +29 -0
  94. data/app/models/concerns/spree/purchase/payment_processing.rb +93 -0
  95. data/app/models/concerns/spree/purchase/purchase_order.rb +94 -0
  96. data/app/models/concerns/spree/purchase/quantity_rules.rb +136 -0
  97. data/app/models/concerns/spree/purchase/store_credits.rb +100 -0
  98. data/app/models/concerns/spree/purchase/taxation.rb +146 -0
  99. data/app/models/concerns/spree/purchase/totals.rb +116 -0
  100. data/app/models/concerns/spree/purchase/validations.rb +45 -0
  101. data/app/models/concerns/spree/receivable.rb +103 -0
  102. data/app/models/concerns/spree/receivable_item.rb +78 -0
  103. data/app/models/concerns/spree/refund_methods.rb +19 -0
  104. data/app/models/concerns/spree/sanitizable_rich_text.rb +109 -0
  105. data/app/models/concerns/spree/search_indexable.rb +5 -2
  106. data/app/models/concerns/spree/single_store_resource.rb +3 -1
  107. data/app/models/concerns/spree/store_data_sources.rb +75 -0
  108. data/app/models/concerns/spree/store_preferences.rb +49 -0
  109. data/app/models/concerns/spree/stores/markets.rb +75 -28
  110. data/app/models/concerns/spree/stores/setup.rb +10 -0
  111. data/app/models/concerns/spree/translatable_resource.rb +25 -6
  112. data/app/models/concerns/spree/typed_adjustment_line.rb +55 -0
  113. data/app/models/concerns/spree/user_address.rb +13 -3
  114. data/app/models/concerns/spree/user_management.rb +18 -6
  115. data/app/models/concerns/spree/user_methods.rb +5 -330
  116. data/app/models/concerns/spree/user_payment_source.rb +1 -1
  117. data/app/models/concerns/spree/user_roles.rb +18 -11
  118. data/app/models/concerns/spree/validates_store_uniqueness.rb +53 -0
  119. data/app/models/concerns/spree/vat_price_calculation.rb +58 -6
  120. data/app/models/concerns/spree/webhook_payload_redaction.rb +1 -1
  121. data/app/models/spree/ability.rb +147 -43
  122. data/app/models/spree/address.rb +387 -118
  123. data/app/models/spree/adjusters/base.rb +26 -0
  124. data/app/models/spree/adjusters/largest_remainder.rb +24 -0
  125. data/app/models/spree/adjusters/promotion.rb +253 -0
  126. data/app/models/spree/admin_user.rb +26 -0
  127. data/app/models/spree/allowed_origin.rb +1 -1
  128. data/app/models/spree/api_key.rb +34 -31
  129. data/app/models/spree/asset.rb +14 -211
  130. data/app/models/spree/authentication/strategies/base_strategy.rb +54 -3
  131. data/app/models/spree/authentication/strategies/email_password_strategy.rb +11 -3
  132. data/app/models/spree/authentication/strategies/oidc_strategy.rb +330 -0
  133. data/app/models/spree/authentication/strategy_registry.rb +83 -0
  134. data/app/models/spree/base.rb +83 -12
  135. data/app/models/spree/base_analytics_event_handler.rb +1 -1
  136. data/app/models/spree/calculator/shipping/digital_delivery.rb +5 -2
  137. data/app/models/spree/calculator/shipping/flat_rate.rb +10 -5
  138. data/app/models/spree/calculator/shipping/flexi_rate.rb +6 -0
  139. data/app/models/spree/calculator/shipping/per_item.rb +8 -3
  140. data/app/models/spree/calculator/shipping/price_sack.rb +6 -0
  141. data/app/models/spree/calculator/tiered_flat_rate.rb +5 -1
  142. data/app/models/spree/calculator.rb +10 -0
  143. data/app/models/spree/cart.rb +285 -0
  144. data/app/models/spree/carts/item_warning.rb +28 -0
  145. data/app/models/spree/carts/resolved_item.rb +37 -0
  146. data/app/models/spree/catalog.rb +503 -0
  147. data/app/models/spree/catalog_assignment.rb +41 -0
  148. data/app/models/spree/catalog_order_minimum.rb +26 -0
  149. data/app/models/spree/catalog_price.rb +100 -0
  150. data/app/models/spree/catalog_price_tier.rb +36 -0
  151. data/app/models/spree/catalog_product.rb +23 -0
  152. data/app/models/spree/catalog_quantity_rule.rb +46 -0
  153. data/app/models/spree/catalogs/product_term.rb +43 -0
  154. data/app/models/spree/category.rb +430 -12
  155. data/app/models/spree/channel/gating.rb +1 -2
  156. data/app/models/spree/channel.rb +38 -4
  157. data/app/models/spree/channel_stock_location.rb +8 -0
  158. data/app/models/spree/claim.rb +69 -0
  159. data/app/models/spree/claim_line_item.rb +46 -0
  160. data/app/models/spree/claim_reason.rb +24 -0
  161. data/app/models/spree/classification.rb +7 -49
  162. data/app/models/spree/collection.rb +269 -0
  163. data/app/models/spree/collection_rule.rb +58 -0
  164. data/app/models/spree/collection_rules/available_on.rb +21 -0
  165. data/app/models/spree/collection_rules/sale.rb +18 -0
  166. data/app/models/spree/collection_rules/tag.rb +21 -0
  167. data/app/models/spree/commission_line.rb +85 -0
  168. data/app/models/spree/commission_rate.rb +370 -0
  169. data/app/models/spree/commission_rate_value.rb +47 -0
  170. data/app/models/spree/commission_rule.rb +77 -0
  171. data/app/models/spree/commission_rule_product.rb +19 -0
  172. data/app/models/spree/commission_rules/category_rule.rb +33 -0
  173. data/app/models/spree/commission_rules/item_total_rule.rb +31 -0
  174. data/app/models/spree/commission_rules/product_rule.rb +55 -0
  175. data/app/models/spree/commission_rules/seller_rule.rb +33 -0
  176. data/app/models/spree/commission_tax.rb +51 -0
  177. data/app/models/spree/commissions/context.rb +71 -0
  178. data/app/models/spree/company.rb +347 -0
  179. data/app/models/spree/company_invitation.rb +81 -0
  180. data/app/models/spree/company_membership.rb +25 -0
  181. data/app/models/spree/consent_record.rb +125 -0
  182. data/app/models/spree/country.rb +128 -52
  183. data/app/models/spree/coupon_code.rb +18 -5
  184. data/app/models/spree/credit_card.rb +10 -9
  185. data/app/models/spree/current.rb +152 -18
  186. data/app/models/spree/custom_field.rb +160 -7
  187. data/app/models/spree/custom_field_definition/search_capabilities.rb +98 -0
  188. data/app/models/spree/custom_field_definition.rb +219 -5
  189. data/app/models/spree/custom_fields/boolean.rb +15 -0
  190. data/app/models/spree/custom_fields/json.rb +38 -0
  191. data/app/models/spree/custom_fields/long_text.rb +11 -0
  192. data/app/models/spree/custom_fields/number.rb +23 -0
  193. data/app/models/spree/custom_fields/rich_text.rb +23 -0
  194. data/app/models/spree/custom_fields/short_text.rb +15 -0
  195. data/app/models/spree/customer.rb +34 -0
  196. data/app/models/spree/customer_group.rb +12 -12
  197. data/app/models/spree/customer_group_user.rb +6 -4
  198. data/app/models/spree/data_feed.rb +1 -1
  199. data/app/models/spree/data_request.rb +98 -0
  200. data/app/models/spree/delivery.rb +169 -0
  201. data/app/models/spree/delivery_method.rb +566 -0
  202. data/app/models/spree/delivery_method_rule.rb +55 -0
  203. data/app/models/spree/delivery_method_rule_product.rb +8 -0
  204. data/app/models/spree/delivery_method_rules/channel_rule.rb +41 -0
  205. data/app/models/spree/delivery_method_rules/company_rule.rb +24 -0
  206. data/app/models/spree/delivery_method_rules/excluded_products_rule.rb +48 -0
  207. data/app/models/spree/delivery_method_rules/item_total_rule.rb +19 -0
  208. data/app/models/spree/delivery_method_rules/volume_rule.rb +35 -0
  209. data/app/models/spree/delivery_method_rules/weight_rule.rb +19 -0
  210. data/app/models/spree/delivery_method_service.rb +24 -0
  211. data/app/models/spree/delivery_method_stock_location.rb +11 -0
  212. data/app/models/spree/delivery_origin_group.rb +73 -0
  213. data/app/models/spree/delivery_origin_group_location.rb +9 -0
  214. data/app/models/spree/delivery_profile.rb +141 -0
  215. data/app/models/spree/delivery_profiles/digital.rb +20 -0
  216. data/app/models/spree/delivery_profiles/shipping.rb +12 -0
  217. data/app/models/spree/delivery_rate.rb +164 -0
  218. data/app/models/spree/delivery_rate_provider/base.rb +120 -0
  219. data/app/models/spree/delivery_rate_provider/estimate.rb +44 -0
  220. data/app/models/spree/delivery_rate_provider/freight.rb +41 -0
  221. data/app/models/spree/delivery_rate_provider/internal.rb +28 -0
  222. data/app/models/spree/delivery_rate_provider/service_catalog.rb +48 -0
  223. data/app/models/spree/delivery_zone.rb +64 -0
  224. data/app/models/spree/delivery_zone_member.rb +98 -0
  225. data/app/models/spree/digital.rb +12 -16
  226. data/app/models/spree/digital_asset.rb +144 -0
  227. data/app/models/spree/digital_asset_provider/base.rb +95 -0
  228. data/app/models/spree/digital_asset_provider/file.rb +20 -0
  229. data/app/models/spree/digital_delivery.rb +28 -0
  230. data/app/models/spree/digital_link.rb +31 -11
  231. data/app/models/spree/discount.rb +51 -0
  232. data/app/models/spree/event.rb +6 -6
  233. data/app/models/spree/exchange.rb +50 -44
  234. data/app/models/spree/exchange_line_item.rb +52 -0
  235. data/app/models/spree/export.rb +128 -21
  236. data/app/models/spree/exports/customers.rb +2 -2
  237. data/app/models/spree/exports/gift_cards.rb +2 -2
  238. data/app/models/spree/exports/newsletter_subscribers.rb +2 -2
  239. data/app/models/spree/exports/orders.rb +35 -5
  240. data/app/models/spree/exports/price_list_prices.rb +107 -0
  241. data/app/models/spree/exports/products.rb +4 -4
  242. data/app/models/spree/exports/purchase_orders.rb +39 -0
  243. data/app/models/spree/exports/report.rb +95 -0
  244. data/app/models/spree/external_reference.rb +77 -0
  245. data/app/models/spree/external_video.rb +117 -0
  246. data/app/models/spree/fee.rb +40 -0
  247. data/app/models/spree/freight_summary/line.rb +257 -0
  248. data/app/models/spree/freight_summary.rb +180 -0
  249. data/app/models/spree/fulfillment/custom_events.rb +96 -0
  250. data/app/models/spree/fulfillment.rb +973 -0
  251. data/app/models/spree/fulfillment_changer.rb +170 -0
  252. data/app/models/spree/fulfillment_item.rb +148 -0
  253. data/app/models/spree/fulfillment_provider/base.rb +130 -0
  254. data/app/models/spree/fulfillment_provider/digital.rb +44 -0
  255. data/app/models/spree/fulfillment_provider/manual.rb +15 -0
  256. data/app/models/spree/fulfillment_provider/pickup.rb +38 -0
  257. data/app/models/spree/fulfillment_provider/pickup_point.rb +24 -0
  258. data/app/models/spree/fulfilment_changer.rb +3 -164
  259. data/app/models/spree/gateway/bogus.rb +5 -4
  260. data/app/models/spree/gateway/custom_payment_source_method.rb +5 -5
  261. data/app/models/spree/gateway.rb +2 -2
  262. data/app/models/spree/gateway_customer.rb +12 -4
  263. data/app/models/spree/gift_card.rb +140 -48
  264. data/app/models/spree/gift_card_batch.rb +2 -2
  265. data/app/models/spree/import.rb +136 -98
  266. data/app/models/spree/import_mapping.rb +1 -1
  267. data/app/models/spree/import_row.rb +35 -31
  268. data/app/models/spree/import_schemas/price_list_prices.rb +13 -0
  269. data/app/models/spree/import_schemas/products.rb +8 -1
  270. data/app/models/spree/import_schemas/purchase_orders.rb +19 -0
  271. data/app/models/spree/imports/price_list_prices.rb +72 -0
  272. data/app/models/spree/imports/purchase_orders.rb +28 -0
  273. data/app/models/spree/integration.rb +128 -5
  274. data/app/models/spree/inventory_provider/base.rb +30 -0
  275. data/app/models/spree/inventory_provider/internal.rb +22 -0
  276. data/app/models/spree/inventory_unit.rb +3 -139
  277. data/app/models/spree/invitation.rb +53 -47
  278. data/app/models/spree/label_purchase.rb +29 -0
  279. data/app/models/spree/line_item.rb +240 -106
  280. data/app/models/spree/market.rb +106 -15
  281. data/app/models/spree/market_country.rb +10 -5
  282. data/app/models/spree/media.rb +497 -0
  283. data/app/models/spree/media_usage_reference.rb +27 -0
  284. data/app/models/spree/metafield.rb +14 -102
  285. data/app/models/spree/metafield_definition.rb +11 -128
  286. data/app/models/spree/metafields.rb +32 -0
  287. data/app/models/spree/newsletter_subscriber.rb +10 -9
  288. data/app/models/spree/number_generators/base.rb +56 -0
  289. data/app/models/spree/number_generators/random.rb +23 -0
  290. data/app/models/spree/number_generators/sequential.rb +88 -0
  291. data/app/models/spree/number_sequence.rb +86 -0
  292. data/app/models/spree/option_type.rb +18 -32
  293. data/app/models/spree/option_type_product_type.rb +8 -0
  294. data/app/models/spree/option_value.rb +19 -13
  295. data/app/models/spree/option_value_variant.rb +0 -1
  296. data/app/models/spree/order.rb +681 -576
  297. data/app/models/spree/order_cancellation_reason.rb +25 -0
  298. data/app/models/spree/order_group.rb +244 -0
  299. data/app/models/spree/order_inventory.rb +42 -33
  300. data/app/models/spree/order_merger.rb +11 -6
  301. data/app/models/spree/order_promotion.rb +32 -6
  302. data/app/models/spree/order_routing/has_strategy_preference.rb +1 -2
  303. data/app/models/spree/order_routing/rules/minimize_splits.rb +6 -6
  304. data/app/models/spree/order_routing/strategy/rules.rb +12 -8
  305. data/app/models/spree/order_routing_rule.rb +5 -15
  306. data/app/models/spree/order_updater.rb +131 -163
  307. data/app/models/spree/package_type.rb +191 -0
  308. data/app/models/spree/payment/custom_events.rb +52 -5
  309. data/app/models/spree/payment/gateway_options.rb +20 -5
  310. data/app/models/spree/payment/processing.rb +95 -116
  311. data/app/models/spree/payment.rb +299 -123
  312. data/app/models/spree/payment_method/check.rb +4 -3
  313. data/app/models/spree/payment_method/session_instrumentation.rb +34 -0
  314. data/app/models/spree/payment_method/store_credit.rb +4 -2
  315. data/app/models/spree/payment_method.rb +106 -9
  316. data/app/models/spree/payment_session.rb +150 -53
  317. data/app/models/spree/payment_setup_session.rb +4 -37
  318. data/app/models/spree/payment_source.rb +5 -4
  319. data/app/models/spree/payment_split.rb +90 -0
  320. data/app/models/spree/payout_provider/base.rb +218 -0
  321. data/app/models/spree/payout_provider/system.rb +36 -0
  322. data/app/models/spree/permission_sets.rb +17 -0
  323. data/app/models/spree/pickup_point_option.rb +28 -0
  324. data/app/models/spree/pickup_point_provider/base.rb +24 -0
  325. data/app/models/spree/policy.rb +12 -11
  326. data/app/models/spree/price.rb +91 -5
  327. data/app/models/spree/price_adjustment_tier.rb +63 -0
  328. data/app/models/spree/price_history.rb +1 -1
  329. data/app/models/spree/price_list.rb +266 -142
  330. data/app/models/spree/price_rule.rb +51 -7
  331. data/app/models/spree/price_rules/channel_rule.rb +3 -0
  332. data/app/models/spree/price_rules/customer_group_rule.rb +10 -1
  333. data/app/models/spree/price_rules/market_rule.rb +6 -0
  334. data/app/models/spree/price_rules/user_rule.rb +12 -3
  335. data/app/models/spree/price_rules/volume_rule.rb +6 -0
  336. data/app/models/spree/price_rules/zone_rule.rb +5 -13
  337. data/app/models/spree/pricing_provider/base.rb +51 -0
  338. data/app/models/spree/pricing_provider/internal.rb +277 -0
  339. data/app/models/spree/pricing_provider.rb +28 -0
  340. data/app/models/spree/product.rb +528 -544
  341. data/app/models/spree/product_category.rb +65 -0
  342. data/app/models/spree/product_collection.rb +20 -0
  343. data/app/models/spree/product_option_type.rb +0 -1
  344. data/app/models/spree/product_promotion_rule.rb +0 -1
  345. data/app/models/spree/product_publication.rb +0 -1
  346. data/app/models/spree/product_submission.rb +72 -0
  347. data/app/models/spree/product_type.rb +116 -0
  348. data/app/models/spree/product_type_category.rb +8 -0
  349. data/app/models/spree/product_type_custom_field_definition.rb +39 -0
  350. data/app/models/spree/promotion/actions/create_adjustment.rb +9 -7
  351. data/app/models/spree/promotion/actions/create_item_adjustments.rb +11 -16
  352. data/app/models/spree/promotion/actions/create_line_items.rb +19 -8
  353. data/app/models/spree/promotion/actions/free_shipping.rb +12 -18
  354. data/app/models/spree/promotion/rules/category.rb +181 -0
  355. data/app/models/spree/promotion/rules/channel.rb +3 -3
  356. data/app/models/spree/promotion/rules/country.rb +43 -17
  357. data/app/models/spree/promotion/rules/currency.rb +2 -2
  358. data/app/models/spree/promotion/rules/customer_group.rb +13 -5
  359. data/app/models/spree/promotion/rules/first_order.rb +3 -3
  360. data/app/models/spree/promotion/rules/item_total.rb +2 -2
  361. data/app/models/spree/promotion/rules/market.rb +3 -3
  362. data/app/models/spree/promotion/rules/one_use_per_user.rb +4 -4
  363. data/app/models/spree/promotion/rules/option_value.rb +34 -11
  364. data/app/models/spree/promotion/rules/product.rb +3 -5
  365. data/app/models/spree/promotion/rules/taxon.rb +10 -131
  366. data/app/models/spree/promotion/rules/user.rb +14 -22
  367. data/app/models/spree/promotion/rules/user_logged_in.rb +3 -3
  368. data/app/models/spree/promotion.rb +59 -21
  369. data/app/models/spree/promotion_action.rb +52 -11
  370. data/app/models/spree/promotion_action_line_item.rb +1 -1
  371. data/app/models/spree/promotion_handler/coupon.rb +44 -16
  372. data/app/models/spree/promotion_handler/free_shipping.rb +1 -1
  373. data/app/models/spree/promotion_handler/promotion_duplicator.rb +1 -1
  374. data/app/models/spree/promotion_rule.rb +2 -9
  375. data/app/models/spree/promotion_rule_category.rb +22 -0
  376. data/app/models/spree/promotion_rule_taxon.rb +7 -6
  377. data/app/models/spree/promotion_rule_user.rb +2 -2
  378. data/app/models/spree/prototype.rb +3 -13
  379. data/app/models/spree/purchase_order.rb +95 -0
  380. data/app/models/spree/purchase_order_item.rb +40 -0
  381. data/app/models/spree/quantity_rule.rb +114 -0
  382. data/app/models/spree/refresh_token.rb +20 -2
  383. data/app/models/spree/refund.rb +96 -42
  384. data/app/models/spree/refund_reason.rb +32 -11
  385. data/app/models/spree/return.rb +151 -0
  386. data/app/models/spree/return_authorization_reason.rb +11 -6
  387. data/app/models/spree/return_line_item.rb +42 -0
  388. data/app/models/spree/return_reason.rb +26 -0
  389. data/app/models/spree/rich_text_sanitizer.rb +99 -0
  390. data/app/models/spree/role.rb +179 -4
  391. data/app/models/spree/role_user.rb +5 -21
  392. data/app/models/spree/saved_report.rb +56 -0
  393. data/app/models/spree/search_provider/base.rb +8 -2
  394. data/app/models/spree/search_provider/database.rb +73 -22
  395. data/app/models/spree/search_provider.rb +29 -0
  396. data/app/models/spree/seller.rb +475 -0
  397. data/app/models/spree/seller_balance.rb +86 -0
  398. data/app/models/spree/seller_payout.rb +116 -0
  399. data/app/models/spree/seller_requirement.rb +274 -0
  400. data/app/models/spree/seller_requirement_custom_field.rb +38 -0
  401. data/app/models/spree/seller_requirement_status.rb +144 -0
  402. data/app/models/spree/seller_requirement_submission.rb +91 -0
  403. data/app/models/spree/seller_requirements/accept_terms.rb +104 -0
  404. data/app/models/spree/seller_requirements/attestation.rb +22 -0
  405. data/app/models/spree/seller_requirements/billing_address.rb +13 -0
  406. data/app/models/spree/seller_requirements/complete_profile.rb +26 -0
  407. data/app/models/spree/seller_requirements/delivery_method.rb +20 -0
  408. data/app/models/spree/seller_requirements/document.rb +62 -0
  409. data/app/models/spree/seller_requirements/minimum_products.rb +20 -0
  410. data/app/models/spree/seller_requirements/operator_review.rb +23 -0
  411. data/app/models/spree/seller_requirements/package_type.rb +40 -0
  412. data/app/models/spree/seller_requirements/payout_account.rb +55 -0
  413. data/app/models/spree/seller_requirements/policy.rb +43 -0
  414. data/app/models/spree/seller_requirements/required_custom_fields.rb +56 -0
  415. data/app/models/spree/seller_requirements/returns_address.rb +19 -0
  416. data/app/models/spree/seller_transfer.rb +166 -0
  417. data/app/models/spree/setup_tasks.rb +3 -6
  418. data/app/models/spree/shipment.rb +3 -560
  419. data/app/models/spree/shipping_calculator.rb +7 -0
  420. data/app/models/spree/shipping_document.rb +32 -0
  421. data/app/models/spree/shipping_label.rb +146 -0
  422. data/app/models/spree/shipping_method.rb +3 -146
  423. data/app/models/spree/shipping_rate.rb +3 -97
  424. data/app/models/spree/state.rb +57 -23
  425. data/app/models/spree/stock/availability_validator.rb +1 -1
  426. data/app/models/spree/stock/content_item.rb +1 -0
  427. data/app/models/spree/stock/coordinator.rb +69 -9
  428. data/app/models/spree/stock/estimator.rb +198 -33
  429. data/app/models/spree/stock/inventory_unit_builder.rb +6 -1
  430. data/app/models/spree/stock/package.rb +145 -14
  431. data/app/models/spree/stock/packer.rb +20 -3
  432. data/app/models/spree/stock/prioritizer.rb +27 -4
  433. data/app/models/spree/stock/quantifier.rb +63 -38
  434. data/app/models/spree/stock/splitter/base.rb +3 -1
  435. data/app/models/spree/stock/splitter/delivery_profile.rb +41 -0
  436. data/app/models/spree/stock_item.rb +3 -147
  437. data/app/models/spree/stock_level/custom_events.rb +48 -0
  438. data/app/models/spree/stock_level.rb +305 -0
  439. data/app/models/spree/stock_location.rb +165 -87
  440. data/app/models/spree/stock_movement/custom_events.rb +1 -1
  441. data/app/models/spree/stock_movement.rb +166 -22
  442. data/app/models/spree/stock_receipt.rb +61 -0
  443. data/app/models/spree/stock_receipt_item.rb +35 -0
  444. data/app/models/spree/stock_reservation.rb +114 -11
  445. data/app/models/spree/stock_transfer.rb +84 -59
  446. data/app/models/spree/stock_transfer_item.rb +25 -0
  447. data/app/models/spree/store.rb +431 -107
  448. data/app/models/spree/store_credit.rb +88 -21
  449. data/app/models/spree/store_credit_category.rb +21 -28
  450. data/app/models/spree/store_credit_event.rb +1 -1
  451. data/app/models/spree/store_credit_type.rb +10 -2
  452. data/app/models/spree/store_payment_method.rb +0 -1
  453. data/app/models/spree/store_product.rb +2 -2
  454. data/app/models/spree/store_promotion.rb +0 -1
  455. data/app/models/spree/storefront/access_denied.rb +22 -0
  456. data/app/models/spree/storefront/access_policy.rb +180 -0
  457. data/app/models/spree/subscriber.rb +6 -6
  458. data/app/models/spree/supplier.rb +76 -0
  459. data/app/models/spree/tax_category.rb +15 -5
  460. data/app/models/spree/tax_exemption/item_override.rb +22 -0
  461. data/app/models/spree/tax_exemption.rb +81 -0
  462. data/app/models/spree/tax_exemption_certificate.rb +95 -0
  463. data/app/models/spree/tax_identifier.rb +209 -0
  464. data/app/models/spree/tax_identifiers/validation_result.rb +41 -0
  465. data/app/models/spree/tax_identifiers/validator/base.rb +53 -0
  466. data/app/models/spree/tax_identifiers/validator/eu_vat.rb +76 -0
  467. data/app/models/spree/tax_line.rb +79 -0
  468. data/app/models/spree/tax_provider/base.rb +150 -0
  469. data/app/models/spree/tax_provider/internal.rb +227 -0
  470. data/app/models/spree/tax_rate.rb +63 -100
  471. data/app/models/spree/taxon.rb +13 -514
  472. data/app/models/spree/taxon_rule.rb +8 -9
  473. data/app/models/spree/taxonomy.rb +8 -42
  474. data/app/models/spree/user_identity.rb +2 -2
  475. data/app/models/spree/variant.rb +629 -150
  476. data/app/models/spree/variant_media.rb +6 -7
  477. data/app/models/spree/webhook_endpoint.rb +2 -1
  478. data/app/models/spree/wished_item.rb +3 -31
  479. data/app/models/spree/wishlist.rb +17 -10
  480. data/app/models/spree/wishlist_item/custom_events.rb +42 -0
  481. data/app/models/spree/wishlist_item.rb +37 -0
  482. data/app/models/spree/zone.rb +24 -182
  483. data/app/models/spree/zone_member.rb +5 -8
  484. data/app/presenters/spree/csv/custom_fields_helper.rb +25 -0
  485. data/app/presenters/spree/csv/customer_presenter.rb +7 -6
  486. data/app/presenters/spree/csv/gift_card_presenter.rb +9 -8
  487. data/app/presenters/spree/csv/newsletter_subscriber_presenter.rb +7 -6
  488. data/app/presenters/spree/csv/order_line_item_presenter.rb +53 -21
  489. data/app/presenters/spree/csv/price_list_price_presenter.rb +41 -0
  490. data/app/presenters/spree/csv/product_variant_presenter.rb +22 -21
  491. data/app/presenters/spree/csv/purchase_order_item_presenter.rb +50 -0
  492. data/app/presenters/spree/data_feeds/google_presenter.rb +24 -10
  493. data/app/presenters/spree/filters/options_presenter.rb +2 -2
  494. data/app/services/spree/addresses/create.rb +70 -27
  495. data/app/services/spree/addresses/helper.rb +17 -54
  496. data/app/services/spree/addresses/update.rb +53 -31
  497. data/app/services/spree/carts/associate.rb +46 -0
  498. data/app/services/spree/carts/check_availability.rb +72 -0
  499. data/app/services/spree/carts/create.rb +7 -1
  500. data/app/services/spree/carts/destroy.rb +71 -0
  501. data/app/services/spree/carts/empty.rb +42 -0
  502. data/app/services/spree/carts/partition_by_seller.rb +71 -0
  503. data/app/services/spree/carts/price_items.rb +119 -0
  504. data/app/services/spree/carts/remove_item.rb +42 -0
  505. data/app/services/spree/carts/remove_line_item.rb +42 -0
  506. data/app/services/spree/carts/remove_out_of_stock_items.rb +104 -0
  507. data/app/services/spree/carts/set_quantity.rb +39 -0
  508. data/app/services/spree/carts/split_by_seller.rb +475 -0
  509. data/app/services/spree/carts/update.rb +157 -51
  510. data/app/services/spree/catalogs/resolve_prices.rb +192 -0
  511. data/app/services/spree/catalogs/resolve_quantity_rules.rb +115 -0
  512. data/app/services/spree/catalogs/set_assignments.rb +59 -0
  513. data/app/services/spree/catalogs/set_order_minimums.rb +44 -0
  514. data/app/services/spree/catalogs/set_product_terms.rb +83 -0
  515. data/app/services/spree/categories/add_products.rb +51 -0
  516. data/app/services/spree/categories/remove_products.rb +72 -0
  517. data/app/services/spree/checkout/add_store_credit.rb +11 -79
  518. data/app/services/spree/checkout/advance.rb +38 -38
  519. data/app/services/spree/checkout/remove_store_credit.rb +7 -12
  520. data/app/services/spree/collections/add_products.rb +42 -0
  521. data/app/services/spree/collections/regenerate_products.rb +67 -0
  522. data/app/services/spree/collections/remove_products.rb +65 -0
  523. data/app/services/spree/commissions/calculate_line.rb +132 -0
  524. data/app/services/spree/commissions/commission_order.rb +185 -0
  525. data/app/services/spree/commissions/resolve_rate.rb +114 -0
  526. data/app/services/spree/commissions/resolve_tax_rate.rb +78 -0
  527. data/app/services/spree/companies/add_member.rb +38 -0
  528. data/app/services/spree/company_invitations/accept.rb +60 -0
  529. data/app/services/spree/coupon_codes/coupon_codes_handler.rb +14 -2
  530. data/app/services/spree/customers/data_export.rb +372 -0
  531. data/app/services/spree/data_requests/create.rb +77 -0
  532. data/app/services/spree/deliveries/create.rb +56 -0
  533. data/app/services/spree/deliveries/destroy.rb +39 -0
  534. data/app/services/spree/deliveries/upsert_primary.rb +43 -0
  535. data/app/services/spree/fulfillments/recalculate_delivery.rb +62 -0
  536. data/app/services/spree/fulfillments/stand_down_provider.rb +47 -0
  537. data/app/services/spree/imports/row_processors/customer.rb +8 -8
  538. data/app/services/spree/imports/row_processors/price_list_price.rb +164 -0
  539. data/app/services/spree/imports/row_processors/product_variant.rb +193 -57
  540. data/app/services/spree/imports/row_processors/purchase_order.rb +157 -0
  541. data/app/services/spree/media/destroy.rb +88 -0
  542. data/app/services/spree/media/usage.rb +175 -0
  543. data/app/services/spree/newsletter/link_user.rb +4 -3
  544. data/app/services/spree/newsletter/subscribe.rb +3 -3
  545. data/app/services/spree/newsletter/verify.rb +6 -2
  546. data/app/services/spree/order_groups/allocate_payments.rb +101 -0
  547. data/app/services/spree/orders/approve.rb +11 -24
  548. data/app/services/spree/orders/build_fulfillments.rb +29 -0
  549. data/app/services/spree/orders/create.rb +38 -17
  550. data/app/services/spree/orders/create_from_cart.rb +88 -0
  551. data/app/services/spree/orders/create_user_account.rb +14 -67
  552. data/app/services/spree/orders/discounts/create.rb +84 -0
  553. data/app/services/spree/orders/discounts/destroy.rb +25 -0
  554. data/app/services/spree/orders/discounts/update.rb +29 -0
  555. data/app/services/spree/orders/fees/create.rb +28 -0
  556. data/app/services/spree/orders/fees/destroy.rb +22 -0
  557. data/app/services/spree/orders/fees/update.rb +25 -0
  558. data/app/services/spree/orders/remove_item.rb +13 -0
  559. data/app/services/spree/orders/remove_line_item.rb +13 -0
  560. data/app/services/spree/orders/update.rb +56 -11
  561. data/app/services/spree/orders/update_item.rb +105 -0
  562. data/app/services/spree/orders/update_statuses.rb +109 -0
  563. data/app/services/spree/payments/create.rb +31 -5
  564. data/app/services/spree/prices/bulk_upsert.rb +156 -30
  565. data/app/services/spree/product_submissions/close.rb +46 -0
  566. data/app/services/spree/product_types/apply_to_products.rb +167 -0
  567. data/app/services/spree/products/auto_match_collections.rb +75 -0
  568. data/app/services/spree/products/auto_match_taxons.rb +7 -54
  569. data/app/services/spree/products/duplicator.rb +16 -22
  570. data/app/services/spree/products/for_context.rb +54 -0
  571. data/app/services/spree/products/select_buy_box.rb +98 -0
  572. data/app/services/spree/purchases/amount_due_at_checkout.rb +33 -0
  573. data/app/services/spree/returns/eligibility_validator.rb +53 -0
  574. data/app/services/spree/sample_data/helper.rb +3 -3
  575. data/app/services/spree/sample_data/import_builder.rb +8 -4
  576. data/app/services/spree/sample_data/import_runner.rb +7 -4
  577. data/app/services/spree/sample_data/loader.rb +15 -6
  578. data/app/services/spree/search_provider/custom_field_schema.rb +153 -0
  579. data/app/services/spree/seeds/admin_user.rb +72 -12
  580. data/app/services/spree/seeds/all.rb +24 -13
  581. data/app/services/spree/seeds/commission_rates.rb +53 -0
  582. data/app/services/spree/seeds/digital_delivery.rb +18 -8
  583. data/app/services/spree/seeds/product_types.rb +23 -0
  584. data/app/services/spree/seeds/returns_environment.rb +44 -16
  585. data/app/services/spree/seeds/roles.rb +6 -1
  586. data/app/services/spree/seeds/saved_reports.rb +107 -0
  587. data/app/services/spree/seeds/seller_requirements.rb +19 -0
  588. data/app/services/spree/seeds/stores.rb +1 -1
  589. data/app/services/spree/seeds/tax_categories.rb +9 -2
  590. data/app/services/spree/sellers/requirements.rb +129 -0
  591. data/app/services/spree/shipments/update.rb +4 -33
  592. data/app/services/spree/shipping_labels/confirm_refund.rb +47 -0
  593. data/app/services/spree/shipping_labels/store_file.rb +68 -0
  594. data/app/services/spree/stock_levels/bulk_upsert.rb +67 -0
  595. data/app/services/spree/stock_levels/correct.rb +69 -0
  596. data/app/services/spree/stock_levels/recount.rb +103 -0
  597. data/app/services/spree/stock_locations/stock_items/create.rb +8 -13
  598. data/app/services/spree/stock_locations/stock_levels/create.rb +25 -0
  599. data/app/services/spree/stock_reservations/extend.rb +9 -5
  600. data/app/services/spree/stock_reservations/release.rb +4 -3
  601. data/app/services/spree/stock_reservations/reserve.rb +43 -32
  602. data/app/services/spree/store_credits/apply.rb +93 -0
  603. data/app/services/spree/store_credits/remove.rb +17 -0
  604. data/app/services/spree/stores/provision_defaults.rb +269 -0
  605. data/app/services/spree/tax/resolve_exemptions.rb +44 -0
  606. data/app/services/spree/tax/unusable_exemption_error.rb +8 -0
  607. data/app/services/spree/tax_identifiers/validate.rb +77 -0
  608. data/app/services/spree/taxons/add_products.rb +6 -39
  609. data/app/services/spree/taxons/regenerate_products.rb +8 -53
  610. data/app/services/spree/taxons/remove_products.rb +6 -60
  611. data/app/services/spree/variants/remove_line_items.rb +6 -1
  612. data/app/subscribers/spree/event_log_subscriber.rb +1 -1
  613. data/app/subscribers/spree/order_commission_subscriber.rb +23 -0
  614. data/app/subscribers/spree/order_placed_subscriber.rb +58 -0
  615. data/app/subscribers/spree/order_status_subscriber.rb +82 -0
  616. data/app/subscribers/spree/payment_split_subscriber.rb +71 -0
  617. data/app/subscribers/spree/product_metrics_subscriber.rb +2 -2
  618. data/app/subscribers/spree/seller_onboarding_subscriber.rb +32 -0
  619. data/app/subscribers/spree/seller_transfer_reversal_subscriber.rb +26 -0
  620. data/app/subscribers/spree/seller_transfer_subscriber.rb +26 -0
  621. data/app/subscribers/spree/seller_user_email_subscriber.rb +27 -0
  622. data/app/subscribers/spree/tax_identifier_validation_subscriber.rb +26 -0
  623. data/app/validators/spree/addresses/phone_validator.rb +2 -2
  624. data/app/validators/spree/attachment_content_type_validator.rb +183 -0
  625. data/app/validators/spree/password_length_validator.rb +23 -0
  626. data/app/views/spree/seller_user_mailer/password_reset_email.html.erb +8 -0
  627. data/app/views/spree/shared/_purchased_items_styles.html.erb +7 -0
  628. data/app/workflows/spree/carts/add_item.rb +234 -0
  629. data/app/workflows/spree/carts/complete.rb +516 -0
  630. data/app/workflows/spree/carts/merge.rb +90 -0
  631. data/app/workflows/spree/carts/recalculate.rb +54 -0
  632. data/app/workflows/spree/carts/recalculate_totals.rb +233 -0
  633. data/app/workflows/spree/carts/upsert_items.rb +368 -0
  634. data/app/workflows/spree/catalogs/activate.rb +51 -0
  635. data/app/workflows/spree/catalogs/create.rb +83 -0
  636. data/app/workflows/spree/catalogs/deactivate.rb +35 -0
  637. data/app/workflows/spree/catalogs/set_price_list.rb +130 -0
  638. data/app/workflows/spree/catalogs/update.rb +85 -0
  639. data/app/workflows/spree/claims/approve.rb +38 -0
  640. data/app/workflows/spree/claims/cancel.rb +37 -0
  641. data/app/workflows/spree/claims/create.rb +82 -0
  642. data/app/workflows/spree/claims/deny.rb +35 -0
  643. data/app/workflows/spree/claims/resolve.rb +166 -0
  644. data/app/workflows/spree/customers/anonymize.rb +502 -0
  645. data/app/workflows/spree/customers/create.rb +247 -0
  646. data/app/workflows/spree/data_requests/fulfill.rb +165 -0
  647. data/app/workflows/spree/deliveries/update_tracking.rb +96 -0
  648. data/app/workflows/spree/exchanges/approve.rb +38 -0
  649. data/app/workflows/spree/exchanges/cancel.rb +40 -0
  650. data/app/workflows/spree/exchanges/create.rb +90 -0
  651. data/app/workflows/spree/exchanges/fulfill.rb +146 -0
  652. data/app/workflows/spree/exchanges/receive.rb +86 -0
  653. data/app/workflows/spree/fulfillments/cancel.rb +87 -0
  654. data/app/workflows/spree/fulfillments/create.rb +346 -0
  655. data/app/workflows/spree/fulfillments/fulfill.rb +354 -0
  656. data/app/workflows/spree/fulfillments/mark_delivered.rb +67 -0
  657. data/app/workflows/spree/fulfillments/purchase_label.rb +40 -0
  658. data/app/workflows/spree/fulfillments/update.rb +123 -0
  659. data/app/workflows/spree/gift_cards/apply.rb +235 -0
  660. data/app/workflows/spree/gift_cards/cancel.rb +43 -0
  661. data/app/workflows/spree/gift_cards/redeem.rb +59 -0
  662. data/app/workflows/spree/gift_cards/remove.rb +78 -0
  663. data/app/workflows/spree/imports/complete.rb +45 -0
  664. data/app/workflows/spree/imports/complete_mapping.rb +50 -0
  665. data/app/workflows/spree/imports/retry_failed_rows.rb +46 -0
  666. data/app/workflows/spree/imports/start_mapping.rb +48 -0
  667. data/app/workflows/spree/imports/start_processing.rb +36 -0
  668. data/app/workflows/spree/invitations/accept.rb +50 -0
  669. data/app/workflows/spree/orders/add_item.rb +12 -0
  670. data/app/workflows/spree/orders/cancel.rb +261 -0
  671. data/app/workflows/spree/orders/complete.rb +169 -0
  672. data/app/workflows/spree/orders/recalculate.rb +11 -0
  673. data/app/workflows/spree/orders/recalculate_totals.rb +12 -0
  674. data/app/workflows/spree/orders/upsert_items.rb +28 -0
  675. data/app/workflows/spree/payment_sessions/complete.rb +44 -0
  676. data/app/workflows/spree/payments/capture.rb +109 -0
  677. data/app/workflows/spree/payments/handle_webhook.rb +100 -0
  678. data/app/workflows/spree/payments/process.rb +73 -0
  679. data/app/workflows/spree/payments/void.rb +72 -0
  680. data/app/workflows/spree/price_lists/activate.rb +49 -0
  681. data/app/workflows/spree/price_lists/create.rb +57 -0
  682. data/app/workflows/spree/price_lists/deactivate.rb +30 -0
  683. data/app/workflows/spree/price_lists/update.rb +117 -0
  684. data/app/workflows/spree/products/activate.rb +33 -0
  685. data/app/workflows/spree/products/approve.rb +52 -0
  686. data/app/workflows/spree/products/archive.rb +44 -0
  687. data/app/workflows/spree/products/create.rb +82 -0
  688. data/app/workflows/spree/products/destroy.rb +35 -0
  689. data/app/workflows/spree/products/draft.rb +49 -0
  690. data/app/workflows/spree/products/nested_attributes.rb +242 -0
  691. data/app/workflows/spree/products/propose.rb +62 -0
  692. data/app/workflows/spree/products/reject.rb +54 -0
  693. data/app/workflows/spree/products/update.rb +83 -0
  694. data/app/workflows/spree/purchase_orders/cancel.rb +57 -0
  695. data/app/workflows/spree/purchase_orders/close.rb +57 -0
  696. data/app/workflows/spree/purchase_orders/create.rb +68 -0
  697. data/app/workflows/spree/purchase_orders/mark_draft.rb +49 -0
  698. data/app/workflows/spree/purchase_orders/mark_ordered.rb +50 -0
  699. data/app/workflows/spree/purchase_orders/receive.rb +65 -0
  700. data/app/workflows/spree/purchase_orders/update.rb +56 -0
  701. data/app/workflows/spree/receivables/incoming_counter.rb +50 -0
  702. data/app/workflows/spree/refunds/create.rb +136 -0
  703. data/app/workflows/spree/refunds/order_payments.rb +129 -0
  704. data/app/workflows/spree/returns/approve.rb +47 -0
  705. data/app/workflows/spree/returns/cancel.rb +52 -0
  706. data/app/workflows/spree/returns/create.rb +135 -0
  707. data/app/workflows/spree/returns/purchase_label.rb +32 -0
  708. data/app/workflows/spree/returns/receive.rb +94 -0
  709. data/app/workflows/spree/returns/refund.rb +134 -0
  710. data/app/workflows/spree/seller_payouts/complete.rb +80 -0
  711. data/app/workflows/spree/seller_payouts/sweep.rb +192 -0
  712. data/app/workflows/spree/seller_requirement_submissions/accept.rb +40 -0
  713. data/app/workflows/spree/seller_requirement_submissions/create.rb +104 -0
  714. data/app/workflows/spree/seller_requirement_submissions/reject.rb +45 -0
  715. data/app/workflows/spree/seller_requirement_submissions/reviewable.rb +19 -0
  716. data/app/workflows/spree/seller_requirement_submissions/waive.rb +64 -0
  717. data/app/workflows/spree/seller_transfers/create.rb +131 -0
  718. data/app/workflows/spree/seller_transfers/reverse.rb +241 -0
  719. data/app/workflows/spree/sellers/approve.rb +88 -0
  720. data/app/workflows/spree/sellers/create.rb +72 -0
  721. data/app/workflows/spree/sellers/invite.rb +61 -0
  722. data/app/workflows/spree/sellers/reject.rb +52 -0
  723. data/app/workflows/spree/sellers/reopen_onboarding.rb +55 -0
  724. data/app/workflows/spree/sellers/start_onboarding.rb +46 -0
  725. data/app/workflows/spree/sellers/submit_for_review.rb +76 -0
  726. data/app/workflows/spree/sellers/suspend.rb +55 -0
  727. data/app/workflows/spree/shipping_labels/purchase.rb +154 -0
  728. data/app/workflows/spree/shipping_labels/record.rb +102 -0
  729. data/app/workflows/spree/shipping_labels/refund.rb +77 -0
  730. data/app/workflows/spree/stock_receipts/recording.rb +165 -0
  731. data/app/workflows/spree/stock_transfers/cancel.rb +103 -0
  732. data/app/workflows/spree/stock_transfers/close.rb +56 -0
  733. data/app/workflows/spree/stock_transfers/create.rb +63 -0
  734. data/app/workflows/spree/stock_transfers/mark_draft.rb +41 -0
  735. data/app/workflows/spree/stock_transfers/mark_in_transit.rb +91 -0
  736. data/app/workflows/spree/stock_transfers/mark_ready.rb +36 -0
  737. data/app/workflows/spree/stock_transfers/receive.rb +62 -0
  738. data/app/workflows/spree/stock_transfers/update.rb +55 -0
  739. data/app/workflows/spree/tax_exemption_certificates/verify.rb +48 -0
  740. data/app/workflows/spree/variants/create.rb +66 -0
  741. data/app/workflows/spree/variants/nested_attributes.rb +90 -0
  742. data/app/workflows/spree/variants/update.rb +55 -0
  743. data/config/brakeman.ignore +79 -79
  744. data/config/i18n-tasks.yml +4 -3
  745. data/config/initializers/mobility.rb +0 -4
  746. data/config/initializers/spree_store_setup_tasks.rb +4 -0
  747. data/config/locales/en.yml +952 -189
  748. data/config/routes.rb +11 -4
  749. data/db/migrate/20220201103922_add_first_name_and_last_name_to_spree_users.rb +7 -5
  750. data/db/migrate/20221215151408_add_selected_locale_to_spree_users.rb +6 -4
  751. data/db/migrate/20250127151258_add_phone_to_spree_users.rb +3 -1
  752. data/db/migrate/20250207084000_add_accepts_email_marketing_field_to_spree_users_table.rb +4 -2
  753. data/db/migrate/20250410061306_create_spree_invitations.rb +1 -1
  754. data/db/migrate/20250605131334_add_missing_fields_to_users.rb +24 -20
  755. data/db/migrate/20260315100000_add_product_media_support.rb +4 -1
  756. data/db/migrate/20260613000001_add_store_id_to_spree_role_users.rb +6 -3
  757. data/db/migrate/20260630000001_add_default_variant_id_to_spree_products.rb +9 -0
  758. data/db/migrate/20260708160054_create_spree_collections.rb +69 -0
  759. data/db/migrate/20260710000001_rename_taxons_to_categories.rb +28 -0
  760. data/db/migrate/20260727000001_add_unique_country_abbr_index_to_spree_states.rb +27 -4
  761. data/db/migrate/20260728000000_create_spree_customers_and_admin_users.rb +59 -0
  762. data/db/migrate/20260728000001_rename_prototypes_to_product_types.rb +59 -0
  763. data/db/migrate/20260728000002_create_spree_delivery_zones.rb +29 -0
  764. data/db/migrate/20260728000003_create_spree_carts.rb +58 -0
  765. data/db/migrate/20260728000003_rename_user_id_to_customer_id.rb +30 -0
  766. data/db/migrate/20260728000004_rename_shipping_to_fulfillment_and_delivery.rb +83 -0
  767. data/db/migrate/20260728000005_add_fulfillment_type_columns.rb +33 -0
  768. data/db/migrate/20260729000001_create_typed_adjustment_tables.rb +87 -0
  769. data/db/migrate/20260729100001_add_checkout_columns_to_spree_carts.rb +15 -0
  770. data/db/migrate/20260729100002_relax_owner_null_constraints.rb +7 -0
  771. data/db/migrate/20260729120001_rename_order_totals_to_standard_names.rb +7 -0
  772. data/db/migrate/20260729130001_create_spree_delivery_method_rules.rb +19 -0
  773. data/db/migrate/20260729140001_add_coupon_code_to_spree_orders.rb +6 -0
  774. data/db/migrate/20260729150001_add_store_to_delivery_methods_and_stock_locations.rb +6 -0
  775. data/db/migrate/20260802190001_create_spree_returns.rb +49 -0
  776. data/db/migrate/20260802210001_create_spree_exchanges_and_claims.rb +80 -0
  777. data/db/migrate/20260805100001_rename_return_authorization_reasons_to_return_reasons.rb +109 -0
  778. data/db/migrate/20260806000001_add_store_id_to_spree_tax_rates_and_categories.rb +16 -0
  779. data/db/migrate/20260806000001_create_spree_delivery_method_rule_products.rb +22 -0
  780. data/db/migrate/20260806000002_add_treatment_columns_to_spree_tax_lines.rb +19 -0
  781. data/db/migrate/20260806000003_create_spree_tax_identifiers.rb +41 -0
  782. data/db/migrate/20260806000004_add_tax_provider_to_spree_markets.rb +9 -0
  783. data/db/migrate/20260806000005_add_country_and_state_to_spree_tax_rates.rb +20 -0
  784. data/db/migrate/20260806100001_create_spree_product_type_custom_field_definitions.rb +17 -0
  785. data/db/migrate/20260806120001_add_rate_provider_to_delivery_methods.rb +7 -0
  786. data/db/migrate/20260806120002_add_carrier_columns_to_delivery_rates.rb +13 -0
  787. data/db/migrate/20260806130001_add_unique_store_type_index_to_spree_integrations.rb +9 -0
  788. data/db/migrate/20260807000001_add_permissions_to_spree_roles.rb +14 -0
  789. data/db/migrate/20260807000001_create_spree_companies.rb +66 -0
  790. data/db/migrate/20260807000003_create_spree_tax_exemption_certificates.rb +31 -0
  791. data/db/migrate/20260807120001_remove_claim_type_from_spree_claims.rb +5 -0
  792. data/db/migrate/20260807130001_add_country_state_codes_to_consumers.rb +28 -0
  793. data/db/migrate/20260807150001_reindex_spree_categories_by_store.rb +42 -0
  794. data/db/migrate/20260809000001_rename_metafields_to_custom_fields.rb +126 -0
  795. data/db/migrate/20260809100001_support_multi_rate_delivery_methods.rb +35 -0
  796. data/db/migrate/20260809120001_consolidate_metadata_columns.rb +120 -0
  797. data/db/migrate/20260809150001_promote_shipping_categories_to_delivery_profiles.rb +153 -0
  798. data/db/migrate/20260809170001_create_spree_channel_stock_locations.rb +17 -0
  799. data/db/migrate/20260809200001_add_rich_text_columns_for_action_text_removal.rb +11 -0
  800. data/db/migrate/20260810000001_rename_digitals_to_digital_assets.rb +38 -0
  801. data/db/migrate/20260811000001_add_delivery_tracking_to_fulfillments.rb +17 -0
  802. data/db/migrate/20260812000001_add_provider_type_to_spree_digital_assets.rb +7 -0
  803. data/db/migrate/20260812000002_add_metadata_to_spree_digital_assets.rb +11 -0
  804. data/db/migrate/20260813000001_create_spree_number_sequences.rb +13 -0
  805. data/db/migrate/20260813120001_add_setup_token_to_spree_stores.rb +11 -0
  806. data/db/migrate/20260813130001_add_capture_method_to_payment_methods.rb +17 -0
  807. data/db/migrate/20260813130001_add_unique_indexes_to_spree_data_feeds.rb +10 -0
  808. data/db/migrate/20260814000001_add_customs_fields_to_spree_variants.rb +7 -0
  809. data/db/migrate/20260814000001_rename_stock_items_to_stock_levels.rb +72 -0
  810. data/db/migrate/20260814000002_add_typed_stock_movements.rb +25 -0
  811. data/db/migrate/20260815000001_add_audience_to_spree_refresh_tokens.rb +14 -0
  812. data/db/migrate/20260815000002_add_resource_to_spree_roles.rb +190 -0
  813. data/db/migrate/20260816000001_create_spree_sellers.rb +59 -0
  814. data/db/migrate/20260816000002_add_seller_to_spree_products.rb +10 -0
  815. data/db/migrate/20260816210001_create_spree_commission_rates.rb +229 -0
  816. data/db/migrate/20260816210002_create_spree_commission_lines.rb +72 -0
  817. data/db/migrate/20260817000001_add_seller_to_spree_line_items.rb +15 -0
  818. data/db/migrate/20260817000002_add_seller_and_delivery_profile_to_spree_variants.rb +17 -0
  819. data/db/migrate/20260818000001_create_spree_external_references.rb +33 -0
  820. data/db/migrate/20260818000001_create_spree_seller_requirements.rb +60 -0
  821. data/db/migrate/20260818000001_rename_spree_payments_state_to_status.rb +5 -0
  822. data/db/migrate/20260818000002_add_price_source_to_spree_line_items.rb +9 -0
  823. data/db/migrate/20260818090001_rename_assets_to_media.rb +10 -0
  824. data/db/migrate/20260819000001_create_spree_seller_requirement_custom_fields.rb +15 -0
  825. data/db/migrate/20260819000001_replace_payment_method_display_on_with_storefront_visible.rb +25 -0
  826. data/db/migrate/20260819000002_rename_spree_gift_cards_state_to_status.rb +5 -0
  827. data/db/migrate/20260820000001_add_seller_business_identity_and_stock_locations.rb +17 -0
  828. data/db/migrate/20260820000001_create_spree_order_groups.rb +33 -0
  829. data/db/migrate/20260820000002_add_order_group_to_spree_orders_and_payments.rb +14 -0
  830. data/db/migrate/20260820000003_create_spree_payment_splits.rb +21 -0
  831. data/db/migrate/20260820000004_add_order_to_spree_refunds.rb +32 -0
  832. data/db/migrate/20260821000001_add_claimed_amount_to_spree_payment_splits.rb +14 -0
  833. data/db/migrate/20260822000001_create_spree_seller_transfers.rb +94 -0
  834. data/db/migrate/20260822000002_create_spree_seller_payouts.rb +48 -0
  835. data/db/migrate/20260822000003_add_payout_account_to_spree_sellers.rb +11 -0
  836. data/db/migrate/20260824000001_add_store_to_spree_media.rb +16 -0
  837. data/db/migrate/20260825000001_create_spree_catalogs.rb +40 -0
  838. data/db/migrate/20260826000001_add_owner_to_spree_addresses.rb +30 -0
  839. data/db/migrate/20260826000002_create_spree_product_submissions.rb +28 -0
  840. data/db/migrate/20260827000001_add_seller_to_spree_exports.rb +5 -0
  841. data/db/migrate/20260828100001_unify_import_and_export_tenancy.rb +79 -0
  842. data/db/migrate/20260830000001_add_catalog_to_spree_price_lists.rb +47 -0
  843. data/db/migrate/20260830000002_add_po_number_to_purchases.rb +16 -0
  844. data/db/migrate/20260830000002_add_price_adjustment_to_spree_price_lists.rb +14 -0
  845. data/db/migrate/20260831000001_add_description_to_spree_catalogs.rb +7 -0
  846. data/db/migrate/20260831000002_add_quantity_rules_to_spree_variants.rb +18 -0
  847. data/db/migrate/20260831000003_create_spree_catalog_terms.rb +35 -0
  848. data/db/migrate/20260831100001_create_spree_package_types.rb +38 -0
  849. data/db/migrate/20260831100002_add_carton_details_to_spree_variants.rb +10 -0
  850. data/db/migrate/20260831100003_add_unpriced_to_spree_delivery_rates.rb +8 -0
  851. data/db/migrate/20260901000001_add_seller_to_spree_delivery_methods.rb +11 -0
  852. data/db/migrate/20260902000001_add_store_and_filter_key_to_custom_field_definitions.rb +143 -0
  853. data/db/migrate/20260902000002_add_eu_legal_compliance.rb +68 -0
  854. data/db/migrate/20260902000002_replace_order_cancellation_tables_with_cancel_columns.rb +88 -0
  855. data/db/migrate/20260902100001_rename_wished_items_to_wishlist_items.rb +8 -0
  856. data/db/migrate/20260902100002_rename_promo_total_to_discount_total.rb +9 -0
  857. data/db/migrate/20260902100003_rename_address_name_and_postal_code_columns.rb +24 -0
  858. data/db/migrate/20260902100004_rename_option_presentation_to_label.rb +13 -0
  859. data/db/migrate/20260903000001_create_spree_shipping_labels_and_deliveries.rb +73 -0
  860. data/db/migrate/20260903120000_create_spree_saved_reports.rb +57 -0
  861. data/db/migrate/20260904000001_add_returns_enabled_to_stock_locations.rb +14 -0
  862. data/db/migrate/20260906000001_add_commission_total_to_orders.rb +22 -0
  863. data/db/migrate/20260907000001_add_inventory_operations.rb +113 -0
  864. data/db/migrate/20260907000001_add_min_quantity_to_spree_prices.rb +28 -0
  865. data/db/migrate/20260907000002_create_spree_price_adjustment_tiers.rb +19 -0
  866. data/db/migrate/20260908000001_add_seller_to_spree_package_types.rb +78 -0
  867. data/db/migrate/20260910000001_add_stock_receipts.rb +44 -0
  868. data/db/migrate/20260910000002_add_counters_to_spree_stock_levels.rb +6 -0
  869. data/db/migrate/20260910120000_index_reporting_time_columns.rb +12 -0
  870. data/db/migrate/20260912120000_index_reporting_lifetime_and_promotion_columns.rb +19 -0
  871. data/db/migrate/20260914000001_add_settlement_to_spree_seller_transfers.rb +18 -0
  872. data/db/migrate/20260914230000_add_store_to_spree_option_types.rb +46 -0
  873. data/db/migrate/20260916000001_order_operation_actors_polymorphic.rb +30 -0
  874. data/db/sample_data/collections.rb +58 -0
  875. data/db/sample_data/custom_field_definitions.rb +9 -0
  876. data/db/sample_data/digital_products.rb +26 -0
  877. data/db/sample_data/fulfillment.rb +88 -0
  878. data/db/sample_data/options.rb +25 -1
  879. data/db/sample_data/orders.rb +53 -30
  880. data/db/sample_data/payment_methods.rb +2 -2
  881. data/db/sample_data/price_list_prices.csv +25 -0
  882. data/db/sample_data/product_type_categories.rb +27 -0
  883. data/db/sample_data/product_types.rb +83 -0
  884. data/db/sample_data/products.csv +39 -38
  885. data/db/sample_data/wholesale.rb +42 -3
  886. data/lib/generators/spree/api_resource/api_resource_generator.rb +64 -6
  887. data/lib/generators/spree/api_resource/templates/admin_controller.rb.tt +5 -0
  888. data/lib/generators/spree/api_resource/templates/admin_controller_spec.rb.tt +3 -0
  889. data/lib/generators/spree/api_resource/templates/store_controller_spec.rb.tt +4 -1
  890. data/lib/generators/spree/authentication/dummy/templates/create_spree_admin_users.rb.tt +1 -0
  891. data/lib/generators/spree/controller_decorator/controller_decorator_generator.rb +4 -4
  892. data/lib/generators/spree/dummy/dummy_generator.rb +5 -12
  893. data/lib/generators/spree/dummy/templates/rails/test.rb +5 -0
  894. data/lib/generators/spree/model/model_generator.rb +46 -7
  895. data/lib/generators/spree/model/templates/create_table_migration.rb.tt +9 -0
  896. data/lib/generators/spree/model/templates/model.rb.tt +17 -7
  897. data/lib/spree/category_permalink_deduplicator.rb +328 -0
  898. data/lib/spree/checkout/default_requirements.rb +134 -0
  899. data/lib/spree/checkout/registry.rb +164 -0
  900. data/lib/spree/checkout/requirement.rb +49 -0
  901. data/lib/spree/checkout/requirements.rb +61 -0
  902. data/lib/spree/checkout/step.rb +52 -0
  903. data/lib/spree/core/configuration.rb +112 -63
  904. data/lib/spree/core/controller_helpers/store.rb +8 -9
  905. data/lib/spree/core/dependencies.rb +324 -71
  906. data/lib/spree/core/dependencies_helper.rb +4 -0
  907. data/lib/spree/core/engine.rb +360 -75
  908. data/lib/spree/core/number_generator.rb +37 -33
  909. data/lib/spree/core/permission_configuration.rb +183 -91
  910. data/lib/spree/core/permissions/default_catalog.rb +236 -0
  911. data/lib/spree/core/permissions/entry.rb +15 -0
  912. data/lib/spree/core/permissions/scope.rb +76 -0
  913. data/lib/spree/core/preferences/masking.rb +24 -2
  914. data/lib/spree/core/preferences/preferable.rb +52 -2
  915. data/lib/spree/core/preferences/preferable_class_methods.rb +41 -2
  916. data/lib/spree/core/preferences/runtime_configuration.rb +142 -9
  917. data/lib/spree/core/previews/admin_user_preview.rb +0 -8
  918. data/lib/spree/core/previews/invitation_preview.rb +1 -1
  919. data/lib/spree/core/previews/preview_data.rb +2 -2
  920. data/lib/spree/core/previews/seller_user_preview.rb +14 -0
  921. data/lib/spree/core/pricing/context.rb +28 -8
  922. data/lib/spree/core/pricing/price_resolution.rb +150 -0
  923. data/lib/spree/core/pricing/resolver.rb +17 -107
  924. data/lib/spree/core/ransack_configuration.rb +3 -3
  925. data/lib/spree/core/routes.rb +4 -6
  926. data/lib/spree/core/version.rb +1 -1
  927. data/lib/spree/core.rb +446 -59
  928. data/lib/spree/events/adapters/base.rb +42 -15
  929. data/lib/spree/hooks.rb +146 -0
  930. data/lib/spree/iso_data.rb +188 -0
  931. data/lib/spree/measurement.rb +113 -0
  932. data/lib/spree/money.rb +70 -0
  933. data/lib/spree/number_generators/registry.rb +80 -0
  934. data/lib/spree/reporting/adapters/base.rb +71 -0
  935. data/lib/spree/reporting/adapters/live.rb +677 -0
  936. data/lib/spree/reporting/counter_result.rb +19 -0
  937. data/lib/spree/reporting/counters.rb +33 -0
  938. data/lib/spree/reporting/default_vocabulary.rb +705 -0
  939. data/lib/spree/reporting/hydration.rb +64 -0
  940. data/lib/spree/reporting/query.rb +487 -0
  941. data/lib/spree/reporting/registry.rb +294 -0
  942. data/lib/spree/reporting/result.rb +10 -0
  943. data/lib/spree/reporting/schema.rb +124 -0
  944. data/lib/spree/reporting.rb +49 -0
  945. data/lib/spree/service_module.rb +6 -0
  946. data/lib/spree/store_scope_guard.rb +180 -0
  947. data/lib/spree/testing_support/action_text.rb +33 -0
  948. data/lib/spree/testing_support/common_rake.rb +4 -66
  949. data/lib/spree/testing_support/country_pool.rb +50 -0
  950. data/lib/spree/testing_support/extension_rake.rb +2 -6
  951. data/lib/spree/testing_support/factories/address_factory.rb +45 -15
  952. data/lib/spree/testing_support/factories/api_key_factory.rb +1 -1
  953. data/lib/spree/testing_support/factories/calculator_factory.rb +0 -3
  954. data/lib/spree/testing_support/factories/cart_factory.rb +60 -0
  955. data/lib/spree/testing_support/factories/catalog_factory.rb +37 -0
  956. data/lib/spree/testing_support/factories/category_factory.rb +21 -0
  957. data/lib/spree/testing_support/factories/claim_factory.rb +33 -0
  958. data/lib/spree/testing_support/factories/classification_factory.rb +3 -2
  959. data/lib/spree/testing_support/factories/collection_factory.rb +25 -0
  960. data/lib/spree/testing_support/factories/collection_rule_factory.rb +47 -0
  961. data/lib/spree/testing_support/factories/commission_rate_factory.rb +75 -0
  962. data/lib/spree/testing_support/factories/company_factory.rb +31 -0
  963. data/lib/spree/testing_support/factories/consent_record_factory.rb +10 -0
  964. data/lib/spree/testing_support/factories/country_factory.rb +28 -9
  965. data/lib/spree/testing_support/factories/custom_field_definition_factory.rb +79 -0
  966. data/lib/spree/testing_support/factories/custom_field_factory.rb +64 -0
  967. data/lib/spree/testing_support/factories/customer_group_user_factory.rb +1 -1
  968. data/lib/spree/testing_support/factories/data_request_factory.rb +17 -0
  969. data/lib/spree/testing_support/factories/delivery_factory.rb +13 -0
  970. data/lib/spree/testing_support/factories/delivery_method_factory.rb +47 -0
  971. data/lib/spree/testing_support/factories/delivery_origin_group_factory.rb +5 -0
  972. data/lib/spree/testing_support/factories/delivery_profile_factory.rb +9 -0
  973. data/lib/spree/testing_support/factories/delivery_rate_factory.rb +7 -0
  974. data/lib/spree/testing_support/factories/delivery_zone_factory.rb +34 -0
  975. data/lib/spree/testing_support/factories/digital_asset_factory.rb +13 -0
  976. data/lib/spree/testing_support/factories/digital_link_factory.rb +1 -1
  977. data/lib/spree/testing_support/factories/discount_factory.rb +9 -0
  978. data/lib/spree/testing_support/factories/exchange_factory.rb +50 -0
  979. data/lib/spree/testing_support/factories/external_reference_factory.rb +8 -0
  980. data/lib/spree/testing_support/factories/fee_factory.rb +8 -0
  981. data/lib/spree/testing_support/factories/fulfillment_factory.rb +32 -0
  982. data/lib/spree/testing_support/factories/fulfillment_item_factory.rb +17 -0
  983. data/lib/spree/testing_support/factories/gateway_customer_factory.rb +1 -1
  984. data/lib/spree/testing_support/factories/gift_card_factory.rb +2 -2
  985. data/lib/spree/testing_support/factories/import_factory.rb +33 -1
  986. data/lib/spree/testing_support/factories/line_item_factory.rb +10 -5
  987. data/lib/spree/testing_support/factories/market_factory.rb +5 -12
  988. data/lib/spree/testing_support/factories/media_factory.rb +36 -0
  989. data/lib/spree/testing_support/factories/newsletter_subscriber_factory.rb +1 -1
  990. data/lib/spree/testing_support/factories/number_sequence_factory.rb +7 -0
  991. data/lib/spree/testing_support/factories/options_factory.rb +5 -5
  992. data/lib/spree/testing_support/factories/order_factory.rb +39 -23
  993. data/lib/spree/testing_support/factories/order_group_factory.rb +29 -0
  994. data/lib/spree/testing_support/factories/package_type_factory.rb +36 -0
  995. data/lib/spree/testing_support/factories/payment_factory.rb +7 -7
  996. data/lib/spree/testing_support/factories/payment_method_factory.rb +5 -5
  997. data/lib/spree/testing_support/factories/payment_session_factory.rb +10 -6
  998. data/lib/spree/testing_support/factories/payment_setup_session_factory.rb +2 -2
  999. data/lib/spree/testing_support/factories/payment_split_factory.rb +10 -0
  1000. data/lib/spree/testing_support/factories/price_adjustment_tier_factory.rb +7 -0
  1001. data/lib/spree/testing_support/factories/price_factory.rb +6 -0
  1002. data/lib/spree/testing_support/factories/price_rule_factory.rb +0 -10
  1003. data/lib/spree/testing_support/factories/product_collection_factory.rb +8 -0
  1004. data/lib/spree/testing_support/factories/product_factory.rb +35 -7
  1005. data/lib/spree/testing_support/factories/product_type_custom_field_definition_factory.rb +10 -0
  1006. data/lib/spree/testing_support/factories/product_type_factory.rb +12 -0
  1007. data/lib/spree/testing_support/factories/promotion_factory.rb +4 -0
  1008. data/lib/spree/testing_support/factories/promotion_rule_factory.rb +1 -1
  1009. data/lib/spree/testing_support/factories/purchase_order_factory.rb +49 -0
  1010. data/lib/spree/testing_support/factories/refresh_token_factory.rb +2 -0
  1011. data/lib/spree/testing_support/factories/refund_factory.rb +1 -2
  1012. data/lib/spree/testing_support/factories/return_factory.rb +52 -0
  1013. data/lib/spree/testing_support/factories/return_reason_factory.rb +19 -0
  1014. data/lib/spree/testing_support/factories/role_factory.rb +1 -0
  1015. data/lib/spree/testing_support/factories/saved_report_factory.rb +7 -0
  1016. data/lib/spree/testing_support/factories/seller_factory.rb +34 -0
  1017. data/lib/spree/testing_support/factories/seller_payout_factory.rb +14 -0
  1018. data/lib/spree/testing_support/factories/seller_requirement_factory.rb +61 -0
  1019. data/lib/spree/testing_support/factories/seller_requirement_submission_factory.rb +32 -0
  1020. data/lib/spree/testing_support/factories/seller_transfer_factory.rb +21 -0
  1021. data/lib/spree/testing_support/factories/shipping_label_factory.rb +44 -0
  1022. data/lib/spree/testing_support/factories/state_factory.rb +18 -5
  1023. data/lib/spree/testing_support/factories/stock_level_factory.rb +24 -0
  1024. data/lib/spree/testing_support/factories/stock_location_factory.rb +12 -6
  1025. data/lib/spree/testing_support/factories/stock_movement_factory.rb +20 -3
  1026. data/lib/spree/testing_support/factories/stock_receipt_factory.rb +37 -0
  1027. data/lib/spree/testing_support/factories/stock_reservation_factory.rb +11 -8
  1028. data/lib/spree/testing_support/factories/stock_transfer_factory.rb +53 -6
  1029. data/lib/spree/testing_support/factories/store_credit_factory.rb +1 -3
  1030. data/lib/spree/testing_support/factories/supplier_factory.rb +17 -0
  1031. data/lib/spree/testing_support/factories/tax_exemption_certificate_factory.rb +18 -0
  1032. data/lib/spree/testing_support/factories/tax_identifier_factory.rb +33 -0
  1033. data/lib/spree/testing_support/factories/tax_line_factory.rb +19 -0
  1034. data/lib/spree/testing_support/factories/tax_rate_factory.rb +5 -2
  1035. data/lib/spree/testing_support/factories/taxon_factory.rb +6 -23
  1036. data/lib/spree/testing_support/factories/taxonomy_factory.rb +8 -0
  1037. data/lib/spree/testing_support/factories/user_factory.rb +8 -13
  1038. data/lib/spree/testing_support/factories/variant_factory.rb +1 -1
  1039. data/lib/spree/testing_support/factories/wishlist_factory.rb +1 -1
  1040. data/lib/spree/testing_support/factories/wishlist_item_factory.rb +10 -0
  1041. data/lib/spree/testing_support/factories/zone_factory.rb +2 -25
  1042. data/lib/spree/testing_support/factories/zone_member_factory.rb +2 -1
  1043. data/lib/spree/testing_support/factories.rb +1 -6
  1044. data/lib/spree/testing_support/imports.rb +16 -0
  1045. data/lib/spree/testing_support/label_provider.rb +49 -0
  1046. data/lib/spree/testing_support/lifecycle_events.rb +6 -1
  1047. data/lib/spree/testing_support/metadata.rb +38 -36
  1048. data/lib/spree/testing_support/order_walkthrough.rb +46 -36
  1049. data/lib/spree/testing_support/preferences.rb +39 -0
  1050. data/lib/spree/testing_support/purchase_order.rb +111 -0
  1051. data/lib/spree/testing_support/store.rb +6 -2
  1052. data/lib/spree/testing_support/tax_identifier_validators.rb +68 -0
  1053. data/lib/spree/translations.rb +139 -5
  1054. data/lib/spree/upgrades/5_4_to_5_5/manifest.yml +1 -1
  1055. data/lib/spree/upgrades/5_5_to_5_6/manifest.yml +17 -9
  1056. data/lib/spree/upgrades/5_6_to_6_0/manifest.yml +683 -0
  1057. data/lib/spree/validators.rb +74 -0
  1058. data/lib/spree/workflow.rb +335 -0
  1059. data/lib/tasks/backfill_actor_types.rake +35 -0
  1060. data/lib/tasks/backfill_custom_field_definition_stores.rake +82 -0
  1061. data/lib/tasks/backfill_import_export_tenancy.rake +93 -0
  1062. data/lib/tasks/backfill_library_media_placements.rake +29 -0
  1063. data/lib/tasks/backfill_media_store_ids.rake +70 -0
  1064. data/lib/tasks/backfill_reason_store_ids.rake +28 -0
  1065. data/lib/tasks/capture_methods_migration.rake +30 -0
  1066. data/lib/tasks/carts_migration.rake +113 -0
  1067. data/lib/tasks/categories_and_collections.rake +188 -0
  1068. data/lib/tasks/cli.rake +22 -3
  1069. data/lib/tasks/consolidate_metadata.rake +73 -0
  1070. data/lib/tasks/core.rake +1 -11
  1071. data/lib/tasks/deliveries_migration.rake +52 -0
  1072. data/lib/tasks/delivery_method_rules_migration.rake +51 -0
  1073. data/lib/tasks/delivery_migration.rake +213 -0
  1074. data/lib/tasks/delivery_profiles_migration.rake +109 -0
  1075. data/lib/tasks/fold_store_credit_categories.rake +40 -0
  1076. data/lib/tasks/fulfillment_statuses_migration.rake +59 -0
  1077. data/lib/tasks/inventory_operations_migration.rake +223 -0
  1078. data/lib/tasks/markets.rake +7 -2
  1079. data/lib/tasks/media.rake +2 -2
  1080. data/lib/tasks/media_class_rename.rake +56 -0
  1081. data/lib/tasks/migrate_country_state_codes.rake +228 -0
  1082. data/lib/tasks/migrate_promotion_option_value_rules.rake +124 -0
  1083. data/lib/tasks/migrate_returns.rake +322 -0
  1084. data/lib/tasks/migrate_rich_text_to_columns.rake +128 -0
  1085. data/lib/tasks/migrate_users_to_customers.rake +161 -0
  1086. data/lib/tasks/order_coupon_code_backfill.rake +32 -0
  1087. data/lib/tasks/order_market_backfill.rake +27 -0
  1088. data/lib/tasks/package_types.rake +62 -0
  1089. data/lib/tasks/price_history.rake +49 -6
  1090. data/lib/tasks/products.rake +21 -2
  1091. data/lib/tasks/remove_master_variant.rake +58 -0
  1092. data/lib/tasks/rich_text.rake +44 -0
  1093. data/lib/tasks/seller_sample_data.rake +142 -0
  1094. data/lib/tasks/setup.rake +18 -0
  1095. data/lib/tasks/single_store_associations.rake +11 -0
  1096. data/lib/tasks/stock.rake +15 -0
  1097. data/lib/tasks/store_binding_migration.rake +33 -0
  1098. data/lib/tasks/store_settings.rake +105 -0
  1099. data/lib/tasks/tax_zones_migration.rake +147 -0
  1100. data/lib/tasks/taxons.rake +9 -10
  1101. data/lib/tasks/typed_adjustments_migration.rake +189 -0
  1102. data/lib/tasks/typed_stock_movements_migration.rake +250 -0
  1103. data/lib/tasks/upgrade.rake +13 -8
  1104. data/spec/fixtures/files/eu_vat_numbers.txt +56 -0
  1105. data/spec/fixtures/files/price_list_prices_import.csv +4 -0
  1106. data/spec/fixtures/files/products_import.csv +1 -1
  1107. data/spec/fixtures/tiny-video.mp4 +0 -0
  1108. metadata +798 -546
  1109. data/app/assets/config/spree_core_manifest.js +0 -4
  1110. data/app/assets/images/google_on_white_hdpi.png +0 -0
  1111. data/app/assets/images/logo.png +0 -0
  1112. data/app/assets/images/payment_icons/ach.svg +0 -1
  1113. data/app/assets/images/payment_icons/achdirectdebit.svg +0 -1
  1114. data/app/assets/images/payment_icons/ada.svg +0 -1
  1115. data/app/assets/images/payment_icons/adyen.svg +0 -1
  1116. data/app/assets/images/payment_icons/affinbank.svg +0 -1
  1117. data/app/assets/images/payment_icons/affirm.svg +0 -1
  1118. data/app/assets/images/payment_icons/afterpay.svg +0 -1
  1119. data/app/assets/images/payment_icons/airtel_money.svg +0 -1
  1120. data/app/assets/images/payment_icons/airteltigo_mobile_money.svg +0 -1
  1121. data/app/assets/images/payment_icons/alandsbanken.svg +0 -1
  1122. data/app/assets/images/payment_icons/alipay.svg +0 -1
  1123. data/app/assets/images/payment_icons/alipay_hk.svg +0 -1
  1124. data/app/assets/images/payment_icons/alliancebank.svg +0 -1
  1125. data/app/assets/images/payment_icons/alma.svg +0 -1
  1126. data/app/assets/images/payment_icons/amazon.svg +0 -1
  1127. data/app/assets/images/payment_icons/ambank.svg +0 -1
  1128. data/app/assets/images/payment_icons/american_express.svg +0 -1
  1129. data/app/assets/images/payment_icons/apecoin.svg +0 -1
  1130. data/app/assets/images/payment_icons/apple_pay.svg +0 -1
  1131. data/app/assets/images/payment_icons/arbitrum.svg +0 -1
  1132. data/app/assets/images/payment_icons/atome.svg +0 -1
  1133. data/app/assets/images/payment_icons/authorizenet.svg +0 -1
  1134. data/app/assets/images/payment_icons/avalanche.svg +0 -1
  1135. data/app/assets/images/payment_icons/bacs.svg +0 -1
  1136. data/app/assets/images/payment_icons/bancontact.svg +0 -1
  1137. data/app/assets/images/payment_icons/bangkokbank.svg +0 -1
  1138. data/app/assets/images/payment_icons/bankislam.svg +0 -1
  1139. data/app/assets/images/payment_icons/bankmuamalat.svg +0 -1
  1140. data/app/assets/images/payment_icons/bankofamerica.svg +0 -1
  1141. data/app/assets/images/payment_icons/bankrakyat.svg +0 -1
  1142. data/app/assets/images/payment_icons/banktransfer.svg +0 -1
  1143. data/app/assets/images/payment_icons/base.svg +0 -1
  1144. data/app/assets/images/payment_icons/becs.svg +0 -1
  1145. data/app/assets/images/payment_icons/benefit.svg +0 -1
  1146. data/app/assets/images/payment_icons/billie.svg +0 -1
  1147. data/app/assets/images/payment_icons/bitcoin.svg +0 -1
  1148. data/app/assets/images/payment_icons/bitcoin_cash.svg +0 -1
  1149. data/app/assets/images/payment_icons/bizum.svg +0 -1
  1150. data/app/assets/images/payment_icons/blik.svg +0 -1
  1151. data/app/assets/images/payment_icons/bnbchain.svg +0 -1
  1152. data/app/assets/images/payment_icons/bogus.svg +0 -1
  1153. data/app/assets/images/payment_icons/bogus_app_coin.svg +0 -1
  1154. data/app/assets/images/payment_icons/boleto.svg +0 -1
  1155. data/app/assets/images/payment_icons/boost.svg +0 -1
  1156. data/app/assets/images/payment_icons/braintree.svg +0 -1
  1157. data/app/assets/images/payment_icons/buckaroopaybybank.svg +0 -1
  1158. data/app/assets/images/payment_icons/busd.svg +0 -1
  1159. data/app/assets/images/payment_icons/cartes_bancaires.svg +0 -1
  1160. data/app/assets/images/payment_icons/cash.svg +0 -1
  1161. data/app/assets/images/payment_icons/cashappafterpay.svg +0 -1
  1162. data/app/assets/images/payment_icons/cashapppay.svg +0 -1
  1163. data/app/assets/images/payment_icons/checkout_finance.svg +0 -1
  1164. data/app/assets/images/payment_icons/chinabank.svg +0 -1
  1165. data/app/assets/images/payment_icons/clearpay.svg +0 -1
  1166. data/app/assets/images/payment_icons/collector_bank.svg +0 -1
  1167. data/app/assets/images/payment_icons/dai.svg +0 -1
  1168. data/app/assets/images/payment_icons/dana.svg +0 -1
  1169. data/app/assets/images/payment_icons/dankort.svg +0 -1
  1170. data/app/assets/images/payment_icons/danske_bank.svg +0 -1
  1171. data/app/assets/images/payment_icons/deutschebank.svg +0 -1
  1172. data/app/assets/images/payment_icons/diners_club.svg +0 -1
  1173. data/app/assets/images/payment_icons/directbanktransferlatinamerica.svg +0 -1
  1174. data/app/assets/images/payment_icons/discover.svg +0 -1
  1175. data/app/assets/images/payment_icons/dogecoin.svg +0 -1
  1176. data/app/assets/images/payment_icons/duitnow.svg +0 -1
  1177. data/app/assets/images/payment_icons/eft_secure.svg +0 -1
  1178. data/app/assets/images/payment_icons/eftpos_au.svg +0 -1
  1179. data/app/assets/images/payment_icons/eftposau.svg +0 -1
  1180. data/app/assets/images/payment_icons/elo.svg +0 -1
  1181. data/app/assets/images/payment_icons/eos.svg +0 -1
  1182. data/app/assets/images/payment_icons/eps.svg +0 -1
  1183. data/app/assets/images/payment_icons/ethereum.svg +0 -1
  1184. data/app/assets/images/payment_icons/eurobonuscheckout.svg +0 -1
  1185. data/app/assets/images/payment_icons/ezcash.svg +0 -1
  1186. data/app/assets/images/payment_icons/fantom.svg +0 -1
  1187. data/app/assets/images/payment_icons/fpx.svg +0 -1
  1188. data/app/assets/images/payment_icons/gcash.svg +0 -1
  1189. data/app/assets/images/payment_icons/generic.svg +0 -1
  1190. data/app/assets/images/payment_icons/genericbank.svg +0 -1
  1191. data/app/assets/images/payment_icons/gift-card.svg +0 -1
  1192. data/app/assets/images/payment_icons/giropay.svg +0 -1
  1193. data/app/assets/images/payment_icons/glbepaypal.svg +0 -1
  1194. data/app/assets/images/payment_icons/gmobanktransfer.svg +0 -1
  1195. data/app/assets/images/payment_icons/gnosis.svg +0 -1
  1196. data/app/assets/images/payment_icons/google_pay.svg +0 -1
  1197. data/app/assets/images/payment_icons/google_wallet.svg +0 -1
  1198. data/app/assets/images/payment_icons/gopay.svg +0 -1
  1199. data/app/assets/images/payment_icons/grabpay.svg +0 -1
  1200. data/app/assets/images/payment_icons/gusd.svg +0 -1
  1201. data/app/assets/images/payment_icons/handelsbanken.svg +0 -1
  1202. data/app/assets/images/payment_icons/hongleongbank.svg +0 -1
  1203. data/app/assets/images/payment_icons/hypercard.svg +0 -1
  1204. data/app/assets/images/payment_icons/hypercash.svg +0 -1
  1205. data/app/assets/images/payment_icons/ideal.svg +0 -1
  1206. data/app/assets/images/payment_icons/in3viaideal.svg +0 -1
  1207. data/app/assets/images/payment_icons/inbank.svg +0 -1
  1208. data/app/assets/images/payment_icons/jcb.svg +0 -1
  1209. data/app/assets/images/payment_icons/kakao_pay.svg +0 -1
  1210. data/app/assets/images/payment_icons/kasikornbank.svg +0 -1
  1211. data/app/assets/images/payment_icons/klarna-pay-later.svg +0 -1
  1212. data/app/assets/images/payment_icons/klarna-pay-now.svg +0 -1
  1213. data/app/assets/images/payment_icons/klarna-slice-it.svg +0 -1
  1214. data/app/assets/images/payment_icons/klarna.svg +0 -1
  1215. data/app/assets/images/payment_icons/knet.svg +0 -1
  1216. data/app/assets/images/payment_icons/krungthaibank.svg +0 -1
  1217. data/app/assets/images/payment_icons/landbank.svg +0 -1
  1218. data/app/assets/images/payment_icons/laybuybyklarna.svg +0 -1
  1219. data/app/assets/images/payment_icons/litecoin.svg +0 -1
  1220. data/app/assets/images/payment_icons/lunchcheck.svg +0 -1
  1221. data/app/assets/images/payment_icons/mach.svg +0 -1
  1222. data/app/assets/images/payment_icons/mada.svg +0 -1
  1223. data/app/assets/images/payment_icons/maestro.svg +0 -1
  1224. data/app/assets/images/payment_icons/master.svg +0 -1
  1225. data/app/assets/images/payment_icons/mayabank.svg +0 -1
  1226. data/app/assets/images/payment_icons/maybank.svg +0 -1
  1227. data/app/assets/images/payment_icons/maybankm2u.svg +0 -1
  1228. data/app/assets/images/payment_icons/maybankqrpay.svg +0 -1
  1229. data/app/assets/images/payment_icons/mbway.svg +0 -1
  1230. data/app/assets/images/payment_icons/mcash.svg +0 -1
  1231. data/app/assets/images/payment_icons/medicinosbankas.svg +0 -1
  1232. data/app/assets/images/payment_icons/mercadopago.svg +0 -1
  1233. data/app/assets/images/payment_icons/metrobank.svg +0 -1
  1234. data/app/assets/images/payment_icons/mobilepay.svg +0 -1
  1235. data/app/assets/images/payment_icons/momopay.svg +0 -1
  1236. data/app/assets/images/payment_icons/monero.svg +0 -1
  1237. data/app/assets/images/payment_icons/mtn_mobile_money.svg +0 -1
  1238. data/app/assets/images/payment_icons/mybank.svg +0 -1
  1239. data/app/assets/images/payment_icons/naver_pay.svg +0 -1
  1240. data/app/assets/images/payment_icons/nelo.svg +0 -1
  1241. data/app/assets/images/payment_icons/netbanking.svg +0 -1
  1242. data/app/assets/images/payment_icons/novalnetdirectdebitach.svg +0 -1
  1243. data/app/assets/images/payment_icons/nubank.svg +0 -1
  1244. data/app/assets/images/payment_icons/ocbcbank.svg +0 -1
  1245. data/app/assets/images/payment_icons/offlinebanktransferlatinamerica.svg +0 -1
  1246. data/app/assets/images/payment_icons/ola_money.svg +0 -1
  1247. data/app/assets/images/payment_icons/oney.svg +0 -1
  1248. data/app/assets/images/payment_icons/onlinebanking.svg +0 -1
  1249. data/app/assets/images/payment_icons/onlinebanktransfer.svg +0 -1
  1250. data/app/assets/images/payment_icons/orangemobilemoney.svg +0 -1
  1251. data/app/assets/images/payment_icons/otpbank.svg +0 -1
  1252. data/app/assets/images/payment_icons/oxxo.svg +0 -1
  1253. data/app/assets/images/payment_icons/paybybank.svg +0 -1
  1254. data/app/assets/images/payment_icons/paybybankmollie.svg +0 -1
  1255. data/app/assets/images/payment_icons/paybybankus.svg +0 -1
  1256. data/app/assets/images/payment_icons/paycash.svg +0 -1
  1257. data/app/assets/images/payment_icons/payco.svg +0 -1
  1258. data/app/assets/images/payment_icons/payeverpaybybank.svg +0 -1
  1259. data/app/assets/images/payment_icons/payme.svg +0 -1
  1260. data/app/assets/images/payment_icons/paynow.svg +0 -1
  1261. data/app/assets/images/payment_icons/paynowmbank.svg +0 -1
  1262. data/app/assets/images/payment_icons/paypal.svg +0 -1
  1263. data/app/assets/images/payment_icons/paypo.svg +0 -1
  1264. data/app/assets/images/payment_icons/payrexxbanktransfer.svg +0 -1
  1265. data/app/assets/images/payment_icons/payrexxpaybybank.svg +0 -1
  1266. data/app/assets/images/payment_icons/paysafecash.svg +0 -1
  1267. data/app/assets/images/payment_icons/pix.svg +0 -1
  1268. data/app/assets/images/payment_icons/polygon.svg +0 -1
  1269. data/app/assets/images/payment_icons/przelewy24.svg +0 -1
  1270. data/app/assets/images/payment_icons/publicbank.svg +0 -1
  1271. data/app/assets/images/payment_icons/publicbank_pbe.svg +0 -1
  1272. data/app/assets/images/payment_icons/qr_promptpay.svg +0 -1
  1273. data/app/assets/images/payment_icons/rabobank.svg +0 -1
  1274. data/app/assets/images/payment_icons/revolut.svg +0 -1
  1275. data/app/assets/images/payment_icons/rhbbank.svg +0 -1
  1276. data/app/assets/images/payment_icons/riverty.svg +0 -1
  1277. data/app/assets/images/payment_icons/safetypaybanktransfer.svg +0 -1
  1278. data/app/assets/images/payment_icons/samsung_pay.svg +0 -1
  1279. data/app/assets/images/payment_icons/satispay.svg +0 -1
  1280. data/app/assets/images/payment_icons/scalapay.svg +0 -1
  1281. data/app/assets/images/payment_icons/scotiabank.svg +0 -1
  1282. data/app/assets/images/payment_icons/seabankid.svg +0 -1
  1283. data/app/assets/images/payment_icons/seabankph.svg +0 -1
  1284. data/app/assets/images/payment_icons/sepa_bank_transfer.svg +0 -1
  1285. data/app/assets/images/payment_icons/sepadebit.svg +0 -22
  1286. data/app/assets/images/payment_icons/sepadirectdebit.svg +0 -1
  1287. data/app/assets/images/payment_icons/seveneleven.svg +0 -1
  1288. data/app/assets/images/payment_icons/shib.svg +0 -1
  1289. data/app/assets/images/payment_icons/shopcash.svg +0 -1
  1290. data/app/assets/images/payment_icons/siauliubankas.svg +0 -1
  1291. data/app/assets/images/payment_icons/skeps.svg +0 -1
  1292. data/app/assets/images/payment_icons/snap_checkout.svg +0 -1
  1293. data/app/assets/images/payment_icons/sofort.svg +0 -1
  1294. data/app/assets/images/payment_icons/softbank.svg +0 -1
  1295. data/app/assets/images/payment_icons/spei.svg +0 -1
  1296. data/app/assets/images/payment_icons/storecredit.svg +0 -1
  1297. data/app/assets/images/payment_icons/stripe.svg +0 -1
  1298. data/app/assets/images/payment_icons/sveacheckout.svg +0 -1
  1299. data/app/assets/images/payment_icons/swedbank.svg +0 -1
  1300. data/app/assets/images/payment_icons/swish.svg +0 -1
  1301. data/app/assets/images/payment_icons/tbibank.svg +0 -1
  1302. data/app/assets/images/payment_icons/thanachartbank.svg +0 -1
  1303. data/app/assets/images/payment_icons/tnmmoney.svg +0 -1
  1304. data/app/assets/images/payment_icons/touchngo.svg +0 -1
  1305. data/app/assets/images/payment_icons/trustly.svg +0 -1
  1306. data/app/assets/images/payment_icons/twint.svg +0 -1
  1307. data/app/assets/images/payment_icons/uaevisa.svg +0 -1
  1308. data/app/assets/images/payment_icons/unionpay.svg +0 -1
  1309. data/app/assets/images/payment_icons/unzerbanktransfer.svg +0 -1
  1310. data/app/assets/images/payment_icons/upi.svg +0 -1
  1311. data/app/assets/images/payment_icons/usbank.svg +0 -1
  1312. data/app/assets/images/payment_icons/usdc.svg +0 -1
  1313. data/app/assets/images/payment_icons/usdt.svg +0 -1
  1314. data/app/assets/images/payment_icons/venmo.svg +0 -1
  1315. data/app/assets/images/payment_icons/vipps.svg +0 -1
  1316. data/app/assets/images/payment_icons/visa.svg +0 -1
  1317. data/app/assets/images/payment_icons/volksbank.svg +0 -1
  1318. data/app/assets/images/payment_icons/waavepaybybank.svg +0 -1
  1319. data/app/assets/images/payment_icons/walley.svg +0 -1
  1320. data/app/assets/images/payment_icons/wbtc.svg +0 -1
  1321. data/app/assets/images/payment_icons/wechatpay.svg +0 -1
  1322. data/app/assets/images/payment_icons/whishcheckout.svg +0 -1
  1323. data/app/assets/images/payment_icons/wingbank.svg +0 -1
  1324. data/app/assets/images/payment_icons/xrp.svg +0 -1
  1325. data/app/assets/images/payment_icons/zip.svg +0 -1
  1326. data/app/controllers/spree/base_controller.rb +0 -11
  1327. data/app/finders/concerns/spree/product_filterable.rb +0 -9
  1328. data/app/finders/spree/addresses/find.rb +0 -27
  1329. data/app/finders/spree/base_finder.rb +0 -14
  1330. data/app/finders/spree/countries/find.rb +0 -31
  1331. data/app/finders/spree/credit_cards/find.rb +0 -12
  1332. data/app/finders/spree/option_values/find_available.rb +0 -28
  1333. data/app/finders/spree/orders/find_complete.rb +0 -114
  1334. data/app/finders/spree/orders/find_current.rb +0 -24
  1335. data/app/finders/spree/orders/finder_helper.rb +0 -17
  1336. data/app/finders/spree/products/find.rb +0 -328
  1337. data/app/finders/spree/taxons/find.rb +0 -99
  1338. data/app/finders/spree/variants/find.rb +0 -30
  1339. data/app/finders/spree/variants/option_types_finder.rb +0 -21
  1340. data/app/helpers/spree/addresses_helper.rb +0 -97
  1341. data/app/helpers/spree/base_helper.rb +0 -132
  1342. data/app/helpers/spree/currency_helper.rb +0 -46
  1343. data/app/helpers/spree/integrations_helper.rb +0 -15
  1344. data/app/helpers/spree/locale_helper.rb +0 -44
  1345. data/app/helpers/spree/localized_names_helper.rb +0 -25
  1346. data/app/helpers/spree/products_helper.rb +0 -147
  1347. data/app/helpers/spree/shipment_helper.rb +0 -12
  1348. data/app/javascript/spree/core/controllers/address_autocomplete_controller.js +0 -230
  1349. data/app/javascript/spree/core/controllers/address_form_controller.js +0 -98
  1350. data/app/javascript/spree/core/controllers/disable_submit_button_controller.js +0 -19
  1351. data/app/javascript/spree/core/controllers/enable_button_controller.js +0 -29
  1352. data/app/javascript/spree/core/helpers/address_autocomplete/google_places_suggestions_provider.js +0 -161
  1353. data/app/javascript/spree/core/helpers/debounce.js +0 -9
  1354. data/app/javascript/spree/core/helpers/scroll_lock.js +0 -25
  1355. data/app/jobs/spree/media/migrate_product_assets_job.rb +0 -83
  1356. data/app/jobs/spree/reports/generate_job.rb +0 -23
  1357. data/app/mailers/spree/report_mailer.rb +0 -20
  1358. data/app/models/concerns/spree/adjustment_source.rb +0 -58
  1359. data/app/models/concerns/spree/default_price.rb +0 -138
  1360. data/app/models/concerns/spree/display_on.rb +0 -50
  1361. data/app/models/concerns/spree/image_methods.rb +0 -40
  1362. data/app/models/concerns/spree/legacy_multi_store_support.rb +0 -48
  1363. data/app/models/concerns/spree/metafield_filterable.rb +0 -162
  1364. data/app/models/concerns/spree/metafields.rb +0 -256
  1365. data/app/models/concerns/spree/number_as_param.rb +0 -13
  1366. data/app/models/concerns/spree/store_scoped_resource.rb +0 -37
  1367. data/app/models/concerns/spree/unique_name.rb +0 -12
  1368. data/app/models/spree/adjustable/adjuster/base.rb +0 -25
  1369. data/app/models/spree/adjustable/adjuster/promotion.rb +0 -41
  1370. data/app/models/spree/adjustable/adjuster/tax.rb +0 -26
  1371. data/app/models/spree/adjustable/adjustments_updater.rb +0 -74
  1372. data/app/models/spree/adjustable/promotion_accumulator.rb +0 -78
  1373. data/app/models/spree/adjustment.rb +0 -130
  1374. data/app/models/spree/asset/support/active_storage.rb +0 -26
  1375. data/app/models/spree/calculator/default_tax.rb +0 -87
  1376. data/app/models/spree/calculator/returns/default_refund_amount.rb +0 -40
  1377. data/app/models/spree/checkout/default_requirements.rb +0 -51
  1378. data/app/models/spree/checkout/registry.rb +0 -112
  1379. data/app/models/spree/checkout/requirement.rb +0 -49
  1380. data/app/models/spree/checkout/requirements.rb +0 -56
  1381. data/app/models/spree/checkout/step.rb +0 -52
  1382. data/app/models/spree/customer_return.rb +0 -94
  1383. data/app/models/spree/image/configuration/active_storage.rb +0 -11
  1384. data/app/models/spree/image.rb +0 -6
  1385. data/app/models/spree/legacy_admin_user.rb +0 -31
  1386. data/app/models/spree/legacy_user.rb +0 -33
  1387. data/app/models/spree/log_entry.rb +0 -30
  1388. data/app/models/spree/metafield_definition/search_capabilities.rb +0 -104
  1389. data/app/models/spree/metafields/boolean.rb +0 -15
  1390. data/app/models/spree/metafields/json.rb +0 -37
  1391. data/app/models/spree/metafields/long_text.rb +0 -11
  1392. data/app/models/spree/metafields/number.rb +0 -23
  1393. data/app/models/spree/metafields/rich_text.rb +0 -18
  1394. data/app/models/spree/metafields/short_text.rb +0 -15
  1395. data/app/models/spree/option_type_prototype.rb +0 -9
  1396. data/app/models/spree/order/address_book.rb +0 -100
  1397. data/app/models/spree/order/checkout.rb +0 -350
  1398. data/app/models/spree/order/currency_updater.rb +0 -37
  1399. data/app/models/spree/order/digital.rb +0 -60
  1400. data/app/models/spree/order/gift_card.rb +0 -71
  1401. data/app/models/spree/order/payments.rb +0 -64
  1402. data/app/models/spree/order/store_credit.rb +0 -110
  1403. data/app/models/spree/order/webhooks.rb +0 -19
  1404. data/app/models/spree/order_approval.rb +0 -19
  1405. data/app/models/spree/order_cancellation.rb +0 -19
  1406. data/app/models/spree/order_contents.rb +0 -31
  1407. data/app/models/spree/order_routing/strategy/legacy.rb +0 -33
  1408. data/app/models/spree/payment/webhooks.rb +0 -15
  1409. data/app/models/spree/permission_sets/base.rb +0 -81
  1410. data/app/models/spree/permission_sets/configuration_management.rb +0 -64
  1411. data/app/models/spree/permission_sets/dashboard_display.rb +0 -17
  1412. data/app/models/spree/permission_sets/default_customer.rb +0 -83
  1413. data/app/models/spree/permission_sets/order_display.rb +0 -27
  1414. data/app/models/spree/permission_sets/order_management.rb +0 -33
  1415. data/app/models/spree/permission_sets/product_display.rb +0 -27
  1416. data/app/models/spree/permission_sets/product_management.rb +0 -28
  1417. data/app/models/spree/permission_sets/promotion_management.rb +0 -22
  1418. data/app/models/spree/permission_sets/role_management.rb +0 -21
  1419. data/app/models/spree/permission_sets/stock_display.rb +0 -19
  1420. data/app/models/spree/permission_sets/stock_management.rb +0 -19
  1421. data/app/models/spree/permission_sets/super_user.rb +0 -28
  1422. data/app/models/spree/permission_sets/user_display.rb +0 -19
  1423. data/app/models/spree/permission_sets/user_management.rb +0 -20
  1424. data/app/models/spree/product/webhooks.rb +0 -17
  1425. data/app/models/spree/prototype_taxon.rb +0 -9
  1426. data/app/models/spree/reimbursement/credit.rb +0 -27
  1427. data/app/models/spree/reimbursement/reimbursement_type_engine.rb +0 -44
  1428. data/app/models/spree/reimbursement/reimbursement_type_validator.rb +0 -15
  1429. data/app/models/spree/reimbursement.rb +0 -167
  1430. data/app/models/spree/reimbursement_performer.rb +0 -34
  1431. data/app/models/spree/reimbursement_tax_calculator.rb +0 -37
  1432. data/app/models/spree/reimbursement_type/credit.rb +0 -13
  1433. data/app/models/spree/reimbursement_type/exchange.rb +0 -9
  1434. data/app/models/spree/reimbursement_type/original_payment.rb +0 -13
  1435. data/app/models/spree/reimbursement_type/reimbursement_helpers.rb +0 -64
  1436. data/app/models/spree/reimbursement_type/store_credit.rb +0 -20
  1437. data/app/models/spree/reimbursement_type.rb +0 -22
  1438. data/app/models/spree/report.rb +0 -140
  1439. data/app/models/spree/report_line_item.rb +0 -27
  1440. data/app/models/spree/report_line_items/products_performance.rb +0 -76
  1441. data/app/models/spree/report_line_items/sales_total.rb +0 -49
  1442. data/app/models/spree/reports/products_performance.rb +0 -44
  1443. data/app/models/spree/reports/sales_total.rb +0 -18
  1444. data/app/models/spree/return_authorization.rb +0 -109
  1445. data/app/models/spree/return_item/eligibility_validator/base_validator.rb +0 -24
  1446. data/app/models/spree/return_item/eligibility_validator/default.rb +0 -30
  1447. data/app/models/spree/return_item/eligibility_validator/inventory_shipped.rb +0 -16
  1448. data/app/models/spree/return_item/eligibility_validator/no_reimbursements.rb +0 -16
  1449. data/app/models/spree/return_item/eligibility_validator/order_completed.rb +0 -16
  1450. data/app/models/spree/return_item/eligibility_validator/rma_required.rb +0 -16
  1451. data/app/models/spree/return_item/eligibility_validator/time_since_purchase.rb +0 -16
  1452. data/app/models/spree/return_item/exchange_variant_eligibility/same_option_value.rb +0 -34
  1453. data/app/models/spree/return_item/exchange_variant_eligibility/same_product.rb +0 -9
  1454. data/app/models/spree/return_item.rb +0 -287
  1455. data/app/models/spree/returns_calculator.rb +0 -7
  1456. data/app/models/spree/search_provider/meilisearch.rb +0 -551
  1457. data/app/models/spree/shipment/custom_events.rb +0 -47
  1458. data/app/models/spree/shipment/webhooks.rb +0 -11
  1459. data/app/models/spree/shipment_handler.rb +0 -38
  1460. data/app/models/spree/shipping_category.rb +0 -25
  1461. data/app/models/spree/shipping_method_category.rb +0 -8
  1462. data/app/models/spree/shipping_method_zone.rb +0 -8
  1463. data/app/models/spree/state_change.rb +0 -12
  1464. data/app/models/spree/stock/splitter/digital.rb +0 -35
  1465. data/app/models/spree/stock/splitter/shipping_category.rb +0 -31
  1466. data/app/models/spree/stock_item/webhooks.rb +0 -6
  1467. data/app/models/spree/stock_movement/webhooks.rb +0 -6
  1468. data/app/models/spree/variant/webhooks.rb +0 -6
  1469. data/app/presenters/spree/csv/metafields_helper.rb +0 -17
  1470. data/app/presenters/spree/search_provider/product_presenter.rb +0 -158
  1471. data/app/presenters/spree/variant_presenter.rb +0 -81
  1472. data/app/presenters/spree/variants/option_types_presenter.rb +0 -87
  1473. data/app/services/spree/account/addresses/create.rb +0 -8
  1474. data/app/services/spree/account/addresses/update.rb +0 -8
  1475. data/app/services/spree/account/create.rb +0 -17
  1476. data/app/services/spree/account/update.rb +0 -15
  1477. data/app/services/spree/cart/add_item.rb +0 -63
  1478. data/app/services/spree/cart/associate.rb +0 -29
  1479. data/app/services/spree/cart/change_currency.rb +0 -27
  1480. data/app/services/spree/cart/create.rb +0 -26
  1481. data/app/services/spree/cart/destroy.rb +0 -50
  1482. data/app/services/spree/cart/empty.rb +0 -38
  1483. data/app/services/spree/cart/estimate_shipping_rates.rb +0 -39
  1484. data/app/services/spree/cart/recalculate.rb +0 -35
  1485. data/app/services/spree/cart/remove_item.rb +0 -39
  1486. data/app/services/spree/cart/remove_line_item.rb +0 -28
  1487. data/app/services/spree/cart/remove_out_of_stock_items.rb +0 -65
  1488. data/app/services/spree/cart/set_quantity.rb +0 -32
  1489. data/app/services/spree/cart/update.rb +0 -37
  1490. data/app/services/spree/carts/complete.rb +0 -50
  1491. data/app/services/spree/carts/upsert_items.rb +0 -76
  1492. data/app/services/spree/checkout/complete.rb +0 -23
  1493. data/app/services/spree/checkout/get_shipping_rates.rb +0 -52
  1494. data/app/services/spree/checkout/next.rb +0 -13
  1495. data/app/services/spree/checkout/select_shipping_method.rb +0 -63
  1496. data/app/services/spree/checkout/update.rb +0 -72
  1497. data/app/services/spree/credit_cards/destroy.rb +0 -25
  1498. data/app/services/spree/fulfillments/create.rb +0 -259
  1499. data/app/services/spree/gift_cards/apply.rb +0 -78
  1500. data/app/services/spree/gift_cards/redeem.rb +0 -17
  1501. data/app/services/spree/gift_cards/remove.rb +0 -39
  1502. data/app/services/spree/line_items/create.rb +0 -20
  1503. data/app/services/spree/line_items/destroy.rb +0 -18
  1504. data/app/services/spree/line_items/helper.rb +0 -11
  1505. data/app/services/spree/line_items/update.rb +0 -17
  1506. data/app/services/spree/orders/build_shipments.rb +0 -29
  1507. data/app/services/spree/orders/cancel.rb +0 -54
  1508. data/app/services/spree/orders/complete.rb +0 -53
  1509. data/app/services/spree/orders/update_contact_information.rb +0 -19
  1510. data/app/services/spree/orders/upsert_items.rb +0 -70
  1511. data/app/services/spree/payments/handle_webhook.rb +0 -57
  1512. data/app/services/spree/search_provider/metafield_schema.rb +0 -144
  1513. data/app/services/spree/seeds/countries.rb +0 -35
  1514. data/app/services/spree/seeds/default_reimbursement_types.rb +0 -12
  1515. data/app/services/spree/seeds/shipping_categories.rb +0 -12
  1516. data/app/services/spree/seeds/states.rb +0 -82
  1517. data/app/services/spree/seeds/stock_locations.rb +0 -18
  1518. data/app/services/spree/seeds/store_credit_categories.rb +0 -14
  1519. data/app/services/spree/seeds/zones.rb +0 -52
  1520. data/app/services/spree/shipments/add_item.rb +0 -32
  1521. data/app/services/spree/shipments/change_state.rb +0 -14
  1522. data/app/services/spree/shipments/create.rb +0 -48
  1523. data/app/services/spree/shipments/helper.rb +0 -23
  1524. data/app/services/spree/shipments/remove_item.rb +0 -55
  1525. data/app/services/spree/stores/settings_defaults_by_country.rb +0 -38
  1526. data/app/services/spree/themes/duplicator.rb +0 -40
  1527. data/app/sorters/spree/base_sorter.rb +0 -47
  1528. data/app/sorters/spree/classifications/sort.rb +0 -68
  1529. data/app/sorters/spree/products/sort.rb +0 -73
  1530. data/app/subscribers/spree/report_subscriber.rb +0 -26
  1531. data/app/views/spree/addresses/_form.html.erb +0 -59
  1532. data/app/views/spree/addresses/_suggestions_box.erb +0 -14
  1533. data/app/views/spree/admin_user_mailer/confirmation_email.html.erb +0 -7
  1534. data/app/views/spree/report_mailer/report_done.html.erb +0 -7
  1535. data/app/views/spree/shared/_google_places_api_loader.html.erb +0 -7
  1536. data/app/views/spree/shared/_mailer_line_item.html.erb +0 -12
  1537. data/app/views/spree/shared/_payment.html.erb +0 -52
  1538. data/config/importmap.rb +0 -15
  1539. data/config/initializers/carmen.rb +0 -23
  1540. data/config/initializers/rails61_fixes.rb +0 -1
  1541. data/db/migrate/20250120152208_add_default_locale_to_action_text_rich_texts.rb +0 -7
  1542. data/db/migrate/20250122113708_add_first_and_last_name_to_spree_admin_class.rb +0 -9
  1543. data/db/migrate/20250204162453_create_spree_reports.rb +0 -13
  1544. data/db/migrate/20250217171018_create_action_text_video_embeds.rb +0 -11
  1545. data/db/migrate/20250508060800_add_selected_locale_to_spree_admin_users.rb +0 -8
  1546. data/db/migrate/20260429000001_create_spree_order_cancellations.rb +0 -25
  1547. data/db/migrate/20260429000002_create_spree_order_approvals.rb +0 -22
  1548. data/db/sample_data/markets.rb +0 -64
  1549. data/db/sample_data/metafield_definitions.rb +0 -7
  1550. data/db/sample_data/shipping_methods.rb +0 -61
  1551. data/lib/generators/spree/authentication/custom/custom_generator.rb +0 -49
  1552. data/lib/generators/spree/authentication/custom/templates/authentication_helpers.rb.tt +0 -50
  1553. data/lib/generators/spree/authentication/devise/devise_generator.rb +0 -84
  1554. data/lib/generators/spree/authentication/devise/templates/authentication_helpers.rb.tt +0 -50
  1555. data/lib/generators/spree/dummy/templates/app/assets/config/manifest.js +0 -0
  1556. data/lib/spree/core/components.rb +0 -31
  1557. data/lib/spree/core/controller_helpers/auth.rb +0 -52
  1558. data/lib/spree/core/controller_helpers/currency.rb +0 -59
  1559. data/lib/spree/core/controller_helpers/locale.rb +0 -99
  1560. data/lib/spree/core/controller_helpers/order.rb +0 -172
  1561. data/lib/spree/core/controller_helpers/strong_parameters.rb +0 -48
  1562. data/lib/spree/core/controller_helpers/turbo.rb +0 -19
  1563. data/lib/spree/core/partials.rb +0 -42
  1564. data/lib/spree/core/previews/report_preview.rb +0 -40
  1565. data/lib/spree/permitted_attributes.rb +0 -337
  1566. data/lib/spree/testing_support/authorization_helpers.rb +0 -72
  1567. data/lib/spree/testing_support/caching.rb +0 -47
  1568. data/lib/spree/testing_support/capybara_config.rb +0 -45
  1569. data/lib/spree/testing_support/capybara_ext.rb +0 -83
  1570. data/lib/spree/testing_support/controller_requests.rb +0 -11
  1571. data/lib/spree/testing_support/factories/adjustment_factory.rb +0 -28
  1572. data/lib/spree/testing_support/factories/asset_factory.rb +0 -12
  1573. data/lib/spree/testing_support/factories/customer_return_factory.rb +0 -36
  1574. data/lib/spree/testing_support/factories/digital_factory.rb +0 -10
  1575. data/lib/spree/testing_support/factories/image_factory.rb +0 -11
  1576. data/lib/spree/testing_support/factories/inventory_unit_factory.rb +0 -18
  1577. data/lib/spree/testing_support/factories/log_entry_factory.rb +0 -6
  1578. data/lib/spree/testing_support/factories/metafield_definition_factory.rb +0 -82
  1579. data/lib/spree/testing_support/factories/metafield_factory.rb +0 -68
  1580. data/lib/spree/testing_support/factories/prototype_factory.rb +0 -9
  1581. data/lib/spree/testing_support/factories/reimbursement_credit_factory.rb +0 -7
  1582. data/lib/spree/testing_support/factories/reimbursement_factory.rb +0 -16
  1583. data/lib/spree/testing_support/factories/reimbursement_type_factory.rb +0 -7
  1584. data/lib/spree/testing_support/factories/report_factory.rb +0 -33
  1585. data/lib/spree/testing_support/factories/return_authorization_factory.rb +0 -21
  1586. data/lib/spree/testing_support/factories/return_item_factory.rb +0 -14
  1587. data/lib/spree/testing_support/factories/shipment_factory.rb +0 -21
  1588. data/lib/spree/testing_support/factories/shipping_category_factory.rb +0 -9
  1589. data/lib/spree/testing_support/factories/shipping_method_factory.rb +0 -31
  1590. data/lib/spree/testing_support/factories/shipping_rate_factory.rb +0 -7
  1591. data/lib/spree/testing_support/factories/state_change_factory.rb +0 -8
  1592. data/lib/spree/testing_support/factories/stock_item_factory.rb +0 -22
  1593. data/lib/spree/testing_support/factories/store_credit_category_factory.rb +0 -9
  1594. data/lib/spree/testing_support/factories/store_credit_type_factory.rb +0 -16
  1595. data/lib/spree/testing_support/factories/wished_variant_factory.rb +0 -6
  1596. data/lib/spree/webhooks.rb +0 -22
  1597. data/lib/tasks/role_users.rake +0 -21
  1598. data/vendor/javascript/@rails--request.js.js +0 -4
  1599. data/vendor/javascript/@stimulus-components--auto-submit.js +0 -4
  1600. data/vendor/javascript/stimulus-reveal-controller.js +0 -4
  1601. data/vendor/javascript/stimulus-textarea-autogrow.js +0 -4
  1602. data/vendor/javascript/tailwindcss-stimulus-components.js +0 -4
@@ -5,7 +5,7 @@ en:
5
5
  messages:
6
6
  blank: can't be blank
7
7
  models:
8
- spree/fulfilment_changer:
8
+ spree/fulfillment_changer:
9
9
  attributes:
10
10
  current_shipment:
11
11
  can_not_have_backordered_inventory_units: has backordered inventory units
@@ -21,18 +21,26 @@ en:
21
21
  city: City
22
22
  company: Company
23
23
  country: Country
24
- firstname: First Name
24
+ first_name: First Name
25
25
  label: Address name
26
- lastname: Last Name
26
+ last_name: Last Name
27
27
  phone: Phone
28
+ postal_code: Zip Code
28
29
  state: State
29
- zipcode: Zip Code
30
30
  spree/calculator/tiered_flat_rate:
31
31
  preferred_base_amount: Base Amount
32
+ preferred_currency: Currency
32
33
  preferred_tiers: Tiers
33
34
  spree/calculator/tiered_percent:
34
35
  preferred_base_percent: Base Percent
35
36
  preferred_tiers: Tiers
37
+ spree/catalog_order_minimum:
38
+ amount: Amount
39
+ currency: Currency
40
+ spree/catalog_quantity_rule:
41
+ minimum_order_quantity: Minimum order quantity
42
+ order_multiple: Order multiple
43
+ variant: Variant
36
44
  spree/country:
37
45
  iso: ISO
38
46
  iso3: ISO3
@@ -47,11 +55,13 @@ en:
47
55
  number: Number
48
56
  verification_value: Verification Value
49
57
  year: Year
58
+ spree/custom_field_definition:
59
+ namespace: Namespace
60
+ searchable: Searchable
61
+ sortable: Sortable
50
62
  spree/customer_group:
51
63
  description: Description
52
64
  name: Name
53
- spree/customer_return:
54
- stock_location_id: Stock Location
55
65
  spree/gift_card:
56
66
  amount_used: Amount used
57
67
  expires_at: Expires at
@@ -69,18 +79,15 @@ en:
69
79
  spree/line_item:
70
80
  price: Price
71
81
  quantity: Quantity
72
- spree/metafield_definition:
73
- namespace: Namespace
74
- searchable: Searchable
75
- sortable: Sortable
76
82
  spree/option_type:
77
83
  filterable: Filterable
78
84
  kind: Kind
85
+ label: Label
79
86
  name: Name
80
- presentation: Presentation
81
87
  spree/option_value:
82
88
  color_code: Color Code
83
89
  image: Swatch Image
90
+ label: Label
84
91
  spree/order:
85
92
  checkout_complete: Checkout Complete
86
93
  completed_at: Completed At
@@ -101,19 +108,19 @@ en:
101
108
  spree/order/bill_address:
102
109
  address1: Billing address street
103
110
  city: Billing address city
104
- firstname: Billing address first name
105
- lastname: Billing address last name
111
+ first_name: Billing address first name
112
+ last_name: Billing address last name
106
113
  phone: Billing address phone
114
+ postal_code: Billing address zip code
107
115
  state: Billing address state
108
- zipcode: Billing address zipcode
109
116
  spree/order/ship_address:
110
117
  address1: Shipping address street
111
118
  city: Shipping address city
112
- firstname: Shipping address first name
113
- lastname: Shipping address last name
119
+ first_name: Shipping address first name
120
+ last_name: Shipping address last name
114
121
  phone: Shipping address phone
122
+ postal_code: Shipping address zip code
115
123
  state: Shipping address state
116
- zipcode: Shipping address zipcode
117
124
  spree/page_link:
118
125
  open_in_new_tab: Open in new tab
119
126
  spree/payment:
@@ -147,8 +154,9 @@ en:
147
154
  more_than: More than
148
155
  name: Name
149
156
  on_hand: On Hand
150
- shipping_category: Shipping Category
151
157
  tax_category: Tax Category
158
+ spree/product_type:
159
+ name: Name
152
160
  spree/promotion:
153
161
  advertise: Advertise
154
162
  code: Code
@@ -167,10 +175,6 @@ en:
167
175
  spree/property:
168
176
  name: Name
169
177
  presentation: Presentation
170
- spree/prototype:
171
- name: Name
172
- spree/return_authorization:
173
- amount: Amount
174
178
  spree/role:
175
179
  name: Name
176
180
  spree/shipment:
@@ -178,14 +182,6 @@ en:
178
182
  spree/state:
179
183
  abbr: Abbreviation
180
184
  name: Name
181
- spree/state_change:
182
- state_changes: State changes
183
- state_from: State from
184
- state_to: State to
185
- timestamp: Timestamp
186
- type: Type
187
- updated: Updated
188
- user: User
189
185
  spree/store:
190
186
  address: Address
191
187
  contact_phone: Contact Phone
@@ -205,11 +201,12 @@ en:
205
201
  url: Site URL
206
202
  spree/store_credit:
207
203
  amount_used: Amount used
208
- spree/store_credit_category:
209
- name: Name
210
204
  spree/tax_category:
211
205
  description: Description
212
206
  name: Name
207
+ spree/tax_identifier:
208
+ kind: Registration type
209
+ value: Number
213
210
  spree/tax_rate:
214
211
  amount: Rate
215
212
  included_in_price: Included in Price
@@ -231,11 +228,15 @@ en:
231
228
  cost_price: Cost Price
232
229
  depth: Depth
233
230
  height: Height
231
+ minimum_order_quantity: Minimum order quantity
232
+ order_multiple: Order multiple
234
233
  price: Price
234
+ purchase_unit: Purchase unit
235
235
  sku: SKU
236
+ units_per_carton: Units per carton
236
237
  weight: Weight
237
238
  width: Width
238
- spree/wished_item:
239
+ spree/wishlist_item:
239
240
  variant: ''
240
241
  spree/zone:
241
242
  description: Description
@@ -247,6 +248,10 @@ en:
247
248
  errors:
248
249
  messages:
249
250
  blank: can't be blank
251
+ must_apply_to_products: must be a custom field definition for products
252
+ must_belong_to_same_store: must belong to the same store
253
+ not_registered: is not a registered provider
254
+ spree_content_type_not_allowed: is not a file type we accept
250
255
  models:
251
256
  spree/allowed_origin:
252
257
  attributes:
@@ -265,24 +270,64 @@ en:
265
270
  values_should_be_percent: Tier values should all be percentages between 0% and 100%
266
271
  preferred_tiers:
267
272
  should_be_hash: should be a hash
273
+ spree/catalog:
274
+ attributes:
275
+ base:
276
+ no_audience: is not assigned to anyone, so activating it would reach no buyer. Assign a company or customer group first.
277
+ price_list:
278
+ owned_by_another_catalog: is already used by another catalog. Detach it there first.
279
+ spree/catalog_quantity_rule:
280
+ attributes:
281
+ base:
282
+ quantity_rule_states_nothing: Set a minimum order quantity, an order multiple, or both
283
+ spree/category:
284
+ attributes:
285
+ parent:
286
+ must_belong_to_same_store: must belong to the same store
268
287
  spree/classification:
269
288
  attributes:
270
289
  taxon_id:
271
290
  already_linked: is already linked to this product
291
+ spree/company:
292
+ attributes:
293
+ base:
294
+ cannot_destroy_with_orders: Cannot delete a company that has placed orders, or whose divisions have.
295
+ kind:
296
+ anchors_descendant_divisions: cannot become a division while divisions below it anchor their tax identity here
297
+ holds_tax_registrations: cannot become a division while holding tax registrations or exemption certificates
298
+ root_must_be_legal_entity: must be company for a root node
299
+ parent:
300
+ cycle: cannot be one of the node's own descendants
301
+ too_deep: would exceed the maximum tree depth
272
302
  spree/credit_card:
273
303
  attributes:
274
304
  base:
275
305
  card_expired: Card has expired
276
306
  expiry_invalid: Card expiration is invalid
307
+ spree/customer:
308
+ attributes:
309
+ bill_address_id:
310
+ belongs_to_other_user: belongs to other user
311
+ deprecated_in_completed_order: deprecated in completed order
312
+ ship_address_id:
313
+ belongs_to_other_user: belongs to other user
314
+ deprecated_in_completed_order: deprecated in completed order
315
+ spree/exchange_line_item:
316
+ attributes:
317
+ new_variant:
318
+ must_differ_from_original: must be different from the item being returned
319
+ spree/export:
320
+ attributes:
321
+ type:
322
+ seller_scope_unavailable: cannot be narrowed to a single seller
323
+ spree/exports/price_list_prices:
324
+ attributes:
325
+ base:
326
+ price_list_required: Choose a price list to export.
277
327
  spree/gift_card:
278
328
  attributes:
279
329
  base:
280
330
  cannot_destroy_used_gift_card: Can't delete a used gift card
281
- spree/image:
282
- attributes:
283
- attachment:
284
- attachment_must_be_present: must be present
285
- not_allowed_content_type: has not allowed content type
286
331
  spree/import:
287
332
  attributes:
288
333
  attachment:
@@ -311,18 +356,51 @@ en:
311
356
  country:
312
357
  already_in_market: is already assigned to another market in this store
313
358
  not_in_shipping_zone: is not covered by any shipping zone. Please set up a shipping zone first.
359
+ spree/media:
360
+ attributes:
361
+ attachment:
362
+ attachment_must_be_present: must be present
363
+ not_allowed_content_type: has not allowed content type
364
+ external_video_url:
365
+ unsupported_video_provider: must be a YouTube or Vimeo link
366
+ spree/package_type:
367
+ attributes:
368
+ default:
369
+ cannot_be_given_up: cannot be turned off on the only default package — make another one the default instead
370
+ kind:
371
+ cannot_stop_being_a_carton: cannot change while products are packed into this carton — repack them first
314
372
  spree/payment:
315
373
  attributes:
316
374
  amount:
317
375
  greater_than_max_amount: is greater than the allowed maximum amount of %{max_amount}
376
+ spree/price:
377
+ attributes:
378
+ min_quantity:
379
+ requires_price_list: quantity breaks can only be set on a price list
380
+ too_many_breaks: a variant can carry at most %{count} quantity breaks on one price list
381
+ spree/price_adjustment_tier:
382
+ attributes:
383
+ base:
384
+ too_many_tiers: a price list can carry at most %{count} quantity tiers
318
385
  spree/price_list:
319
386
  attributes:
387
+ base:
388
+ invalid_quantity: each quantity break must start at a whole number of units
389
+ negative_price: a price cannot be below zero
390
+ nothing_to_apply_to: has no rules, no catalog and no products, so it would apply to nothing. Add one before activating.
320
391
  ends_at:
321
392
  must_be_after_starts_at: must be after starts at
393
+ price_adjustment_percentage:
394
+ requires_catalog: can only be set on a price list a catalog owns
395
+ price_adjustment_tiers:
396
+ requires_catalog: can only be set on a price list a catalog owns
322
397
  spree/product:
323
398
  attributes:
324
399
  base:
325
400
  cannot_destroy_if_attached_to_line_items: Cannot delete Products that are added to placed Orders. In such cases, please discontinue them.
401
+ cannot_propose: Only a draft or a product needing changes can be submitted for review.
402
+ not_awaiting_review: This product is not awaiting review.
403
+ status_decided_by_review: A product in review changes status by being approved or sent back, not by editing it.
326
404
  discontinue_on:
327
405
  invalid_date_range: must be later than available date
328
406
  spree/product_publication:
@@ -337,20 +415,6 @@ en:
337
415
  attributes:
338
416
  amount:
339
417
  greater_than_allowed: is greater than the allowed amount.
340
- spree/reimbursement:
341
- attributes:
342
- base:
343
- return_items_order_id_does_not_match: One or more of the return items specified do not belong to the same order as the reimbursement.
344
- spree/return_item:
345
- attributes:
346
- inventory_unit:
347
- other_completed_return_item_exists: "%{inventory_unit_id} has already been taken by return item %{return_item_id}"
348
- reimbursement:
349
- cannot_be_associated_unless_accepted: cannot be associated to a return item that is not accepted.
350
- spree/shipping_method:
351
- attributes:
352
- base:
353
- required_shipping_category: You must select at least one shipping category
354
418
  spree/store:
355
419
  attributes:
356
420
  base:
@@ -362,10 +426,16 @@ en:
362
426
  amount_used:
363
427
  cannot_be_greater_than_amount: Cannot be greater than amount.
364
428
  greater_than_zero_restrict_delete: is greater than zero. Can not delete store credit.
365
- spree/store_credit_category:
429
+ spree/tax_exemption_certificate:
366
430
  attributes:
367
- base:
368
- cannot_destroy_if_used_in_store_credit: Cannot delete store credit categories once they are used in store credit.
431
+ company:
432
+ must_be_legal_entity: must be a legal entity, not a division
433
+ spree/tax_identifier:
434
+ attributes:
435
+ company:
436
+ must_be_legal_entity: must be a legal entity, not a division
437
+ value:
438
+ invalid: does not look like a valid %{kind} registration
369
439
  spree/taxon_image:
370
440
  attributes:
371
441
  attachment:
@@ -382,13 +452,18 @@ en:
382
452
  attributes:
383
453
  base:
384
454
  cannot_destroy_if_attached_to_line_items: Cannot delete Variants that are added to placed Orders. In such cases, please discontinue them.
385
- must_supply_price_for_variant_or_master: Must supply price for variant or master price for product.
386
- no_master_variant_found_to_infer_price: No master variant found to infer price
455
+ carton_package_type:
456
+ must_be_a_carton: must be a package type of kind carton
457
+ order_multiple:
458
+ incompatible_with_carton: must divide into or be a multiple of %{units_per_carton} units per carton
459
+ units_per_carton:
460
+ required_for_carton_purchase_unit: is required when the purchase unit is cartons
387
461
  spree/webhook_endpoint:
388
462
  attributes:
389
463
  url:
390
464
  internal_address_not_allowed: must not point to an internal or private network address
391
- spree/wished_item:
465
+ invalid_url: must be a valid http or https URL
466
+ spree/wishlist_item:
392
467
  attributes:
393
468
  variant:
394
469
  taken: You already added this item to your wishlist
@@ -417,10 +492,7 @@ en:
417
492
  spree/customer_group_user:
418
493
  one: Customer Group User
419
494
  other: Customer Group Users
420
- spree/customer_return:
421
- one: Customer Return
422
- other: Customer Returns
423
- spree/digital:
495
+ spree/digital_asset:
424
496
  one: Digital asset
425
497
  other: Digital assets
426
498
  spree/export:
@@ -474,6 +546,9 @@ en:
474
546
  spree/product:
475
547
  one: Product
476
548
  other: Products
549
+ spree/product_type:
550
+ one: Product Type
551
+ other: Product Types
477
552
  spree/promotion:
478
553
  one: Promotion
479
554
  other: Promotions
@@ -483,45 +558,36 @@ en:
483
558
  spree/property:
484
559
  one: Property
485
560
  other: Properties
486
- spree/prototype:
487
- one: Prototype
488
- other: Prototypes
561
+ spree/purchase_order:
562
+ one: Purchase Order
563
+ other: Purchase Orders
564
+ spree/purchase_order_item:
565
+ one: Purchase Order Item
566
+ other: Purchase Order Items
489
567
  spree/refund_reason:
490
568
  one: Refund Reason
491
569
  other: Refund Reasons
492
- spree/reimbursement:
493
- one: Reimbursement
494
- other: Reimbursements
495
- spree/reimbursement_type:
496
- one: Reimbursement Type
497
- other: Reimbursement Types
498
- spree/return_authorization:
499
- one: Return Authorization
500
- other: Return Authorizations
501
- spree/return_authorization_reason:
502
- one: Return Authorization Reason
503
- other: Return Authorization Reasons
570
+ spree/return:
571
+ one: Return
572
+ other: Returns
573
+ spree/return_reason:
574
+ one: Return Reason
575
+ other: Return Reasons
504
576
  spree/role:
505
577
  one: Roles
506
578
  other: Roles
507
579
  spree/shipment:
508
580
  one: Shipment
509
581
  other: Shipments
510
- spree/shipping_category:
511
- one: Shipping Category
512
- other: Shipping Categories
513
582
  spree/shipping_method:
514
583
  one: Shipping Method
515
584
  other: Shipping Methods
516
585
  spree/state:
517
586
  one: State
518
587
  other: States
519
- spree/state_change:
520
- one: State Change
521
- other: State Changes
522
- spree/stock_item:
523
- one: Stock Item
524
- other: Stock Items
588
+ spree/stock_level:
589
+ one: Stock Level
590
+ other: Stock Levels
525
591
  spree/stock_location:
526
592
  one: Stock Location
527
593
  other: Stock Locations
@@ -531,15 +597,18 @@ en:
531
597
  spree/stock_transfer:
532
598
  one: Stock Transfer
533
599
  other: Stock Transfers
600
+ spree/stock_transfer_item:
601
+ one: Stock Transfer Item
602
+ other: Stock Transfer Items
534
603
  spree/store:
535
604
  one: Store
536
605
  other: Stores
537
606
  spree/store_credit:
538
607
  one: Store Credit
539
608
  other: Store Credits
540
- spree/store_credit_category:
541
- one: Store Credit Category
542
- other: Store Credit Categories
609
+ spree/supplier:
610
+ one: Supplier
611
+ other: Suppliers
543
612
  spree/tax_category:
544
613
  one: Tax Category
545
614
  other: Tax Categories
@@ -570,54 +639,20 @@ en:
570
639
  address_book:
571
640
  save: Save
572
641
  successfully_created: New address has been successfully created
573
- devise:
574
- confirmations:
575
- confirmed: Your account was successfully confirmed. You are now signed in.
576
- send_instructions: You will receive an email with instructions about how to confirm your account in a few minutes.
577
- failure:
578
- inactive: Your account was not activated yet.
579
- invalid: Invalid email or password.
580
- invalid_token: Invalid authentication token.
581
- locked: Your account is locked.
582
- timeout: Your session expired, please sign in again to continue.
583
- too_many_attempts: Too many attempts. Please wait a moment and try again.
584
- unauthenticated: You need to sign in or sign up before continuing.
585
- unconfirmed: You have to confirm your account before continuing.
586
- mailer:
587
- confirmation_instructions:
588
- subject: Confirmation instructions
589
- reset_password_instructions:
590
- subject: Reset password instructions
591
- unlock_instructions:
592
- subject: Unlock Instructions
593
- oauth_callbacks:
594
- failure: Could not authorize you from %{kind} because "%{reason}".
595
- success: Successfully authorized from %{kind} account.
596
- unlocks:
597
- send_instructions: You will receive an email with instructions about how to unlock your account in a few minutes.
598
- unlocked: Your account was successfully unlocked. You are now signed in.
599
- user_passwords:
600
- user:
601
- cannot_be_blank: Your password cannot be blank.
602
- send_instructions: You will receive an email with instructions about how to reset your password in a few minutes.
603
- updated: Your password was changed successfully. You are now signed in.
604
- user_registrations:
605
- destroyed: Bye! Your account was successfully cancelled. We hope to see you again soon.
606
- inactive_signed_up: You have signed up successfully. However, we could not sign you in because your account is %{reason}.
607
- signed_up: Welcome! You have signed up successfully.
608
- updated: You updated your account successfully.
609
- user_sessions:
610
- signed_in: Signed in successfully.
611
- signed_out: Signed out successfully.
612
642
  errors:
613
643
  messages:
614
644
  already_confirmed: was already confirmed
645
+ forbidden_reporting_member: references data you are not allowed to read
646
+ invalid_document_number_affix: 'can only contain uppercase letters, digits, dashes and #'
647
+ invalid_system_key: can only contain lowercase letters, digits and underscores
648
+ locked_after_first_number: cannot change once numbering has started
615
649
  not_a_number: is not a number
616
650
  not_found: not found
617
651
  not_locked: was not locked
618
652
  not_saved:
619
653
  one: '1 error prohibited this %{resource} from being saved:'
620
654
  other: "%{count} errors prohibited this %{resource} from being saved:"
655
+ seeded_report_read_only: is a built-in report and cannot be changed — save a copy instead
621
656
  number:
622
657
  currency:
623
658
  format:
@@ -669,12 +704,6 @@ en:
669
704
  adjustments_deleted: Adjustments Deleted
670
705
  admin_locale: Admin locale
671
706
  admin_user_mailer:
672
- confirmation_email:
673
- action: Confirm Email
674
- greeting: Hi %{name},
675
- ignore_notice: If you did not create this account, you can safely ignore this email.
676
- instructions: Please confirm the email address for your %{store_name} admin account by clicking the button below.
677
- subject: Email Confirmation Instructions
678
707
  password_reset_email:
679
708
  action: Reset Password
680
709
  expiry_notice: This password reset link will expire shortly. If you did not request this, no action is needed.
@@ -746,10 +775,20 @@ en:
746
775
  card_number: Card Number
747
776
  cart: Cart
748
777
  cart_already_updated: The cart has already been updated.
778
+ cart_completion_in_progress: The cart is being completed. Please retry in a moment.
749
779
  cart_line_item:
780
+ currency_unavailable: "%{li_name} is not available in %{currency}"
750
781
  delivery_unavailable: "%{li_name} cannot be delivered to the selected address"
751
782
  discontinued: "%{li_name} was removed because it was discontinued"
783
+ invalid_price: Price must be a non-negative number
752
784
  out_of_stock: "%{li_name} was removed because it was sold out"
785
+ price_override_not_allowed: Prices cannot be changed on a placed order — use fees or discounts instead
786
+ pricing_unavailable: Prices could not be confirmed. Please try again.
787
+ quantity_must_be_positive: Quantity must be at least 1. Use DELETE to remove the item.
788
+ quantity_rule_violated: "%{li_name} cannot be ordered in that quantity. Try %{quantities}."
789
+ catalogs:
790
+ no_price_list_to_import: This catalog has no price list to import products from.
791
+ product_not_in_store: One of those products belongs to another store.
753
792
  categories: Categories
754
793
  category: Category
755
794
  change: Change
@@ -759,11 +798,13 @@ en:
759
798
  charged: Charged
760
799
  checkout: Checkout
761
800
  checkout_requirements:
801
+ delivery_method_required: Select a delivery method for all fulfillments
762
802
  email_required: Email address is required
763
803
  line_items_required: Add at least one item to your cart
804
+ order_minimum_not_met: Orders must come to at least %{minimum}. Add %{shortfall} more to check out.
764
805
  payment_required: Add a payment method
806
+ po_number_required: A purchase order number is required for this account
765
807
  ship_address_required: Shipping address is required
766
- shipping_method_required: Select a shipping method for all shipments
767
808
  choose_currency: Choose Currency
768
809
  city: City
769
810
  clear: Clear
@@ -773,9 +814,45 @@ en:
773
814
  close: Close
774
815
  closed: Closed
775
816
  code: Code
817
+ collection_rule_types:
818
+ available_on:
819
+ description: Products published within the last N days
820
+ name: Recently published
821
+ sale:
822
+ description: Products currently discounted below their compare-at price
823
+ name: On sale
824
+ tag:
825
+ description: Products carrying a matching tag
826
+ name: Tag
776
827
  color_code: Color Code
777
828
  colors: Colors
829
+ commission_rule_types:
830
+ category_rule:
831
+ description: Charges this rate only for products in the selected categories, and anything filed beneath them
832
+ name: Category
833
+ item_total_rule:
834
+ description: Charges this rate only on sales within a value range
835
+ name: Sale value
836
+ product_rule:
837
+ description: Charges this rate only for the selected products
838
+ name: Product
839
+ seller_rule:
840
+ description: Charges this rate only when the seller is one of the selected
841
+ name: Seller
842
+ companies: Companies
778
843
  company: Company
844
+ company_invitations:
845
+ email_mismatch: This invitation was sent to a different email address.
846
+ not_pending: This invitation is no longer pending and cannot be revoked.
847
+ company_mailer:
848
+ invitation_email:
849
+ action: Accept invitation
850
+ expiry_notice: This invitation link will expire in 30 days.
851
+ greeting: Hi,
852
+ ignore_notice: If you were not expecting this invitation, you can safely ignore this email.
853
+ instructions: You have been invited to join %{company} on %{store}. Accept the invitation to start purchasing on the company's behalf.
854
+ subject: invitation to join %{company}
855
+ title: Join %{company}
779
856
  compare_at_amount: Compare at amount
780
857
  compare_at_price: Compare at price
781
858
  complete: complete
@@ -814,7 +891,6 @@ en:
814
891
  coupon_codes: Coupon codes
815
892
  create: Create
816
893
  create_new: Create new
817
- create_reimbursement: Create reimbursement
818
894
  created_at: Created at
819
895
  created_by: Created by
820
896
  credit: Credit
@@ -829,10 +905,21 @@ en:
829
905
  currency_not_supported_by_store: is not supported by this store
830
906
  current: Current
831
907
  current_password: Current password
908
+ custom_field_definitions: Custom Field Definitions
909
+ custom_fields: Custom Fields
832
910
  customer: Customer
911
+ customer_errors:
912
+ anonymize_failed: The erasure could not be completed and nothing was changed
833
913
  customer_group: Customer Group
834
914
  customer_groups: Customer Groups
835
915
  customer_mailer:
916
+ data_export_email:
917
+ action: Download Your Data
918
+ expiry_notice: This download link expires on %{date}.
919
+ greeting: Hello,
920
+ ignore_notice: If you did not request a copy of your data, please contact us.
921
+ instructions: Your copy of the personal data we hold about you is ready. Use the button below to download it.
922
+ subject: Your Data Is Ready to Download
836
923
  password_reset_email:
837
924
  action: Reset Password
838
925
  expiry_notice: This password reset link will expire shortly. If you did not request this, no action is needed.
@@ -840,13 +927,15 @@ en:
840
927
  ignore_notice: If you did not request a password reset, you can safely ignore this email. Your password will not be changed.
841
928
  instructions: We received a request to reset your password. Click the button below to choose a new password.
842
929
  subject: Password Reset Instructions
843
- customer_return: Customer Return
844
- customer_returns: Customer Returns
845
930
  customer_support_email: Customer Support Email
846
931
  customers: Customers
847
932
  cut: Cut
848
933
  cvv: CVV
849
934
  cvv_response: CVV Response
935
+ data_request_errors:
936
+ already_anonymized: This customer's personal data has already been erased
937
+ download_unavailable: This download link has expired or is no longer valid
938
+ not_pending: This request has already been processed
850
939
  date: Date
851
940
  date_range: Date Range
852
941
  default: Default
@@ -854,7 +943,6 @@ en:
854
943
  default_country: Default Country
855
944
  default_currency: Default currency
856
945
  default_locale: Default locale
857
- default_refund_amount: Default Refund Amount
858
946
  default_shipping_address: Default shipping address
859
947
  default_stock_location_name: Shop location
860
948
  default_tax: Default Tax
@@ -862,7 +950,33 @@ en:
862
950
  default_wishlist_name: Wishlist
863
951
  delete: Delete
864
952
  deleted: Deleted
953
+ deliveries:
954
+ errors:
955
+ delivered: This consignment has already arrived — its arrival is what the returns window counts from, so it cannot be deleted
956
+ has_label: This delivery was created by a shipping label — refund the label instead of deleting the delivery
957
+ not_found: This fulfillment has no delivery to track yet
865
958
  delivery: Delivery
959
+ delivery_method_rule_types:
960
+ channel_rule:
961
+ description: Offers the delivery method only on the selected channels
962
+ name: Channel
963
+ company_rule:
964
+ description: Offers the delivery method only to orders placed for a company, or only to orders that are not
965
+ name: Company
966
+ excluded_products_rule:
967
+ description: Blocks the delivery method for packages containing the selected products
968
+ name: Excluded products
969
+ item_total_rule:
970
+ description: Limits the delivery method to carts within an item total range
971
+ name: Item total
972
+ volume_rule:
973
+ description: Limits the delivery method to shipments within a volume range, in cubic meters
974
+ name: Volume
975
+ weight_rule:
976
+ description: Limits the delivery method to packages within a weight range
977
+ name: Weight
978
+ delivery_rates:
979
+ quoted_after_review: Quoted after review
866
980
  depth: Depth
867
981
  description: Description
868
982
  destination: Destination
@@ -871,7 +985,16 @@ en:
871
985
  developers: Developers
872
986
  digital:
873
987
  digital_delivery: Digital Delivery
988
+ digital_asset_mailer:
989
+ files_ready_email:
990
+ available_until: Available until %{date}
991
+ dear_customer: Dear %{name},
992
+ instructions: The files from your order %{number} are ready to download.
993
+ store_team: "%{store_name} Team"
994
+ subject: Your files are ready
995
+ thanks: Thank you for your business.
874
996
  digital_assets: Digital assets
997
+ digital_assets_attachment_must_be_private: Upload the file to private storage before attaching it
875
998
  discontinue_on: Discontinue On
876
999
  discontinued: Discontinued
877
1000
  discontinued_variants_present: Some line items in this order have products that are no longer available.
@@ -918,15 +1041,69 @@ en:
918
1041
  error_user_does_not_have_any_store_credits: User does not have any Store Credits available
919
1042
  errors:
920
1043
  messages:
1044
+ already_a_member: already exists
921
1045
  cannot_delete_channel_with_active_api_keys: Channel cannot be deleted while active API keys are bound to it. Revoke those keys first.
922
1046
  cannot_delete_default_channel: Default channel cannot be deleted. Promote another channel to default first.
1047
+ cannot_delete_default_package_type: Default package cannot be deleted. Make another package the default first.
1048
+ cart_currency_mismatch: carts in different currencies cannot be merged
923
1049
  channel_store_mismatch: must belong to the same store
1050
+ commission_rate_needs_an_amount: needs a flat fee amount in at least one currency
1051
+ coupon_code_frozen_after_completion: coupon codes cannot be changed on a completed order — add a manual discount instead
1052
+ custom_field_definition_mismatch: must match custom field definition
1053
+ delivery_zone_not_in_origin_group: must belong to the delivery method's origin group
1054
+ delivery_zone_not_in_profile: must belong to the delivery method's delivery profile
1055
+ delivery_zone_postal_definition_required: postal code member requires a prefix or a from/to range
1056
+ delivery_zone_prefix_and_range_exclusive: cannot be combined with a from/to range
1057
+ delivery_zone_range_inverted: must be greater than or equal to postal_code_from
1058
+ delivery_zone_range_not_supported: postal code ranges are not supported for this country — use prefixes
1059
+ discount_has_no_effect: discount would have no effect on this order
1060
+ discount_value_must_be_positive: discount value must be a positive number
1061
+ discount_value_type_invalid: value_type must be flat or percent
1062
+ duplicate_variant: cannot list the same variant twice
1063
+ exactly_one_adjustable: must be attached to exactly one adjustable
1064
+ exactly_one_of_cart_or_order: must belong to exactly one of cart or order
1065
+ exactly_one_of_line_item_or_fulfillment: must be charged against exactly one of a line item or a fulfillment
1066
+ flat_fee_cannot_charge_delivery: is not available on a flat fee, which already charges for the sale the delivery belongs to — add a separate rate to charge delivery
1067
+ integration_connection_failed: could not connect with the saved credentials
1068
+ integration_type_not_registered: is not a registered integration
1069
+ invalid_commission_rule: is not a commission rule kind this store has
1070
+ invalid_commission_rule_type: "%{type} is not a commission rule kind this store has"
1071
+ invalid_delivery_method_rule: is not a registered delivery method rule
1072
+ invalid_json: 'must be valid JSON: %{detail}'
1073
+ invalid_oauth_state: Invalid or expired authentication state. Please start the sign-in again.
924
1074
  invalid_order_routing_rule: is not a registered order routing rule
925
1075
  invalid_order_routing_strategy: is not a registered order routing strategy
1076
+ invalid_refund_method: must be one of original_payment, store_credit
1077
+ invalid_seller_requirement: is not a registered seller requirement
926
1078
  invalid_storefront_access: is not a valid storefront access level
1079
+ items_not_a_list: items must be a list of objects
1080
+ must_be_greater_than_min_amount: must be greater than or equal to the minimum
927
1081
  must_be_origin_only: must be an origin (scheme and host) without path, query, or fragment
1082
+ no_pickup_point_provider: this delivery method has no pickup point provider configured
1083
+ not_cancellable: cannot be canceled once its goods have been dispatched
1084
+ oidc_account_not_provisioned: This account is not authorized for this store. Ask an administrator for an invitation.
1085
+ oidc_authentication_failed: We could not sign you in with this provider. Please try again.
1086
+ oidc_missing_code: The identity provider did not return an authorization code.
1087
+ oidc_requires_redirect: This provider requires signing in through its own login page.
1088
+ pickup_point_not_found: pickup point could not be found with this provider
1089
+ product_not_in_store: must all belong to this store
1090
+ profile_does_not_accept_provider: "%{provider} deliveries cannot join the %{profile} profile"
1091
+ promotion_discount_not_editable: promotion discounts are managed by recalculation and cannot be edited
1092
+ rate_provider_requires_shipping: "%{provider} quotes shipments, so this method must ship to an address"
1093
+ rate_provider_unavailable: is not available for this store — connect its integration first
1094
+ received_exceeds_expected: cannot be more than the %{expected} expected
1095
+ refund_amount_requires_shared_payment: can only be set when the payment is shared across a split checkout
1096
+ same_as_inviter: cannot be the same as the inviter
1097
+ seller_delivery_method_not_shareable: only the marketplace's own delivery methods can be shared with sellers
1098
+ seller_delivery_method_provider: a seller's delivery method prices its own rates and is fulfilled by hand — carrier accounts belong to the marketplace
1099
+ seller_requirement_store_mismatch: must belong to the same store as the seller
1100
+ stock_level_immutable: cannot be changed after the hold is taken — release the hold and take it again
928
1101
  store_association_can_not_be_changed: The store association can not be changed
929
1102
  store_is_already_set: Store is already set
1103
+ unknown_custom_field_type: 'is not a known custom field type (expected one of: %{types})'
1104
+ unknown_scopes: 'contains unknown scopes: %{scopes}'
1105
+ unregistered_actor: is not a registered actor class
1106
+ variant_product_mismatch: must belong to the same product as the variant
930
1107
  services:
931
1108
  get_shipping_rates:
932
1109
  no_line_items: To generate Shipping Rates you need to add some Line Items to Order
@@ -968,27 +1145,56 @@ en:
968
1145
  free_shipping: Free Shipping
969
1146
  from: From
970
1147
  front_end: Front End
1148
+ fulfillment_mailer:
1149
+ fulfilled_email:
1150
+ dear_customer: Dear %{name},
1151
+ delivery_method: 'Delivery method: %{delivery_method}'
1152
+ fulfillment_summary: Fulfillment summary for order
1153
+ instructions: Your order %{number} has been fulfilled
1154
+ store_team: "%{store_name} Team"
1155
+ subject: Fulfillment Notification
1156
+ thanks: Thank you for your business.
1157
+ track_information: 'Tracking Information: %{tracking}'
1158
+ track_link: 'Tracking Link: %{url}'
971
1159
  fulfillments:
972
1160
  errors:
1161
+ backordered_units: This fulfillment holds backordered units and cannot be handed over yet
1162
+ cannot_cancel: This fulfillment cannot be canceled in its current status
1163
+ cannot_fulfill: This fulfillment cannot be fulfilled in its current status
1164
+ cannot_mark_delivered: Only a fulfilled shipment can be marked delivered
1165
+ cannot_purchase_label: Labels can only be bought before the fulfillment ships
1166
+ cannot_resume: This fulfillment cannot be resumed in its current status
973
1167
  insufficient_quantity: Requested quantity (%{requested}) for item %{item} exceeds its unfulfilled quantity (%{available})
1168
+ insufficient_stock_on_hand: This dispatch needs %{requested} of %{item} but only %{on_hand} are on hand at this location — correct the stock count or force the dispatch
974
1169
  invalid_cost: cost must be a non-negative number
975
1170
  invalid_quantity: Quantity for item %{item} must be a positive integer
976
1171
  invalid_status: status must be 'shipped' when provided
1172
+ label_purchase_failed: The label could not be purchased — check the carrier connection and try again
977
1173
  no_items_to_fulfill: Order has no unfulfilled items
1174
+ not_in_fulfillment: Requested quantity (%{requested}) for item %{item} exceeds the %{available} held by this fulfillment
978
1175
  order_canceled: Fulfillments cannot be created on a canceled order
1176
+ order_draft: Draft orders cannot be fulfilled — complete the order first
979
1177
  order_not_completed: Fulfillments can only be created manually on completed orders
1178
+ order_not_paid: This order is not paid for yet
1179
+ provider_has_no_labels: This delivery method's provider does not produce labels
1180
+ unknown_tracking_status: "%{status} is not a known tracking status"
980
1181
  gateway: Gateway
981
1182
  gateway_error: Gateway Error
982
1183
  general: General
983
1184
  generate_code: Generate coupon code
984
1185
  gift_card: Gift Card
1186
+ gift_card_already_canceled: The Gift Card has already been canceled.
985
1187
  gift_card_already_redeemed: The Gift Card has already been redeemed.
986
1188
  gift_card_applied: The Gift Card was successfully applied to your order!
987
1189
  gift_card_batch: Gift Card Batch
1190
+ gift_card_canceled: The Gift Card has been canceled.
988
1191
  gift_card_customer_not_logged_in: Gift Card cannot be applied with guest user.
989
1192
  gift_card_expired: The Gift Card has expired.
1193
+ gift_card_held_by_another_order: The Gift Card is being used by another order that is still being placed. Please try again in a few minutes.
990
1194
  gift_card_mismatched_currency: Gift Card cannot be applied with current currency.
991
1195
  gift_card_mismatched_customer: This gift card is associated with another user.
1196
+ gift_card_no_amount_remaining: The Gift Card has no amount remaining.
1197
+ gift_card_not_applied: The Gift Card could not be applied.
992
1198
  gift_card_not_found: The Gift Card was not found.
993
1199
  gift_card_removed: The Gift Card was successfully removed from your order
994
1200
  gift_card_using_store_credit_error: You can't apply the Gift Card after you applied the store credit.
@@ -1009,6 +1215,7 @@ en:
1009
1215
  implement_eligible_for_return: 'Must implement #eligible_for_return? for your EligibilityValidator.'
1010
1216
  implement_requires_manual_intervention: 'Must implement #requires_manual_intervention? for your EligibilityValidator.'
1011
1217
  import: Import
1218
+ import_has_no_failed_rows: This import has no failed rows to retry.
1012
1219
  import_mailer:
1013
1220
  greeting: Hi %{user_name},
1014
1221
  import_done:
@@ -1016,6 +1223,9 @@ en:
1016
1223
  message: Your import has finished. %{completed_count} rows were imported successfully.
1017
1224
  subject: Your import %{import_number} has finished processing
1018
1225
  view_results: View import report
1226
+ import_mapping_not_completed: The import's column mapping is not complete yet.
1227
+ import_not_mapping: This import is not being mapped.
1228
+ import_not_processing: This import is not processing.
1019
1229
  in_stock: In Stock
1020
1230
  inactive: Inactive
1021
1231
  incl: incl.
@@ -1029,8 +1239,12 @@ en:
1029
1239
  internationalization: Internationalization
1030
1240
  invalid_credit_card: Invalid credit card.
1031
1241
  invalid_exchange_variant: Invalid exchange variant.
1242
+ invalid_password: Invalid password.
1032
1243
  inventory: Inventory
1033
1244
  invitation_accepted: Invitation accepted!
1245
+ invitation_already_accepted: This invitation has already been accepted.
1246
+ invitation_expired: This invitation has expired. Invite them again to send a new one.
1247
+ invitation_invitee_missing: This invitation has no invitee.
1034
1248
  invitation_mailer:
1035
1249
  greeting: Hi %{user_name},
1036
1250
  invitation_accepted:
@@ -1041,6 +1255,8 @@ en:
1041
1255
  link_description: 'To accept this invitation, please click the link below:'
1042
1256
  subject: Invitation to join %{resource_name}
1043
1257
  thanks: Thank you,
1258
+ invitation_not_acceptable: Invitation not found, expired, or already accepted.
1259
+ invitation_role_resource_mismatch: must belong to the same store or seller as the invitation
1044
1260
  invitations: Invitations
1045
1261
  invited_by: Invited by
1046
1262
  iso: ISO Alpha-2
@@ -1067,7 +1283,6 @@ en:
1067
1283
  locale_not_supported_by_store: is not supported by this store
1068
1284
  location: Location
1069
1285
  lock: Lock
1070
- log_entries: Log Entries
1071
1286
  logged_in_successfully: Logged in successfully
1072
1287
  login: Login
1073
1288
  logo: Logo
@@ -1093,16 +1308,12 @@ en:
1093
1308
  meta_keywords: Meta Keywords
1094
1309
  meta_title: Meta Title
1095
1310
  metadata: Metadata
1096
- metafield_definitions: Metafield Definitions
1097
- metafields: Metafields
1098
1311
  min: Min
1099
1312
  min_quantity: Min Quantity
1100
1313
  minimal_amount: Minimal Amount
1101
- missing_return_authorization: Missing Return Authorization for %{item_name}.
1102
1314
  month: Month
1103
1315
  more: More
1104
1316
  move: Move
1105
- mutable: Mutable
1106
1317
  my_account: My Account
1107
1318
  my_orders: My Orders
1108
1319
  name: Name
@@ -1117,7 +1328,6 @@ en:
1117
1328
  new_price_list: New Price List
1118
1329
  new_product: New Product
1119
1330
  new_promotion: New Promotion
1120
- new_return_authorization: New Return Authorization
1121
1331
  new_state: New State
1122
1332
  new_user: New User
1123
1333
  new_variant: New Variant
@@ -1135,6 +1345,7 @@ en:
1135
1345
  next: Next
1136
1346
  no_cc_type: N/A
1137
1347
  no_payment_found: No payment found
1348
+ no_refundable_payments: There is no payment left on this order to refund.
1138
1349
  no_report_data: No report data
1139
1350
  none: None
1140
1351
  normal_amount: Normal Amount
@@ -1142,7 +1353,9 @@ en:
1142
1353
  not_available: N/A
1143
1354
  not_enough_stock: There is not enough inventory at the source location to complete this transfer.
1144
1355
  not_found: "%{resource} is not found"
1356
+ not_received: This return cannot be refunded until its items are marked received.
1145
1357
  note: Note
1358
+ nothing_to_refund: There is nothing left to refund on this return.
1146
1359
  number: Number
1147
1360
  ok: OK
1148
1361
  on_hand: On Hand
@@ -1158,6 +1371,7 @@ en:
1158
1371
  or: or
1159
1372
  order: Order
1160
1373
  order_canceled: Order canceled
1374
+ order_cannot_be_deleted: Completed orders and orders with settled payments cannot be deleted
1161
1375
  order_mailer:
1162
1376
  cancel_email:
1163
1377
  dear_customer: Hey %{name},
@@ -1176,6 +1390,7 @@ en:
1176
1390
  message_copy_link: 'If the button doesn''t work please copy and paste the following link to your browser:'
1177
1391
  pay_for_order: Pay for order
1178
1392
  subject: 'Payment link for order #%{number}'
1393
+ po_number: 'PO Number: %{number}'
1179
1394
  store_owner_notification_email:
1180
1395
  heading: New Order Received
1181
1396
  instructions: You have received a new order.
@@ -1209,9 +1424,12 @@ en:
1209
1424
  other: Other
1210
1425
  out_of_stock: Out of Stock
1211
1426
  outstanding_balance: Outstanding Balance
1427
+ package_types:
1428
+ default_name: Shipping box
1212
1429
  page: Page
1213
1430
  pages: Pages
1214
1431
  password: Password
1432
+ password_required_to_create_account: Password is required to create your account.
1215
1433
  path: Path
1216
1434
  pay: Pay
1217
1435
  payment: Payment
@@ -1228,16 +1446,101 @@ en:
1228
1446
  percent_per_item: Percent Per Item
1229
1447
  permalink: Permalink
1230
1448
  permissions: Permissions
1449
+ permissions_catalog:
1450
+ groups:
1451
+ access: Access
1452
+ analytics: Analytics
1453
+ catalog: Catalog
1454
+ customers: Customers
1455
+ loyalty: Loyalty
1456
+ marketing: Marketing
1457
+ orders: Orders
1458
+ seller: Seller
1459
+ sellers: Sellers
1460
+ settings: Settings
1461
+ kinds:
1462
+ read: View
1463
+ write: Manage
1464
+ resources:
1465
+ api_keys:
1466
+ description: Create and revoke API credentials
1467
+ label: API keys
1468
+ categories:
1469
+ description: Category tree and taxonomies
1470
+ label: Categories
1471
+ collections:
1472
+ description: Manual and rule-based product collections
1473
+ label: Collections
1474
+ customers:
1475
+ description: Customer accounts, addresses, cards and groups
1476
+ label: Customers
1477
+ dashboard:
1478
+ description: Sales and performance analytics
1479
+ label: Analytics dashboard
1480
+ fulfillments:
1481
+ description: Pack, ship and track order fulfillments
1482
+ label: Fulfillments
1483
+ gift_cards:
1484
+ description: Gift cards and gift card batches
1485
+ label: Gift cards
1486
+ orders:
1487
+ description: Orders, line items, returns, exchanges and claims
1488
+ label: Orders
1489
+ payments:
1490
+ description: Order payments and payment capture
1491
+ label: Payments
1492
+ products:
1493
+ description: Products, variants, options, prices and media
1494
+ label: Products
1495
+ promotions:
1496
+ description: Promotions, rules and coupon codes
1497
+ label: Promotions
1498
+ purchasing:
1499
+ description: Suppliers and purchase orders
1500
+ label: Purchasing
1501
+ refunds:
1502
+ description: Issue and view refunds
1503
+ label: Refunds
1504
+ settings:
1505
+ description: Store, payment, delivery, tax and channel configuration
1506
+ label: Store settings
1507
+ staff:
1508
+ description: Team members, invitations, roles and their permissions
1509
+ label: Staff & roles
1510
+ stock:
1511
+ description: Stock levels, locations, movements and transfers
1512
+ label: Inventory
1513
+ store_credits:
1514
+ description: Customer store credit balances
1515
+ label: Store credits
1516
+ webhooks:
1517
+ description: Webhook endpoints and deliveries
1518
+ label: Webhooks
1231
1519
  phone: Phone
1520
+ pickup:
1521
+ store_pickup: Store Pickup
1522
+ po_document_invalid: A purchase order document must be a PDF, image or Word file of %{size} or less.
1523
+ po_document_invalid_signed_id: The purchase order document reference is not valid.
1524
+ po_document_missing: This order has no attached purchase order document.
1525
+ po_document_too_large: is larger than %{size}.
1526
+ po_document_upload_incomplete: The purchase order document was not uploaded completely. Please try attaching it again.
1232
1527
  policies: Policies
1233
1528
  powered_by: Powered by
1234
1529
  pre_tax_amount: Pre-Tax Amount
1235
1530
  pre_tax_total: Pre-Tax Total
1236
- preferred_reimbursement_type: Preferred Reimbursement Type
1237
1531
  presentation: Presentation
1238
1532
  preview: Preview
1239
1533
  previous: Previous
1240
1534
  price: Price
1535
+ price_list_import_ambiguous_sku: More than one product in this store has the SKU %{sku}. Give each a SKU of its own before importing prices for it.
1536
+ price_list_import_failed: The price could not be written.
1537
+ price_list_import_invalid_amount: "%{column} must be a number like 16.50, got %{value}."
1538
+ price_list_import_invalid_quantity: min_quantity must be a whole number of units, got %{value}.
1539
+ price_list_import_no_price_list: This import is not attached to a price list.
1540
+ price_list_import_sku_required: SKU is required.
1541
+ price_list_import_too_many_breaks: A variant can carry at most %{count} quantity breaks on one price list.
1542
+ price_list_import_unknown_sku: No product in this store has the SKU %{sku}.
1543
+ price_list_import_unsupported_currency: This store does not sell in %{currency}.
1241
1544
  price_lists: Price Lists
1242
1545
  price_range: Price Range
1243
1546
  price_rules:
@@ -1323,10 +1626,36 @@ en:
1323
1626
  propagate_all_variants: Propagate all variants
1324
1627
  properties: Properties
1325
1628
  property: Property
1326
- prototype: Prototype
1327
- prototypes: Prototypes
1328
1629
  provider: Provider
1329
1630
  published_at: Published at
1631
+ purchase_order:
1632
+ errors:
1633
+ already_closed: This purchase order has already been received or cancelled
1634
+ already_receiving: A delivery has already been booked against this purchase order, so it cannot go back to draft
1635
+ invalid_receipt_quantity: The quantities for %{variant} cannot be negative
1636
+ item_not_on_document: One of the lines does not belong to this purchase order
1637
+ must_have_variant: You must add at least one variant
1638
+ no_items_received: No units were received
1639
+ not_draft: Only a draft purchase order can be marked as ordered
1640
+ not_editable: Only a draft purchase order can be edited
1641
+ not_ordered: Only a purchase order that has been placed can be received
1642
+ not_ordered_for_draft: Only a placed purchase order can go back to draft
1643
+ not_partially_received: Only a partially received purchase order can be closed short
1644
+ only_draft_can_be_deleted: Only a draft purchase order can be deleted — cancel it instead
1645
+ repeated_item: "%{variant} was listed more than once. Send one entry per line, with what this delivery brought"
1646
+ purchase_order_import_ambiguous_sku: More than one product in this store has the SKU %{sku}. Give each a SKU of its own before importing an order for it.
1647
+ purchase_order_import_destination_required: Destination is required.
1648
+ purchase_order_import_failed: The purchase order could not be written.
1649
+ purchase_order_import_invalid_cost: unit_cost must be a number like 16.50, got %{value}.
1650
+ purchase_order_import_invalid_date: "%{column} must be a full date like 2026-03-31, got %{value}."
1651
+ purchase_order_import_invalid_quantity: quantity must be a whole number above zero, got %{value}.
1652
+ purchase_order_import_reference_required: Reference is required — it is what groups a file's rows into orders.
1653
+ purchase_order_import_sku_required: SKU is required.
1654
+ purchase_order_import_supplier_required: Supplier is required.
1655
+ purchase_order_import_unknown_destination: This store has no warehouse named %{name}.
1656
+ purchase_order_import_unknown_sku: No product in this store has the SKU %{sku}.
1657
+ purchase_order_import_unknown_supplier: This store has no supplier named %{name}. Add them first.
1658
+ purchase_order_import_unsupported_currency: This store does not buy in %{currency}.
1330
1659
  qty: Qty
1331
1660
  quantity: Quantity
1332
1661
  query: Query
@@ -1338,27 +1667,12 @@ en:
1338
1667
  reference: Reference
1339
1668
  refund: Refund
1340
1669
  refund_amount: Refund Amount
1670
+ refund_exceeds_balance: That is more than the amount still refundable.
1341
1671
  refunds: Refunds
1342
1672
  register: Register
1343
1673
  registration: Registration
1344
1674
  reimburse: Reimburse
1345
1675
  reimbursed: Reimbursed
1346
- reimbursement: Reimbursement
1347
- reimbursement_mailer:
1348
- reimbursement_email:
1349
- days_to_send: You have %{days} days to send back any items awaiting exchange.
1350
- dear_customer: Dear %{name},
1351
- exchange_summary: Exchange Summary
1352
- instructions: Your reimbursement has been processed.
1353
- refund_summary: Refund Summary
1354
- store_team: "%{store_name} Team"
1355
- subject: Reimbursement Notification
1356
- thanks: Thank you for your business.
1357
- total_refunded: 'Total refunded: %{total}'
1358
- reimbursement_status: Reimbursement status
1359
- reimbursement_type: Reimbursement type
1360
- reimbursement_types: Reimbursement Types
1361
- reimbursements: Reimbursements
1362
1676
  reject: Reject
1363
1677
  rejected: Rejected
1364
1678
  remember_me: Remember me
@@ -1366,15 +1680,315 @@ en:
1366
1680
  remove_gift_card_on_completed_order_error: You can't remove the gift card after the order was placed
1367
1681
  rename: Rename
1368
1682
  report: Report
1369
- report_mailer:
1370
- greeting: Hi %{user_name},
1371
- report_done:
1372
- message: Please use the link below to download it.
1373
- subject: Your report %{report_name} is ready
1374
- thanks: Thank you,
1375
1683
  report_names:
1376
1684
  products_performance: Products performance
1377
1685
  sales_total: Sales total
1686
+ reporting:
1687
+ dimensions:
1688
+ cart_channel:
1689
+ description: The channel the cart was started in.
1690
+ label: Sales channel
1691
+ cart_status:
1692
+ description: Whether the cart converted into an order, was abandoned, or is still active.
1693
+ label: Cart status
1694
+ category:
1695
+ description: The category the sold product belongs to.
1696
+ label: Category
1697
+ channel:
1698
+ description: The channel the order came through.
1699
+ label: Sales channel
1700
+ company:
1701
+ description: The organisation the purchase was made for.
1702
+ label: Company
1703
+ completed_at:
1704
+ description: When the order was placed, bucketed by day, week or month in the store timezone.
1705
+ label: Date
1706
+ country:
1707
+ description: Country of the shipping address (ISO code).
1708
+ label: Shipping country
1709
+ coupon_code:
1710
+ description: The discount code redeemed, as recorded on the order.
1711
+ label: Coupon code
1712
+ customer:
1713
+ description: The customer who placed the order, by email.
1714
+ label: Customer
1715
+ customer_type:
1716
+ description: Whether the buyer had placed an earlier order at the time of this one.
1717
+ label: Customer type
1718
+ fulfillment_status:
1719
+ description: Fulfillment state of the order.
1720
+ label: Fulfillment status
1721
+ market:
1722
+ description: The market the order was placed in.
1723
+ label: Market
1724
+ moved_at:
1725
+ description: When stock moved, bucketed by day, week or month in the store timezone.
1726
+ label: Movement date
1727
+ moved_variant:
1728
+ description: The variant whose stock moved.
1729
+ label: Variant moved
1730
+ movement_kind:
1731
+ description: What happened to the stock.
1732
+ label: Movement type
1733
+ paid_at:
1734
+ description: When the payment was taken, bucketed by day, week or month in the store timezone.
1735
+ label: Payment date
1736
+ payment_method:
1737
+ description: The instrument the payment was taken through.
1738
+ label: Payment method
1739
+ payment_result:
1740
+ description: Whether an individual charge succeeded.
1741
+ label: Payment result
1742
+ payment_status:
1743
+ description: Payment state of the order.
1744
+ label: Payment status
1745
+ product:
1746
+ description: The product sold.
1747
+ label: Product
1748
+ promotion:
1749
+ description: The promotion the discount came from.
1750
+ label: Promotion
1751
+ seller:
1752
+ description: The seller who sold the item.
1753
+ label: Seller
1754
+ started_at:
1755
+ description: When the cart was started, bucketed by hour, day, week or month in the store timezone.
1756
+ label: Cart started
1757
+ stock_location:
1758
+ description: The location the stock moved in or out of.
1759
+ label: Stock location
1760
+ variant:
1761
+ description: The product variant (SKU) sold.
1762
+ label: Variant
1763
+ export:
1764
+ total: Total
1765
+ families:
1766
+ carts:
1767
+ description: Baskets started, converted and abandoned.
1768
+ label: Carts
1769
+ inventory:
1770
+ label: Inventory
1771
+ payments:
1772
+ label: Payments
1773
+ sales:
1774
+ label: Sales
1775
+ metrics:
1776
+ abandoned_value:
1777
+ description: What the abandoned carts were worth. Carts are deleted once they expire, so a range longer than the cart expiry window under-reports.
1778
+ label: Abandoned cart value
1779
+ average_order_value:
1780
+ description: Total sales divided by the number of orders.
1781
+ label: Average order value
1782
+ cart_conversion_rate:
1783
+ description: Share of carts started in the period that became orders. This counts baskets, not visits — it is not a storefront conversion rate.
1784
+ label: Cart conversion rate
1785
+ carts_abandoned:
1786
+ description: Carts that never completed and have been untouched for longer than the store abandoned-cart window.
1787
+ label: Abandoned carts
1788
+ carts_converted:
1789
+ description: Carts that became an order. A basket split across sellers counts once.
1790
+ label: Converted carts
1791
+ carts_started:
1792
+ description: Carts created in the period.
1793
+ label: Carts started
1794
+ commission:
1795
+ description: What the marketplace earned on these sales, including its tax.
1796
+ label: Commission
1797
+ cost_of_goods:
1798
+ description: What the goods sold cost you. Variants with no cost price count as zero.
1799
+ label: Cost of goods
1800
+ customer_lifetime_value:
1801
+ description: 'Everything a customer has ever spent, net of refunds. Ignores the report date range: the range selects which customers appear, not which of their orders count.'
1802
+ label: Customer lifetime value
1803
+ customers:
1804
+ description: Distinct customer emails that placed orders.
1805
+ label: Customers
1806
+ discounts:
1807
+ description: Discounts applied to the items sold.
1808
+ label: Discounts
1809
+ duties:
1810
+ description: Customs duties charged on the order.
1811
+ label: Duties
1812
+ fees:
1813
+ description: Shopper-visible fees other than duties.
1814
+ label: Fees
1815
+ gross_margin:
1816
+ description: Gross profit as a share of net sales.
1817
+ label: Gross margin
1818
+ gross_profit:
1819
+ description: Net sales less the cost of the goods sold.
1820
+ label: Gross profit
1821
+ gross_sales:
1822
+ description: Item prices multiplied by quantity, before discounts, returns and tax.
1823
+ label: Gross sales
1824
+ net_payments:
1825
+ description: Money taken less money refunded, by the instrument that moved it.
1826
+ label: Net payments
1827
+ net_sales:
1828
+ description: Gross sales less discounts and returns. What you actually sold.
1829
+ label: Net sales
1830
+ orders:
1831
+ description: Number of placed orders.
1832
+ label: Orders
1833
+ orders_lifetime:
1834
+ description: How many orders a customer has ever placed. Ignores the report date range, like customer lifetime value.
1835
+ label: Lifetime orders
1836
+ payments_count:
1837
+ description: Number of successful charges.
1838
+ label: Payments
1839
+ payments_failed:
1840
+ description: Number of charges that failed.
1841
+ label: Failed payments
1842
+ payments_received:
1843
+ description: Money successfully taken, counted when the payment was made.
1844
+ label: Payments received
1845
+ payments_refunded:
1846
+ description: Money refunded through these payments.
1847
+ label: Payments refunded
1848
+ promotion_discounts:
1849
+ description: Money discounted by promotions, shown as a positive amount.
1850
+ label: Promotion discounts
1851
+ promotion_redemptions:
1852
+ description: How many checkouts used a promotion. A basket split across sellers counts once.
1853
+ label: Promotion redemptions
1854
+ returns:
1855
+ description: Money refunded, counted in the period the refund was issued.
1856
+ label: Returns
1857
+ sell_through:
1858
+ description: Units shipped as a share of units received.
1859
+ label: Sell-through
1860
+ seller_payout:
1861
+ description: What the sellers are owed on these sales, after commission.
1862
+ label: Seller payout
1863
+ shipping:
1864
+ description: Delivery charged to the customer.
1865
+ label: Shipping
1866
+ taxes:
1867
+ description: Sum of additional and included taxes.
1868
+ label: Taxes
1869
+ total_sales:
1870
+ description: Net sales plus shipping, duties, fees and taxes. The money taken.
1871
+ label: Total sales
1872
+ units_adjusted:
1873
+ description: Units added or removed by stock corrections.
1874
+ label: Units adjusted
1875
+ units_received:
1876
+ description: Units booked into stock.
1877
+ label: Units received
1878
+ units_shipped:
1879
+ description: Units dispatched from stock.
1880
+ label: Units shipped
1881
+ units_sold:
1882
+ description: Sum of line item quantities.
1883
+ label: Units sold
1884
+ presets:
1885
+ last_12_months:
1886
+ label: Last 12 months
1887
+ last_30_days:
1888
+ label: Last 30 days
1889
+ last_4_weeks:
1890
+ label: Last 4 weeks
1891
+ last_7_days:
1892
+ label: Last 7 days
1893
+ last_90_days:
1894
+ label: Last 90 days
1895
+ last_month:
1896
+ label: Last month
1897
+ last_quarter:
1898
+ label: Last quarter
1899
+ last_week:
1900
+ label: Last week
1901
+ month_to_date:
1902
+ label: Month to date
1903
+ quarter_to_date:
1904
+ label: Quarter to date
1905
+ today:
1906
+ label: Today
1907
+ week_to_date:
1908
+ label: Week to date
1909
+ year_to_date:
1910
+ label: Year to date
1911
+ yesterday:
1912
+ label: Yesterday
1913
+ seeds:
1914
+ failed_payments:
1915
+ description: Charges that failed over the last four weeks, by payment method.
1916
+ name: Failed payments
1917
+ first_time_vs_returning:
1918
+ description: Sales split between first-time and returning buyers over the last four weeks.
1919
+ name: First-time vs returning
1920
+ net_sales_over_time:
1921
+ description: Weekly gross sales, discounts, returns and net sales over the last twelve months.
1922
+ name: Net sales over time
1923
+ orders_by_fulfillment_status:
1924
+ description: Order counts and sales grouped by fulfillment status over the last four weeks.
1925
+ name: Orders by fulfillment status
1926
+ orders_by_payment_status:
1927
+ description: Order counts and sales grouped by payment status over the last four weeks.
1928
+ name: Orders by payment status
1929
+ payments_by_method:
1930
+ description: What each payment method took, net of refunds, over the last four weeks.
1931
+ name: Payments by method
1932
+ payments_over_time:
1933
+ description: Daily payments taken and refunded over the last four weeks, compared with the previous period.
1934
+ name: Payments over time
1935
+ product_margin:
1936
+ description: Products ranked by gross profit over the last four weeks, with cost and margin.
1937
+ name: Product margin
1938
+ returns_over_time:
1939
+ description: Monthly refunds over the last twelve months, compared with the previous period.
1940
+ name: Returns over time
1941
+ sales_by_channel:
1942
+ description: Sales and orders per sales channel over the last four weeks.
1943
+ name: Sales by channel
1944
+ sales_by_country:
1945
+ description: Sales and orders by shipping country over the last four weeks.
1946
+ name: Sales by country
1947
+ sales_by_market:
1948
+ description: Sales and orders per market over the last four weeks.
1949
+ name: Sales by market
1950
+ sales_over_time:
1951
+ description: Daily sales, orders and average order value for the last four weeks, compared with the previous period.
1952
+ name: Sales over time
1953
+ sell_through_by_variant:
1954
+ description: Units shipped against units received per variant over the last four weeks.
1955
+ name: Sell-through by variant
1956
+ seller_payouts:
1957
+ description: What each seller earned last month, after the marketplace commission.
1958
+ name: Seller payouts
1959
+ stock_movement_over_time:
1960
+ description: Weekly units received and shipped over the last twelve months.
1961
+ name: Stock movement over time
1962
+ top_categories:
1963
+ description: Best-selling categories by net sales over the last four weeks.
1964
+ name: Top categories
1965
+ top_companies:
1966
+ description: Organisations ranked by spend over the last four weeks.
1967
+ name: Top companies
1968
+ top_customers:
1969
+ description: Customers ranked by spend over the last four weeks.
1970
+ name: Top customers
1971
+ top_products:
1972
+ description: Best-selling products by net sales over the last four weeks.
1973
+ name: Top products
1974
+ unassigned: Unassigned
1975
+ values:
1976
+ fulfillment_status:
1977
+ backorder: Backordered
1978
+ canceled: Canceled
1979
+ delivered: Delivered
1980
+ fulfilled: Fulfilled
1981
+ partial: Partially fulfilled
1982
+ unfulfilled: Unfulfilled
1983
+ payment_status:
1984
+ authorized: Authorized
1985
+ none: Unpaid
1986
+ overcharged: Overcharged
1987
+ paid: Paid
1988
+ partially_paid: Partially paid
1989
+ partially_refunded: Partially refunded
1990
+ refunded: Refunded
1991
+ voided: Voided
1378
1992
  reports: Reports
1379
1993
  required: "*"
1380
1994
  required_fields: required fields
@@ -1386,16 +2000,18 @@ en:
1386
2000
  resume: resume
1387
2001
  resumed: Resumed
1388
2002
  return: return
1389
- return_authorization: Return Authorization
1390
- return_authorization_canceled: Return authorization canceled
1391
- return_authorizations: Return Authorizations
1392
- return_item_inventory_unit_ineligible: Return item's inventory unit must be shipped
1393
- return_item_inventory_unit_reimbursed: Return item's inventory unit is already reimbursed
1394
- return_item_order_not_completed: Return item's order must be completed
1395
- return_item_rma_ineligible: Return item requires an RMA
1396
- return_item_time_period_ineligible: Return item is outside the eligible time period
1397
- return_items: Return Items
1398
- return_items_cannot_be_associated_with_multiple_orders: Return items cannot be associated with multiple orders.
2003
+ return_errors:
2004
+ outside_window: This order is outside the %{days}-day return window
2005
+ return_mailer:
2006
+ refunded_email:
2007
+ dear_customer: Dear %{name},
2008
+ instructions: Your return for order %{number} has been refunded.
2009
+ refund_summary: Refund Summary
2010
+ returned_items: Returned Items
2011
+ store_team: "%{store_name} Team"
2012
+ subject: Return Refunded
2013
+ thanks: Thank you for your business.
2014
+ total_refunded: 'Total refunded: %{total}'
1399
2015
  return_quantity: Return Quantity
1400
2016
  returned: Returned
1401
2017
  returns: Returns
@@ -1403,7 +2019,12 @@ en:
1403
2019
  review: Review
1404
2020
  risk: Risk
1405
2021
  risky: Risky
2022
+ role_cannot_be_deleted: This role is protected or still referenced by staff members or pending invitations and cannot be deleted
1406
2023
  role_id: Role ID
2024
+ role_immutable: cannot be changed on a protected role
2025
+ role_permissions_not_grantable_for_audience: 'cannot be granted to a %{audience} role: %{keys}'
2026
+ role_permissions_unknown: 'contains unknown permissions: %{keys}'
2027
+ role_resource_immutable: cannot be changed once the role exists
1407
2028
  roles: Roles
1408
2029
  row: Row
1409
2030
  rules: Rules
@@ -1419,13 +2040,87 @@ en:
1419
2040
  search_by: 'Search by:'
1420
2041
  security: Security
1421
2042
  seed:
1422
- shipping:
1423
- categories:
1424
- default: Default
1425
- digital: Digital
2043
+ commission_rates:
2044
+ marketplace_default: Marketplace default
2045
+ delivery_profiles:
2046
+ digital: Digital
2047
+ product_types:
2048
+ default: Default
2049
+ digital: Digital
1426
2050
  select: Select
1427
2051
  select_stock: Select stock
1428
2052
  selected_quantity_not_available: selected of %{item} is not available.
2053
+ seller: Seller
2054
+ seller_access_denied: You do not have access to this seller.
2055
+ seller_mailer:
2056
+ approved_email:
2057
+ action: Go to your dashboard
2058
+ heading: You're approved
2059
+ message: Your application to sell on %{store_name} has been approved. You can now list products and start taking orders.
2060
+ subject: You're approved to sell on %{store_name}
2061
+ get_in_touch: If you think this is a mistake, reply to this email or contact us at %{store_email}.
2062
+ greeting: Hi %{seller_name},
2063
+ rejected_email:
2064
+ heading: About your application
2065
+ message: Your application to sell on %{store_name} has not been accepted.
2066
+ subject: Your application to sell on %{store_name}
2067
+ suspended_email:
2068
+ heading: Your account has been suspended
2069
+ message: Selling on %{store_name} has been paused for your account. Your products and order history are unaffected.
2070
+ subject: Your %{store_name} account has been suspended
2071
+ seller_membership_required: This account does not belong to any seller.
2072
+ seller_payout_nothing_to_settle: This seller has nothing to settle right now.
2073
+ seller_requirement_types:
2074
+ accept_terms:
2075
+ description: Read and accept the marketplace terms
2076
+ name: Accept terms
2077
+ attestation:
2078
+ description: Confirm this yourself before you are approved
2079
+ name: Seller confirmation
2080
+ billing_address:
2081
+ description: The address your payouts are billed from
2082
+ name: Billing address
2083
+ complete_profile:
2084
+ description: Fill in the public profile shoppers see
2085
+ name: Complete profile
2086
+ delivery_method:
2087
+ description: Offer at least one way to ship your orders
2088
+ name: Delivery method
2089
+ document:
2090
+ description: Upload this document for the marketplace to review
2091
+ name: Document
2092
+ minimum_products:
2093
+ description: List at least this many products
2094
+ name: Minimum products
2095
+ operator_review:
2096
+ description: The marketplace checks this by hand before approving you
2097
+ name: Manual check
2098
+ package_type:
2099
+ description: Tell us the size and weight of the box you ship orders in
2100
+ name: Shipping box
2101
+ policy:
2102
+ description: Publish a policy with this name
2103
+ name: Seller policy
2104
+ required_custom_fields:
2105
+ description: Fill in the details the marketplace asks for
2106
+ name: Required custom fields
2107
+ returns_address:
2108
+ description: The address customer returns are sent to
2109
+ name: Returns address
2110
+ seller_requirements:
2111
+ file_required: A file is required for this requirement
2112
+ file_type_not_accepted: This requirement accepts %{types}
2113
+ incomplete: "%{name} is not complete"
2114
+ seller_submission_no_file: This submission has no attached file.
2115
+ seller_team_last_member: A seller needs at least one team member. Invite someone else before removing this one.
2116
+ seller_user_mailer:
2117
+ password_reset_email:
2118
+ action: Reset Password
2119
+ expiry_notice: This password reset link will expire shortly. If you did not request this, no action is needed.
2120
+ greeting: Hi %{name},
2121
+ ignore_notice: If you did not request a password reset, you can safely ignore this email. Your password will not be changed.
2122
+ instructions: We received a request to reset the password for your %{store_name} seller account. Click the button below to choose a new password.
2123
+ subject: Password Reset Instructions
1429
2124
  send_consumer_transactional_emails: Send Customer Transactional Emails
1430
2125
  seo: SEO
1431
2126
  seo_title: SEO Title
@@ -1453,12 +2148,24 @@ en:
1453
2148
  shipped: Shipped
1454
2149
  shipping: Shipping
1455
2150
  shipping_address: Shipping Address
1456
- shipping_categories: Shipping Categories
1457
- shipping_category: Shipping Category
1458
2151
  shipping_flat_rate_per_item: Flat rate per package item
1459
2152
  shipping_flat_rate_per_order: Flat rate
1460
2153
  shipping_flexible_rate: Flexible Rate per package item
1461
2154
  shipping_instructions: Shipping Instructions
2155
+ shipping_labels:
2156
+ errors:
2157
+ already_purchased: This parcel already has an active shipping label
2158
+ file_fetch_failed: The label file could not be fetched from the carrier (HTTP %{status})
2159
+ file_required: An uploaded label needs a file
2160
+ no_file_url: The carrier did not provide a file for this label
2161
+ not_refund_requested: Only a label awaiting the carrier's refund decision can be confirmed refunded
2162
+ not_refundable: Only a purchased label that has not been refunded can be refunded
2163
+ provider_has_no_labels: This delivery method's provider does not produce labels
2164
+ purchased_not_deletable: A purchased label is refunded, never deleted
2165
+ refund_failed: The carrier refused to refund this label
2166
+ return_closed: A return label can only be bought while the return is open
2167
+ tracking_number_required: An uploaded label needs its tracking number
2168
+ uploaded_not_refundable: An uploaded label was not bought through Spree and cannot be refunded — delete it instead
1462
2169
  shipping_method: Shipping Method
1463
2170
  shipping_methods: Shipping Methods
1464
2171
  shipping_policy: Shipping Policy
@@ -1493,18 +2200,56 @@ en:
1493
2200
  start: Start
1494
2201
  starts_at: Starts at
1495
2202
  state: State
1496
- state_changes: State Changes
1497
2203
  states: States
1498
2204
  states_required: States Required
1499
2205
  status: Status
1500
2206
  stock: Stock
1501
- stock_items: Stock Items
2207
+ stock_level:
2208
+ errors:
2209
+ adjustment_exclusive_with_count_on_hand: Send either a count on hand or an adjustment, not both
2210
+ adjustment_not_an_integer: The adjustment must be a whole number
2211
+ count_on_hand_not_an_integer: The count on hand must be a whole number
2212
+ stock_levels: Stock Levels
1502
2213
  stock_location: Stock Location
1503
2214
  stock_locations: Stock Locations
2215
+ stock_movement:
2216
+ reasons:
2217
+ correction: Correction
2218
+ count: Count
2219
+ damaged: Damaged
2220
+ inventory_feed: Inventory feed
2221
+ manual_adjustment: Manual adjustment
2222
+ promotion_or_donation: Promotion or donation
2223
+ received: Received
2224
+ return_restock: Return restock
2225
+ theft_or_loss: Theft or loss
1504
2226
  stock_movements: Stock Movements
2227
+ stock_receipt:
2228
+ errors:
2229
+ nothing_counted: A line on a delivery must count at least one unit, accepted or rejected
2230
+ rejection_reasons:
2231
+ damaged: Damaged
2232
+ expired: Expired
2233
+ other: Other
2234
+ wrong_item: Wrong item
1505
2235
  stock_transfer:
1506
2236
  errors:
2237
+ already_closed: This transfer has already been completed or cancelled
2238
+ in_transit_resolution_required: Choose whether the units come back to the source warehouse or are written off
2239
+ invalid_quantity: Every variant must move a quantity above zero
2240
+ invalid_receipt_quantity: The quantities for %{variant} cannot be negative
2241
+ item_not_on_document: One of the lines does not belong to this transfer
2242
+ locations_in_different_stores: must belong to the same store as the source location
1507
2243
  must_have_variant: You must add at least one variant
2244
+ no_items_received: No units were received
2245
+ not_draft: Only a draft transfer can be marked as ready to ship
2246
+ not_editable: Only a draft transfer can be edited
2247
+ not_in_transit: Only a transfer in transit can be received
2248
+ not_partially_received: Only a partially received transfer can be closed short
2249
+ not_ready_to_ship: Only a transfer that is ready to ship can go back to draft
2250
+ not_shippable: Only a draft or ready-to-ship transfer can be marked in transit
2251
+ only_draft_can_be_deleted: Only a draft transfer can be deleted — cancel it instead
2252
+ repeated_item: "%{variant} was listed more than once. Send one entry per line, with what this delivery brought"
1508
2253
  same_location: cannot be the same as the destination location
1509
2254
  variants_unavailable: Some variants are not available on %{stock}
1510
2255
  stop: Stop
@@ -1541,8 +2286,27 @@ en:
1541
2286
  supported_locales: Supported Locales
1542
2287
  tags: Tags
1543
2288
  tax: Tax
2289
+ tax_capabilities:
2290
+ oss_thresholds:
2291
+ description: Crossing the EU-wide cross-border threshold does not switch to destination-country rates automatically, because it depends on annual turnover across every destination rather than on any single order.
2292
+ label: Distance-selling thresholds
2293
+ proportional_delivery_tax:
2294
+ description: Delivery is taxed at the single rate its delivery method names, not split across the rates of the goods being delivered. A basket mixing tax rates collects the wrong amount on delivery.
2295
+ label: Proportional delivery tax
2296
+ reverse_charge:
2297
+ description: A VAT-registered business buyer is charged tax instead of receiving a zero-rated invoice. Their registration number is recorded but does not change the tax.
2298
+ label: EU reverse charge
2299
+ us_local_tax:
2300
+ description: County, city and district rates are not applied — only the rates configured per country or state. Sales into US states that levy local tax will be under-collected.
2301
+ label: US local tax
1544
2302
  tax_category: Tax Category
1545
2303
  tax_code: Tax Code
2304
+ tax_identifier_kinds:
2305
+ au_abn: Australian Business Number
2306
+ ch_vat: Swiss VAT
2307
+ eu_vat: EU VAT
2308
+ gb_vat: UK VAT
2309
+ us_ein: US EIN
1546
2310
  tax_inclusive: Tax inclusive
1547
2311
  tax_rates: Tax Rates
1548
2312
  taxes: Taxes
@@ -1597,7 +2361,6 @@ en:
1597
2361
  value: Value
1598
2362
  variant: Variant
1599
2363
  variants: Variants
1600
- vendor: Vendor
1601
2364
  verified: Verified
1602
2365
  verified_at: Verified at
1603
2366
  version: Version