spree_core 5.6.1 → 6.0.0.beta1

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