shopify_api 14.6.0 → 14.8.0

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 (92) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +11 -0
  3. data/Gemfile.lock +12 -7
  4. data/docs/usage/oauth.md +14 -0
  5. data/docs/usage/rest.md +2 -0
  6. data/docs/usage/webhooks.md +11 -0
  7. data/lib/shopify_api/admin_versions.rb +2 -1
  8. data/lib/shopify_api/clients/rest/admin.rb +5 -0
  9. data/lib/shopify_api/context.rb +12 -3
  10. data/lib/shopify_api/errors/disabled_resource_error.rb +8 -0
  11. data/lib/shopify_api/rest/resources/2024_07/webhook.rb +1 -0
  12. data/lib/shopify_api/rest/resources/2024_10/webhook.rb +1 -0
  13. data/lib/shopify_api/rest/resources/2025_01/abandoned_checkout.rb +194 -0
  14. data/lib/shopify_api/rest/resources/2025_01/access_scope.rb +62 -0
  15. data/lib/shopify_api/rest/resources/2025_01/apple_pay_certificate.rb +109 -0
  16. data/lib/shopify_api/rest/resources/2025_01/application_charge.rb +113 -0
  17. data/lib/shopify_api/rest/resources/2025_01/application_credit.rb +95 -0
  18. data/lib/shopify_api/rest/resources/2025_01/article.rb +269 -0
  19. data/lib/shopify_api/rest/resources/2025_01/asset.rb +122 -0
  20. data/lib/shopify_api/rest/resources/2025_01/assigned_fulfillment_order.rb +92 -0
  21. data/lib/shopify_api/rest/resources/2025_01/balance.rb +58 -0
  22. data/lib/shopify_api/rest/resources/2025_01/blog.rb +166 -0
  23. data/lib/shopify_api/rest/resources/2025_01/cancellation_request.rb +87 -0
  24. data/lib/shopify_api/rest/resources/2025_01/carrier_service.rb +120 -0
  25. data/lib/shopify_api/rest/resources/2025_01/checkout.rb +213 -0
  26. data/lib/shopify_api/rest/resources/2025_01/collect.rb +146 -0
  27. data/lib/shopify_api/rest/resources/2025_01/collection.rb +114 -0
  28. data/lib/shopify_api/rest/resources/2025_01/collection_listing.rb +159 -0
  29. data/lib/shopify_api/rest/resources/2025_01/comment.rb +287 -0
  30. data/lib/shopify_api/rest/resources/2025_01/country.rb +141 -0
  31. data/lib/shopify_api/rest/resources/2025_01/currency.rb +61 -0
  32. data/lib/shopify_api/rest/resources/2025_01/custom_collection.rb +191 -0
  33. data/lib/shopify_api/rest/resources/2025_01/customer.rb +328 -0
  34. data/lib/shopify_api/rest/resources/2025_01/customer_address.rb +215 -0
  35. data/lib/shopify_api/rest/resources/2025_01/deprecated_api_call.rb +61 -0
  36. data/lib/shopify_api/rest/resources/2025_01/discount_code.rb +226 -0
  37. data/lib/shopify_api/rest/resources/2025_01/dispute.rb +115 -0
  38. data/lib/shopify_api/rest/resources/2025_01/dispute_evidence.rb +121 -0
  39. data/lib/shopify_api/rest/resources/2025_01/dispute_file_upload.rb +85 -0
  40. data/lib/shopify_api/rest/resources/2025_01/draft_order.rb +279 -0
  41. data/lib/shopify_api/rest/resources/2025_01/event.rb +152 -0
  42. data/lib/shopify_api/rest/resources/2025_01/fulfillment.rb +235 -0
  43. data/lib/shopify_api/rest/resources/2025_01/fulfillment_event.rb +167 -0
  44. data/lib/shopify_api/rest/resources/2025_01/fulfillment_order.rb +326 -0
  45. data/lib/shopify_api/rest/resources/2025_01/fulfillment_request.rb +116 -0
  46. data/lib/shopify_api/rest/resources/2025_01/fulfillment_service.rb +134 -0
  47. data/lib/shopify_api/rest/resources/2025_01/gift_card.rb +222 -0
  48. data/lib/shopify_api/rest/resources/2025_01/gift_card_adjustment.rb +122 -0
  49. data/lib/shopify_api/rest/resources/2025_01/image.rb +161 -0
  50. data/lib/shopify_api/rest/resources/2025_01/inventory_item.rb +112 -0
  51. data/lib/shopify_api/rest/resources/2025_01/inventory_level.rb +183 -0
  52. data/lib/shopify_api/rest/resources/2025_01/location.rb +171 -0
  53. data/lib/shopify_api/rest/resources/2025_01/locations_for_move.rb +60 -0
  54. data/lib/shopify_api/rest/resources/2025_01/marketing_event.rb +213 -0
  55. data/lib/shopify_api/rest/resources/2025_01/metafield.rb +348 -0
  56. data/lib/shopify_api/rest/resources/2025_01/mobile_platform_application.rb +120 -0
  57. data/lib/shopify_api/rest/resources/2025_01/order.rb +503 -0
  58. data/lib/shopify_api/rest/resources/2025_01/order_risk.rb +148 -0
  59. data/lib/shopify_api/rest/resources/2025_01/page.rb +198 -0
  60. data/lib/shopify_api/rest/resources/2025_01/payment.rb +98 -0
  61. data/lib/shopify_api/rest/resources/2025_01/payment_gateway.rb +147 -0
  62. data/lib/shopify_api/rest/resources/2025_01/payment_transaction.rb +117 -0
  63. data/lib/shopify_api/rest/resources/2025_01/payout.rb +101 -0
  64. data/lib/shopify_api/rest/resources/2025_01/policy.rb +73 -0
  65. data/lib/shopify_api/rest/resources/2025_01/price_rule.rb +227 -0
  66. data/lib/shopify_api/rest/resources/2025_01/product.rb +227 -0
  67. data/lib/shopify_api/rest/resources/2025_01/product_listing.rb +200 -0
  68. data/lib/shopify_api/rest/resources/2025_01/product_resource_feedback.rb +92 -0
  69. data/lib/shopify_api/rest/resources/2025_01/province.rb +136 -0
  70. data/lib/shopify_api/rest/resources/2025_01/recurring_application_charge.rb +184 -0
  71. data/lib/shopify_api/rest/resources/2025_01/redirect.rb +143 -0
  72. data/lib/shopify_api/rest/resources/2025_01/refund.rb +158 -0
  73. data/lib/shopify_api/rest/resources/2025_01/resource_feedback.rb +77 -0
  74. data/lib/shopify_api/rest/resources/2025_01/script_tag.rb +159 -0
  75. data/lib/shopify_api/rest/resources/2025_01/shipping_zone.rb +87 -0
  76. data/lib/shopify_api/rest/resources/2025_01/shop.rb +231 -0
  77. data/lib/shopify_api/rest/resources/2025_01/smart_collection.rb +220 -0
  78. data/lib/shopify_api/rest/resources/2025_01/storefront_access_token.rb +91 -0
  79. data/lib/shopify_api/rest/resources/2025_01/tender_transaction.rb +97 -0
  80. data/lib/shopify_api/rest/resources/2025_01/theme.rb +127 -0
  81. data/lib/shopify_api/rest/resources/2025_01/transaction.rb +194 -0
  82. data/lib/shopify_api/rest/resources/2025_01/usage_charge.rb +106 -0
  83. data/lib/shopify_api/rest/resources/2025_01/user.rb +142 -0
  84. data/lib/shopify_api/rest/resources/2025_01/variant.rb +212 -0
  85. data/lib/shopify_api/rest/resources/2025_01/webhook.rb +173 -0
  86. data/lib/shopify_api/version.rb +1 -1
  87. data/lib/shopify_api/webhooks/registration.rb +17 -3
  88. data/lib/shopify_api/webhooks/registrations/event_bridge.rb +22 -3
  89. data/lib/shopify_api/webhooks/registrations/http.rb +22 -3
  90. data/lib/shopify_api/webhooks/registrations/pub_sub.rb +23 -4
  91. data/lib/shopify_api/webhooks/registry.rb +15 -5
  92. metadata +77 -6
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 1adedcbd54d0a4bff1dfeef88fc867ddf3813f6f619c8f4ad75345a9669c468b
4
- data.tar.gz: 2b5b7115e1a9d469cb62b23f18a9ff41f45216a6e4d76ad07dcd110460271391
3
+ metadata.gz: 5a405ff33cd5f3d90d6cc845f1108b0bd14aada9bacb25f1889ca66367ea9b6f
4
+ data.tar.gz: e88aa78cd905c93b28bbf32b523fe0d45497585e5c2f21fb9967f052165cb6fc
5
5
  SHA512:
