spree_api 5.5.3 → 5.6.0.rc2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (86) 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 +19 -2
  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 +69 -1
  41. data/app/controllers/spree/api/v3/store/products/filters_controller.rb +5 -2
  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 +17 -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/newsletter_subscriber_serializer.rb +15 -0
  57. data/app/serializers/spree/api/v3/admin/option_type_serializer.rb +2 -0
  58. data/app/serializers/spree/api/v3/admin/order_serializer.rb +15 -1
  59. data/app/serializers/spree/api/v3/admin/payment_serializer.rb +4 -0
  60. data/app/serializers/spree/api/v3/admin/product_serializer.rb +1 -0
  61. data/app/serializers/spree/api/v3/admin/promotion_rule_serializer.rb +8 -0
  62. data/app/serializers/spree/api/v3/admin/resource_translations_serializer.rb +76 -0
  63. data/app/serializers/spree/api/v3/admin/setup_task_serializer.rb +18 -0
  64. data/app/serializers/spree/api/v3/admin/store_serializer.rb +27 -1
  65. data/app/serializers/spree/api/v3/admin/variant_serializer.rb +8 -1
  66. data/app/serializers/spree/api/v3/base_serializer.rb +13 -0
  67. data/app/serializers/spree/api/v3/cart_serializer.rb +25 -22
  68. data/app/serializers/spree/api/v3/customer_serializer.rb +7 -1
  69. data/app/serializers/spree/api/v3/discount_serializer.rb +6 -2
  70. data/app/serializers/spree/api/v3/fulfillment_serializer.rb +16 -13
  71. data/app/serializers/spree/api/v3/gift_card_serializer.rb +15 -11
  72. data/app/serializers/spree/api/v3/import_row_serializer.rb +1 -1
  73. data/app/serializers/spree/api/v3/line_item_serializer.rb +35 -17
  74. data/app/serializers/spree/api/v3/locale_serializer.rb +6 -1
  75. data/app/serializers/spree/api/v3/order_serializer.rb +25 -21
  76. data/app/serializers/spree/api/v3/payment_serializer.rb +6 -2
  77. data/app/serializers/spree/api/v3/product_serializer.rb +9 -1
  78. data/app/serializers/spree/api/v3/variant_serializer.rb +12 -1
  79. data/app/services/spree/api/v3/filters_aggregator.rb +4 -4
  80. data/app/subscribers/spree/webhook_event_subscriber.rb +6 -0
  81. data/config/initializers/typelizer.rb +10 -0
  82. data/config/locales/en.yml +5 -0
  83. data/config/routes.rb +61 -6
  84. data/lib/spree/api/dependencies.rb +6 -0
  85. data/lib/spree/api/openapi/schema_helper.rb +29 -0
  86. metadata +22 -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.3
4
+ version: 5.6.0.rc2
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-10 00:00:00.000000000 Z
11
+ date: 2026-07-17 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.3
75
+ version: 5.6.0.rc2
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.3
82
+ version: 5.6.0.rc2
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,10 +241,14 @@ 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
237
250
  - app/serializers/spree/api/v3/admin/media_serializer.rb
251
+ - app/serializers/spree/api/v3/admin/newsletter_subscriber_serializer.rb
238
252
  - app/serializers/spree/api/v3/admin/option_type_serializer.rb
239
253
  - app/serializers/spree/api/v3/admin/option_value_serializer.rb
240
254
  - app/serializers/spree/api/v3/admin/order_serializer.rb
@@ -252,8 +266,10 @@ files:
252
266
  - app/serializers/spree/api/v3/admin/promotion_serializer.rb
253
267
  - app/serializers/spree/api/v3/admin/refund_serializer.rb
254
268
  - app/serializers/spree/api/v3/admin/reimbursement_serializer.rb
269
+ - app/serializers/spree/api/v3/admin/resource_translations_serializer.rb
255
270
  - app/serializers/spree/api/v3/admin/return_authorization_serializer.rb
256
271
  - app/serializers/spree/api/v3/admin/role_serializer.rb
272
+ - app/serializers/spree/api/v3/admin/setup_task_serializer.rb
257
273
  - app/serializers/spree/api/v3/admin/state_serializer.rb
258
274
  - app/serializers/spree/api/v3/admin/stock_item_serializer.rb
259
275
  - app/serializers/spree/api/v3/admin/stock_location_serializer.rb
@@ -364,9 +380,9 @@ licenses:
364
380
  - BSD-3-Clause
365
381
  metadata:
366
382
  bug_tracker_uri: https://github.com/spree/spree/issues
367
- changelog_uri: https://github.com/spree/spree/releases/tag/v5.5.3
383
+ changelog_uri: https://github.com/spree/spree/releases/tag/v5.6.0.rc2
368
384
  documentation_uri: https://docs.spreecommerce.org/
369
- source_code_uri: https://github.com/spree/spree/tree/v5.5.3
385
+ source_code_uri: https://github.com/spree/spree/tree/v5.6.0.rc2
370
386
  post_install_message:
371
387
  rdoc_options: []
372
388
  require_paths: