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:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 015d8b61445f8983f5115b89c0627059abde5700d4f37eecff29f61c88bed184
|
|
4
|
+
data.tar.gz: 4290e6bf4ebc74c4f7b3b4881ec50bf4d5a1d3a1af4258c3a3390aac2e3bddad
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
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
|
data/config/locales/en.yml
CHANGED
|
@@ -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.
|
|
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-
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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:
|