6
- metadata.gz: 2ee3b4ff5f00993b64a5dc89c3618da8c757ae3451d34c298b6da01ea4659d38c3c56f70ca066662059147b67e23c0816539ca9d5e2526c270a28e91c903b166
7
- data.tar.gz: 3018dc46d85e99cff6821d8057b8a61cb59adeb41f856db18a0ecab0e47f17aecc86ffeb23c45a722121988c97f6bb262d6913a88d2bc1a5fdc572fb7b0fca05
6
+ metadata.gz: 1564080f210d17677a9d00eeb176a5ac37e45b3b02ed5cc5616948d35ea9821ec32614de7f229f93e39e76aca0257d107408bb2ab569451ef4cc36fc043dc194
7
+ data.tar.gz: d853bdf2950a2ad3da7835057fc4c22329ed2f52a0654f5da9512f13bf26f737866b0f8608190e5106586cdc236b86444996f44fca7f485ee9dd82d3f80f1209
data/CHANGELOG.md CHANGED
@@ -3,6 +3,17 @@
3
3
  Note: For changes to the API, see https://shopify.dev/changelog?filter=api
4
4
  ## Unreleased
5
5
 
6
+ ## 14.8.0
7
+
8
+ - [#1355](https://github.com/Shopify/shopify-api-ruby/pull/1355) Add support for 2025-01 API version
9
+
10
+ ## 14.7.0
11
+
12
+ - [#1347](https://github.com/Shopify/shopify-api-ruby/pull/1347) Extend webhook registration to support filters
13
+ - [#1344](https://github.com/Shopify/shopify-api-ruby/pull/1344) Allow ShopifyAPI::Webhooks::Registry to update a webhook when fields or metafield_namespaces are changed.
14
+ - [#1343](https://github.com/Shopify/shopify-api-ruby/pull/1343) Make ShopifyAPI::Context::scope parameter optional. `scope` defaults to empty list `[]`.
15
+ - [#1348](https://github.com/Shopify/shopify-api-ruby/pull/1348) Add config option that will disable the REST API client and REST resources. New apps should use the GraphQL Admin API
16
+
6
17
  ## 14.6.0
7
18
 
8
19
  - [#1337](https://github.com/Shopify/shopify-api-ruby/pull/1337) Fix type for Shop#google_apps_login_enabled
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- shopify_api (14.6.0)
4
+ shopify_api (14.8.0)
5
5
  activesupport
6
6
  concurrent-ruby
7
7
  hash_diff
@@ -16,20 +16,24 @@ PATH
16
16
  GEM
17
17
  remote: https://rubygems.org/
18
18
  specs:
19
- activesupport (7.1.4)
19
+ activesupport (7.1.5)
20
20
  base64
21
+ benchmark (>= 0.3)
21
22
  bigdecimal
22
23
  concurrent-ruby (~> 1.0, >= 1.0.2)
23
24
  connection_pool (>= 2.2.5)
24
25
  drb
25
26
  i18n (>= 1.6, < 2)
27
+ logger (>= 1.4.2)
26
28
  minitest (>= 5.1)
27
29
  mutex_m
30
+ securerandom (>= 0.3)
28
31
  tzinfo (~> 2.0)
29
32
  addressable (2.8.0)
30
33
  public_suffix (>= 2.0.2, < 5.0)
31
34
  ast (2.4.2)
32
35
  base64 (0.2.0)
36
+ benchmark (0.4.0)
33
37
  bigdecimal (3.1.8)
34
38
  byebug (11.1.3)
35
39
  coderay (1.1.3)
@@ -50,21 +54,22 @@ GEM
50
54
  i18n (1.14.6)
51
55
  concurrent-ruby (~> 1.0)
52
56
  json (2.7.1)
53
- jwt (2.9.1)
57
+ jwt (2.9.3)
54
58
  base64
55
59
  language_server-protocol (3.17.0.3)
60
+ logger (1.6.1)
56
61
  method_source (1.0.0)
57
62
  mini_mime (1.1.5)
58
63
  minitest (5.15.0)
59
64
  mocha (1.13.0)
60
65
  multi_xml (0.6.0)
61
- mutex_m (0.2.0)
66
+ mutex_m (0.3.0)
62
67
  netrc (0.11.0)
63
- oj (3.16.6)
68
+ oj (3.16.7)
64
69
  bigdecimal (>= 3.0)
65
70
  ostruct (>= 0.2)
66
71
  openssl (3.2.0)
67
- ostruct (0.6.0)
72
+ ostruct (0.6.1)
68
73
  parallel (1.24.0)
69
74
  parser (3.3.0.5)
70
75
  ast (~> 2.4.1)
@@ -104,7 +109,7 @@ GEM
104
109
  rubocop-sorbet (0.6.11)
105
110
  rubocop (>= 0.90.0)
106
111
  ruby-progressbar (1.13.0)
107
- securerandom (0.3.1)
112
+ securerandom (0.3.2)
108
113
  sorbet (0.5.11230)
109
114
  sorbet-static (= 0.5.11230)
110
115
  sorbet-runtime (0.5.11230)
data/docs/usage/oauth.md CHANGED
@@ -123,6 +123,19 @@ class ShopifyCallbackController < ApplicationController
123
123
  ```
124
124
 
125
125
  #### 3. Begin OAuth
126
+ To request access scopes from the shop during authorization code grant OAuth flow,
127
+ configure access scopes needed by adding the `scope` parameter to the `ShopifyAPI::Context.setup` method in your configuration.
128
+
129
+ ```ruby
130
+ ShopifyAPI::Context.setup(
131
+ api_key: <SHOPIFY_API_KEY>,
132
+ api_secret_key: <SHOPIFY_API_SECRET>,
133
+ api_version: <SHOPIFY_API_VERSION>,
134
+ scope: <SHOPIFY_API_SCOPES>, # Accepts array or string: "read_orders, write_products" or ["read_orders", "write_products"]
135
+ ...
136
+ )
137
+ ```
138
+
126
139
  Use [`ShopifyAPI::Auth::Oauth.begin_auth`](https://github.com/Shopify/shopify-api-ruby/blob/main/lib/shopify_api/auth/oauth.rb#L22) method to start OAuth process for your app.
127
140
 
128
141
  #### Input
@@ -131,6 +144,7 @@ Use [`ShopifyAPI::Auth::Oauth.begin_auth`](https://github.com/Shopify/shopify-ap
131
144
  | `shop` | `String` | Yes | - | A Shopify domain name in the form `{exampleshop}.myshopify.com`. |
132
145
  | `redirect_path` | `String` | Yes | - | The redirect path used for callback with a leading `/`. The route should be allowed under the app settings. |
133
146
  | `is_online` | `Boolean` | No | `true` | `true` if the session is online and `false` otherwise. |
147
+ | `scope_override`| `String` or `[String]` | No | `nil` | `nil` will request access scopes configured in `ShopifyAPI::Context.setup` during OAuth flow. Modify this to override the access scopes being requested. Accepts array or string: "read_orders, write_products" or ["read_orders", "write_products"]. |
134
148
 
135
149
  #### Output
136
150
  `begin_auth` method will return a hash result in the form of:
data/docs/usage/rest.md CHANGED
@@ -1,4 +1,6 @@
1
1
  # Make a REST API call
2
+ > [!WARNING]
3
+ > The Admin REST API has been deprecated. New apps should use the GraphQL Admin API. For more information see [All in on GraphQL](https://www.shopify.com/ca/partners/blog/all-in-on-graphql). New apps will be created with the config option `rest_disabled: true`. This will raise a `ShopifyAPI::Errors::DisabledResourceError` if you try to use the REST API.
2
4
 
3
5
  Once OAuth is complete, we can use `ShopifyAPI`'s REST library to make authenticated API calls to the Shopify Admin API.
4
6
  #### Required Session
@@ -82,6 +82,17 @@ registration = ShopifyAPI::Webhooks::Registry.add_registration(
82
82
  )
83
83
  ```
84
84
 
85
+ If you need to filter the webhooks you want to receive, you can use a [webhooks filter](https://shopify.dev/docs/apps/build/webhooks/customize/filters), which can be specified on registration through the `filter` parameter.
86
+
87
+ ```ruby
88
+ registration = ShopifyAPI::Webhooks::Registry.add_registration(
89
+ topic: "products/update",
90
+ delivery_method: :http,
91
+ handler: WebhookHandler,
92
+ filter: "variants.price:>=10.00"
93
+ )
94
+ ```
95
+
85
96
  **Note**: The webhooks you register with Shopify are saved in the Shopify platform, but the local `ShopifyAPI::Webhooks::Registry` needs to be reloaded whenever your server restarts.
86
97
 
87
98
  ### EventBridge and PubSub Webhooks
@@ -5,6 +5,7 @@ module ShopifyAPI
5
5
  module AdminVersions
6
6
  SUPPORTED_ADMIN_VERSIONS = T.let([
7
7
  "unstable",
8
+ "2025-01",
8
9
  "2024-10",
9
10
  "2024-07",
10
11
  "2024-04",
@@ -19,7 +20,7 @@ module ShopifyAPI
19
20
  "2022-01",
20
21
  ], T::Array[String])
21
22
 
22
- LATEST_SUPPORTED_ADMIN_VERSION = T.let("2024-10", String)
23
+ LATEST_SUPPORTED_ADMIN_VERSION = T.let("2025-01", String)
23
24
  end
24
25
 
25
26
  SUPPORTED_ADMIN_VERSIONS = ShopifyAPI::AdminVersions::SUPPORTED_ADMIN_VERSIONS
@@ -9,6 +9,11 @@ module ShopifyAPI
9
9
 
10
10
  sig { params(session: T.nilable(Auth::Session), api_version: T.nilable(String)).void }
11
11
  def initialize(session: nil, api_version: nil)
12
+ if Context.rest_disabled
13
+ raise Errors::DisabledResourceError,
14
+ "The Admin REST API has been deprecated. Please use the GraphQL Admin API. For more information see https://www.shopify.com/ca/partners/blog/all-in-on-graphql"
15
+ end
16
+
12
17
  @api_version = T.let(api_version || Context.api_version, String)
13
18
  if api_version
14
19
  if api_version == Context.api_version
@@ -22,6 +22,7 @@ module ShopifyAPI
22
22
  @user_agent_prefix = T.let(nil, T.nilable(String))
23
23
  @old_api_secret_key = T.let(nil, T.nilable(String))
24
24
  @response_as_struct = T.let(false, T.nilable(T::Boolean))
25
+ @rest_disabled = T.let(false, T.nilable(T::Boolean))
25
26
 
26
27
  @rest_resource_loader = T.let(nil, T.nilable(Zeitwerk::Loader))
27
28
 
@@ -33,9 +34,9 @@ module ShopifyAPI
33
34
  api_key: String,
34
35
  api_secret_key: String,
35
36
  api_version: String,
36
- scope: T.any(T::Array[String], String),
37
37
  is_private: T::Boolean,
38
38
  is_embedded: T::Boolean,
39
+ scope: T.any(T::Array[String], String),
39
40
  log_level: T.any(String, Symbol),
40
41
  logger: T.untyped,
41
42
  host_name: T.nilable(String),
@@ -45,15 +46,16 @@ module ShopifyAPI
45
46
  old_api_secret_key: T.nilable(String),
46
47
  api_host: T.nilable(String),
47
48
  response_as_struct: T.nilable(T::Boolean),
49
+ rest_disabled: T.nilable(T::Boolean),
48
50
  ).void
49
51
  end
50
52
  def setup(
51
53
  api_key:,
52
54
  api_secret_key:,
53
55
  api_version:,
54
- scope:,
55
56
  is_private:,
56
57
  is_embedded:,
58
+ scope: [],
57
59
  log_level: :info,
58
60
  logger: ::Logger.new($stdout),
59
61
  host_name: nil,
@@ -62,7 +64,8 @@ module ShopifyAPI
62
64
  user_agent_prefix: nil,
63
65
  old_api_secret_key: nil,
64
66
  api_host: nil,
65
- response_as_struct: false
67
+ response_as_struct: false,
68
+ rest_disabled: false
66
69
  )
67
70
  unless ShopifyAPI::AdminVersions::SUPPORTED_ADMIN_VERSIONS.include?(api_version)
68
71
  raise Errors::UnsupportedVersionError,
@@ -82,6 +85,7 @@ module ShopifyAPI
82
85
  @user_agent_prefix = user_agent_prefix
83
86
  @old_api_secret_key = old_api_secret_key
84
87
  @response_as_struct = response_as_struct
88
+ @rest_disabled = rest_disabled
85
89
  @log_level = if valid_log_level?(log_level)
86
90
  log_level.to_sym
87
91
  else
@@ -178,6 +182,11 @@ module ShopifyAPI
178
182
  T.must(URI(T.must(host)).host)
179
183
  end
180
184
 
185
+ sig { returns(T::Boolean) }
186
+ def rest_disabled
187
+ T.must(@rest_disabled)
188
+ end
189
+
181
190
  private
182
191
 
183
192
  sig { params(log_level: T.any(Symbol, String)).returns(T::Boolean) }
@@ -0,0 +1,8 @@
1
+ # typed: strict
2
+ # frozen_string_literal: true
3
+
4
+ module ShopifyAPI
5
+ module Errors
6
+ class DisabledResourceError < StandardError; end
7
+ end
8
+ end
@@ -23,6 +23,7 @@ module ShopifyAPI
23
23
  @api_version = T.let(nil, T.nilable(String))
24
24
  @created_at = T.let(nil, T.nilable(String))
25
25
  @fields = T.let(nil, T.nilable(T::Array[T.untyped]))
26
+ @filter = T.let(nil, T.nilable(String))
26
27
  @format = T.let(nil, T.nilable(String))
27
28
  @id = T.let(nil, T.nilable(Integer))
28
29
  @metafield_namespaces = T.let(nil, T.nilable(T::Array[T.untyped]))
@@ -23,6 +23,7 @@ module ShopifyAPI
23
23
  @api_version = T.let(nil, T.nilable(String))
24
24
  @created_at = T.let(nil, T.nilable(String))
25
25
  @fields = T.let(nil, T.nilable(T::Array[T.untyped]))
26
+ @filter = T.let(nil, T.nilable(String))
26
27
  @format = T.let(nil, T.nilable(String))
27
28
  @id = T.let(nil, T.nilable(Integer))
28
29
  @metafield_namespaces = T.let(nil, T.nilable(T::Array[T.untyped]))
@@ -0,0 +1,194 @@
1
+ # typed: false
2
+ # frozen_string_literal: true
3
+
4
+ ########################################################################################################################
5
+ # This file is auto-generated. If you have an issue, please create a GitHub issue. #
6
+ ########################################################################################################################
7
+
8
+ module ShopifyAPI
9
+ class AbandonedCheckout < ShopifyAPI::Rest::Base
10
+ extend T::Sig
11
+
12
+ @prev_page_info = T.let(Concurrent::ThreadLocalVar.new { nil }, Concurrent::ThreadLocalVar)
13
+ @next_page_info = T.let(Concurrent::ThreadLocalVar.new { nil }, Concurrent::ThreadLocalVar)
14
+
15
+ @api_call_limit = T.let(Concurrent::ThreadLocalVar.new { nil }, Concurrent::ThreadLocalVar)
16
+ @retry_request_after = T.let(Concurrent::ThreadLocalVar.new { nil }, Concurrent::ThreadLocalVar)
17
+
18
+ sig { params(session: T.nilable(ShopifyAPI::Auth::Session), from_hash: T.nilable(T::Hash[T.untyped, T.untyped])).void }
19
+ def initialize(session: ShopifyAPI::Context.active_session, from_hash: nil)
20
+
21
+ @abandoned_checkout_url = T.let(nil, T.nilable(String))
22
+ @billing_address = T.let(nil, T.nilable(T::Hash[T.untyped, T.untyped]))
23
+ @buyer_accepts_marketing = T.let(nil, T.nilable(T::Boolean))
24
+ @buyer_accepts_sms_marketing = T.let(nil, T.nilable(T::Boolean))
25
+ @cart_token = T.let(nil, T.nilable(String))
26
+ @closed_at = T.let(nil, T.nilable(String))
27
+ @completed_at = T.let(nil, T.nilable(String))
28
+ @created_at = T.let(nil, T.nilable(String))
29
+ @currency = T.let(nil, T.nilable(Currency))
30
+ @customer = T.let(nil, T.nilable(Customer))
31
+ @customer_locale = T.let(nil, T.nilable(String))
32
+ @device_id = T.let(nil, T.nilable(Integer))
33
+ @discount_codes = T.let(nil, T.nilable(T::Array[T.untyped]))
34
+ @email = T.let(nil, T.nilable(String))
35
+ @gateway = T.let(nil, T.nilable(String))
36
+ @id = T.let(nil, T.nilable(Integer))
37
+ @landing_site = T.let(nil, T.nilable(String))
38
+ @line_items = T.let(nil, T.nilable(T::Hash[T.untyped, T.untyped]))
39
+ @location_id = T.let(nil, T.nilable(Integer))
40
+ @note = T.let(nil, T.nilable(String))
41
+ @phone = T.let(nil, T.nilable(String))
42
+ @presentment_currency = T.let(nil, T.nilable(String))
43
+ @referring_site = T.let(nil, T.nilable(String))
44
+ @shipping_address = T.let(nil, T.nilable(T::Hash[T.untyped, T.untyped]))
45
+ @shipping_lines = T.let(nil, T.nilable(T::Hash[T.untyped, T.untyped]))
46
+ @sms_marketing_phone = T.let(nil, T.nilable(String))
47
+ @source_name = T.let(nil, T.nilable(String))
48
+ @subtotal_price = T.let(nil, T.nilable(String))
49
+ @tax_lines = T.let(nil, T.nilable(T::Hash[T.untyped, T.untyped]))
50
+ @taxes_included = T.let(nil, T.nilable(T::Boolean))
51
+ @token = T.let(nil, T.nilable(String))
52
+ @total_discounts = T.let(nil, T.nilable(String))
53
+ @total_duties = T.let(nil, T.nilable(String))
54
+ @total_line_items_price = T.let(nil, T.nilable(String))
55
+ @total_price = T.let(nil, T.nilable(String))
56
+ @total_tax = T.let(nil, T.nilable(String))
57
+ @total_weight = T.let(nil, T.nilable(Integer))
58
+ @updated_at = T.let(nil, T.nilable(String))
59
+ @user_id = T.let(nil, T.nilable(Integer))
60
+
61
+ super(session: session, from_hash: from_hash)
62
+ end
63
+
64
+ @has_one = T.let({
65
+ currency: Currency,
66
+ customer: Customer
67
+ }, T::Hash[Symbol, Class])
68
+ @has_many = T.let({
69
+ discount_codes: DiscountCode
70
+ }, T::Hash[Symbol, Class])
71
+ @paths = T.let([
72
+ {http_method: :get, operation: :checkouts, ids: [], path: "checkouts.json"},
73
+ {http_method: :get, operation: :checkouts, ids: [], path: "checkouts.json"}
74
+ ], T::Array[T::Hash[String, T.any(T::Array[Symbol], String, Symbol)]])
75
+
76
+ sig { returns(T.nilable(String)) }
77
+ attr_reader :abandoned_checkout_url
78
+ sig { returns(T.nilable(T::Hash[T.untyped, T.untyped])) }
79
+ attr_reader :billing_address
80
+ sig { returns(T.nilable(T::Boolean)) }
81
+ attr_reader :buyer_accepts_marketing
82
+ sig { returns(T.nilable(T::Boolean)) }
83
+ attr_reader :buyer_accepts_sms_marketing
84
+ sig { returns(T.nilable(String)) }
85
+ attr_reader :cart_token
86
+ sig { returns(T.nilable(String)) }
87
+ attr_reader :closed_at
88
+ sig { returns(T.nilable(String)) }
89
+ attr_reader :completed_at
90
+ sig { returns(T.nilable(String)) }
91
+ attr_reader :created_at
92
+ sig { returns(T.nilable(Currency)) }
93
+ attr_reader :currency
94
+ sig { returns(T.nilable(Customer)) }
95
+ attr_reader :customer
96
+ sig { returns(T.nilable(String)) }
97
+ attr_reader :customer_locale
98
+ sig { returns(T.nilable(Integer)) }
99
+ attr_reader :device_id
100
+ sig { returns(T.nilable(T::Array[DiscountCode])) }
101
+ attr_reader :discount_codes
102
+ sig { returns(T.nilable(String)) }
103
+ attr_reader :email
104
+ sig { returns(T.nilable(String)) }
105
+ attr_reader :gateway
106
+ sig { returns(T.nilable(Integer)) }
107
+ attr_reader :id
108
+ sig { returns(T.nilable(String)) }
109
+ attr_reader :landing_site
110
+ sig { returns(T.nilable(T::Hash[T.untyped, T.untyped])) }
111
+ attr_reader :line_items
112
+ sig { returns(T.nilable(Integer)) }
113
+ attr_reader :location_id
114
+ sig { returns(T.nilable(String)) }
115
+ attr_reader :note
116
+ sig { returns(T.nilable(String)) }
117
+ attr_reader :phone
118
+ sig { returns(T.nilable(String)) }
119
+ attr_reader :presentment_currency
120
+ sig { returns(T.nilable(String)) }
121
+ attr_reader :referring_site
122
+ sig { returns(T.nilable(T::Hash[T.untyped, T.untyped])) }
123
+ attr_reader :shipping_address
124
+ sig { returns(T.nilable(T::Hash[T.untyped, T.untyped])) }
125
+ attr_reader :shipping_lines
126
+ sig { returns(T.nilable(String)) }
127
+ attr_reader :sms_marketing_phone
128
+ sig { returns(T.nilable(String)) }
129
+ attr_reader :source_name
130
+ sig { returns(T.nilable(String)) }
131
+ attr_reader :subtotal_price
132
+ sig { returns(T.nilable(T::Hash[T.untyped, T.untyped])) }
133
+ attr_reader :tax_lines
134
+ sig { returns(T.nilable(T::Boolean)) }
135
+ attr_reader :taxes_included
136
+ sig { returns(T.nilable(String)) }
137
+ attr_reader :token
138
+ sig { returns(T.nilable(String)) }
139
+ attr_reader :total_discounts
140
+ sig { returns(T.nilable(String)) }
141
+ attr_reader :total_duties
142
+ sig { returns(T.nilable(String)) }
143
+ attr_reader :total_line_items_price
144
+ sig { returns(T.nilable(String)) }
145
+ attr_reader :total_price
146
+ sig { returns(T.nilable(String)) }
147
+ attr_reader :total_tax
148
+ sig { returns(T.nilable(Integer)) }
149
+ attr_reader :total_weight
150
+ sig { returns(T.nilable(String)) }
151
+ attr_reader :updated_at
152
+ sig { returns(T.nilable(Integer)) }
153
+ attr_reader :user_id
154
+
155
+ class << self
156
+ sig do
157
+ params(
158
+ since_id: T.untyped,
159
+ created_at_min: T.untyped,
160
+ created_at_max: T.untyped,
161
+ updated_at_min: T.untyped,
162
+ updated_at_max: T.untyped,
163
+ status: T.untyped,
164
+ limit: T.untyped,
165
+ session: Auth::Session,
166
+ kwargs: T.untyped
167
+ ).returns(T.untyped)
168
+ end
169
+ def checkouts(
170
+ since_id: nil,
171
+ created_at_min: nil,
172
+ created_at_max: nil,
173
+ updated_at_min: nil,
174
+ updated_at_max: nil,
175
+ status: nil,
176
+ limit: nil,
177
+ session: ShopifyAPI::Context.active_session,
178
+ **kwargs
179
+ )
180
+ request(
181
+ http_method: :get,
182
+ operation: :checkouts,
183
+ session: session,
184
+ ids: {},
185
+ params: {since_id: since_id, created_at_min: created_at_min, created_at_max: created_at_max, updated_at_min: updated_at_min, updated_at_max: updated_at_max, status: status, limit: limit}.merge(kwargs).compact,
186
+ body: {},
187
+ entity: nil,
188
+ )
189
+ end
190
+
191
+ end
192
+
193
+ end
194
+ end
@@ -0,0 +1,62 @@
1
+ # typed: false
2
+ # frozen_string_literal: true
3
+
4
+ ########################################################################################################################
5
+ # This file is auto-generated. If you have an issue, please create a GitHub issue. #
6
+ ########################################################################################################################
7
+
8
+ module ShopifyAPI
9
+ class AccessScope < ShopifyAPI::Rest::Base
10
+ extend T::Sig
11
+
12
+ @prev_page_info = T.let(Concurrent::ThreadLocalVar.new { nil }, Concurrent::ThreadLocalVar)
13
+ @next_page_info = T.let(Concurrent::ThreadLocalVar.new { nil }, Concurrent::ThreadLocalVar)
14
+
15
+ @api_call_limit = T.let(Concurrent::ThreadLocalVar.new { nil }, Concurrent::ThreadLocalVar)
16
+ @retry_request_after = T.let(Concurrent::ThreadLocalVar.new { nil }, Concurrent::ThreadLocalVar)
17
+
18
+ sig { params(session: T.nilable(ShopifyAPI::Auth::Session), from_hash: T.nilable(T::Hash[T.untyped, T.untyped])).void }
19
+ def initialize(session: ShopifyAPI::Context.active_session, from_hash: nil)
20
+
21
+ @handle = T.let(nil, T.nilable(String))
22
+ @access_scopes = T.let(nil, T.nilable(T::Array[T.untyped]))
23
+
24
+ super(session: session, from_hash: from_hash)
25
+ end
26
+
27
+ @has_one = T.let({}, T::Hash[Symbol, Class])
28
+ @has_many = T.let({}, T::Hash[Symbol, Class])
29
+ @custom_prefix = T.let("/admin/oauth", T.nilable(String))
30
+ @paths = T.let([
31
+ {http_method: :get, operation: :get, ids: [], path: "access_scopes.json"}
32
+ ], T::Array[T::Hash[String, T.any(T::Array[Symbol], String, Symbol)]])
33
+
34
+ sig { returns(T.nilable(String)) }
35
+ attr_reader :handle
36
+ sig { returns(T.nilable(T::Array[T::Hash[T.untyped, T.untyped]])) }
37
+ attr_reader :access_scopes
38
+
39
+ class << self
40
+ sig do
41
+ params(
42
+ session: Auth::Session,
43
+ kwargs: T.untyped
44
+ ).returns(T::Array[AccessScope])
45
+ end
46
+ def all(
47
+ session: ShopifyAPI::Context.active_session,
48
+ **kwargs
49
+ )
50
+ response = base_find(
51
+ session: session,
52
+ ids: {},
53
+ params: {}.merge(kwargs).compact,
54
+ )
55
+
56
+ T.cast(response, T::Array[AccessScope])
57
+ end
58
+
59
+ end
60
+
61
+ end
62
+ end
@@ -0,0 +1,109 @@
1
+ # typed: false
2
+ # frozen_string_literal: true
3
+
4
+ ########################################################################################################################
5
+ # This file is auto-generated. If you have an issue, please create a GitHub issue. #
6
+ ########################################################################################################################
7
+
8
+ module ShopifyAPI
9
+ class ApplePayCertificate < ShopifyAPI::Rest::Base
10
+ extend T::Sig
11
+
12
+ @prev_page_info = T.let(Concurrent::ThreadLocalVar.new { nil }, Concurrent::ThreadLocalVar)
13
+ @next_page_info = T.let(Concurrent::ThreadLocalVar.new { nil }, Concurrent::ThreadLocalVar)
14
+
15
+ @api_call_limit = T.let(Concurrent::ThreadLocalVar.new { nil }, Concurrent::ThreadLocalVar)
16
+ @retry_request_after = T.let(Concurrent::ThreadLocalVar.new { nil }, Concurrent::ThreadLocalVar)
17
+
18
+ sig { params(session: T.nilable(ShopifyAPI::Auth::Session), from_hash: T.nilable(T::Hash[T.untyped, T.untyped])).void }
19
+ def initialize(session: ShopifyAPI::Context.active_session, from_hash: nil)
20
+
21
+ @id = T.let(nil, T.nilable(Integer))
22
+ @merchant_id = T.let(nil, T.nilable(String))
23
+ @status = T.let(nil, T.nilable(String))
24
+
25
+ super(session: session, from_hash: from_hash)
26
+ end
27
+
28
+ @has_one = T.let({}, T::Hash[Symbol, Class])
29
+ @has_many = T.let({}, T::Hash[Symbol, Class])
30
+ @paths = T.let([
31
+ {http_method: :delete, operation: :delete, ids: [:id], path: "apple_pay_certificates/<id>.json"},
32
+ {http_method: :get, operation: :csr, ids: [:id], path: "apple_pay_certificates/<id>/csr.json"},
33
+ {http_method: :get, operation: :get, ids: [:id], path: "apple_pay_certificates/<id>.json"},
34
+ {http_method: :post, operation: :post, ids: [], path: "apple_pay_certificates.json"},
35
+ {http_method: :put, operation: :put, ids: [:id], path: "apple_pay_certificates/<id>.json"}
36
+ ], T::Array[T::Hash[String, T.any(T::Array[Symbol], String, Symbol)]])
37
+
38
+ sig { returns(T.nilable(Integer)) }
39
+ attr_reader :id
40
+ sig { returns(T.nilable(String)) }
41
+ attr_reader :merchant_id
42
+ sig { returns(T.nilable(String)) }
43
+ attr_reader :status
44
+
45
+ class << self
46
+ sig do
47
+ params(
48
+ id: T.any(Integer, String),
49
+ session: Auth::Session
50
+ ).returns(T.nilable(ApplePayCertificate))
51
+ end
52
+ def find(
53
+ id:,
54
+ session: ShopifyAPI::Context.active_session
55
+ )
56
+ result = base_find(
57
+ session: session,
58
+ ids: {id: id},
59
+ params: {},
60
+ )
61
+ T.cast(result[0], T.nilable(ApplePayCertificate))
62
+ end
63
+
64
+ sig do
65
+ params(
66
+ id: T.any(Integer, String),
67
+ session: Auth::Session
68
+ ).returns(T.untyped)
69
+ end
70
+ def delete(
71
+ id:,
72
+ session: ShopifyAPI::Context.active_session
73
+ )
74
+ request(
75
+ http_method: :delete,
76
+ operation: :delete,
77
+ session: session,
78
+ ids: {id: id},
79
+ params: {},
80
+ )
81
+ end
82
+
83
+ sig do
84
+ params(
85
+ id: T.any(Integer, String),
86
+ session: Auth::Session,
87
+ kwargs: T.untyped
88
+ ).returns(T.untyped)
89
+ end
90
+ def csr(
91
+ id:,
92
+ session: ShopifyAPI::Context.active_session,
93
+ **kwargs
94
+ )
95
+ request(
96
+ http_method: :get,
97
+ operation: :csr,
98
+ session: session,
99
+ ids: {id: id},
100
+ params: {}.merge(kwargs).compact,
101
+ body: {},
102
+ entity: nil,
103
+ )
104
+ end
105
+
106
+ end
107
+
108
+ end
109
+ end