spree_api 5.5.2 → 5.6.0.rc1

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 (93) hide show
  1. checksums.yaml +4 -4
  2. data/app/controllers/concerns/spree/api/v3/admin/role_grant_guard.rb +3 -1
  3. data/app/controllers/concerns/spree/api/v3/admin_authentication.rb +1 -1
  4. data/app/controllers/concerns/spree/api/v3/channel_resolution.rb +4 -2
  5. data/app/controllers/concerns/spree/api/v3/locale_and_currency.rb +4 -1
  6. data/app/controllers/concerns/spree/api/v3/storefront_gating.rb +65 -0
  7. data/app/controllers/spree/api/v3/admin/admin_users_controller.rb +1 -1
  8. data/app/controllers/spree/api/v3/admin/categories/products_controller.rb +98 -0
  9. data/app/controllers/spree/api/v3/admin/categories_controller.rb +102 -2
  10. data/app/controllers/spree/api/v3/admin/customers_controller.rb +8 -2
  11. data/app/controllers/spree/api/v3/admin/exports_controller.rb +3 -1
  12. data/app/controllers/spree/api/v3/admin/import_rows_controller.rb +49 -0
  13. data/app/controllers/spree/api/v3/admin/imports_controller.rb +274 -0
  14. data/app/controllers/spree/api/v3/admin/locales_controller.rb +29 -0
  15. data/app/controllers/spree/api/v3/admin/me_controller.rb +39 -9
  16. data/app/controllers/spree/api/v3/admin/orders/fulfillments_controller.rb +62 -2
  17. data/app/controllers/spree/api/v3/admin/password_resets_controller.rb +105 -0
  18. data/app/controllers/spree/api/v3/admin/payment_methods_controller.rb +1 -8
  19. data/app/controllers/spree/api/v3/admin/products/variants_controller.rb +1 -1
  20. data/app/controllers/spree/api/v3/admin/products_controller.rb +8 -7
  21. data/app/controllers/spree/api/v3/admin/promotions_controller.rb +1 -1
  22. data/app/controllers/spree/api/v3/admin/resource_controller.rb +31 -0
  23. data/app/controllers/spree/api/v3/admin/store_controller.rb +3 -0
  24. data/app/controllers/spree/api/v3/admin/translatable_resources_controller.rb +38 -0
  25. data/app/controllers/spree/api/v3/admin/translations/batches_controller.rb +113 -0
  26. data/app/controllers/spree/api/v3/admin/translations_controller.rb +106 -0
  27. data/app/controllers/spree/api/v3/resource_controller.rb +0 -2
  28. data/app/controllers/spree/api/v3/store/auth_controller.rb +3 -1
  29. data/app/controllers/spree/api/v3/store/base_controller.rb +5 -0
  30. data/app/controllers/spree/api/v3/store/carts/fulfillments_controller.rb +1 -3
  31. data/app/controllers/spree/api/v3/store/carts_controller.rb +4 -0
  32. data/app/controllers/spree/api/v3/store/countries_controller.rb +1 -0
  33. data/app/controllers/spree/api/v3/store/currencies_controller.rb +1 -0
  34. data/app/controllers/spree/api/v3/store/customer/password_resets_controller.rb +5 -1
  35. data/app/controllers/spree/api/v3/store/customers_controller.rb +3 -1
  36. data/app/controllers/spree/api/v3/store/digitals_controller.rb +1 -0
  37. data/app/controllers/spree/api/v3/store/locales_controller.rb +3 -8
  38. data/app/controllers/spree/api/v3/store/markets/countries_controller.rb +1 -0
  39. data/app/controllers/spree/api/v3/store/markets_controller.rb +1 -0
  40. data/app/controllers/spree/api/v3/store/newsletter_subscribers_controller.rb +1 -0
  41. data/app/controllers/spree/api/v3/store/products/filters_controller.rb +12 -8
  42. data/app/controllers/spree/api/v3/store/products_controller.rb +1 -1
  43. data/app/controllers/spree/api/v3/store/resource_controller.rb +1 -0
  44. data/app/serializers/concerns/spree/api/v3/admin/translatable.rb +38 -0
  45. data/app/serializers/spree/api/v3/admin/admin_user_serializer.rb +7 -1
  46. data/app/serializers/spree/api/v3/admin/category_serializer.rb +5 -3
  47. data/app/serializers/spree/api/v3/admin/channel_serializer.rb +5 -1
  48. data/app/serializers/spree/api/v3/admin/customer_serializer.rb +7 -2
  49. data/app/serializers/spree/api/v3/admin/discount_serializer.rb +4 -0
  50. data/app/serializers/spree/api/v3/admin/fulfillment_serializer.rb +9 -0
  51. data/app/serializers/spree/api/v3/admin/gift_card_serializer.rb +7 -0
  52. data/app/serializers/spree/api/v3/admin/import_mapping_serializer.rb +20 -0
  53. data/app/serializers/spree/api/v3/admin/import_row_serializer.rb +17 -0
  54. data/app/serializers/spree/api/v3/admin/import_serializer.rb +70 -0
  55. data/app/serializers/spree/api/v3/admin/line_item_serializer.rb +11 -0
  56. data/app/serializers/spree/api/v3/admin/option_type_serializer.rb +2 -0
  57. data/app/serializers/spree/api/v3/admin/order_serializer.rb +15 -1
  58. data/app/serializers/spree/api/v3/admin/payment_serializer.rb +4 -0
  59. data/app/serializers/spree/api/v3/admin/product_serializer.rb +1 -0
  60. data/app/serializers/spree/api/v3/admin/promotion_rule_serializer.rb +8 -0
  61. data/app/serializers/spree/api/v3/admin/resource_translations_serializer.rb +76 -0
  62. data/app/serializers/spree/api/v3/admin/setup_task_serializer.rb +18 -0
  63. data/app/serializers/spree/api/v3/admin/store_serializer.rb +27 -1
  64. data/app/serializers/spree/api/v3/admin/variant_serializer.rb +8 -1
  65. data/app/serializers/spree/api/v3/base_serializer.rb +13 -0
  66. data/app/serializers/spree/api/v3/cart_serializer.rb +25 -22
  67. data/app/serializers/spree/api/v3/discount_serializer.rb +6 -2
  68. data/app/serializers/spree/api/v3/fulfillment_serializer.rb +16 -13
  69. data/app/serializers/spree/api/v3/gift_card_serializer.rb +15 -11
  70. data/app/serializers/spree/api/v3/import_row_serializer.rb +1 -1
  71. data/app/serializers/spree/api/v3/line_item_serializer.rb +35 -17
  72. data/app/serializers/spree/api/v3/locale_serializer.rb +6 -1
  73. data/app/serializers/spree/api/v3/order_serializer.rb +25 -21
  74. data/app/serializers/spree/api/v3/payment_serializer.rb +6 -2
  75. data/app/serializers/spree/api/v3/product_filter_availability_option_serializer.rb +11 -0
  76. data/app/serializers/spree/api/v3/product_filter_availability_serializer.rb +15 -0
  77. data/app/serializers/spree/api/v3/product_filter_category_option_serializer.rb +14 -0
  78. data/app/serializers/spree/api/v3/product_filter_category_serializer.rb +15 -0
  79. data/app/serializers/spree/api/v3/product_filter_option_serializer.rb +18 -0
  80. data/app/serializers/spree/api/v3/product_filter_option_value_serializer.rb +17 -0
  81. data/app/serializers/spree/api/v3/product_filter_price_range_serializer.rb +15 -0
  82. data/app/serializers/spree/api/v3/product_filter_sort_option_serializer.rb +11 -0
  83. data/app/serializers/spree/api/v3/product_filters_serializer.rb +36 -0
  84. data/app/serializers/spree/api/v3/product_serializer.rb +9 -1
  85. data/app/serializers/spree/api/v3/variant_serializer.rb +12 -1
  86. data/app/services/spree/api/v3/filters_aggregator.rb +4 -4
  87. data/app/subscribers/spree/webhook_event_subscriber.rb +6 -0
  88. data/config/initializers/typelizer.rb +10 -0
  89. data/config/locales/en.yml +4 -0
  90. data/config/routes.rb +54 -4
  91. data/lib/spree/api/dependencies.rb +14 -0
  92. data/lib/spree/api/openapi/schema_helper.rb +29 -0
  93. metadata +30 -6
