spree_api 5.4.0.beta5 → 5.4.0.beta6

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: 03df105b93ed4bea7174ff452d0b35024cb242b032bf2e546d4bdabab30197d4
4
- data.tar.gz: 4259a95154f7fbf1a4921a2b7985659b74a1466395e9b72bc6b8bfc5190105ce
3
+ metadata.gz: 015d8b61445f8983f5115b89c0627059abde5700d4f37eecff29f61c88bed184
4
+ data.tar.gz: 4290e6bf4ebc74c4f7b3b4881ec50bf4d5a1d3a1af4258c3a3390aac2e3bddad
5
5
  SHA512:
6
- metadata.gz: 8b301d54049c9e83c1136596f2f2f30f520ddee5f71e1debc743671e3c68e55521f3cff533841e0894191a1a8893b3e871548f8cb4e527db6c877e3d68c4d4f5
7
- data.tar.gz: aefe0034f78db8beadd83634e9ad0e58822101086af702ee58a7536d52e0e00b7306dca1b5a1db6b9e31e6503dce18b677a0e0d74d315e3a18a2e153ff7fc010
6
+ metadata.gz: 9ecdb3552eb461f5cf6d0925b2e2f7b065a2c0578904bc003b1c988d6214dc218e9033e46137a7107a8a8ceb822a92bd9379b44a9f49864df75c4a1650f841e2
7
+ data.tar.gz: 7603e522eb68740a77f24dcecf5fe21a2081e446ac52d845dcc761c4b352e702c03aff6089d20ce1ed4e730a904abce750289e86afe5539ccc3cbb4cb0120327
@@ -24,6 +24,44 @@ module Spree
24
24
  render json: serialize_resource(@payment)
25
25
  end
26
26
 
27
+ # POST /api/v3/store/orders/:order_id/payments
28
+ # Creates a payment for non-session payment methods (e.g. Check, Cash on Delivery, Bank Transfer)
29
+ def create
30
+ payment_method = current_store.payment_methods.find_by_prefix_id!(params[:payment_method_id])
31
+
32
+ if payment_method.session_required?
33
+ return render_error(
34
+ code: 'payment_session_required',
35
+ message: Spree.t('api.v3.payments.session_required'),
36
+ status: :unprocessable_content
37
+ )
38
+ end
39
+
40
+ unless payment_method.available_for_order?(@parent)
41
+ return render_error(
42
+ code: 'payment_method_unavailable',
43
+ message: Spree.t('api.v3.payments.method_unavailable'),
44
+ status: :unprocessable_content
45
+ )
46
+ end
47
+
48
+ amount = params[:amount].presence || @parent.total_minus_store_credits
49
+
50
+ @payment = @parent.payments.build(
51
+ payment_method: payment_method,
52
+ amount: amount,
53
+ metadata: params[:metadata].present? ? params[:metadata].to_unsafe_h : {}
54
+ )
55
+
56
+ authorize!(:update, @parent, order_token)
57
+
58
+ if @payment.save
59
+ render json: serialize_resource(@payment), status: :created
60
+ else
61
+ render_errors(@payment.errors)
62
+ end
63
+ end
64
+
27
65
  private
28
66
 
29
67
  def set_payment
@@ -24,6 +24,10 @@ en:
24
24
  shipment_transfer_success: Variants successfully transferred
25
25
  stock_location_required: A stock_location_id parameter must be provided in order to retrieve stock movements.
26
26
  unauthorized: You are not authorized to perform that action.
27
+ v3:
28
+ payments:
29
+ session_required: This payment method requires a payment session. Use the payment sessions endpoint instead.
30
+ method_unavailable: This payment method is not available for this order.
27
31
  v2:
28
32
  cart:
29
33
  no_coupon_code: No coupon code provided and the Order doesn't have any coupon code promotions applied
data/config/routes.rb CHANGED
@@ -51,7 +51,7 @@ Spree::Core::Engine.add_routes do
51
51
  resource :store_credits, only: [:create, :destroy], controller: 'orders/store_credits'
52
52
  resources :line_items, only: [:create, :update, :destroy], controller: 'orders/line_items'
53
53
  resources :coupon_codes, only: [:create, :destroy], controller: 'orders/coupon_codes'
54
- resources :payments, only: [:index, :show], controller: 'orders/payments'
54
+ resources :payments, only: [:index, :show, :create], controller: 'orders/payments'
55
55
  resources :payment_methods, only: [:index], controller: 'orders/payment_methods'
56
56
  resources :payment_sessions, only: [:create, :show, :update], controller: 'orders/payment_sessions' do
57
57
  member do
@@ -4,6 +4,7 @@ module Spree
4
4
  module Api
5
5
  class ApiDependencies
6
6
  INJECTION_POINTS_WITH_DEFAULTS = {
7
+ # Legacy API v2 dependencies - will be removed in Spree 6
7
8
  # cart services
8
9
  storefront_cart_create_service: -> { Spree::Dependencies.cart_create_service },
9
10
  storefront_cart_add_item_service: -> { Spree::Dependencies.cart_add_item_service },
@@ -66,6 +67,8 @@ module Spree
66
67
  storefront_estimated_shipment_serializer: 'Spree::V2::Storefront::EstimatedShippingRateSerializer',
67
68
  storefront_store_serializer: 'Spree::V2::Storefront::StoreSerializer',
68
69
  storefront_policy_serializer: 'Spree::V2::Storefront::PolicySerializer',
70
+ storefront_post_category_serializer: 'Spree::V2::Storefront::PostCategorySerializer',
71
+ storefront_post_serializer: 'Spree::V2::Storefront::PostSerializer',
69
72
  storefront_order_serializer: 'Spree::V2::Storefront::OrderSerializer',
70
73
  storefront_variant_serializer: 'Spree::V2::Storefront::VariantSerializer',
71
74
  storefront_image_serializer: 'Spree::V2::Storefront::ImageSerializer',
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.beta5
4
+ version: 5.4.0.beta6
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-10 00:00:00.000000000 Z
11
+ date: 2026-03-11 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.beta5
89
+ version: 5.4.0.beta6
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.beta5
96
+ version: 5.4.0.beta6
97
97
  description: Spree's API
98
98
  email:
99
99
  - hello@spreecommerce.org
@@ -263,9 +263,9 @@ licenses:
263
263
  - BSD-3-Clause
264
264
  metadata:
265
265
  bug_tracker_uri: https://github.com/spree/spree/issues
266
- changelog_uri: https://github.com/spree/spree/releases/tag/v5.4.0.beta5
266
+ changelog_uri: https://github.com/spree/spree/releases/tag/v5.4.0.beta6
267
267
  documentation_uri: https://docs.spreecommerce.org/
268
- source_code_uri: https://github.com/spree/spree/tree/v5.4.0.beta5
268
+ source_code_uri: https://github.com/spree/spree/tree/v5.4.0.beta6
269
269
  post_install_message:
270
270
  rdoc_options: []
271
271
  require_paths: