spree_api 5.4.0.rc5 → 5.4.0.rc6

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 7bf4fd91d6d248fb992f0897c4b6f2500383739bea4428287a7d23dcd43f821f
4
- data.tar.gz: dd8574c47b2bb4384741192c2126d265890cdda143e59f06c941d2bb2eb76e54
3
+ metadata.gz: 3c6d59935273b4cebfd26475ed05ea9840f29fee02e48dcb1157d085f3f64fca
4
+ data.tar.gz: a123d6fc36a3da09c3c4dd20e49038dda91fe3b9975bcdb84d8d0d69da2be1b0
5
5
  SHA512:
6
- metadata.gz: 97e1cd5bc0b694680f2deff318bf085f73ab265ce7332a92d6b91f4acf2e5f4bca64e248ab13032af8b81f819aa0e336e2bbd91761f51eb0e3d5faa94e8af246
7
- data.tar.gz: 2faea7ab9506da06796b87cc4c891a429809f0535d2408e67e99435a328f34e27e1f320caabf913922f9250b161c2d7d35c9603f0862b77c79d3f7ae9f36853b
6
+ metadata.gz: 73d708653cef72adfc6b5b4af0e341746187c19f2f752de81cdcd3222ca9855115df204f3bfda74665ce33bb7273eed11f2c7c0038bf18ee86a3c56f3f5cbb12
7
+ data.tar.gz: 48ede905487d71fdb3d5944c3fdc1c43478036d6fd12dd946118fcb338d8ed3a15c739cc3e67701f73ae6ad5f60f78b50151872ee066d29e15d5166ddf56bd0a
@@ -141,6 +141,7 @@ module Spree
141
141
  params.permit(
142
142
  :email,
143
143
  :customer_note,
144
+ :market_id,
144
145
  :currency,
145
146
  :locale,
146
147
  :shipping_address_id,
@@ -0,0 +1,15 @@
1
+ module Spree
2
+ module Api
3
+ module V3
4
+ module Admin
5
+ class CountrySerializer < V3::CountrySerializer
6
+ attributes created_at: :iso8601, updated_at: :iso8601
7
+
8
+ many :states,
9
+ resource: Spree.api.admin_state_serializer,
10
+ if: proc { expand?(:states) }
11
+ end
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,15 @@
1
+ module Spree
2
+ module Api
3
+ module V3
4
+ module Admin
5
+ class MarketSerializer < V3::MarketSerializer
6
+ attributes created_at: :iso8601, updated_at: :iso8601
7
+
8
+ many :countries,
9
+ resource: Spree.api.admin_country_serializer,
10
+ if: proc { expand?(:countries) }
11
+ end
12
+ end
13
+ end
14
+ end
15
+ end
@@ -52,6 +52,7 @@ module Spree
52
52
  one :billing_address, resource: Spree.api.admin_address_serializer, if: proc { expand?('billing_address') }
53
53
  one :shipping_address, resource: Spree.api.admin_address_serializer, if: proc { expand?('shipping_address') }
54
54
  one :gift_card, resource: Spree.api.admin_gift_card_serializer
55
+ one :market, resource: Spree.api.admin_market_serializer
55
56
 
56
57
  many :payment_methods, resource: Spree.api.admin_payment_method_serializer, if: proc { expand?('payment_methods') }
57
58
 
@@ -0,0 +1,11 @@
1
+ module Spree
2
+ module Api
3
+ module V3
4
+ module Admin
5
+ class StateSerializer < V3::StateSerializer
6
+ attributes created_at: :iso8601, updated_at: :iso8601
7
+ end
8
+ end
9
+ end
10
+ end
11
+ end
@@ -60,10 +60,12 @@ module Spree
60
60
  private
61
61
 
62
62
  # Override Alba's fetch_attribute to automatically inject nested expand params
63
- # into child serializers via nested_params
63
+ # into child serializers via nested_params.
64
+ # Uses `key` (the public API name, e.g. :categories) for expand lookup,
65
+ # not `attribute.name` (the internal association name, e.g. :taxons).
64
66
  def fetch_attribute(obj, key, attribute)
65
67
  if attribute.is_a?(Alba::Association)
66
- nested = nested_params(attribute.name)
68
+ nested = nested_params(key)
67
69
  yield_if_within(attribute.name.to_sym) { |within| attribute.to_h(obj, params: nested, within: within) }
68
70
  else
69
71
  super
@@ -5,7 +5,8 @@ module Spree
5
5
  # Pre-purchase cart data with checkout progression info
6
6
  class CartSerializer < BaseSerializer
7
7
  typelize number: :string, current_step: :string, completed_steps: 'string[]', token: :string, email: [:string, nullable: true],
8
- customer_note: [:string, nullable: true], currency: :string, locale: [:string, nullable: true], total_quantity: :number,
8
+ customer_note: [:string, nullable: true], market_id: [:string, nullable: true],
9
+ currency: :string, locale: [:string, nullable: true], total_quantity: :number,
9
10
  requirements: 'Array<{step: string, field: string, message: string}>',
10
11
  item_total: :string, display_item_total: :string,
11
12
  delivery_total: :string, display_delivery_total: :string,
@@ -22,13 +23,17 @@ module Spree
22
23
  shipping_eq_billing_address: :boolean,
23
24
  warnings: 'Array<{code: string, message: string, line_item_id?: string, variant_id?: string}>',
24
25
  billing_address: { nullable: true }, shipping_address: { nullable: true },
25
- gift_card: { nullable: true }
26
+ gift_card: { nullable: true }, market: { nullable: true }
26
27
 
27
28
  # Override ID to use cart_ prefix
28
29
  attribute :id do |order|
29
30
  "cart_#{Spree::PrefixedId::SQIDS.encode([order.id])}"
30
31
  end
31
32
 
33
+ attribute :market_id do |order|
34
+ order.market&.prefixed_id
35
+ end
36
+
32
37
  attributes :number, :token, :email, :customer_note,
33
38
  :currency, :locale, :total_quantity,
34
39
  :item_total, :display_item_total,
@@ -77,6 +82,7 @@ module Spree
77
82
 
78
83
  many :payment_methods, resource: Spree.api.payment_method_serializer
79
84
  one :gift_card, resource: Spree.api.gift_card_serializer
85
+ one :market, resource: Spree.api.market_serializer
80
86
  end
81
87
  end
82
88
  end
@@ -2,9 +2,9 @@ module Spree
2
2
  module Api
3
3
  module V3
4
4
  class OptionTypeSerializer < BaseSerializer
5
- typelize name: :string, label: :string, position: :number
5
+ typelize name: :string, label: :string, position: :number, kind: :string
6
6
 
7
- attributes :name, :label, :position
7
+ attributes :name, :label, :position, :kind
8
8
  end
9
9
  end
10
10
  end
@@ -3,13 +3,14 @@ module Spree
3
3
  module V3
4
4
  class OptionValueSerializer < BaseSerializer
5
5
  typelize name: :string, label: :string, position: :number, option_type_id: :string,
6
- option_type_name: :string, option_type_label: :string
6
+ option_type_name: :string, option_type_label: :string,
7
+ color_code: 'string | null', image_url: 'string | null'
7
8
 
8
9
  attribute :option_type_id do |option_value|
9
10
  option_value.option_type&.prefixed_id
10
11
  end
11
12
 
12
- attributes :name, :label, :position
13
+ attributes :name, :label, :position, :color_code
13
14
 
14
15
  attribute :option_type_name do |option_value|
15
16
  option_value.option_type.name
@@ -18,6 +19,10 @@ module Spree
18
19
  attribute :option_type_label do |option_value|
19
20
  option_value.option_type.label
20
21
  end
22
+
23
+ attribute :image_url do |option_value|
24
+ image_url_for(option_value.image)
25
+ end
21
26
  end
22
27
  end
23
28
  end
@@ -5,7 +5,8 @@ module Spree
5
5
  # Post-purchase order data (completed orders)
6
6
  class OrderSerializer < BaseSerializer
7
7
  typelize number: :string, email: :string,
8
- customer_note: [:string, nullable: true], currency: :string, locale: [:string, nullable: true], total_quantity: :number,
8
+ customer_note: [:string, nullable: true], market_id: [:string, nullable: true],
9
+ currency: :string, locale: [:string, nullable: true], total_quantity: :number,
9
10
  fulfillment_status: [:string, nullable: true], payment_status: [:string, nullable: true],
10
11
  item_total: :string, display_item_total: :string,
11
12
  delivery_total: :string, display_delivery_total: :string,
@@ -21,7 +22,11 @@ module Spree
21
22
  amount_due: :string, display_amount_due: :string,
22
23
  completed_at: [:string, nullable: true],
23
24
  billing_address: { nullable: true }, shipping_address: { nullable: true },
24
- gift_card: { nullable: true }
25
+ gift_card: { nullable: true }, market: { nullable: true }
26
+
27
+ attribute :market_id do |order|
28
+ order.market&.prefixed_id
29
+ end
25
30
 
26
31
  attributes :number, :email, :customer_note,
27
32
  :currency, :locale, :total_quantity,
@@ -54,6 +59,7 @@ module Spree
54
59
  one :billing_address, resource: Spree.api.address_serializer
55
60
  one :shipping_address, resource: Spree.api.address_serializer
56
61
  one :gift_card, resource: Spree.api.gift_card_serializer
62
+ one :market, resource: Spree.api.market_serializer
57
63
  end
58
64
  end
59
65
  end
@@ -94,6 +94,7 @@ module Spree
94
94
  type: 'option',
95
95
  name: option_type.name,
96
96
  label: option_type.label,
97
+ kind: option_type.kind,
97
98
  options: values.map { |ov| option_value_data(count_ids, ov) }
98
99
  }
99
100
  end
@@ -112,6 +113,8 @@ module Spree
112
113
  name: option_value.name,
113
114
  label: option_value.label,
114
115
  position: option_value.position,
116
+ color_code: option_value.color_code,
117
+ image_url: option_value.image.attached? ? Rails.application.routes.url_helpers.cdn_image_url(option_value.image) : nil,
115
118
  count: count
116
119
  }
117
120
  end
@@ -156,6 +156,8 @@ module Spree
156
156
  stock_transfer_serializer: 'Spree::Api::V3::StockTransferSerializer',
157
157
 
158
158
  # v3 admin serializers (API v3 Admin)
159
+ admin_country_serializer: 'Spree::Api::V3::Admin::CountrySerializer',
160
+ admin_state_serializer: 'Spree::Api::V3::Admin::StateSerializer',
159
161
  admin_discount_serializer: 'Spree::Api::V3::Admin::DiscountSerializer',
160
162
  admin_customer_serializer: 'Spree::Api::V3::Admin::CustomerSerializer',
161
163
  admin_order_serializer: 'Spree::Api::V3::Admin::OrderSerializer',
@@ -183,6 +185,7 @@ module Spree
183
185
  admin_reimbursement_serializer: 'Spree::Api::V3::Admin::ReimbursementSerializer',