@@ -106,6 +106,16 @@ module Spree
106
106
  },
107
107
  required: %w[user permissions]
108
108
  },
109
+ ImportSchemaField: {
110
+ type: :object,
111
+ description: 'A canonical column of an import type, including per-store custom field columns',
112
+ properties: {
113
+ name: { type: :string, description: 'Canonical field name used in mappings', example: 'slug' },
114
+ label: { type: :string, description: 'Human-readable label', example: 'Slug' },
115
+ required: { type: :boolean, description: 'Whether the field must be mapped before processing' }
116
+ },
117
+ required: %w[name label required]
118
+ },
109
119
  CheckoutRequirement: {
110
120
  type: :object,
111
121
  properties: {
@@ -230,10 +240,29 @@ module Spree
230
240
  patch_promotion_rule_schema(schemas)
231
241
  patch_promotion_action_schema(schemas)
232
242
  patch_price_rule_schema(schemas)
243
+ patch_import_schema(schemas)
233
244
  schemas
234
245
  end
235
246
  end
236
247
 
248
+ # Same Array<{...}> issue as cart/fulfillment — patch Import#schema_fields
249
+ # to reference the ImportSchemaField component schema.
250
+ def patch_import_schema(schemas)
251
+ import = schemas['Import'] || schemas[:Import]
252
+ return unless import
253
+
254
+ props = import[:properties]
255
+ return unless props
256
+
257
+ fields_key = props.key?('schema_fields') ? 'schema_fields' : :schema_fields
258
+ if props[fields_key]
259
+ props[fields_key] = {
260
+ type: :array,
261
+ items: { '$ref' => '#/components/schemas/ImportSchemaField' }
262
+ }
263
+ end
264
+ end
265
+
237
266
  # Typelizer cannot represent Array<{...}> inline object types in OpenAPI,
238
267
  # so we patch them to reference manually-defined component schemas.
239
268
  def patch_cart_schema(schemas)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: spree_api
3
3
  version: !ruby/object:Gem::Version
4
- version: 5.5.2
4
+ version: 5.6.0.rc1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Vendo Connect Inc.
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2026-07-06 00:00:00.000000000 Z
11
+ date: 2026-07-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rswag-specs
@@ -72,14 +72,14 @@ dependencies:
72
72
  requirements:
73
73
  - - '='
74
74
  - !ruby/object:Gem::Version
75
- version: 5.5.2
75
+ version: 5.6.0.rc1
76
76
  type: :runtime
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - '='
81
81
  - !ruby/object:Gem::Version
82
- version: 5.5.2
82
+ version: 5.6.0.rc1
83
83
  description: Spree's API
84
84
  email:
85
85
  - hello@spreecommerce.org
@@ -109,11 +109,13 @@ files:
109
109
  - app/controllers/concerns/spree/api/v3/scoped_authorization.rb
110
110
  - app/controllers/concerns/spree/api/v3/security_headers.rb
111
111
  - app/controllers/concerns/spree/api/v3/store/search_provider_support.rb
112
+ - app/controllers/concerns/spree/api/v3/storefront_gating.rb
112
113
  - app/controllers/spree/api/v3/admin/admin_users_controller.rb
113
114
  - app/controllers/spree/api/v3/admin/allowed_origins_controller.rb
114
115
  - app/controllers/spree/api/v3/admin/api_keys_controller.rb
115
116
  - app/controllers/spree/api/v3/admin/auth_controller.rb
116
117
  - app/controllers/spree/api/v3/admin/base_controller.rb
118
+ - app/controllers/spree/api/v3/admin/categories/products_controller.rb
117
119
  - app/controllers/spree/api/v3/admin/categories_controller.rb
118
120
  - app/controllers/spree/api/v3/admin/channels_controller.rb
119
121
  - app/controllers/spree/api/v3/admin/countries_controller.rb
@@ -131,8 +133,11 @@ files:
131
133
  - app/controllers/spree/api/v3/admin/exports_controller.rb
132
134
  - app/controllers/spree/api/v3/admin/gift_card_batches_controller.rb
133
135
  - app/controllers/spree/api/v3/admin/gift_cards_controller.rb
136
+ - app/controllers/spree/api/v3/admin/import_rows_controller.rb
137
+ - app/controllers/spree/api/v3/admin/imports_controller.rb
134
138
  - app/controllers/spree/api/v3/admin/invitation_acceptances_controller.rb
135
139
  - app/controllers/spree/api/v3/admin/invitations_controller.rb
140
+ - app/controllers/spree/api/v3/admin/locales_controller.rb
136
141
  - app/controllers/spree/api/v3/admin/markets_controller.rb
137
142
  - app/controllers/spree/api/v3/admin/me_controller.rb
138
143
  - app/controllers/spree/api/v3/admin/media_controller.rb
@@ -146,6 +151,7 @@ files:
146
151
  - app/controllers/spree/api/v3/admin/orders/refunds_controller.rb
147
152
  - app/controllers/spree/api/v3/admin/orders/store_credits_controller.rb
148
153
  - app/controllers/spree/api/v3/admin/orders_controller.rb
154
+ - app/controllers/spree/api/v3/admin/password_resets_controller.rb
149
155
  - app/controllers/spree/api/v3/admin/payment_methods_controller.rb
150
156
  - app/controllers/spree/api/v3/admin/price_lists_controller.rb
151
157
  - app/controllers/spree/api/v3/admin/prices_controller.rb
@@ -164,6 +170,9 @@ files:
164
170
  - app/controllers/spree/api/v3/admin/store_credit_categories_controller.rb
165
171
  - app/controllers/spree/api/v3/admin/tags_controller.rb
166
172
  - app/controllers/spree/api/v3/admin/tax_categories_controller.rb
173
+ - app/controllers/spree/api/v3/admin/translatable_resources_controller.rb
174
+ - app/controllers/spree/api/v3/admin/translations/batches_controller.rb
175
+ - app/controllers/spree/api/v3/admin/translations_controller.rb
167
176
  - app/controllers/spree/api/v3/admin/variants_controller.rb
168
177
  - app/controllers/spree/api/v3/admin/webhook_deliveries_controller.rb
169
178
  - app/controllers/spree/api/v3/admin/webhook_endpoints_controller.rb
@@ -207,6 +216,7 @@ files:
207
216
  - app/jobs/spree/api_keys/mark_as_used.rb
208
217
  - app/jobs/spree/webhook_delivery_job.rb
209
218
  - app/models/spree/api_key_ability.rb
219
+ - app/serializers/concerns/spree/api/v3/admin/translatable.rb
210
220
  - app/serializers/spree/api/v3/address_serializer.rb
211
221
  - app/serializers/spree/api/v3/admin/address_serializer.rb
212
222
  - app/serializers/spree/api/v3/admin/adjustment_serializer.rb
@@ -231,6 +241,9 @@ files:
231
241
  - app/serializers/spree/api/v3/admin/fulfillment_serializer.rb
232
242
  - app/serializers/spree/api/v3/admin/gift_card_batch_serializer.rb
233
243
  - app/serializers/spree/api/v3/admin/gift_card_serializer.rb
244
+ - app/serializers/spree/api/v3/admin/import_mapping_serializer.rb
245
+ - app/serializers/spree/api/v3/admin/import_row_serializer.rb
246
+ - app/serializers/spree/api/v3/admin/import_serializer.rb
234
247
  - app/serializers/spree/api/v3/admin/invitation_serializer.rb
235
248
  - app/serializers/spree/api/v3/admin/line_item_serializer.rb
236
249
  - app/serializers/spree/api/v3/admin/market_serializer.rb
@@ -252,8 +265,10 @@ files:
252
265
  - app/serializers/spree/api/v3/admin/promotion_serializer.rb
253
266
  - app/serializers/spree/api/v3/admin/refund_serializer.rb
254
267
  - app/serializers/spree/api/v3/admin/reimbursement_serializer.rb
268
+ - app/serializers/spree/api/v3/admin/resource_translations_serializer.rb
255
269
  - app/serializers/spree/api/v3/admin/return_authorization_serializer.rb
256
270
  - app/serializers/spree/api/v3/admin/role_serializer.rb
271
+ - app/serializers/spree/api/v3/admin/setup_task_serializer.rb
257
272
  - app/serializers/spree/api/v3/admin/state_serializer.rb
258
273
  - app/serializers/spree/api/v3/admin/stock_item_serializer.rb
259
274
  - app/serializers/spree/api/v3/admin/stock_location_serializer.rb
@@ -305,6 +320,15 @@ files:
305
320
  - app/serializers/spree/api/v3/policy_serializer.rb
306
321
  - app/serializers/spree/api/v3/price_history_serializer.rb
307
322
  - app/serializers/spree/api/v3/price_serializer.rb
323
+ - app/serializers/spree/api/v3/product_filter_availability_option_serializer.rb
324
+ - app/serializers/spree/api/v3/product_filter_availability_serializer.rb
325
+ - app/serializers/spree/api/v3/product_filter_category_option_serializer.rb
326
+ - app/serializers/spree/api/v3/product_filter_category_serializer.rb
327
+ - app/serializers/spree/api/v3/product_filter_option_serializer.rb
328
+ - app/serializers/spree/api/v3/product_filter_option_value_serializer.rb
329
+ - app/serializers/spree/api/v3/product_filter_price_range_serializer.rb
330
+ - app/serializers/spree/api/v3/product_filter_sort_option_serializer.rb
331
+ - app/serializers/spree/api/v3/product_filters_serializer.rb
308
332
  - app/serializers/spree/api/v3/product_publication_serializer.rb
309
333
  - app/serializers/spree/api/v3/product_serializer.rb
310
334
  - app/serializers/spree/api/v3/promotion_serializer.rb
@@ -355,9 +379,9 @@ licenses:
355
379
  - BSD-3-Clause
356
380
  metadata:
357
381
  bug_tracker_uri: https://github.com/spree/spree/issues
358
- changelog_uri: https://github.com/spree/spree/releases/tag/v5.5.2
382
+ changelog_uri: https://github.com/spree/spree/releases/tag/v5.6.0.rc1
359
383
  documentation_uri: https://docs.spreecommerce.org/
360
- source_code_uri: https://github.com/spree/spree/tree/v5.5.2
384
+ source_code_uri: https://github.com/spree/spree/tree/v5.6.0.rc1
361
385
  post_install_message:
362
386
  rdoc_options: []
363
387
  require_paths: