@spree/dashboard-core 0.13.1 → 1.0.0-beta.1

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 (125) hide show
  1. package/README.md +4 -0
  2. package/dist/vite/index.js +17 -3
  3. package/package.json +7 -7
  4. package/src/api-client.ts +643 -0
  5. package/src/components/address-form-dialog.test.ts +25 -0
  6. package/src/components/address-form-dialog.tsx +203 -79
  7. package/src/components/app-shell.tsx +171 -0
  8. package/src/components/app-sidebar.tsx +184 -27
  9. package/src/components/bulk-action-bar.tsx +89 -157
  10. package/src/components/country-combobox.tsx +69 -34
  11. package/src/components/country-state-fields.tsx +43 -11
  12. package/src/components/currency-select.tsx +81 -66
  13. package/src/components/export-button.tsx +62 -5
  14. package/src/components/file-upload-field.tsx +32 -10
  15. package/src/components/import-button.tsx +52 -27
  16. package/src/components/import-wizard-dialog.tsx +710 -0
  17. package/src/components/locale-select.tsx +70 -57
  18. package/src/components/media-picker-sheet.tsx +307 -0
  19. package/src/components/mobile-top-bar.tsx +75 -0
  20. package/src/components/nav-main.tsx +197 -27
  21. package/src/components/page-header.tsx +203 -61
  22. package/src/components/page-tabs.tsx +4 -1
  23. package/src/components/preferences-form.tsx +98 -4
  24. package/src/components/resource-combobox.tsx +52 -4
  25. package/src/components/resource-picker-sheet.tsx +209 -73
  26. package/src/components/resource-table.tsx +383 -127
  27. package/src/components/route-announcer.tsx +64 -0
  28. package/src/components/section-heading.tsx +95 -0
  29. package/src/components/settings-sidebar.tsx +290 -60
  30. package/src/components/sheet-top-bar.tsx +44 -0
  31. package/src/components/sidebar-search.tsx +83 -0
  32. package/src/components/sidebar-user.tsx +213 -0
  33. package/src/components/skip-link.tsx +36 -0
  34. package/src/components/store-date-picker.tsx +6 -2
  35. package/src/components/store-switcher.tsx +19 -14
  36. package/src/components/table-toolbar.tsx +1357 -440
  37. package/src/components/tag-combobox.tsx +12 -4
  38. package/src/components/top-bar-breadcrumbs.tsx +235 -0
  39. package/src/components/wizard-close-guard.test.ts +54 -0
  40. package/src/hooks/use-auto-collapse-sidebar.ts +57 -0
  41. package/src/hooks/use-command-palette.tsx +13 -0
  42. package/src/hooks/use-countries.test.ts +56 -0
  43. package/src/hooks/use-countries.ts +51 -5
  44. package/src/hooks/use-direct-upload.ts +16 -3
  45. package/src/hooks/use-export.ts +51 -16
  46. package/src/hooks/use-import.ts +241 -16
  47. package/src/hooks/use-package-types.ts +132 -0
  48. package/src/hooks/use-resource-mutation.ts +74 -13
  49. package/src/hooks/use-stock-locations.ts +131 -0
  50. package/src/hooks/use-switch-admin-locale.ts +2 -2
  51. package/src/hooks/use-visual-viewport-offset.ts +61 -0
  52. package/src/index.ts +45 -1
  53. package/src/lib/cancel-order-form.ts +27 -0
  54. package/src/lib/create-action-registry.ts +278 -0
  55. package/src/lib/date-presets.test.ts +86 -0
  56. package/src/lib/date-presets.ts +98 -0
  57. package/src/lib/delivery-form.ts +15 -0
  58. package/src/lib/docs.ts +32 -0
  59. package/src/lib/download.ts +13 -1
  60. package/src/lib/filters-to-ransack.test.ts +113 -0
  61. package/src/lib/filters-to-ransack.ts +22 -1
  62. package/src/lib/form-errors.ts +122 -10
  63. package/src/lib/form-mappers.ts +76 -0
  64. package/src/lib/fulfillment-items.test.ts +213 -0
  65. package/src/lib/fulfillment-items.ts +171 -0
  66. package/src/lib/i18n.ts +19 -11
  67. package/src/lib/import-types.ts +25 -0
  68. package/src/lib/label-upload-form.ts +22 -0
  69. package/src/lib/nav-registry.ts +71 -3
  70. package/src/lib/permissions.ts +46 -1
  71. package/src/lib/progress.ts +18 -0
  72. package/src/lib/query-keys.ts +13 -13
  73. package/src/lib/sample-csv.ts +9 -6
  74. package/src/lib/search-registry.ts +6 -2
  75. package/src/lib/settings-nav-registry.ts +104 -11
  76. package/src/lib/table-registry.ts +50 -0
  77. package/src/lib/type-labels.test.ts +68 -0
  78. package/src/lib/type-labels.ts +78 -0
  79. package/src/locales/ar.json +1889 -517
  80. package/src/locales/de.json +1884 -517
  81. package/src/locales/en.json +1886 -519
  82. package/src/locales/fr.json +1884 -517
  83. package/src/locales/pl.json +1913 -517
  84. package/src/locales/zh-CN.json +1883 -517
  85. package/src/pages/package-types.tsx +484 -0
  86. package/src/pages/settings-index.tsx +112 -0
  87. package/src/pages/stock-locations.tsx +674 -0
  88. package/src/plugin.ts +29 -0
  89. package/src/products/add-video-dialog.tsx +100 -0
  90. package/src/products/bulk-variants-dialog.tsx +301 -0
  91. package/src/products/carton-size.test.ts +51 -0
  92. package/src/products/carton-size.ts +20 -0
  93. package/src/products/currency-parts.ts +21 -0
  94. package/src/products/inventory-section.tsx +259 -0
  95. package/src/products/media-edit-sheet.tsx +336 -0
  96. package/src/products/normalize-customs.test.ts +39 -0
  97. package/src/products/normalize-customs.ts +27 -0
  98. package/src/products/normalize-money.test.ts +58 -0
  99. package/src/products/normalize-money.ts +73 -0
  100. package/src/products/normalize-quantity.test.ts +32 -0
  101. package/src/products/normalize-quantity.ts +31 -0
  102. package/src/products/product-bulk-price-editor.tsx +165 -0
  103. package/src/products/product-form-cards.tsx +1167 -0
  104. package/src/products/product-form-mapping.ts +212 -0
  105. package/src/products/product-schema.ts +318 -0
  106. package/src/products/product-types.ts +130 -0
  107. package/src/products/use-product-form-data.ts +273 -0
  108. package/src/products/variant-edit-sheet.tsx +725 -0
  109. package/src/products/variants-matrix.test.ts +154 -0
  110. package/src/products/variants-matrix.ts +244 -0
  111. package/src/products/variants-options-builder.tsx +571 -0
  112. package/src/products/variants-section.tsx +535 -0
  113. package/src/products/video-url.test.ts +71 -0
  114. package/src/products/video-url.ts +83 -0
  115. package/src/providers/auth-provider.tsx +70 -12
  116. package/src/providers/permission-provider.tsx +68 -28
  117. package/src/providers/sticky-header-provider.tsx +134 -0
  118. package/src/providers/store-provider.tsx +36 -3
  119. package/src/providers/tenant-provider.tsx +33 -0
  120. package/src/schemas/package-type.ts +95 -0
  121. package/src/schemas/stock-location.ts +126 -0
  122. package/src/tables/package-types.tsx +74 -0
  123. package/src/tables/stock-locations.tsx +124 -0
  124. package/src/vite/index.ts +40 -7
  125. package/src/components/top-bar.tsx +0 -209
@@ -1,366 +1,306 @@
1
1
  {
2
2
  "admin": {
3
+ "app_name": "Spree Admin",
4
+ "a11y": {
5
+ "breadcrumb": "Breadcrumb",
6
+ "breadcrumb_more": "More",
7
+ "bulk_actions": "Bulk actions",
8
+ "change_color": "Change color ({{value}})",
9
+ "clear_date": "Clear date",
10
+ "clear_selection": "Clear selection",
11
+ "collapse_all": "Collapse all",
12
+ "delete_image": "Delete image",
13
+ "drag_to_reorder": "Drag to reorder",
14
+ "edit_media": "Edit media",
15
+ "expand_all": "Expand all",
16
+ "hide_value": "Hide value",
17
+ "pick_color": "Pick a color",
18
+ "refetch": "Refetch",
19
+ "remove_image": "Remove image",
20
+ "remove_value": "Remove value",
21
+ "reorder": "Reorder",
22
+ "select_all_rows": "Select all rows on this page",
23
+ "select_row": "Select row",
24
+ "settings_navigation": "Settings navigation",
25
+ "show_value": "Show value",
26
+ "sidebar": "Sidebar",
27
+ "sidebar_description": "Displays the mobile sidebar.",
28
+ "stock_at_locations": "Stock at locations",
29
+ "store_switcher": "Switch store",
30
+ "toggle_sidebar": "Toggle sidebar",
31
+ "upload_image": "Upload image",
32
+ "user_menu": "User menu",
33
+ "view_image": "View image"
34
+ },
35
+ "account": {
36
+ "community": "Community",
37
+ "contact_support": "Contact Support",
38
+ "documentation": "Documentation",
39
+ "edit_profile": "Edit Profile",
40
+ "language": {
41
+ "label": "Language",
42
+ "update_failed": "Could not save your language preference. Please try again."
43
+ },
44
+ "log_out": "Log out",
45
+ "preferences": "Preferences",
46
+ "view_store": "View store"
47
+ },
3
48
  "actions": {
49
+ "actions_menu": "Actions",
4
50
  "add": "Add",
51
+ "adding": "Adding…",
5
52
  "apply": "Apply",
53
+ "back": "Back",
6
54
  "cancel": "Cancel",
7
55
  "clear": "Clear",
8
- "revoke": "Revoke",
9
56
  "close": "Close",
10
57
  "confirm": "Confirm",
11
- "done": "Done",
58
+ "copied": "Copied!",
59
+ "copy": "Copy",
12
60
  "create": "Create",
13
61
  "creating": "Creating…",
14
62
  "delete": "Delete",
15
63
  "deleting": "Deleting…",
16
64
  "discard": "Discard",
17
65
  "discard_changes": "Discard changes",
66
+ "done": "Done",
67
+ "duplicate": "Duplicate",
18
68
  "edit": "Edit",
19
- "view": "View",
69
+ "export": "Export",
70
+ "exporting": "Exporting…",
20
71
  "generate": "Generate",
72
+ "hide": "Hide",
73
+ "import": "Import",
74
+ "invite": "Invite",
75
+ "more_actions": "More actions",
21
76
  "remove": "Remove",
77
+ "remove_item": "Remove {{label}}",
78
+ "remove_rule": "Remove rule",
79
+ "reset": "Reset",
80
+ "revoke": "Revoke",
22
81
  "save": "Save",
23
82
  "saving": "Saving…",
24
83
  "search": "Search",
25
- "sign_in": "Sign in",
26
- "signing_in": "Signing in…",
27
- "view_all": "View all",
28
- "view_details": "View details",
29
- "copy": "Copy",
30
- "copied": "Copied!",
31
- "export": "Export",
32
- "exporting": "Exporting…",
33
- "import": "Import",
34
- "invite": "Invite",
35
84
  "send": "Send",
36
85
  "send_invitation": "Send invitation",
37
86
  "sending": "Sending…",
38
- "reset": "Reset",
39
87
  "show": "Show",
40
- "hide": "Hide",
41
- "back": "Back",
42
- "actions_menu": "Actions",
43
- "more_actions": "More actions",
44
- "adding": "Adding…"
88
+ "sign_in": "Sign in",
89
+ "signing_in": "Signing in…",
90
+ "view": "View",
91
+ "view_all": "View all",
92
+ "view_details": "View details"
45
93
  },
46
- "row_actions": {
47
- "menu_label": "Open actions",
48
- "edit": "Edit",
49
- "clone": "Duplicate",
50
- "delete": "Delete"
94
+ "address": {
95
+ "not_located_yet": "The map appears once this address has been located."
51
96
  },
52
- "a11y": {
53
- "breadcrumb": "Breadcrumb",
54
- "toggle_sidebar": "Toggle sidebar",
55
- "settings_navigation": "Settings navigation",
56
- "user_menu": "User menu",
57
- "drag_to_reorder": "Drag to reorder",
58
- "reorder": "Reorder",
59
- "select_all_rows": "Select all rows on this page",
60
- "select_row": "Select row",
61
- "clear_date": "Clear date",
62
- "clear_selection": "Clear selection",
63
- "expand_all": "Expand all",
64
- "collapse_all": "Collapse all",
65
- "refetch": "Refetch",
66
- "hide_value": "Hide value",
67
- "show_value": "Show value",
68
- "pick_color": "Pick a color",
69
- "change_color": "Change color ({{value}})",
70
- "stock_at_locations": "Stock at locations",
71
- "edit_media": "Edit media",
72
- "delete_image": "Delete image",
73
- "remove_image": "Remove image",
74
- "view_image": "View image",
75
- "upload_image": "Upload image",
76
- "remove_value": "Remove value",
77
- "breadcrumb_more": "More",
78
- "sidebar": "Sidebar",
79
- "sidebar_description": "Displays the mobile sidebar.",
80
- "store_switcher": "Switch store"
97
+ "address_book": {
98
+ "default_billing": "Default billing",
99
+ "default_shipping": "Default shipping",
100
+ "set_default_billing": "Set as default billing",
101
+ "set_default_shipping": "Set as default shipping"
102
+ },
103
+ "auth": {
104
+ "back_to_login": "Back to sign in",
105
+ "forgot_password": {
106
+ "error": "Something went wrong. Please try again.",
107
+ "link": "Forgot password?",
108
+ "sending": "Sending…",
109
+ "sent_subtitle": "If an account exists for that email, a password reset link is on its way.",
110
+ "sent_title": "Check your email",
111
+ "submit": "Send reset link",
112
+ "subtitle": "Enter your email and we'll send you a link to reset your password.",
113
+ "title": "Reset your password"
114
+ },
115
+ "login": {
116
+ "account_not_provisioned": "This account is not authorized for this store. Ask an administrator for an invitation.",
117
+ "divider": "or",
118
+ "invalid_oauth_state": "That sign-in session expired or was invalid. Please start signing in again.",
119
+ "providers_error_message": "We could not load the sign-in options. Please refresh the page or contact your administrator.",
120
+ "providers_error_title": "Sign-in is unavailable",
121
+ "rate_limit_exceeded": "Too many sign-in attempts. Please wait a moment and try again.",
122
+ "sso_button": "Continue with {{provider}}",
123
+ "sso_failed": "We could not sign you in with that provider. Please try again.",
124
+ "subtitle": "Sign in to your admin account",
125
+ "title": "Welcome back"
126
+ },
127
+ "logout": "Sign out",
128
+ "reset_password": {
129
+ "confirm_password_label": "Confirm new password",
130
+ "error": "Something went wrong. Please try again.",
131
+ "missing_token_message": "This password reset link is missing its token.",
132
+ "missing_token_title": "Invalid reset link",
133
+ "new_password_label": "New password",
134
+ "request_new_link": "Request a new reset link",
135
+ "submit": "Reset password",
136
+ "submitting": "Resetting…",
137
+ "subtitle": "Enter a new password for your admin account.",
138
+ "title": "Choose a new password",
139
+ "token_invalid": "This reset link is invalid or has expired. Request a new one."
140
+ }
141
+ },
142
+ "color_picker": {
143
+ "no_color": "No color"
81
144
  },
82
145
  "common": {
146
+ "active": "Active",
147
+ "adjust_search_or_filters": "Try adjusting your search or filters",
148
+ "all": "All",
149
+ "and": "and",
150
+ "are_you_sure": "Are you sure?",
151
+ "cancel": "Cancel",
152
+ "clear": "Clear",
153
+ "comma_separated_hint": "Separate values with commas.",
154
+ "default": "Default",
155
+ "delete_confirm_message": "Are you sure? This action cannot be undone.",
156
+ "deleted": "Deleted",
157
+ "empty_value": "—",
158
+ "inactive": "Inactive",
159
+ "learn_more": "Learn more",
160
+ "skip_to_content": "Skip to content",
83
161
  "loading": "Loading…",
84
- "searching": "Searching…",
162
+ "next": "Next",
163
+ "no": "No",
85
164
  "no_results": "No results",
165
+ "combobox_more_results_one": "1 more result not shown. Type to search.",
166
+ "combobox_more_results_other": "{{count}} more results not shown. Type to search.",
167
+ "none": "None",
86
168
  "optional": "Optional",
87
- "required": "Required",
88
- "yes": "Yes",
89
- "no": "No",
90
169
  "or": "or",
91
- "and": "and",
92
- "all": "All",
93
- "none": "None",
94
170
  "page_of": "Page {{page}} of {{total}}",
95
- "prev": "Prev",
96
- "next": "Next",
97
- "select_placeholder": "Select…",
98
- "search_placeholder": "Search…",
99
171
  "pick_date": "Pick a date",
100
- "comma_separated_hint": "Separate values with commas.",
101
- "are_you_sure": "Are you sure?",
172
+ "prev": "Prev",
173
+ "prices": "Prices",
102
174
  "remove_question": "Remove?",
103
- "deleted": "Deleted",
175
+ "required": "Required",
176
+ "retry": "Try again",
177
+ "search_placeholder": "Search…",
178
+ "searching": "Searching…",
179
+ "select_placeholder": "Select…",
104
180
  "unsaved_changes": "You have unsaved changes.",
105
- "prices": "Prices",
106
- "delete_confirm_message": "Are you sure? This action cannot be undone.",
107
- "adjust_search_or_filters": "Try adjusting your search or filters",
108
- "default": "Default",
109
- "cancel": "Cancel",
110
- "empty_value": "—"
111
- },
112
- "color_picker": {
113
- "no_color": "No color"
114
- },
115
- "messages": {
116
- "saved": "Saved",
117
- "created": "Created",
118
- "updated": "Updated",
119
- "removed": "Removed",
120
- "settings_updated": "Settings updated",
121
- "store_settings_updated": "Store settings updated",
122
- "invitation_sent": "Invitation sent",
123
- "invitation_resent": "Invitation resent",
124
- "invitation_accepted": "Welcome to Spree",
125
- "key_created": "Key created",
126
- "key_updated": "Key updated",
127
- "key_revoked": "Key revoked",
128
- "key_deleted": "Key deleted",
129
- "product_saved": "Product saved",
130
- "product_created": "Product created",
131
- "product_deleted": "Product deleted",
132
- "order_saved": "Order saved",
133
- "customer_saved": "Customer saved",
134
- "customer_deleted": "Customer deleted",
135
- "payment_method_saved": "Payment method saved",
136
- "tax_category_saved": "Tax category saved",
137
- "stock_location_saved": "Stock location saved",
138
- "promotion_created": "Promotion created",
139
- "promotion_saved": "Promotion saved",
140
- "promotion_deleted": "Promotion deleted",
141
- "gift_card_created": "Gift card created",
142
- "address_saved": "Address saved",
143
- "address_removed": "Address removed",
144
- "store_credit_saved": "Store credit saved",
145
- "store_credit_removed": "Store credit removed",
146
- "copied_to_clipboard": "Copied to clipboard",
147
- "profile_updated": "Profile updated"
148
- },
149
- "errors": {
150
- "required": "This field is required",
151
- "generic": "Something went wrong",
152
- "unexpected": "An unexpected error occurred",
153
- "failed_to_load": "Failed to load",
154
- "failed_to_save": "Failed to save",
155
- "failed_to_update": "Failed to update",
156
- "failed_to_create": "Failed to create",
157
- "failed_to_delete": "Failed to delete",
158
- "failed_to_load_customer": "Failed to load customer",
159
- "failed_to_load_order": "Failed to load order",
160
- "failed_to_load_product": "Failed to load product",
161
- "failed_to_send_invitation": "Failed to send invitation",
162
- "failed_to_revoke_key": "Failed to revoke key",
163
- "failed_to_update_store": "Failed to update store settings",
164
- "failed_to_update_staff": "Failed to update staff",
165
- "network": "Network error — please retry",
166
- "unauthorized": "You don't have permission to do that",
167
- "not_found": "Not found",
168
- "failed_to_update_profile": "Failed to update profile",
169
- "unexpected_retry": "An unexpected error occurred. Please try again."
181
+ "yes": "Yes"
170
182
  },
171
- "auth": {
172
- "login": {
173
- "title": "Welcome back",
174
- "subtitle": "Sign in to your admin account"
183
+ "components": {
184
+ "address_block": {
185
+ "not_provided": "Not provided"
175
186
  },
176
- "forgot_password": {
177
- "link": "Forgot password?",
178
- "title": "Reset your password",
179
- "subtitle": "Enter your email and we'll send you a link to reset your password.",
180
- "submit": "Send reset link",
181
- "sending": "Sending…",
182
- "sent_title": "Check your email",
183
- "sent_subtitle": "If an account exists for that email, a password reset link is on its way.",
184
- "error": "Something went wrong. Please try again."
187
+ "address_form_dialog": {
188
+ "description": "Update the address details.",
189
+ "edit_title": "Edit Address"
185
190
  },
186
- "reset_password": {
187
- "title": "Choose a new password",
188
- "subtitle": "Enter a new password for your admin account.",
189
- "new_password_label": "New password",
190
- "confirm_password_label": "Confirm new password",
191
- "submit": "Reset password",
192
- "submitting": "Resetting…",
193
- "token_invalid": "This reset link is invalid or has expired. Request a new one.",
194
- "error": "Something went wrong. Please try again.",
195
- "missing_token_title": "Invalid reset link",
196
- "missing_token_message": "This password reset link is missing its token.",
197
- "request_new_link": "Request a new reset link"
191
+ "bulk_action_bar": {
192
+ "default_error": "Bulk operation failed",
193
+ "default_success": "Updated {n} records",
194
+ "selected": "{{count}} selected"
198
195
  },
199
- "logout": "Sign out",
200
- "back_to_login": "Back to sign in"
201
- },
202
- "fields": {
203
- "name": {
204
- "label": "Name"
196
+ "channel_select": {
197
+ "placeholder": "Select a sales channel",
198
+ "all_channels": "All channels"
205
199
  },
206
- "label": {
207
- "label": "Label"
208
- },
209
- "description": {
210
- "label": "Description"
211
- },
212
- "code": {
213
- "label": "Code"
214
- },
215
- "email": {
216
- "label": "Email"
217
- },
218
- "password": {
219
- "label": "Password"
220
- },
221
- "first_name": {
222
- "label": "First name"
223
- },
224
- "last_name": {
225
- "label": "Last name"
226
- },
227
- "phone": {
228
- "label": "Phone"
229
- },
230
- "company": {
231
- "label": "Company"
232
- },
233
- "address1": {
234
- "label": "Address line 1"
235
- },
236
- "address2": {
237
- "label": "Address line 2"
238
- },
239
- "city": {
240
- "label": "City"
241
- },
242
- "zipcode": {
243
- "label": "Postal code"
244
- },
245
- "country_iso": {
246
- "label": "Country"
247
- },
248
- "state_abbr": {
249
- "label": "State / Province"
250
- },
251
- "state_name": {
252
- "label": "State / Province"
253
- },
254
- "starts_at": {
255
- "label": "Starts"
256
- },
257
- "ends_at": {
258
- "label": "Ends"
259
- },
260
- "expires_at": {
261
- "label": "Expires"
262
- },
263
- "active": {
264
- "label": "Active"
265
- },
266
- "kind": {
267
- "label": "Kind"
268
- },
269
- "amount": {
270
- "label": "Amount"
271
- },
272
- "currency": {
273
- "label": "Currency"
274
- },
275
- "quantity": {
276
- "label": "Quantity"
277
- },
278
- "slug": {
279
- "label": "Slug"
280
- },
281
- "meta_title": {
282
- "label": "Meta title"
283
- },
284
- "meta_description": {
285
- "label": "Meta description"
286
- },
287
- "status": {
288
- "label": "Status"
289
- },
290
- "created_at": {
291
- "label": "Created at"
292
- },
293
- "updated_at": {
294
- "label": "Updated at"
295
- },
296
- "completed_at": {
297
- "label": "Completed at"
298
- },
299
- "total": {
300
- "label": "Total"
200
+ "command_palette": {
201
+ "create": {
202
+ "heading": "Create",
203
+ "label": "New {{noun}}",
204
+ "nouns": {
205
+ "catalog": "Catalog",
206
+ "catalog_plural": "Catalogs",
207
+ "category": "Category",
208
+ "category_plural": "Categories",
209
+ "collection": "Collection",
210
+ "collection_plural": "Collections",
211
+ "company": "Company",
212
+ "company_plural": "Companies",
213
+ "customer": "Customer",
214
+ "customer_group": "Customer group",
215
+ "customer_group_plural": "Customer groups",
216
+ "customer_plural": "Customers",
217
+ "discount": "Discount",
218
+ "discount_plural": "Discounts",
219
+ "gift_card": "Gift card",
220
+ "gift_card_plural": "Gift cards",
221
+ "option_type": "Option",
222
+ "option_type_plural": "Options",
223
+ "order": "Order",
224
+ "order_plural": "Orders",
225
+ "price_list": "Price list",
226
+ "price_list_plural": "Price lists",
227
+ "product": "Product",
228
+ "product_plural": "Products",
229
+ "promotion": "Promotion",
230
+ "promotion_plural": "Promotions",
231
+ "seller": "Seller",
232
+ "seller_plural": "Sellers",
233
+ "stock_location": "Location",
234
+ "stock_location_plural": "Locations",
235
+ "stock_transfer": "Transfer",
236
+ "stock_transfer_plural": "Transfers"
237
+ },
238
+ "verbs": "add,new,create"
239
+ },
240
+ "description": "Search across products, orders, and customers, or run a command.",
241
+ "empty_hint": "Type to search, or pick a command below.",
242
+ "goto": "Go to",
243
+ "goto_label": "Go to {{label}}",
244
+ "hints": {
245
+ "close": "close",
246
+ "esc_key": "esc",
247
+ "navigate": "navigate",
248
+ "select": "select"
249
+ },
250
+ "no_results": "No results for \"{{query}}\".",
251
+ "placeholder": "Search products, orders, customers…",
252
+ "search_label": "Search anything…",
253
+ "title": "Search and commands"
301
254
  },
302
- "subtotal": {
303
- "label": "Subtotal"
255
+ "confirm_dialog": {
256
+ "title": "Are you sure?"
304
257
  },
305
- "tax": {
306
- "label": "Tax"
258
+ "country_combobox": {
259
+ "empty": "No countries found",
260
+ "placeholder": "Select a country",
261
+ "search_placeholder": "Search countries…"
307
262
  },
308
- "shipping": {
309
- "label": "Shipping"
263
+ "currency_select": {
264
+ "empty": "No currencies found",
265
+ "placeholder": "Select a currency",
266
+ "search_placeholder": "Search currencies…"
310
267
  },
311
- "discount": {
312
- "label": "Discount"
268
+ "custom_fields": {
269
+ "json_placeholder": "{ \"example\": \"value\" }"
313
270
  },
314
- "login": {
315
- "email": {
316
- "placeholder": "admin@example.com"
271
+ "date_range_picker": {
272
+ "presets": {
273
+ "last_14_days": "Last 14 days",
274
+ "last_30_days": "Last 30 days",
275
+ "last_7_days": "Last 7 days",
276
+ "last_90_days": "Last 90 days",
277
+ "this_month": "This month",
278
+ "year_to_date": "Year to date"
317
279
  }
318
280
  },
319
- "address": {
320
- "label": {
321
- "label": "Label",
322
- "placeholder": "e.g. Home, Office"
323
- },
324
- "address1": {
325
- "label": "Address"
326
- },
327
- "address2": {
328
- "label": "Apartment, suite, etc."
329
- },
330
- "postal_code": {
331
- "label": "Postal code"
281
+ "error_state": {
282
+ "retry": "Try again"
283
+ },
284
+ "export_button": {
285
+ "all": {
286
+ "description": "Ignore filters and export everything in this store.",
287
+ "title": "All records"
332
288
  },
333
- "is_default_billing": {
334
- "label": "Default billing address"
289
+ "description": "We'll prepare your CSV in the background and download it as soon as it's ready. If it takes a while you'll get an email link too.",
290
+ "downloaded": "Export downloaded",
291
+ "email_fallback": "Still processing — we'll email you a link when it's ready.",
292
+ "failed": "Export failed: {{message}}",
293
+ "filtered": {
294
+ "count_few": "Export the {{formattedCount}} records matching your current filter.",
295
+ "count_many": "Export the {{formattedCount}} records matching your current filter.",
296
+ "count_one": "Export the {{formattedCount}} record matching your current filter.",
297
+ "count_other": "Export the {{formattedCount}} records matching your current filter.",
298
+ "no_filter": "No filter active — same as exporting all records.",
299
+ "title": "Current filter",
300
+ "unknown_count": "Export the records matching your current filter."
335
301
  },
336
- "is_default_shipping": {
337
- "label": "Default shipping address"
338
- }
339
- },
340
- "media": {
341
- "alt": {
342
- "label": "Alt text",
343
- "placeholder": "Describe the image for accessibility and SEO"
344
- }
345
- },
346
- "storefront_visible": {
347
- "label": "Visible on storefront",
348
- "help": "When off, only admin staff see this option (back-office orders, manual entry)."
349
- },
350
- "pretty_name": {
351
- "label": "Full name"
352
- },
353
- "permalink": {
354
- "label": "Permalink"
355
- }
356
- },
357
- "components": {
358
- "currency_select": {
359
- "placeholder": "Select a currency",
360
- "empty": "No currencies found"
361
- },
362
- "channel_select": {
363
- "placeholder": "Select a sales channel"
302
+ "preparing": "Preparing export…",
303
+ "title": "Export to CSV"
364
304
  },
365
305
  "file_upload": {
366
306
  "attached": "Attached file",
@@ -371,263 +311,1690 @@
371
311
  "upload_failed": "Upload failed: {{message}}",
372
312
  "uploading": "Uploading…"
373
313
  },
314
+ "import_button": {
315
+ "delimiter_label": "Column separator",
316
+ "delimiters": {
317
+ "comma": "Comma (,)",
318
+ "pipe": "Pipe (|)",
319
+ "semicolon": "Semicolon (;)",
320
+ "tab": "Tab"
321
+ },
322
+ "description": "Upload a CSV file. You'll match its columns to fields in the next step.",
323
+ "download_example": "Download an example CSV",
324
+ "download_template": "Download CSV template",
325
+ "drop_label": "Drop a CSV file here, or click to browse",
326
+ "example_failed": "Example download failed: {{message}}",
327
+ "failed": "Import failed: {{message}}",
328
+ "submit": "Continue",
329
+ "template_failed": "Template download failed: {{message}}",
330
+ "title": "Import from CSV"
331
+ },
332
+ "json_preview_drawer": {
333
+ "collapse_depth": "Collapse depth",
334
+ "copied": "Copied",
335
+ "copy_all": "Copy all",
336
+ "depth": "Depth {{level}}",
337
+ "failed_to_load": "Failed to load: {{message}}",
338
+ "open_raw": "Open raw response",
339
+ "raw": "Raw",
340
+ "title": "JSON"
341
+ },
374
342
  "locale_select": {
375
- "placeholder": "Select a locale",
343
+ "empty": "No locales found",
376
344
  "multi_placeholder": "Add locales…",
377
- "empty": "No locales found"
345
+ "placeholder": "Select a locale",
346
+ "search_placeholder": "Search languages…"
378
347
  },
379
- "country_combobox": {
380
- "search_placeholder": "Search countries…",
381
- "empty": "No countries found"
348
+ "market_combobox": {
349
+ "empty": "No markets match",
350
+ "search_placeholder": "Search markets…"
382
351
  },
383
- "state_combobox": {
384
- "search_placeholder": "Search states…",
385
- "empty": "No states found"
352
+ "media": {
353
+ "remove_tooltip": "Remove image"
386
354
  },
387
- "command_palette": {
388
- "placeholder": "Search products, orders, customers…",
389
- "title": "Search and commands",
390
- "description": "Search across products, orders, and customers, or run a command.",
391
- "no_results": "No results for \"{{query}}\".",
392
- "empty_hint": "Type to search, or pick a command below.",
393
- "goto": "Go to",
394
- "goto_label": "Go to {{label}}"
355
+ "media_preview": {
356
+ "video_title": "Video preview"
395
357
  },
396
- "bulk_action_bar": {
397
- "selected": "{{count}} selected",
398
- "default_success": "Updated {n} records",
399
- "default_error": "Bulk operation failed"
358
+ "metadata_card": {
359
+ "empty_description": "Apps and integrations populate this automatically.",
360
+ "empty_title": "No metadata",
361
+ "title": "Metadata"
362
+ },
363
+ "page_header": {
364
+ "copy_id": "Copy ID",
365
+ "copy_number": "Copy number",
366
+ "view_as_json": "View as JSON"
367
+ },
368
+ "pagination": {
369
+ "first_page": "Go to first page",
370
+ "last_page": "Go to last page",
371
+ "next_page": "Go to next page",
372
+ "previous_page": "Go to previous page",
373
+ "range": "{{from}}–{{to}} of {{count}}",
374
+ "rows_per_page": "Rows per page"
400
375
  },
401
376
  "preferences_form": {
402
377
  "comma_separated_hint": "Separate values with commas.",
403
378
  "tiers": {
404
- "label": "Tiers",
379
+ "add_tier": "Add tier",
380
+ "empty": "No tiers yet. The base rate applies until you add a tier.",
405
381
  "header_threshold": "Order total ≥",
406
382
  "header_value": "Discount",
407
- "empty": "No tiers yet. The base rate applies until you add a tier.",
408
- "add_tier": "Add tier",
383
+ "label": "Tiers",
409
384
  "remove_tier": "Remove tier"
410
385
  },
411
386
  "unlimited": "Unlimited"
412
387
  },
413
- "confirm_dialog": {
414
- "title": "Are you sure?"
388
+ "rich_text_editor": {
389
+ "blockquote": "Blockquote",
390
+ "bold": "Bold",
391
+ "bullet_list": "Bullet list",
392
+ "image": "Image",
393
+ "italic": "Italic",
394
+ "link": "Link",
395
+ "link_url_prompt": "URL",
396
+ "ordered_list": "Ordered list",
397
+ "placeholder": "Write something…",
398
+ "redo": "Redo",
399
+ "strikethrough": "Strikethrough",
400
+ "undo": "Undo"
401
+ },
402
+ "secret_input": {
403
+ "new_value_placeholder": "New value",
404
+ "replace": "Replace",
405
+ "stored_help": "Stored on the server. Click Replace to rotate."
406
+ },
407
+ "state_combobox": {
408
+ "empty": "No states found",
409
+ "placeholder": "Select a state",
410
+ "search_placeholder": "Search states…"
415
411
  },
416
412
  "table_toolbar": {
417
- "search_placeholder": "Search…",
418
- "filter_select_placeholder": "Select…",
419
- "filter_date_placeholder": "Pick a date",
420
- "filter_text_placeholder": "Filter…",
421
- "filters_button": "Filters",
422
- "sort_by": "Sort by",
423
- "sort_tooltip": "Sort",
424
- "order": "Order",
413
+ "add_filter": "Add filter",
425
414
  "ascending": "Ascending",
426
- "descending": "Descending",
427
- "columns_tooltip": "Columns",
428
- "visible_columns": "Visible columns",
429
- "reset_to_default": "Reset to default",
430
415
  "clear_all": "Clear all",
431
- "no_filters": "No filters. Click below to add one.",
432
- "add_filter": "Add filter",
416
+ "columns_tooltip": "Columns",
417
+ "date_presets": {
418
+ "all": "Any date",
419
+ "custom": "Custom",
420
+ "last_30_days": "Last 30 days",
421
+ "last_7_days": "Last 7 days",
422
+ "last_month": "Last month",
423
+ "this_month": "This month",
424
+ "today": "Today"
425
+ },
426
+ "date_range_end": "End",
427
+ "date_range_start": "Start",
428
+ "descending": "Descending",
429
+ "filter_by": "Filter by…",
430
+ "filter_date_placeholder": "Pick a date",
431
+ "filter_select_placeholder": "Select…",
432
+ "filter_text_placeholder": "Filter…",
433
+ "filter_to_placeholder": "Filter to…",
434
+ "more_conditions": "More conditions",
433
435
  "operators": {
436
+ "after": "after",
437
+ "before": "before",
434
438
  "contains": "contains",
435
- "equals": "equals",
436
439
  "does_not_equal": "does not equal",
437
- "starts_with": "starts with",
438
440
  "ends_with": "ends with",
439
- "is_set": "is set",
440
- "is_not_set": "is not set",
441
+ "equals": "equals",
442
+ "greater_than": "greater than",
443
+ "greater_than_or_equal": "greater than or equal",
441
444
  "is": "is",
442
- "is_not": "is not",
443
445
  "is_any_of": "is any of",
444
446
  "is_none_of": "is none of",
445
- "greater_than": "greater than",
446
- "greater_than_or_equal": "greater than or equal",
447
+ "is_not": "is not",
448
+ "is_not_set": "is not set",
449
+ "is_set": "is set",
447
450
  "less_than": "less than",
448
451
  "less_than_or_equal": "less than or equal",
449
- "after": "after",
450
- "before": "before",
451
452
  "on_or_after": "on or after",
452
- "on_or_before": "on or before"
453
- }
453
+ "on_or_before": "on or before",
454
+ "starts_with": "starts with"
455
+ },
456
+ "order": "Order",
457
+ "remove_filter": "Remove filter",
458
+ "reset_to_default": "Reset to default",
459
+ "search_placeholder": "Search…",
460
+ "sort_by": "Sort by",
461
+ "sort_tooltip": "Sort",
462
+ "visible_columns": "Visible columns"
454
463
  },
455
- "media": {
456
- "remove_tooltip": "Remove image"
464
+ "tag_combobox": {
465
+ "create_option": "Create \"{{tag}}\"",
466
+ "empty_hint": "Type and press Enter to create a tag",
467
+ "placeholder": "Type to add tags…"
457
468
  },
458
- "custom_fields": {
459
- "json_placeholder": "{ \"example\": \"value\" }"
469
+ "theme_toggle": {
470
+ "dark": "Dark",
471
+ "label": "Theme",
472
+ "light": "Light",
473
+ "system": "System"
460
474
  },
461
- "export_button": {
462
- "title": "Export to CSV",
463
- "description": "We'll prepare your CSV in the background and download it as soon as it's ready. If it takes a while you'll get an email link too.",
464
- "filtered": {
465
- "title": "Current filter",
466
- "no_filter": "No filter active — same as exporting all records.",
467
- "unknown_count": "Export the records matching your current filter.",
468
- "count_one": "Export the {{formattedCount}} record matching your current filter.",
469
- "count_other": "Export the {{formattedCount}} records matching your current filter.",
470
- "count_few": "Export the {{formattedCount}} records matching your current filter.",
471
- "count_many": "Export the {{formattedCount}} records matching your current filter."
475
+ "wizard": {
476
+ "discard_cancel": "Keep editing",
477
+ "discard_confirm": "Discard",
478
+ "discard_message": "Everything you have filled in so far will be lost. This cannot be undone.",
479
+ "discard_title": "Discard this draft?"
480
+ }
481
+ },
482
+ "custom_field_definitions": {
483
+ "errors": {
484
+ "failed_to_create": "Failed to create custom field definition",
485
+ "failed_to_delete": "Failed to delete custom field definition",
486
+ "failed_to_update": "Failed to update custom field definition"
487
+ },
488
+ "messages": {
489
+ "created": "Custom field definition created",
490
+ "deleted": "Custom field definition deleted",
491
+ "updated": "Custom field definition updated"
492
+ }
493
+ },
494
+ "errors": {
495
+ "failed_to_create": "Failed to create",
496
+ "failed_to_delete": "Failed to delete",
497
+ "failed_to_load": "Failed to load",
498
+ "failed_to_load_customer": "Failed to load customer",
499
+ "failed_to_load_order": "Failed to load order",
500
+ "failed_to_load_product": "Failed to load product",
501
+ "failed_to_revoke_key": "Failed to revoke key",
502
+ "failed_to_save": "Failed to save",
503
+ "failed_to_send_invitation": "Failed to send invitation",
504
+ "failed_to_update": "Failed to update",
505
+ "failed_to_update_profile": "Failed to update profile",
506
+ "failed_to_update_staff": "Failed to update staff",
507
+ "failed_to_update_store": "Failed to update store settings",
508
+ "generic": "Something went wrong",
509
+ "label_download_failed": "Could not download the label",
510
+ "network": "Network error — please retry",
511
+ "not_found": "Not found",
512
+ "required": "This field is required",
513
+ "unauthorized": "You don't have permission to do that",
514
+ "unexpected": "An unexpected error occurred",
515
+ "unexpected_retry": "An unexpected error occurred. Please try again."
516
+ },
517
+ "fields": {
518
+ "active": {
519
+ "label": "Active"
520
+ },
521
+ "address": {
522
+ "address1": {
523
+ "label": "Address"
472
524
  },
473
- "all": {
474
- "title": "All records",
475
- "description": "Ignore filters and export everything in this store."
525
+ "address2": {
526
+ "label": "Apartment, suite, etc."
476
527
  },
477
- "preparing": "Preparing export…",
478
- "downloaded": "Export downloaded",
479
- "email_fallback": "Still processing — we'll email you a link when it's ready.",
480
- "failed": "Export failed: {{message}}"
481
- },
482
- "import_button": {
483
- "title": "Import from CSV",
484
- "description": "Upload a CSV file. You'll match its columns to fields in the next step.",
485
- "drop_label": "Drop a CSV file here, or click to browse",
486
- "delimiter_label": "Column separator",
487
- "delimiters": {
488
- "comma": "Comma (,)",
489
- "semicolon": "Semicolon (;)",
490
- "pipe": "Pipe (|)",
491
- "tab": "Tab"
528
+ "is_default_billing": {
529
+ "label": "Default billing address"
492
530
  },
493
- "download_template": "Download CSV template",
494
- "download_example": "Download an example CSV",
495
- "template_failed": "Template download failed: {{message}}",
496
- "example_failed": "Example download failed: {{message}}",
497
- "submit": "Continue",
498
- "failed": "Import failed: {{message}}"
531
+ "is_default_shipping": {
532
+ "label": "Default shipping address"
533
+ },
534
+ "label": {
535
+ "label": "Label",
536
+ "placeholder": "e.g. Home, Office"
537
+ },
538
+ "postal_code": {
539
+ "label": "Postal code"
540
+ }
499
541
  },
500
- "metadata_card": {
501
- "title": "Metadata",
502
- "empty_title": "No metadata",
503
- "empty_description": "Apps and integrations populate this automatically."
542
+ "address1": {
543
+ "label": "Address line 1"
504
544
  },
505
- "rich_text_editor": {
506
- "placeholder": "Write something…",
507
- "link_url_prompt": "URL",
508
- "bold": "Bold",
509
- "italic": "Italic",
510
- "strikethrough": "Strikethrough",
511
- "bullet_list": "Bullet list",
512
- "ordered_list": "Ordered list",
513
- "blockquote": "Blockquote",
514
- "link": "Link",
515
- "undo": "Undo",
516
- "redo": "Redo"
545
+ "address2": {
546
+ "label": "Address line 2"
517
547
  },
518
- "date_range_picker": {
519
- "presets": {
520
- "last_7_days": "Last 7 days",
521
- "last_14_days": "Last 14 days",
522
- "last_30_days": "Last 30 days",
523
- "last_90_days": "Last 90 days",
524
- "this_month": "This month",
525
- "year_to_date": "Year to date"
526
- }
548
+ "amount": {
549
+ "label": "Amount"
527
550
  },
528
- "pagination": {
529
- "range": "{{from}}–{{to}} of {{count}}",
530
- "rows_per_page": "Rows per page",
531
- "first_page": "Go to first page",
532
- "previous_page": "Go to previous page",
533
- "next_page": "Go to next page",
534
- "last_page": "Go to last page"
551
+ "city": {
552
+ "label": "City"
535
553
  },
536
- "theme_toggle": {
537
- "label": "Theme",
538
- "light": "Light",
539
- "dark": "Dark",
540
- "system": "System"
554
+ "code": {
555
+ "label": "Code"
541
556
  },
542
- "json_preview_drawer": {
543
- "copied": "Copied",
544
- "copy_all": "Copy all",
545
- "open_raw": "Open raw response",
546
- "raw": "Raw",
547
- "failed_to_load": "Failed to load: {{message}}",
548
- "collapse_depth": "Collapse depth",
549
- "depth": "Depth {{level}}",
550
- "title": "JSON"
557
+ "company": {
558
+ "label": "Company"
551
559
  },
552
- "page_header": {
553
- "view_as_json": "View as JSON",
554
- "copy_id": "Copy ID",
555
- "copy_number": "Copy number"
560
+ "completed_at": {
561
+ "label": "Completed at"
556
562
  },
557
- "secret_input": {
558
- "replace": "Replace",
559
- "stored_help": "Stored on the server. Click Replace to rotate.",
560
- "new_value_placeholder": "New value"
563
+ "contact_email": {
564
+ "label": "Contact email"
561
565
  },
562
- "tag_combobox": {
563
- "placeholder": "Type to add tags…",
564
- "empty_hint": "Type and press Enter to create a tag",
565
- "create_option": "Create \"{{tag}}\""
566
+ "country_code": {
567
+ "label": "Country"
566
568
  },
567
- "address_form_dialog": {
568
- "edit_title": "Edit Address",
569
- "description": "Update the address details."
569
+ "created_at": {
570
+ "label": "Created at"
570
571
  },
571
- "error_state": {
572
- "retry": "Try again"
572
+ "currency": {
573
+ "label": "Currency"
573
574
  },
574
- "address_block": {
575
- "not_provided": "Not provided"
576
- }
577
- },
578
- "validation": {
579
- "required": "{{field}} is required",
580
- "positive_number": "{{field}} must be greater than 0",
581
- "min_length": "{{field}} must be at least {{count}} characters",
582
- "passwords_dont_match": "Passwords do not match",
583
- "invalid_email_or_password": "Invalid email or password",
584
- "invalid_email": "Enter a valid email",
585
- "invalid_hex_color": "Invalid hex color",
586
- "invalid_password": "Invalid password",
587
- "password_required": "Password is required",
588
- "first_name_required": "First name is required",
589
- "last_name_required": "Last name is required"
590
- },
591
- "account": {
592
- "edit_profile": "Edit Profile",
593
- "language": {
594
- "label": "Language",
595
- "update_failed": "Could not save your language preference. Please try again."
575
+ "description": {
576
+ "label": "Description"
596
577
  },
597
- "view_store": "View store",
598
- "documentation": "Documentation",
599
- "community": "Community",
600
- "contact_support": "Contact Support",
601
- "log_out": "Log out"
602
- },
603
- "custom_field_definitions": {
604
- "messages": {
605
- "created": "Custom field definition created",
606
- "updated": "Custom field definition updated",
607
- "deleted": "Custom field definition deleted"
578
+ "discount": {
579
+ "label": "Discount"
608
580
  },
609
- "errors": {
610
- "failed_to_create": "Failed to create custom field definition",
611
- "failed_to_update": "Failed to update custom field definition",
612
- "failed_to_delete": "Failed to delete custom field definition"
613
- }
614
- },
615
- "resource_picker": {
616
- "title": "Add products",
617
- "search_placeholder": "Search…",
618
- "empty": "No results found.",
619
- "already_added": "Added",
620
- "selected_count_one": "{{count}} selected",
621
- "selected_count_other": "{{count}} selected",
622
- "add_count_one": "Add {{count}}",
623
- "add_count_other": "Add {{count}}"
624
- },
625
- "image_upload": {
626
- "upload_cta": "Upload image",
627
- "replace_cta": "Replace image",
628
- "remove_cta": "Remove",
629
- "uploading": "Uploading…",
630
- "upload_failed": "Image upload failed"
581
+ "email": {
582
+ "label": "Email"
583
+ },
584
+ "enabled": {
585
+ "label": "Enabled"
586
+ },
587
+ "ends_at": {
588
+ "label": "Ends"
589
+ },
590
+ "expires_at": {
591
+ "label": "Expires"
592
+ },
593
+ "first_name": {
594
+ "label": "First name"
595
+ },
596
+ "kind": {
597
+ "label": "Kind"
598
+ },
599
+ "label": {
600
+ "label": "Label"
601
+ },
602
+ "last_name": {
603
+ "label": "Last name"
604
+ },
605
+ "login": {
606
+ "email": {
607
+ "placeholder": "admin@example.com"
608
+ }
609
+ },
610
+ "media": {
611
+ "alt": {
612
+ "label": "Alt text",
613
+ "placeholder": "Describe the image for accessibility and SEO"
614
+ },
615
+ "external_video_url": {
616
+ "help": "Paste a YouTube or Vimeo link.",
617
+ "label": "Video link",
618
+ "placeholder": "https://www.youtube.com/watch?v=..."
619
+ },
620
+ "poster": {
621
+ "help": "The still shown before the video plays. Leave blank to use the provider’s own image where there is one.",
622
+ "label": "Poster image"
623
+ }
624
+ },
625
+ "meta_description": {
626
+ "label": "Meta description"
627
+ },
628
+ "meta_title": {
629
+ "label": "Meta title"
630
+ },
631
+ "name": {
632
+ "label": "Name"
633
+ },
634
+ "package_type": {
635
+ "name": {
636
+ "label": "Name"
637
+ },
638
+ "kind": {
639
+ "label": "Kind",
640
+ "help": "Only a carton can be the packaging a product is packed into."
641
+ },
642
+ "length": {
643
+ "label": "Length"
644
+ },
645
+ "width": {
646
+ "label": "Width"
647
+ },
648
+ "height": {
649
+ "label": "Height"
650
+ },
651
+ "dimensions_unit": {
652
+ "label": "Unit"
653
+ },
654
+ "dimensions": {
655
+ "help": "Used for carrier dimensional weight, and for the cubic meters freight tiers compare."
656
+ },
657
+ "weight": {
658
+ "label": "Empty weight",
659
+ "help": "The packaging itself, added to what it holds."
660
+ },
661
+ "max_weight": {
662
+ "label": "Max weight",
663
+ "help": "What it can carry."
664
+ },
665
+ "weight_unit": {
666
+ "label": "Unit"
667
+ },
668
+ "default": {
669
+ "label": "Default box",
670
+ "help": "The packaging your parcel quotes are built on. One default at a time."
671
+ }
672
+ },
673
+ "number": {
674
+ "label": "Number"
675
+ },
676
+ "password": {
677
+ "label": "Password"
678
+ },
679
+ "permalink": {
680
+ "label": "Permalink"
681
+ },
682
+ "phone": {
683
+ "label": "Phone"
684
+ },
685
+ "pretty_name": {
686
+ "label": "Full name"
687
+ },
688
+ "quantity": {
689
+ "label": "Quantity"
690
+ },
691
+ "shipping": {
692
+ "label": "Shipping"
693
+ },
694
+ "slug": {
695
+ "label": "Slug"
696
+ },
697
+ "starts_at": {
698
+ "label": "Starts"
699
+ },
700
+ "state_code": {
701
+ "label": "State / Province"
702
+ },
703
+ "state_name": {
704
+ "label": "State / Province"
705
+ },
706
+ "status": {
707
+ "label": "Status"
708
+ },
709
+ "stock_location": {
710
+ "active": {
711
+ "help": "Inactive locations don't appear in fulfillment selection.",
712
+ "label": "Active"
713
+ },
714
+ "admin_name": {
715
+ "label": "Internal name",
716
+ "placeholder": "Optional — shown only in the admin"
717
+ },
718
+ "backorderable_default": {
719
+ "help": "New stock levels default to allowing backorders when out of stock.",
720
+ "label": "Backorderable by default"
721
+ },
722
+ "default": {
723
+ "help": "New stock levels propagate here. Only one location can be default.",
724
+ "label": "Default location"
725
+ },
726
+ "kind": {
727
+ "label": "Kind"
728
+ },
729
+ "name": {
730
+ "placeholder": "Brooklyn warehouse"
731
+ },
732
+ "pickup_enabled": {
733
+ "help": "Customers can pick orders up from this location at checkout.",
734
+ "label": "Allow customer pickup"
735
+ },
736
+ "pickup_instructions": {
737
+ "label": "Pickup instructions",
738
+ "placeholder": "Where the customer should go to collect their order."
739
+ },
740
+ "pickup_ready_in_minutes": {
741
+ "label": "Ready in (minutes)",
742
+ "placeholder": "60"
743
+ },
744
+ "pickup_stock_policy": {
745
+ "label": "Stock policy"
746
+ },
747
+ "propagate_all_variants": {
748
+ "help": "Create stock levels at this location for every product variant.",
749
+ "label": "Auto-create stock levels for all variants"
750
+ },
751
+ "returns_enabled": {
752
+ "help": "Returned goods come back to this location. Turn it off if returns are inspected somewhere else.",
753
+ "label": "Accept returns here"
754
+ }
755
+ },
756
+ "storefront_visible": {
757
+ "help": "When off, only admin staff see this option (back-office orders, manual entry).",
758
+ "label": "Visible on storefront"
759
+ },
760
+ "subtotal": {
761
+ "label": "Subtotal"
762
+ },
763
+ "tax": {
764
+ "label": "Tax"
765
+ },
766
+ "total": {
767
+ "label": "Total"
768
+ },
769
+ "updated_at": {
770
+ "label": "Updated at"
771
+ },
772
+ "zipcode": {
773
+ "label": "Postal code"
774
+ },
775
+ "product": {
776
+ "available_on": {
777
+ "label": "Available on"
778
+ },
779
+ "category_ids": {
780
+ "label": "Categories"
781
+ },
782
+ "channels": {
783
+ "label": "Sales channels"
784
+ },
785
+ "collection_ids": {
786
+ "help": "Only manual collections can be set here; automatic ones follow their rules.",
787
+ "label": "Collections"
788
+ },
789
+ "delivery_profile_id": {
790
+ "help": "Decides which zones and delivery methods reach this product.",
791
+ "label": "Shipping profile"
792
+ },
793
+ "description": {
794
+ "label": "Description",
795
+ "placeholder": "Write a product description…"
796
+ },
797
+ "discontinue_on": {
798
+ "label": "Discontinue on"
799
+ },
800
+ "make_active_at": {
801
+ "label": "Make active at"
802
+ },
803
+ "name": {
804
+ "label": "Name",
805
+ "placeholder": "Product name"
806
+ },
807
+ "product_type_id": {
808
+ "help": "Controls which delivery options are offered at checkout.",
809
+ "label": "Product type"
810
+ },
811
+ "seller": {
812
+ "label": "Seller"
813
+ },
814
+ "tags": {
815
+ "label": "Tags"
816
+ }
817
+ },
818
+ "variant": {
819
+ "backorder_limit": {
820
+ "help": "Maximum number of units sold beyond available stock — caps backorders and pre-orders. Leave blank for unlimited.",
821
+ "label": "Backorder limit",
822
+ "placeholder": "Unlimited"
823
+ },
824
+ "barcode": {
825
+ "label": "Barcode"
826
+ },
827
+ "country_of_origin": {
828
+ "label": "Country of origin"
829
+ },
830
+ "customs_description": {
831
+ "label": "Customs description",
832
+ "placeholder": "Plain description of the goods"
833
+ },
834
+ "depth": {
835
+ "label": "Depth"
836
+ },
837
+ "dimensions_unit": {
838
+ "label": "Unit"
839
+ },
840
+ "height": {
841
+ "label": "Height"
842
+ },
843
+ "hs_code": {
844
+ "label": "HS code",
845
+ "placeholder": "e.g. 640411"
846
+ },
847
+ "preorder_ships_at": {
848
+ "help": "When you expect to ship pre-orders. Shown to customers as the delivery promise; the pre-order ends once this date passes.",
849
+ "label": "Ships by",
850
+ "placeholder": "Select a date"
851
+ },
852
+ "preorderable": {
853
+ "help": "Sell this variant before it's in stock. Cap how many you'll take with the backorder limit, enter incoming stock as the count, or leave it blank for unlimited.",
854
+ "label": "Available for pre-order"
855
+ },
856
+ "sku": {
857
+ "label": "SKU",
858
+ "placeholder": "PRODUCT-RED-S"
859
+ },
860
+ "weight": {
861
+ "label": "Weight"
862
+ },
863
+ "weight_unit": {
864
+ "label": "Unit"
865
+ },
866
+ "width": {
867
+ "label": "Width"
868
+ },
869
+ "minimum_order_quantity": {
870
+ "label": "Minimum order quantity",
871
+ "placeholder": "No minimum",
872
+ "help": "The least a buyer may order. Leave blank for no minimum."
873
+ },
874
+ "order_multiple": {
875
+ "label": "Order multiple",
876
+ "placeholder": "No multiple",
877
+ "help": "Each step up from the minimum. Leave blank for any quantity."
878
+ },
879
+ "purchase_unit": {
880
+ "label": "Purchase unit",
881
+ "options": {
882
+ "unit": "Units",
883
+ "carton": "Cartons"
884
+ }
885
+ },
886
+ "units_per_carton": {
887
+ "label": "Units per carton"
888
+ },
889
+ "quantity_rule_invalid": "Enter a whole number greater than zero, or leave blank.",
890
+ "carton_package_type_id": {
891
+ "label": "Carton",
892
+ "help": "The carton this product is packed into. Its size is shared by everything packed the same way."
893
+ },
894
+ "carton_weight": {
895
+ "label": "Carton weight",
896
+ "help": "What one packed carton weighs."
897
+ },
898
+ "cartons_per_pallet": {
899
+ "label": "Cartons per pallet"
900
+ },
901
+ "carton_weight_invalid": "Enter a carton weight greater than zero, or leave it blank."
902
+ },
903
+ "minimum_order_quantity": {
904
+ "label": "Minimum order quantity",
905
+ "help": "The least a buyer may order. Leave blank for no minimum."
906
+ },
907
+ "order_multiple": {
908
+ "label": "Order multiple",
909
+ "help": "Each step up from the minimum. Leave blank for any quantity."
910
+ }
911
+ },
912
+ "image_upload": {
913
+ "remove_cta": "Remove",
914
+ "replace_cta": "Replace image",
915
+ "upload_cta": "Upload image",
916
+ "upload_failed": "Image upload failed",
917
+ "uploading": "Uploading…"
918
+ },
919
+ "imports": {
920
+ "download_original": "Download original file",
921
+ "failed": {
922
+ "description": "The file could not be processed.",
923
+ "title": "Import failed"
924
+ },
925
+ "failed_rows": {
926
+ "error": "Error",
927
+ "hide_data": "Hide row data",
928
+ "next_page": "Next page",
929
+ "prev_page": "Previous page",
930
+ "row_number": "Row",
931
+ "title": "Failed rows",
932
+ "view_data": "View row data"
933
+ },
934
+ "load_failed": "Could not load the import.",
935
+ "mapping": {
936
+ "description": "Match the columns from your file to {{type}} fields.",
937
+ "field": "Field",
938
+ "file_column": "File column",
939
+ "missing_required": "Map the required fields to continue: {{fields}}",
940
+ "not_mapped": "Not mapped",
941
+ "required": "Required",
942
+ "sample": "Example",
943
+ "start": "Start import",
944
+ "starting": "Starting…",
945
+ "title": "Map columns"
946
+ },
947
+ "processing": {
948
+ "failed_count": "{{failed}} failed",
949
+ "note": "You can leave this page — the import continues in the background.",
950
+ "preparing": "Preparing rows…",
951
+ "progress": "{{processed}} of {{total}} rows processed",
952
+ "retrying": "Retrying failed rows · {{remaining}} remaining",
953
+ "title": "Processing rows"
954
+ },
955
+ "results": {
956
+ "completed_title": "Import completed",
957
+ "retry_failed": "Retry failed rows ({{failed}})",
958
+ "retrying": "Retrying…",
959
+ "summary": "{{completed}} rows imported · {{failed}} failed",
960
+ "view_records": "View {{type}}"
961
+ },
962
+ "status": {
963
+ "completed": "Completed",
964
+ "completed_mapping": "Queued",
965
+ "failed": "Failed",
966
+ "mapping": "Mapping",
967
+ "pending": "Pending",
968
+ "processing": "Processing"
969
+ },
970
+ "step_descriptions": {
971
+ "complete": "Your import has finished. Review what was created and updated.",
972
+ "map_fields": "Match each column in your file to a field in Spree.",
973
+ "process_rows": "We are importing your rows. This can take a few minutes."
974
+ },
975
+ "steps": {
976
+ "complete": "Complete",
977
+ "map_fields": "Map fields",
978
+ "process_rows": "Process rows"
979
+ },
980
+ "try_again": "Try again",
981
+ "types": {
982
+ "customers": "Customers",
983
+ "price_list_prices": "Price list prices",
984
+ "product_translations": "Product translations",
985
+ "products": "Products",
986
+ "purchase_orders": "Purchase orders"
987
+ },
988
+ "wizard_title": "Import"
989
+ },
990
+ "media_picker": {
991
+ "confirm": "Add selected",
992
+ "description": "Pick files already in your library, or upload new ones.",
993
+ "empty": "Your library is empty. Upload a file to get started.",
994
+ "no_results": "No files match your search.",
995
+ "search_placeholder": "Search by name…",
996
+ "selected_count_one": "{{count}} selected",
997
+ "selected_count_other": "{{count}} selected",
998
+ "title": "Media library",
999
+ "upload": "Upload"
1000
+ },
1001
+ "messages": {
1002
+ "address_removed": "Address removed",
1003
+ "address_saved": "Address saved",
1004
+ "copied_to_clipboard": "Copied to clipboard",
1005
+ "created": "Created",
1006
+ "customer_deleted": "Customer deleted",
1007
+ "customer_saved": "Customer saved",
1008
+ "digital_asset_removed": "File removed",
1009
+ "digital_asset_saved": "File saved",
1010
+ "digital_link_reset": "Download access restored",
1011
+ "digital_links_email_sent": "Download email sent",
1012
+ "gift_card_created": "Gift card created",
1013
+ "invitation_accepted": "Welcome to Spree",
1014
+ "invitation_resent": "Invitation resent",
1015
+ "invitation_sent": "Invitation sent",
1016
+ "key_created": "Key created",
1017
+ "key_deleted": "Key deleted",
1018
+ "key_revoked": "Key revoked",
1019
+ "key_updated": "Key updated",
1020
+ "order_saved": "Order saved",
1021
+ "payment_method_saved": "Payment method saved",
1022
+ "product_created": "Product created",
1023
+ "product_deleted": "Product deleted",
1024
+ "product_saved": "Product saved",
1025
+ "profile_updated": "Profile updated",
1026
+ "promotion_created": "Promotion created",
1027
+ "promotion_deleted": "Promotion deleted",
1028
+ "promotion_saved": "Promotion saved",
1029
+ "removed": "Removed",
1030
+ "saved": "Saved",
1031
+ "settings_updated": "Settings updated",
1032
+ "stock_location_saved": "Stock location saved",
1033
+ "store_credit_removed": "Store credit removed",
1034
+ "store_credit_saved": "Store credit saved",
1035
+ "store_settings_updated": "Store settings updated",
1036
+ "tax_category_saved": "Tax category saved",
1037
+ "updated": "Updated"
1038
+ },
1039
+ "package_types": {
1040
+ "table_title": "Package types",
1041
+ "search_placeholder": "Search packaging",
1042
+ "empty": "No packaging yet. Add the box you ship in, and the cartons and pallets wholesale orders leave on.",
1043
+ "add_cta": "Add package type",
1044
+ "default_badge": "Default",
1045
+ "edit_sheet_title": "Package type",
1046
+ "create_description": "A box, carton, pallet or container goods are packed into.",
1047
+ "edit_description": "Products packed into this carton follow its measurements, so one edit corrects them all.",
1048
+ "dimensions_column": "Dimensions",
1049
+ "volume_column": "Volume",
1050
+ "kinds": {
1051
+ "box": "Box",
1052
+ "envelope": "Envelope",
1053
+ "carton": "Carton",
1054
+ "pallet": "Pallet",
1055
+ "container": "Container"
1056
+ },
1057
+ "messages": {
1058
+ "added": "Package type added",
1059
+ "updated": "Package type updated",
1060
+ "deleted": "Package type deleted"
1061
+ },
1062
+ "delete_confirm": {
1063
+ "title": "Delete package type?",
1064
+ "message": "{{name}} will be removed. Products packed into it must be repacked first."
1065
+ },
1066
+ "validation": {
1067
+ "non_negative": "must be zero or more"
1068
+ },
1069
+ "description": "The boxes, cartons and pallets your goods ship in, with the sizes and weights carriers quote on."
1070
+ },
1071
+ "pages": {
1072
+ "settings": {
1073
+ "stock_locations": {
1074
+ "add_sheet_title": "Add stock location",
1075
+ "edit_sheet_title": "Edit stock location",
1076
+ "search_placeholder": "Search stock locations…"
1077
+ },
1078
+ "package_types": {
1079
+ "add_sheet_title": "Add package type"
1080
+ }
1081
+ },
1082
+ "products": {
1083
+ "add_cta": "Add product",
1084
+ "bulk": {
1085
+ "add_categories_action": "Add to categories…",
1086
+ "add_channels_action": "Add to sales channels…",
1087
+ "add_collections_action": "Add to collections",
1088
+ "add_tags_action": "Add tags…",
1089
+ "categories_add_description": "Pick the categories to add these products to.",
1090
+ "categories_add_failed": "Failed to add products to categories",
1091
+ "categories_add_title": "Add to categories",
1092
+ "categories_added": "Added {n} products to categories",
1093
+ "categories_remove_description": "Pick the categories to remove these products from.",
1094
+ "categories_remove_failed": "Failed to remove products from categories",
1095
+ "categories_remove_title": "Remove from categories",
1096
+ "categories_removed": "Removed {n} products from categories",
1097
+ "channels_add_description": "Pick the sales channels to list these products on.",
1098
+ "channels_add_failed": "Failed to list products on sales channels",
1099
+ "channels_add_title": "Add to sales channels",
1100
+ "channels_added": "Listed {n} products on sales channels",
1101
+ "channels_remove_description": "Pick the sales channels to unlist these products from.",
1102
+ "channels_remove_failed": "Failed to unlist products from sales channels",
1103
+ "channels_remove_title": "Remove from sales channels",
1104
+ "channels_removed": "Unlisted {n} products from sales channels",
1105
+ "collections_add_description": "The selected products are added to every collection you choose.",
1106
+ "collections_add_failed": "Could not add the products to the collections",
1107
+ "collections_add_title": "Add to collections",
1108
+ "collections_added": "Products added to the collections",
1109
+ "collections_remove_description": "The selected products are removed from every collection you choose.",
1110
+ "collections_remove_failed": "Could not remove the products from the collections",
1111
+ "collections_remove_title": "Remove from collections",
1112
+ "collections_removed": "Products removed from the collections",
1113
+ "delete_confirm": {
1114
+ "message": "Selected products will be removed. This action cannot be undone.",
1115
+ "title": "Delete {n} products?"
1116
+ },
1117
+ "delete_failed": "Failed to delete products",
1118
+ "deleted": "Deleted {n} products",
1119
+ "remove_categories_action": "Remove from categories…",
1120
+ "remove_channels_action": "Remove from sales channels…",
1121
+ "remove_collections_action": "Remove from collections",
1122
+ "remove_tags_action": "Remove tags…",
1123
+ "set_status_action": "Set status…",
1124
+ "status_sheet_description": "Pick the status to apply to the selected products.",
1125
+ "status_sheet_title": "Set product status",
1126
+ "status_update_failed": "Failed to update product status",
1127
+ "status_updated": "Updated status on {n} products",
1128
+ "tags_add_description": "Pick or create tags to add to these products.",
1129
+ "tags_add_failed": "Failed to add tags",
1130
+ "tags_add_title": "Add tags",
1131
+ "tags_added": "Added tags to {n} products",
1132
+ "tags_remove_description": "Pick tags to remove from these products.",
1133
+ "tags_remove_failed": "Failed to remove tags",
1134
+ "tags_remove_title": "Remove tags",
1135
+ "tags_removed": "Removed tags from {n} products"
1136
+ },
1137
+ "clone_failed": "Failed to duplicate product",
1138
+ "clone_succeeded": "Product duplicated",
1139
+ "delete_failed": "Failed to delete product",
1140
+ "delete_succeeded": "Product deleted",
1141
+ "edit": {
1142
+ "bulk_prices": {
1143
+ "no_variants": "Add at least one variant to start editing prices."
1144
+ }
1145
+ },
1146
+ "inventory": {
1147
+ "in_stock": "{{count}} in stock",
1148
+ "in_stock_short": "In stock",
1149
+ "on_backorder": "On backorder",
1150
+ "out_of_stock": "Out of stock"
1151
+ },
1152
+ "media_empty": "No media yet.",
1153
+ "media_upload": "Upload media",
1154
+ "new": {
1155
+ "create_failed": "Failed to create product",
1156
+ "create_succeeded": "Product created",
1157
+ "description": "Set up your product — add variants, prices, inventory, media, and custom fields",
1158
+ "preview_slug_placeholder": "your-product-slug",
1159
+ "save_label": "Create product",
1160
+ "title": "New product"
1161
+ },
1162
+ "options": {
1163
+ "add_value": "Add option value",
1164
+ "sheet_title_create": "Create option type",
1165
+ "sheet_title_edit": "Edit option type",
1166
+ "table": {
1167
+ "values": "Values"
1168
+ },
1169
+ "values_empty": "No values yet.",
1170
+ "values_section": "Values"
1171
+ },
1172
+ "price_lists": {
1173
+ "activate": "Activate",
1174
+ "activate_confirm": {
1175
+ "message": "\"{{name}}\" will apply to qualifying customers immediately and stay active until manually deactivated.",
1176
+ "message_with_end": "\"{{name}}\" will apply to qualifying customers immediately and stay active until manually deactivated or its end date ({{ends_at}}).",
1177
+ "title": "Activate price list?"
1178
+ },
1179
+ "add_cta": "New price list",
1180
+ "add_products_cta": "Add products",
1181
+ "add_rule": "Add rule",
1182
+ "add_rule_help": "Pick a rule type to configure.",
1183
+ "basics_section": "Basics",
1184
+ "deactivate": "Deactivate",
1185
+ "deactivate_confirm": {
1186
+ "message": "\"{{name}}\" will stop applying to customers immediately. Existing orders are unaffected.",
1187
+ "title": "Deactivate price list?"
1188
+ },
1189
+ "delete_confirm": {
1190
+ "message": "Removing \"{{name}}\" deletes its prices. This cannot be undone.",
1191
+ "title": "Delete price list?"
1192
+ },
1193
+ "edit_prices": {
1194
+ "add_products_link": "Add products",
1195
+ "columns": {
1196
+ "compare_at_price": "Compare-at price",
1197
+ "price": "Price",
1198
+ "product": "Product",
1199
+ "sku": "SKU",
1200
+ "variant": "Variant"
1201
+ },
1202
+ "compare_at_aria": "Compare-at price for {{label}}",
1203
+ "count_summary_one": "{{count}} price in {{currency}}",
1204
+ "count_summary_other": "{{count}} prices in {{currency}}",
1205
+ "currency_label": "Currency",
1206
+ "dirty_summary_one": "{{count}} unsaved change",
1207
+ "dirty_summary_other": "{{count}} unsaved changes",
1208
+ "discard_confirm": {
1209
+ "message_close_one": "You have {{count}} unsaved price. Closing will discard it.",
1210
+ "message_close_other": "You have {{count}} unsaved prices. Closing will discard them.",
1211
+ "message_currency": "Switching currency will discard your unsaved prices.",
1212
+ "title": "Discard unsaved prices?"
1213
+ },
1214
+ "empty": "No products in this list yet.",
1215
+ "empty_no_base_prices": "No base prices yet.",
1216
+ "empty_pick_products": "Pick products on the price list to start setting prices.",
1217
+ "grid_aria": "Variant prices",
1218
+ "no_matches_for_filters": "No prices match the current filters.",
1219
+ "no_matches_for_search": "No prices match \"{{search}}\".",
1220
+ "price_aria": "Price for {{label}}",
1221
+ "save_cta": "Save prices",
1222
+ "save_failed": "Failed to save prices",
1223
+ "save_success_one": "Saved {{count}} price",
1224
+ "save_success_other": "Saved {{count}} prices",
1225
+ "search_placeholder": "Search by product, SKU, or option…",
1226
+ "title": "Edit prices — {{name}}",
1227
+ "variant_default": "Default"
1228
+ },
1229
+ "edit_prices_cta": "Edit prices",
1230
+ "no_changes": "No changes to save.",
1231
+ "prices_help_one": "{{count}} price configured. Open the bulk editor to update it.",
1232
+ "prices_help_other": "{{count}} prices configured. Open the bulk editor to update them.",
1233
+ "prices_help_zero": "Pick products above to seed placeholder prices, then open the bulk editor.",
1234
+ "products_empty": "No products yet — add one to start editing prices.",
1235
+ "products_empty_search": "No products match",
1236
+ "products_help": "Pick the products this list applies to. Placeholder prices are created on save — fill them in below.",
1237
+ "products_search_placeholder": "Search products by name…",
1238
+ "products_section": "Products",
1239
+ "products_selected_one": "{{count}} product selected.",
1240
+ "products_selected_other": "{{count}} products selected.",
1241
+ "remove_rule_confirm": {
1242
+ "message": "The rule is removed when you save the price list.",
1243
+ "title": "Remove rule?"
1244
+ },
1245
+ "remove_selected": "Remove selected",
1246
+ "rule_click_to_configure": "Click to configure",
1247
+ "rule_default_description": "Tune the rule's parameters.",
1248
+ "rule_name_overflow": "{{names}} +{{count}} more",
1249
+ "rule_no_options": "This rule has no configurable options — its presence alone applies the constraint.",
1250
+ "rule_types_all_used": "Every available rule type is already on this list.",
1251
+ "rule_types_empty": "No rule types registered.",
1252
+ "rules_empty": "No rules — this list applies to every shopper.",
1253
+ "rules_help": "Conditions that decide when this list applies. Use \"all\" to require every rule, \"any\" to take the first match.",
1254
+ "rules_section": "Rules",
1255
+ "schedule": "Schedule",
1256
+ "schedule_confirm": {
1257
+ "message": "\"{{name}}\" will go live on {{starts_at}} and stay active until its end date.",
1258
+ "title": "Schedule price list?"
1259
+ },
1260
+ "schedule_section": "Schedule",
1261
+ "sheet_title_create": "Create price list",
1262
+ "sheet_title_edit": "Edit price list",
1263
+ "subtitle": "Targeted pricing for customer groups, regions, or volume tiers.",
1264
+ "title": "Price Lists",
1265
+ "unschedule": "Unschedule",
1266
+ "unschedule_confirm": {
1267
+ "message": "\"{{name}}\" will no longer activate on its scheduled date. You can re-schedule or activate it manually later.",
1268
+ "title": "Unschedule price list?"
1269
+ }
1270
+ },
1271
+ "publishing": {
1272
+ "caption_hidden_after": "Comes down {{date}}",
1273
+ "caption_live": "Visible to customers now",
1274
+ "caption_not_available": "Hidden — product is {{product_status}}",
1275
+ "caption_scheduled": "Goes live {{date}}",
1276
+ "caption_unpublished": "Was hidden on {{date}}",
1277
+ "caption_window": "Live {{start}} → {{end}}",
1278
+ "empty": "Not listed on any sales channel yet.",
1279
+ "inactive_marker": "Inactive",
1280
+ "manage_cta": "Manage",
1281
+ "manage_description": "Pick which sales channels list this product. Toggle a channel off to unlist it everywhere.",
1282
+ "manage_title": "Manage sales channels",
1283
+ "no_channels": "No sales channels available. Create one in Settings → Sales channels.",
1284
+ "status_hidden": "Hidden",
1285
+ "status_live": "Live",
1286
+ "status_not_available": "Not available",
1287
+ "status_scheduled": "Scheduled",
1288
+ "title": "Publishing"
1289
+ },
1290
+ "section_basics": "Basics",
1291
+ "section_categorization": "Categorization",
1292
+ "section_inventory": "Inventory",
1293
+ "section_media": "Media",
1294
+ "section_organization": "Organization",
1295
+ "section_pricing": "Pricing",
1296
+ "section_seo": "SEO",
1297
+ "section_variants": "Variants",
1298
+ "status_options": {
1299
+ "active": "Active",
1300
+ "archived": "Archived",
1301
+ "draft": "Draft",
1302
+ "proposed": "In review",
1303
+ "rejected": "Changes needed"
1304
+ },
1305
+ "status_under_review": "This product is in review. Use Approve or Reject to decide.",
1306
+ "transfers": {
1307
+ "description_external": "External receive into <strong>{{destination}}</strong>.",
1308
+ "description_internal": "Inventory moved from <strong>{{source}}</strong> to <strong>{{destination}}</strong>.",
1309
+ "edit_sheet_title": "Transfer {{number}}",
1310
+ "items_empty": "No items yet.",
1311
+ "section_from": "From",
1312
+ "section_items": "Items",
1313
+ "section_to": "To",
1314
+ "sheet_title": "New stock transfer"
1315
+ },
1316
+ "variants_empty": "No variants yet.",
1317
+ "variants_one": "{{count}} variant",
1318
+ "variants_other": "{{count}} variants"
1319
+ }
1320
+ },
1321
+ "resource_picker": {
1322
+ "add_count_one": "Add {{count}}",
1323
+ "add_count_other": "Add {{count}}",
1324
+ "already_added": "Added",
1325
+ "empty": "No results found.",
1326
+ "load_more": "Load more",
1327
+ "search_placeholder": "Search…",
1328
+ "select_all_matching_one": "Select all {{count}} match",
1329
+ "select_all_matching_other": "Select all {{count}} matches",
1330
+ "select_page_one": "Select {{count}} on this page",
1331
+ "select_page_other": "Select all {{count}} on this page",
1332
+ "selected_count_one": "{{count}} selected",
1333
+ "selected_count_other": "{{count}} selected",
1334
+ "title": "Add products"
1335
+ },
1336
+ "row_actions": {
1337
+ "clone": "Duplicate",
1338
+ "delete": "Delete",
1339
+ "edit": "Edit",
1340
+ "menu_label": "Open actions"
1341
+ },
1342
+ "settings_nav": {
1343
+ "groups": {
1344
+ "fulfillment": "Fulfillment",
1345
+ "team": "Team & access"
1346
+ },
1347
+ "items": {
1348
+ "stock_locations": "Stock locations"
1349
+ }
1350
+ },
1351
+ "settings_page": {
1352
+ "back_to_dashboard": "Back to dashboard",
1353
+ "description": "Manage your store, selling setup and team.",
1354
+ "no_results": "No settings match “{{query}}”.",
1355
+ "search_placeholder": "Search settings",
1356
+ "title": "Settings"
1357
+ },
1358
+ "stock_locations": {
1359
+ "add_cta": "Add stock location",
1360
+ "badges": {
1361
+ "default": "Default",
1362
+ "enabled": "Enabled",
1363
+ "inactive": "Inactive"
1364
+ },
1365
+ "columns": {
1366
+ "default": "Default",
1367
+ "location": "Location",
1368
+ "pickup": "Pickup",
1369
+ "returns": "Returns",
1370
+ "seller": "Seller",
1371
+ "type": "Type"
1372
+ },
1373
+ "create_description": "Add a warehouse, store, or pickup point to fulfill orders from.",
1374
+ "create_label": "Create stock location",
1375
+ "delete_confirm": {
1376
+ "message": "{{name}} will be removed. Stock levels at this location are not deleted.",
1377
+ "title": "Delete stock location?"
1378
+ },
1379
+ "edit_description": "Update name, address, pickup, or stock policies.",
1380
+ "empty": "No stock locations yet",
1381
+ "kinds": {
1382
+ "fulfillment_center": "Fulfillment center",
1383
+ "store": "Store",
1384
+ "warehouse": "Warehouse"
1385
+ },
1386
+ "pickup_stock_policies": {
1387
+ "any": "Allow transfers from other locations",
1388
+ "local": "Only items at this location"
1389
+ },
1390
+ "search_placeholder": "Search by name…",
1391
+ "section_behavior": "Behavior",
1392
+ "section_details": "Details",
1393
+ "section_pickup": "Pickup",
1394
+ "section_returns": "Returns",
1395
+ "stock_levels": {
1396
+ "empty": "No stock levels at this location yet.",
1397
+ "empty_search": "No stock levels match your search.",
1398
+ "help": "Adjust on-hand and backorderable counts per variant.",
1399
+ "low_stock_marker": "low stock",
1400
+ "search_placeholder": "Search SKU or product…",
1401
+ "table": {
1402
+ "backorder": "Backorder",
1403
+ "on_hand": "On hand",
1404
+ "variant": "Variant"
1405
+ },
1406
+ "title": "Stock at this location",
1407
+ "unknown_product": "Unknown product",
1408
+ "variant_count_one": "{{count}} variant",
1409
+ "variant_count_other": "{{count}} variants"
1410
+ },
1411
+ "description": "The warehouses and shops you hold stock in and fulfil orders from."
1412
+ },
1413
+ "validation": {
1414
+ "codes": {
1415
+ "accepted": "must be accepted",
1416
+ "blank": "can't be blank",
1417
+ "confirmation": "doesn't match",
1418
+ "empty": "can't be empty",
1419
+ "equal_to": "must be equal to {{count}}",
1420
+ "exclusion": "is reserved",
1421
+ "forbidden_reporting_member": "This report references data you are not allowed to read.",
1422
+ "greater_than": "must be greater than {{count}}",
1423
+ "greater_than_or_equal_to": "must be greater than or equal to {{count}}",
1424
+ "inclusion": "is not included in the list",
1425
+ "invalid": "is invalid",
1426
+ "invalid_commission_rule_type": "{{type}} is not a commission rule this store offers",
1427
+ "less_than": "must be less than {{count}}",
1428
+ "less_than_or_equal_to": "must be less than or equal to {{count}}",
1429
+ "not_a_number": "is not a number",
1430
+ "not_an_integer": "must be a whole number",
1431
+ "other_than": "must be other than {{count}}",
1432
+ "present": "must be blank",
1433
+ "product_not_in_store": "must all belong to this store",
1434
+ "required": "must exist",
1435
+ "seeded_report_read_only": "This is a built-in report and cannot be changed. Save a copy instead.",
1436
+ "taken": "has already been taken",
1437
+ "too_long": "is too long (maximum is {{count}} characters)",
1438
+ "too_short": "is too short (minimum is {{count}} characters)",
1439
+ "wrong_length": "is the wrong length (should be {{count}} characters)"
1440
+ },
1441
+ "country_required": "Country is required",
1442
+ "currency_required": "Currency is required",
1443
+ "first_name_required": "First name is required",
1444
+ "invalid_email": "Enter a valid email",
1445
+ "invalid_email_or_password": "Invalid email or password",
1446
+ "invalid_hex_color": "Invalid hex color",
1447
+ "invalid_password": "Invalid password",
1448
+ "last_name_required": "Last name is required",
1449
+ "min_length": "{{field}} must be at least {{count}} characters",
1450
+ "password_required": "Password is required",
1451
+ "passwords_dont_match": "Passwords do not match",
1452
+ "positive_number": "{{field}} must be greater than 0",
1453
+ "required": "{{field}} is required",
1454
+ "store_name_required": "Store name is required"
1455
+ },
1456
+ "products": {
1457
+ "autocomplete": {
1458
+ "empty": "No products match",
1459
+ "placeholder": "Search products by name…"
1460
+ },
1461
+ "category_search_placeholder": "Search categories…",
1462
+ "collection_search_placeholder": "Search collections…",
1463
+ "columns": {
1464
+ "in_stock": "In Stock",
1465
+ "price": "Price",
1466
+ "sku": "SKU"
1467
+ },
1468
+ "delete_confirm": "Are you sure you want to delete this product?",
1469
+ "delete_label": "Delete product",
1470
+ "inventory": {
1471
+ "backorder_aria": "Allow backorder at {{location}}",
1472
+ "columns": {
1473
+ "backorder": "Backorder",
1474
+ "location": "Location",
1475
+ "on_hand": "On hand"
1476
+ },
1477
+ "empty_no_locations": "Add a stock location in Settings to start tracking inventory.",
1478
+ "empty_no_variants": "Stock levels are managed per stock location. Add a variant to start tracking inventory.",
1479
+ "on_hand_aria": "On hand at {{location}}",
1480
+ "unknown_location": "Unknown location"
1481
+ },
1482
+ "media": {
1483
+ "add_from_library": "Add from library",
1484
+ "add_video": "Add video link",
1485
+ "add_video_submit": "Add video",
1486
+ "add_video_title": "Add a video link",
1487
+ "assigned_variants_help": "Pick the variants this image represents. Leave blank to apply to all variants.",
1488
+ "assigned_variants_label": "Assigned variants",
1489
+ "delete_confirm": "Delete this media? This cannot be undone.",
1490
+ "drop_hint": "Drag & drop media here, or click to browse",
1491
+ "edit_title": "Edit media",
1492
+ "file_types_hint": "Images (PNG, JPG, WebP) and video (MP4, WebM, MOV)",
1493
+ "focal_point_help": "Click the image to set what stays in frame when it is cropped.",
1494
+ "focal_point_reset": "Reset",
1495
+ "unsupported_file_one": "{{count}} file was not added — only images and video are supported.",
1496
+ "unsupported_file_other": "{{count}} files were not added — only images and video are supported.",
1497
+ "upload_failed": "Failed to upload {{name}}: {{message}}",
1498
+ "upload_status_failed": "Failed",
1499
+ "video_preview_title": "Video preview",
1500
+ "video_url_invalid": "Enter a YouTube or Vimeo link."
1501
+ },
1502
+ "no_categories_found": "No categories found",
1503
+ "no_collections_found": "No collections found",
1504
+ "options": {
1505
+ "add_cta": "Add option type",
1506
+ "count_one": "{{count}} value",
1507
+ "count_other": "{{count}} values",
1508
+ "create_description": "Define an option that variants can use (e.g. size, color).",
1509
+ "create_label": "Create option type",
1510
+ "delete_confirm": {
1511
+ "message": "This will also delete all of its values. Variants using these values will lose them.",
1512
+ "title": "Delete option type?"
1513
+ },
1514
+ "edit_description": "Edit the option type and its values.",
1515
+ "image_upload_failed": "Failed to upload image",
1516
+ "kinds": {
1517
+ "buttons": "Buttons",
1518
+ "color_swatch": "Color swatch",
1519
+ "dropdown": "Dropdown"
1520
+ },
1521
+ "value_label_placeholder": "e.g. Small",
1522
+ "value_name_placeholder": "e.g. small",
1523
+ "values_help": "Drag values to reorder. The first value is the default for new variants."
1524
+ },
1525
+ "price_lists": {
1526
+ "errors": {
1527
+ "failed_to_activate": "Failed to activate price list",
1528
+ "failed_to_deactivate": "Failed to deactivate price list"
1529
+ },
1530
+ "messages": {
1531
+ "activated": "Price list activated",
1532
+ "created": "Price list created",
1533
+ "deactivated": "Price list deactivated",
1534
+ "deleted": "Price list deleted",
1535
+ "updated": "Price list updated"
1536
+ },
1537
+ "validation": {
1538
+ "ends_after_starts": "Must be after start date."
1539
+ }
1540
+ },
1541
+ "product_type_adds_options_one": "This type adds {{options}} to new products.",
1542
+ "product_type_adds_options_other": "This type adds {{options}} to new products.",
1543
+ "product_type_placeholder": "No product type",
1544
+ "save_label": "Save product",
1545
+ "seo": {
1546
+ "meta_description_placeholder": "SEO description",
1547
+ "meta_title_placeholder": "SEO title",
1548
+ "slug_placeholder": "product-url-handle"
1549
+ },
1550
+ "tax_category_placeholder": "Select tax category",
1551
+ "transfers": {
1552
+ "create_description": "Move stock between locations, or receive new stock from an external supplier.",
1553
+ "delete_confirm": {
1554
+ "message": "Stock movements created by this transfer will be reversed.",
1555
+ "title": "Delete this transfer?"
1556
+ },
1557
+ "destination_placeholder": "Select destination location",
1558
+ "details_card": "Details",
1559
+ "different_locations_error": "Source and destination must differ.",
1560
+ "external_label": "External (supplier receive)",
1561
+ "fields": {
1562
+ "created": "Created",
1563
+ "external_receive": "External receive",
1564
+ "immutable_note": "Stock transfers are immutable once created.",
1565
+ "internal": "Internal",
1566
+ "reference": "Reference",
1567
+ "type": "Type"
1568
+ },
1569
+ "items_table": {
1570
+ "qty": "Qty",
1571
+ "sku": "SKU",
1572
+ "variant": "Variant"
1573
+ },
1574
+ "new_cta": "New transfer",
1575
+ "reference_label": "Reference",
1576
+ "reference_placeholder": "PO number, supplier invoice, …",
1577
+ "review_description": "Review the transfer before creating. Items can't be changed afterwards.",
1578
+ "search_items_placeholder": "Search by name or SKU (3+ chars)…"
1579
+ },
1580
+ "variants": {
1581
+ "add_option": "Add option",
1582
+ "bulk_edit": {
1583
+ "grid_aria": "Variant bulk edit spreadsheet",
1584
+ "title": "Bulk edit variants",
1585
+ "trigger": "Bulk edit",
1586
+ "unset": "None"
1587
+ },
1588
+ "create_option_type": "Create new option type",
1589
+ "create_option_type_title": "New option type",
1590
+ "create_value": "New value",
1591
+ "create_value_title": "New option value",
1592
+ "default_variant": "Default variant",
1593
+ "edit_row_aria": "Edit {{name}}",
1594
+ "edit_variant": "Edit variant — {{name}}",
1595
+ "errors": {
1596
+ "failed_to_create_option_type": "Failed to create option type",
1597
+ "failed_to_create_value": "Failed to create value"
1598
+ },
1599
+ "keep": "Keep all",
1600
+ "option_type_label": "Option type",
1601
+ "option_type_placeholder": "Pick an option type",
1602
+ "orphan_warning": "{{count}} existing variant(s) will be removed on save:",
1603
+ "orphan_warning_one": "{{count}} existing variant no longer matches the selected options and will be removed on save:",
1604
+ "orphan_warning_other": "{{count}} existing variants no longer match the selected options and will be removed on save:",
1605
+ "remove_row_aria": "Remove {{name}}",
1606
+ "sheet": {
1607
+ "availability": "Availability",
1608
+ "customs": "Customs",
1609
+ "customs_help": "Used on customs forms when this item ships across a border.",
1610
+ "identity": "Identity",
1611
+ "tax_category_placeholder": "Inherit from product",
1612
+ "ordering": "B2B ordering",
1613
+ "ordering_help": "How much a buyer must take. Enforced when items are added to a cart and again at checkout. A customer group or company catalog can override these for its buyers. Stock is still counted in units.",
1614
+ "packing": "Packing",
1615
+ "packing_help": "How this product leaves the warehouse in bulk. Freight quotes are built from these numbers.",
1616
+ "no_carton_types": "Add a carton type under <settingsLink>Settings → Package types</settingsLink> to record how this product is packed.",
1617
+ "carton_placeholder": "No carton",
1618
+ "pending_save": "Changes here are saved with the product."
1619
+ },
1620
+ "title": "Variants",
1621
+ "variant_label": "Variant"
1622
+ }
1623
+ },
1624
+ "product_types": {
1625
+ "add_cta": "Add product type",
1626
+ "add_sheet_title": "New product type",
1627
+ "affects_new_only": {
1628
+ "description": "Editing option types and categories shapes products created from now on. Products that already have this type keep what they have. The custom fields below always show on every product of this type.",
1629
+ "title": "Changes apply to new products"
1630
+ },
1631
+ "apply_to_products": {
1632
+ "confirm_label": "Apply",
1633
+ "cta_one": "Apply to {{count}} existing product",
1634
+ "cta_other": "Apply to {{count}} existing products",
1635
+ "message_one": "This adds this type’s missing option types and categories to {{count}} product. Nothing is removed.",
1636
+ "message_other": "This adds this type’s missing option types and categories to {{count}} products. Nothing is removed.",
1637
+ "title": "Apply to existing products"
1638
+ },
1639
+ "create_description": "Group products and define how they can be delivered.",
1640
+ "create_label": "Create product type",
1641
+ "custom_delivery_profile": "Custom",
1642
+ "default_delivery_profile": "Store default profile",
1643
+ "delete_confirm": {
1644
+ "message": "Are you sure you want to delete “{{name}}”? Types still used by products cannot be deleted.",
1645
+ "title": "Delete product type"
1646
+ },
1647
+ "edit_description": "Change the name or the ways products of this type are delivered.",
1648
+ "edit_sheet_title": "Edit product type",
1649
+ "empty": "No product types yet",
1650
+ "messages": {
1651
+ "applied_to_products": "Applying to existing products",
1652
+ "created": "Product type created",
1653
+ "deleted": "Product type deleted",
1654
+ "updated": "Product type updated"
1655
+ },
1656
+ "no_categories": "No categories yet",
1657
+ "no_option_types": "No option types yet",
1658
+ "option_type_search_placeholder": "Search option types",
1659
+ "search_placeholder": "Search product types"
1660
+ },
1661
+ "calculators": {
1662
+ "default_refund_amount": "Default Refund Amount",
1663
+ "default_tax": "Default Tax",
1664
+ "digital_delivery": "Digital Delivery",
1665
+ "flat_percent_item_total": "Flat Percent",
1666
+ "flat_rate": "Flat Rate",
1667
+ "flexi_rate": "Flexi Rate",
1668
+ "per_item": "Per Item",
1669
+ "percent_on_line_item": "Percent Per Line Item",
1670
+ "price_sack": "Price Sack",
1671
+ "tiered_flat_rate": "Tiered Flat Rate",
1672
+ "tiered_percent": "Tiered Percent"
1673
+ },
1674
+ "stock_levels": {
1675
+ "messages": {
1676
+ "stock_level_deleted": "Stock level deleted",
1677
+ "stock_updated": "Stock updated"
1678
+ }
1679
+ },
1680
+ "option_types": {
1681
+ "columns": {
1682
+ "values": "Values"
1683
+ },
1684
+ "kinds": {
1685
+ "buttons": "Buttons",
1686
+ "color_swatch": "Color swatch",
1687
+ "dropdown": "Dropdown"
1688
+ },
1689
+ "messages": {
1690
+ "created": "Option type created",
1691
+ "deleted": "Option type deleted",
1692
+ "updated": "Option type updated"
1693
+ },
1694
+ "table": {
1695
+ "empty": "No option types yet",
1696
+ "search_placeholder": "Search by name…"
1697
+ },
1698
+ "value_count_one": "{{count}} value",
1699
+ "value_count_other": "{{count}} values"
1700
+ },
1701
+ "media_library": {
1702
+ "download": "Download"
1703
+ },
1704
+ "catalogs": {
1705
+ "terms": {
1706
+ "title": "Commercial terms",
1707
+ "description": "How much buyers on this agreement must order.",
1708
+ "no_rule_placeholder": "No rule",
1709
+ "minimums_title": "Order minimums",
1710
+ "minimums_description": "The least a whole order must come to, per currency.",
1711
+ "minimums_empty": "No order minimum. Buyers may check out with any total.",
1712
+ "minimum_amount_label": "Minimum amount",
1713
+ "validation": {
1714
+ "positive_integer": "Enter a whole number greater than zero, or leave blank.",
1715
+ "currency_taken": "This currency already has a minimum.",
1716
+ "positive_amount": "Enter an amount greater than zero.",
1717
+ "fix_terms": "Fix the highlighted quantity rules before saving."
1718
+ },
1719
+ "mixed": "Mixed",
1720
+ "inherits": "Default",
1721
+ "default_help": "Applies to every product in this catalog, unless a product states its own on the list.",
1722
+ "column_minimum": "Minimum",
1723
+ "column_multiple": "Multiple",
1724
+ "help": {
1725
+ "minimum": "The least a buyer may order of one product. An order below it is refused with the nearest valid quantities named — nothing is ever rounded up for them.",
1726
+ "multiple": "The step size. With a multiple of 24 a buyer orders 24, 48 or 72 — never 30. Steps count up from the minimum, so a minimum of 50 in steps of 24 allows 50, 74 and 98.",
1727
+ "order_minimum": "The least a whole order must come to, counting items only — delivery and tax do not help reach it. Buyers see how far short they are while they shop, and checkout is refused until they reach it."
1728
+ }
1729
+ }
1730
+ },
1731
+ "types": {
1732
+ "calculator": {
1733
+ "default_refund_amount": {
1734
+ "name": "Default Refund Amount",
1735
+ "description": "Refunds the amount originally paid for the returned items"
1736
+ },
1737
+ "default_tax": {
1738
+ "name": "Default Tax",
1739
+ "description": "Applies the tax rate to the taxable amount"
1740
+ },
1741
+ "digital_delivery": {
1742
+ "name": "Digital Delivery",
1743
+ "description": "No shipping cost — the order is delivered digitally"
1744
+ },
1745
+ "flat_percent_item_total": {
1746
+ "name": "Flat Percent",
1747
+ "description": "A percentage of the order item total"
1748
+ },
1749
+ "flat_rate": {
1750
+ "name": "Flat Rate",
1751
+ "description": "One fixed amount, whatever the order contains"
1752
+ },
1753
+ "flexi_rate": {
1754
+ "name": "Flexi Rate",
1755
+ "description": "A base amount plus a per-item amount"
1756
+ },
1757
+ "per_item": {
1758
+ "name": "Per Item",
1759
+ "description": "A fixed amount for each item in the order"
1760
+ },
1761
+ "percent_on_line_item": {
1762
+ "name": "Percent Per Line Item",
1763
+ "description": "A percentage of each line item"
1764
+ },
1765
+ "price_sack": {
1766
+ "name": "Price Sack",
1767
+ "description": "One amount below a threshold, another at or above it"
1768
+ },
1769
+ "tiered_flat_rate": {
1770
+ "name": "Tiered Flat Rate",
1771
+ "description": "A fixed amount that changes with the order total"
1772
+ },
1773
+ "tiered_percent": {
1774
+ "name": "Tiered Percent",
1775
+ "description": "A percentage that changes with the order total"
1776
+ }
1777
+ },
1778
+ "collection_rule": {
1779
+ "available_on": {
1780
+ "name": "Recently published",
1781
+ "description": "Products published within the last N days"
1782
+ },
1783
+ "sale": {
1784
+ "name": "On sale",
1785
+ "description": "Products currently discounted below their compare-at price"
1786
+ },
1787
+ "tag": {
1788
+ "name": "Tag",
1789
+ "description": "Products carrying a matching tag"
1790
+ }
1791
+ },
1792
+ "commission_rule": {
1793
+ "category_rule": {
1794
+ "name": "Category",
1795
+ "description": "Charges this rate only for products in the selected categories, and anything filed beneath them"
1796
+ },
1797
+ "item_total_rule": {
1798
+ "name": "Sale value",
1799
+ "description": "Charges this rate only on sales within a value range"
1800
+ },
1801
+ "product_rule": {
1802
+ "name": "Product",
1803
+ "description": "Charges this rate only for the selected products"
1804
+ },
1805
+ "seller_rule": {
1806
+ "name": "Seller",
1807
+ "description": "Charges this rate only when the seller is one of the selected"
1808
+ }
1809
+ },
1810
+ "delivery_method_rule": {
1811
+ "channel_rule": {
1812
+ "name": "Channel",
1813
+ "description": "Offer this delivery method only on the selected sales channels"
1814
+ },
1815
+ "company_rule": {
1816
+ "name": "Company",
1817
+ "description": "Offer this delivery method only to orders placed for a company, or only to those that are not"
1818
+ },
1819
+ "excluded_products_rule": {
1820
+ "name": "Excluded products",
1821
+ "description": "Hide this delivery method when the order contains any of these products"
1822
+ },
1823
+ "item_total_rule": {
1824
+ "name": "Item total",
1825
+ "description": "Offer this delivery method only when the order total is within a range"
1826
+ },
1827
+ "volume_rule": {
1828
+ "name": "Volume",
1829
+ "description": "Offer this delivery method only when the shipment volume is within a range, in cubic meters"
1830
+ },
1831
+ "weight_rule": {
1832
+ "name": "Weight",
1833
+ "description": "Offer this delivery method only when the parcel weight is within a range"
1834
+ }
1835
+ },
1836
+ "order_routing_rule": {
1837
+ "default_location": {
1838
+ "name": "Default location",
1839
+ "description": "Prefer the stock location marked as default"
1840
+ },
1841
+ "minimize_splits": {
1842
+ "name": "Minimize splits",
1843
+ "description": "Prefer the location that can fulfill the most items on its own, avoiding split shipments"
1844
+ },
1845
+ "preferred_location": {
1846
+ "name": "Preferred location",
1847
+ "description": "Fulfill from the location pinned on the order, when one is set"
1848
+ }
1849
+ },
1850
+ "price_rule": {
1851
+ "channel_rule": {
1852
+ "name": "Channel",
1853
+ "description": "Apply pricing based on the sales channel"
1854
+ },
1855
+ "customer_group_rule": {
1856
+ "name": "Customer group",
1857
+ "description": "Apply pricing to specific customer groups"
1858
+ },
1859
+ "market_rule": {
1860
+ "name": "Market",
1861
+ "description": "Apply pricing based on the market"
1862
+ },
1863
+ "user_rule": {
1864
+ "name": "Customer",
1865
+ "description": "Apply pricing to specific customers"
1866
+ },
1867
+ "volume_rule": {
1868
+ "name": "Volume pricing",
1869
+ "description": "Apply pricing based on quantity purchased"
1870
+ },
1871
+ "zone_rule": {
1872
+ "name": "Zone",
1873
+ "description": "Apply pricing based on the shipping zone"
1874
+ }
1875
+ },
1876
+ "promotion_action": {
1877
+ "create_adjustment": {
1878
+ "name": "Create whole-order adjustment",
1879
+ "description": "Creates a promotion credit adjustment on the order"
1880
+ },
1881
+ "create_item_adjustments": {
1882
+ "name": "Create per-line-item adjustment",
1883
+ "description": "Creates a promotion credit adjustment on a line item"
1884
+ },
1885
+ "create_line_items": {
1886
+ "name": "Create line items",
1887
+ "description": "Populates the cart with the specified quantity of variant"
1888
+ },
1889
+ "free_shipping": {
1890
+ "name": "Free shipping",
1891
+ "description": "Makes all shipments for the order free"
1892
+ }
1893
+ },
1894
+ "promotion_rule": {
1895
+ "category": {
1896
+ "name": "Categories",
1897
+ "description": "Order includes products in specified categories"
1898
+ },
1899
+ "channel": {
1900
+ "name": "Channel(s)",
1901
+ "description": "Limit to orders placed through specific sales channels"
1902
+ },
1903
+ "country": {
1904
+ "name": "Country",
1905
+ "description": "Limit to orders with shipping address in a specific country"
1906
+ },
1907
+ "currency": {
1908
+ "name": "Currency",
1909
+ "description": "Limit to orders in a specific currency"
1910
+ },
1911
+ "customer": {
1912
+ "name": "Customers",
1913
+ "description": "Available only to the specified customers"
1914
+ },
1915
+ "customer_group": {
1916
+ "name": "Customer Group(s)",
1917
+ "description": "Available only to customers in specified customer group(s)"
1918
+ },
1919
+ "customer_logged_in": {
1920
+ "name": "Only logged in customers",
1921
+ "description": "Available only to logged in customers"
1922
+ },
1923
+ "first_order": {
1924
+ "name": "First order",
1925
+ "description": "Must be the customer's first order"
1926
+ },
1927
+ "item_total": {
1928
+ "name": "Item total",
1929
+ "description": "Order total meets these criteria"
1930
+ },
1931
+ "market": {
1932
+ "name": "Market(s)",
1933
+ "description": "Limit to orders from specific markets"
1934
+ },
1935
+ "one_use_per_user": {
1936
+ "name": "One Use Per User",
1937
+ "description": "Only One Use Per User"
1938
+ },
1939
+ "option_value": {
1940
+ "name": "Option Value(s)",
1941
+ "description": "Order includes products with matching option value(s)"
1942
+ },
1943
+ "product": {
1944
+ "name": "Product(s)",
1945
+ "description": "Order includes specified product(s)"
1946
+ }
1947
+ },
1948
+ "seller_requirement": {
1949
+ "accept_terms": {
1950
+ "name": "Accept terms",
1951
+ "description": "The seller must accept your marketplace terms before selling"
1952
+ },
1953
+ "attestation": {
1954
+ "name": "Seller confirmation",
1955
+ "description": "The seller must confirm a statement you write"
1956
+ },
1957
+ "billing_address": {
1958
+ "name": "Billing address",
1959
+ "description": "The seller must provide a billing address"
1960
+ },
1961
+ "complete_profile": {
1962
+ "name": "Complete profile",
1963
+ "description": "The seller must fill in their public profile"
1964
+ },
1965
+ "delivery_method": {
1966
+ "name": "Delivery method",
1967
+ "description": "The seller must configure at least one delivery method"
1968
+ },
1969
+ "document": {
1970
+ "name": "Document",
1971
+ "description": "The seller must upload a document for review"
1972
+ },
1973
+ "minimum_products": {
1974
+ "name": "Minimum products",
1975
+ "description": "The seller must list a minimum number of products"
1976
+ },
1977
+ "operator_review": {
1978
+ "name": "Manual check",
1979
+ "description": "A member of your team must approve the seller by hand"
1980
+ },
1981
+ "payout_account": {
1982
+ "name": "Payout account",
1983
+ "description": "The seller must connect an account to receive payouts"
1984
+ },
1985
+ "policy": {
1986
+ "name": "Seller policy",
1987
+ "description": "The seller must publish their store policies"
1988
+ },
1989
+ "required_custom_fields": {
1990
+ "name": "Required custom fields",
1991
+ "description": "The seller must fill in the custom fields you mark as required"
1992
+ },
1993
+ "returns_address": {
1994
+ "name": "Returns address",
1995
+ "description": "The seller must provide an address for returns"
1996
+ }
1997
+ }
631
1998
  }
632
1999
  }
633
2000
  }