184
186
  admin_admin_user_serializer: 'Spree::Api::V3::Admin::AdminUserSerializer',
185
187
  admin_address_serializer: 'Spree::Api::V3::Admin::AddressSerializer',
188
+ admin_market_serializer: 'Spree::Api::V3::Admin::MarketSerializer',
186
189
  admin_shipping_method_serializer: 'Spree::Api::V3::Admin::DeliveryMethodSerializer',
187
190
  admin_delivery_method_serializer: 'Spree::Api::V3::Admin::DeliveryMethodSerializer',
188
191
  admin_stock_location_serializer: 'Spree::Api::V3::Admin::StockLocationSerializer',
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.4.0.rc5
4
+ version: 5.4.0.rc6
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-03-30 00:00:00.000000000 Z
11
+ date: 2026-04-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rswag-specs
@@ -86,14 +86,14 @@ dependencies:
86
86
  requirements:
87
87
  - - '='
88
88
  - !ruby/object:Gem::Version
89
- version: 5.4.0.rc5
89
+ version: 5.4.0.rc6
90
90
  type: :runtime
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
94
  - - '='
95
95
  - !ruby/object:Gem::Version
96
- version: 5.4.0.rc5
96
+ version: 5.4.0.rc6
97
97
  description: Spree's API
98
98
  email:
99
99
  - hello@spreecommerce.org
@@ -162,6 +162,7 @@ files:
162
162
  - app/serializers/spree/api/v3/admin/allowed_origin_serializer.rb
163
163
  - app/serializers/spree/api/v3/admin/asset_serializer.rb
164
164
  - app/serializers/spree/api/v3/admin/category_serializer.rb
165
+ - app/serializers/spree/api/v3/admin/country_serializer.rb
165
166
  - app/serializers/spree/api/v3/admin/credit_card_serializer.rb
166
167
  - app/serializers/spree/api/v3/admin/custom_field_serializer.rb
167
168
  - app/serializers/spree/api/v3/admin/customer_serializer.rb
@@ -172,6 +173,7 @@ files:
172
173
  - app/serializers/spree/api/v3/admin/fulfillment_serializer.rb
173
174
  - app/serializers/spree/api/v3/admin/gift_card_serializer.rb
174
175
  - app/serializers/spree/api/v3/admin/line_item_serializer.rb
176
+ - app/serializers/spree/api/v3/admin/market_serializer.rb
175
177
  - app/serializers/spree/api/v3/admin/media_serializer.rb
176
178
  - app/serializers/spree/api/v3/admin/option_type_serializer.rb
177
179
  - app/serializers/spree/api/v3/admin/option_value_serializer.rb
@@ -186,6 +188,7 @@ files:
186
188
  - app/serializers/spree/api/v3/admin/reimbursement_serializer.rb
187
189
  - app/serializers/spree/api/v3/admin/return_authorization_serializer.rb
188
190
  - app/serializers/spree/api/v3/admin/shipping_category_serializer.rb
191
+ - app/serializers/spree/api/v3/admin/state_serializer.rb
189
192
  - app/serializers/spree/api/v3/admin/stock_item_serializer.rb
190
193
  - app/serializers/spree/api/v3/admin/stock_location_serializer.rb
191
194
  - app/serializers/spree/api/v3/admin/store_credit_serializer.rb
@@ -274,9 +277,9 @@ licenses:
274
277
  - BSD-3-Clause
275
278
  metadata:
276
279
  bug_tracker_uri: https://github.com/spree/spree/issues
277
- changelog_uri: https://github.com/spree/spree/releases/tag/v5.4.0.rc5
280
+ changelog_uri: https://github.com/spree/spree/releases/tag/v5.4.0.rc6
278
281
  documentation_uri: https://docs.spreecommerce.org/
279
- source_code_uri: https://github.com/spree/spree/tree/v5.4.0.rc5
282
+ source_code_uri: https://github.com/spree/spree/tree/v5.4.0.rc6
280
283
  post_install_message:
281
284
  rdoc_options: []
282
285
  require_paths: