shopify_api 14.5.0 → 14.7.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 (98) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +11 -1
  3. data/Gemfile.lock +20 -11
  4. data/docs/usage/oauth.md +14 -0
  5. data/docs/usage/webhooks.md +11 -0
  6. data/lib/shopify_api/admin_versions.rb +2 -1
  7. data/lib/shopify_api/context.rb +2 -2
  8. data/lib/shopify_api/rest/resources/2022_04/shop.rb +2 -2
  9. data/lib/shopify_api/rest/resources/2022_07/shop.rb +2 -2
  10. data/lib/shopify_api/rest/resources/2022_10/shop.rb +2 -2
  11. data/lib/shopify_api/rest/resources/2023_01/shop.rb +2 -2
  12. data/lib/shopify_api/rest/resources/2023_04/shop.rb +2 -2
  13. data/lib/shopify_api/rest/resources/2023_07/shop.rb +2 -2
  14. data/lib/shopify_api/rest/resources/2023_10/shop.rb +2 -2
  15. data/lib/shopify_api/rest/resources/2024_01/shop.rb +2 -2
  16. data/lib/shopify_api/rest/resources/2024_04/shop.rb +2 -2
  17. data/lib/shopify_api/rest/resources/2024_07/shop.rb +2 -2
  18. data/lib/shopify_api/rest/resources/2024_07/webhook.rb +1 -0
  19. data/lib/shopify_api/rest/resources/2024_10/abandoned_checkout.rb +194 -0
  20. data/lib/shopify_api/rest/resources/2024_10/access_scope.rb +62 -0
  21. data/lib/shopify_api/rest/resources/2024_10/apple_pay_certificate.rb +109 -0
  22. data/lib/shopify_api/rest/resources/2024_10/application_charge.rb +113 -0
  23. data/lib/shopify_api/rest/resources/2024_10/application_credit.rb +95 -0
  24. data/lib/shopify_api/rest/resources/2024_10/article.rb +269 -0
  25. data/lib/shopify_api/rest/resources/2024_10/asset.rb +122 -0
  26. data/lib/shopify_api/rest/resources/2024_10/assigned_fulfillment_order.rb +92 -0
  27. data/lib/shopify_api/rest/resources/2024_10/balance.rb +58 -0
  28. data/lib/shopify_api/rest/resources/2024_10/blog.rb +166 -0
  29. data/lib/shopify_api/rest/resources/2024_10/cancellation_request.rb +87 -0
  30. data/lib/shopify_api/rest/resources/2024_10/carrier_service.rb +120 -0
  31. data/lib/shopify_api/rest/resources/2024_10/checkout.rb +213 -0
  32. data/lib/shopify_api/rest/resources/2024_10/collect.rb +146 -0
  33. data/lib/shopify_api/rest/resources/2024_10/collection.rb +114 -0
  34. data/lib/shopify_api/rest/resources/2024_10/collection_listing.rb +159 -0
  35. data/lib/shopify_api/rest/resources/2024_10/comment.rb +287 -0
  36. data/lib/shopify_api/rest/resources/2024_10/country.rb +141 -0
  37. data/lib/shopify_api/rest/resources/2024_10/currency.rb +61 -0
  38. data/lib/shopify_api/rest/resources/2024_10/custom_collection.rb +191 -0
  39. data/lib/shopify_api/rest/resources/2024_10/customer.rb +335 -0
  40. data/lib/shopify_api/rest/resources/2024_10/customer_address.rb +215 -0
  41. data/lib/shopify_api/rest/resources/2024_10/deprecated_api_call.rb +61 -0
  42. data/lib/shopify_api/rest/resources/2024_10/discount_code.rb +226 -0
  43. data/lib/shopify_api/rest/resources/2024_10/dispute.rb +115 -0
  44. data/lib/shopify_api/rest/resources/2024_10/dispute_evidence.rb +121 -0
  45. data/lib/shopify_api/rest/resources/2024_10/dispute_file_upload.rb +85 -0
  46. data/lib/shopify_api/rest/resources/2024_10/draft_order.rb +279 -0
  47. data/lib/shopify_api/rest/resources/2024_10/event.rb +152 -0
  48. data/lib/shopify_api/rest/resources/2024_10/fulfillment.rb +235 -0
  49. data/lib/shopify_api/rest/resources/2024_10/fulfillment_event.rb +167 -0
  50. data/lib/shopify_api/rest/resources/2024_10/fulfillment_order.rb +326 -0
  51. data/lib/shopify_api/rest/resources/2024_10/fulfillment_request.rb +101 -0
  52. data/lib/shopify_api/rest/resources/2024_10/fulfillment_service.rb +134 -0
  53. data/lib/shopify_api/rest/resources/2024_10/gift_card.rb +222 -0
  54. data/lib/shopify_api/rest/resources/2024_10/gift_card_adjustment.rb +122 -0
  55. data/lib/shopify_api/rest/resources/2024_10/image.rb +161 -0
  56. data/lib/shopify_api/rest/resources/2024_10/inventory_item.rb +112 -0
  57. data/lib/shopify_api/rest/resources/2024_10/inventory_level.rb +183 -0
  58. data/lib/shopify_api/rest/resources/2024_10/location.rb +171 -0
  59. data/lib/shopify_api/rest/resources/2024_10/locations_for_move.rb +60 -0
  60. data/lib/shopify_api/rest/resources/2024_10/marketing_event.rb +213 -0
  61. data/lib/shopify_api/rest/resources/2024_10/metafield.rb +348 -0
  62. data/lib/shopify_api/rest/resources/2024_10/mobile_platform_application.rb +114 -0
  63. data/lib/shopify_api/rest/resources/2024_10/order.rb +490 -0
  64. data/lib/shopify_api/rest/resources/2024_10/order_risk.rb +148 -0
  65. data/lib/shopify_api/rest/resources/2024_10/page.rb +198 -0
  66. data/lib/shopify_api/rest/resources/2024_10/payment.rb +144 -0
  67. data/lib/shopify_api/rest/resources/2024_10/payment_gateway.rb +147 -0
  68. data/lib/shopify_api/rest/resources/2024_10/payment_transaction.rb +114 -0
  69. data/lib/shopify_api/rest/resources/2024_10/payout.rb +101 -0
  70. data/lib/shopify_api/rest/resources/2024_10/policy.rb +73 -0
  71. data/lib/shopify_api/rest/resources/2024_10/price_rule.rb +227 -0
  72. data/lib/shopify_api/rest/resources/2024_10/product.rb +227 -0
  73. data/lib/shopify_api/rest/resources/2024_10/product_listing.rb +200 -0
  74. data/lib/shopify_api/rest/resources/2024_10/product_resource_feedback.rb +92 -0
  75. data/lib/shopify_api/rest/resources/2024_10/province.rb +136 -0
  76. data/lib/shopify_api/rest/resources/2024_10/recurring_application_charge.rb +184 -0
  77. data/lib/shopify_api/rest/resources/2024_10/redirect.rb +143 -0
  78. data/lib/shopify_api/rest/resources/2024_10/refund.rb +155 -0
  79. data/lib/shopify_api/rest/resources/2024_10/resource_feedback.rb +77 -0
  80. data/lib/shopify_api/rest/resources/2024_10/script_tag.rb +159 -0
  81. data/lib/shopify_api/rest/resources/2024_10/shipping_zone.rb +87 -0
  82. data/lib/shopify_api/rest/resources/2024_10/shop.rb +232 -0
  83. data/lib/shopify_api/rest/resources/2024_10/smart_collection.rb +220 -0
  84. data/lib/shopify_api/rest/resources/2024_10/storefront_access_token.rb +91 -0
  85. data/lib/shopify_api/rest/resources/2024_10/tender_transaction.rb +97 -0
  86. data/lib/shopify_api/rest/resources/2024_10/theme.rb +127 -0
  87. data/lib/shopify_api/rest/resources/2024_10/transaction.rb +189 -0
  88. data/lib/shopify_api/rest/resources/2024_10/usage_charge.rb +106 -0
  89. data/lib/shopify_api/rest/resources/2024_10/user.rb +142 -0
  90. data/lib/shopify_api/rest/resources/2024_10/variant.rb +212 -0
  91. data/lib/shopify_api/rest/resources/2024_10/webhook.rb +173 -0
  92. data/lib/shopify_api/version.rb +1 -1
  93. data/lib/shopify_api/webhooks/registration.rb +17 -3
  94. data/lib/shopify_api/webhooks/registrations/event_bridge.rb +22 -3
  95. data/lib/shopify_api/webhooks/registrations/http.rb +22 -3
  96. data/lib/shopify_api/webhooks/registrations/pub_sub.rb +23 -4
  97. data/lib/shopify_api/webhooks/registry.rb +15 -5
  98. metadata +76 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8b9b61bc6316148fcd2d905384def067e31b4fca5265bb1327a7502020ee6104
4
- data.tar.gz: b3971fadf5e0159a68953fee0883be0a6fb5f366d0a25f39201cc6c134caa0bb
3
+ metadata.gz: 2594b938c059a24c4f17f5a435612a01fe880eb4ab5096f25ac0d0513129c71c
4
+ data.tar.gz: 3b584fffb9213fefaf5f1a603c76de8292ecb30e7434ccc63af7265ab3377987
5
5
  SHA512:
6
- metadata.gz: 845bcdfac189ab0b17a07540c7cad3ba3621bbc83622d16b32a143f37eaaf9909499beb8791a2f0a0b6726e8283f833c5f1702ae804bbe38393ee5d6fa0fef67
7
- data.tar.gz: f0216976a29a1b59ab8bf89316d3ccc9b3cbda4a42b81490cb5e25af19d9cf2b2b196484397816decdde75065f387e1f9bfddd5d82a42c110be8f13654c6f8d9
6
+ metadata.gz: 5e565a15428752c7838332f42d02c6aad73fe837dcc1c91774ed2cd523c81b6cd440e82dc0f2d8d65494a0d7715bb75f8533a3105304d2a510b1cd104690b1f2
7
+ data.tar.gz: e3625bc9e1e17ef36162fcc8c416478dbdf9f8b7bc868fb228d07ba4c2878bedb72738765e82737da9cd59b4c5d7197ba81c15d9013a38f13987e5ba3fbdf93d
data/CHANGELOG.md CHANGED
@@ -1,9 +1,19 @@
1
1
  # Changelog
2
2
 
3
3
  Note: For changes to the API, see https://shopify.dev/changelog?filter=api
4
-
5
4
  ## Unreleased
6
5
 
6
+ ## 14.7.0
7
+
8
+ - [#1347](https://github.com/Shopify/shopify-api-ruby/pull/1347) Extend webhook registration to support filters
9
+ - [#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.
10
+ - [#1343](https://github.com/Shopify/shopify-api-ruby/pull/1343) Make ShopifyAPI::Context::scope parameter optional. `scope` defaults to empty list `[]`.
11
+
12
+ ## 14.6.0
13
+
14
+ - [#1337](https://github.com/Shopify/shopify-api-ruby/pull/1337) Fix type for Shop#google_apps_login_enabled
15
+ - [#1340](https://github.com/Shopify/shopify-api-ruby/pull/1340) Add support for 2024-10 API version
16
+
7
17
  ## 14.5.0
8
18
 
9
19
  - [#1327](https://github.com/Shopify/shopify-api-ruby/pull/1327) Support `?debug=true` parameter in GraphQL client requests
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- shopify_api (14.5.0)
4
+ shopify_api (14.7.0)
5
5
  activesupport
6
6
  concurrent-ruby
7
7
  hash_diff
@@ -16,51 +16,60 @@ PATH
16
16
  GEM
17
17
  remote: https://rubygems.org/
18
18
  specs:
19
- activesupport (7.1.3.2)
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)
33
- bigdecimal (3.1.7)
36
+ benchmark (0.4.0)
37
+ bigdecimal (3.1.8)
34
38
  byebug (11.1.3)
35
39
  coderay (1.1.3)
36
- concurrent-ruby (1.2.3)
40
+ concurrent-ruby (1.3.4)
37
41
  connection_pool (2.4.1)
38
42
  crack (0.4.5)
39
43
  rexml
44
+ csv (3.3.0)
40
45
  drb (2.2.1)
41
46
  erubi (1.12.0)
42
47
  fakefs (1.4.1)
43
48
  hash_diff (1.1.1)
44
49
  hashdiff (1.0.1)
45
- httparty (0.21.0)
50
+ httparty (0.22.0)
51
+ csv
46
52
  mini_mime (>= 1.0.0)
47
53
  multi_xml (>= 0.5.2)
48
- i18n (1.14.4)
54
+ i18n (1.14.6)
49
55
  concurrent-ruby (~> 1.0)
50
56
  json (2.7.1)
51
- jwt (2.8.1)
57
+ jwt (2.9.3)
52
58
  base64
53
59
  language_server-protocol (3.17.0.3)
60
+ logger (1.6.1)
54
61
  method_source (1.0.0)
55
62
  mini_mime (1.1.5)
56
63
  minitest (5.15.0)
57
64
  mocha (1.13.0)
58
65
  multi_xml (0.6.0)
59
- mutex_m (0.2.0)
66
+ mutex_m (0.3.0)
60
67
  netrc (0.11.0)
61
- oj (3.16.3)
68
+ oj (3.16.7)
62
69
  bigdecimal (>= 3.0)
70
+ ostruct (>= 0.2)
63
71
  openssl (3.2.0)
72
+ ostruct (0.6.1)
64
73
  parallel (1.24.0)
65
74
  parser (3.3.0.5)
66
75
  ast (~> 2.4.1)
@@ -100,7 +109,7 @@ GEM
100
109
  rubocop-sorbet (0.6.11)
101
110
  rubocop (>= 0.90.0)
102
111
  ruby-progressbar (1.13.0)
103
- securerandom (0.3.1)
112
+ securerandom (0.3.2)
104
113
  sorbet (0.5.11230)
105
114
  sorbet-static (= 0.5.11230)
106
115
  sorbet-runtime (0.5.11230)
@@ -137,7 +146,7 @@ GEM
137
146
  yard-sorbet (0.8.1)
138
147
  sorbet-runtime (>= 0.5)
139
148
  yard (>= 0.9)
140
- zeitwerk (2.6.13)
149
+ zeitwerk (2.6.18)
141
150
 
142
151
  PLATFORMS
143
152
  arm64-darwin-21
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:
@@ -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
+ "2024-10",
8
9
  "2024-07",
9
10
  "2024-04",
10
11
  "2024-01",
@@ -18,7 +19,7 @@ module ShopifyAPI
18
19
  "2022-01",
19
20
  ], T::Array[String])
20
21
 
21
- LATEST_SUPPORTED_ADMIN_VERSION = T.let("2024-07", String)
22
+ LATEST_SUPPORTED_ADMIN_VERSION = T.let("2024-10", String)
22
23
  end
23
24
 
24
25
  SUPPORTED_ADMIN_VERSIONS = ShopifyAPI::AdminVersions::SUPPORTED_ADMIN_VERSIONS
@@ -33,9 +33,9 @@ module ShopifyAPI
33
33
  api_key: String,
34
34
  api_secret_key: String,
35
35
  api_version: String,
36
- scope: T.any(T::Array[String], String),
37
36
  is_private: T::Boolean,
38
37
  is_embedded: T::Boolean,
38
+ scope: T.any(T::Array[String], String),
39
39
  log_level: T.any(String, Symbol),
40
40
  logger: T.untyped,
41
41
  host_name: T.nilable(String),
@@ -51,9 +51,9 @@ module ShopifyAPI
51
51
  api_key:,
52
52
  api_secret_key:,
53
53
  api_version:,
54
- scope:,
55
54
  is_private:,
56
55
  is_embedded:,
56
+ scope: [],
57
57
  log_level: :info,
58
58
  logger: ::Logger.new($stdout),
59
59
  host_name: nil,
@@ -38,7 +38,7 @@ module ShopifyAPI
38
38
  @finances = T.let(nil, T.nilable(T::Boolean))
39
39
  @force_ssl = T.let(nil, T.nilable(T::Boolean))
40
40
  @google_apps_domain = T.let(nil, T.nilable(String))
41
- @google_apps_login_enabled = T.let(nil, T.nilable(String))
41
+ @google_apps_login_enabled = T.let(nil, T.nilable(T::Boolean))
42
42
  @has_discounts = T.let(nil, T.nilable(T::Boolean))
43
43
  @has_gift_cards = T.let(nil, T.nilable(T::Boolean))
44
44
  @has_storefront = T.let(nil, T.nilable(T::Boolean))
@@ -123,7 +123,7 @@ module ShopifyAPI
123
123
  attr_reader :force_ssl
124
124
  sig { returns(T.nilable(String)) }
125
125
  attr_reader :google_apps_domain
126
- sig { returns(T.nilable(String)) }
126
+ sig { returns(T.nilable(T::Boolean)) }
127
127
  attr_reader :google_apps_login_enabled
128
128
  sig { returns(T.nilable(T::Boolean)) }
129
129
  attr_reader :has_discounts
@@ -38,7 +38,7 @@ module ShopifyAPI
38
38
  @finances = T.let(nil, T.nilable(T::Boolean))
39
39
  @force_ssl = T.let(nil, T.nilable(T::Boolean))
40
40
  @google_apps_domain = T.let(nil, T.nilable(String))
41
- @google_apps_login_enabled = T.let(nil, T.nilable(String))
41
+ @google_apps_login_enabled = T.let(nil, T.nilable(T::Boolean))
42
42
  @has_discounts = T.let(nil, T.nilable(T::Boolean))
43
43
  @has_gift_cards = T.let(nil, T.nilable(T::Boolean))
44
44
  @has_storefront = T.let(nil, T.nilable(T::Boolean))
@@ -123,7 +123,7 @@ module ShopifyAPI
123
123
  attr_reader :force_ssl
124
124
  sig { returns(T.nilable(String)) }
125
125
  attr_reader :google_apps_domain
126
- sig { returns(T.nilable(String)) }
126
+ sig { returns(T.nilable(T::Boolean)) }
127
127
  attr_reader :google_apps_login_enabled
128
128
  sig { returns(T.nilable(T::Boolean)) }
129
129
  attr_reader :has_discounts
@@ -37,7 +37,7 @@ module ShopifyAPI
37
37
  @finances = T.let(nil, T.nilable(T::Boolean))
38
38
  @force_ssl = T.let(nil, T.nilable(T::Boolean))
39
39
  @google_apps_domain = T.let(nil, T.nilable(String))
40
- @google_apps_login_enabled = T.let(nil, T.nilable(String))
40
+ @google_apps_login_enabled = T.let(nil, T.nilable(T::Boolean))
41
41
  @has_discounts = T.let(nil, T.nilable(T::Boolean))
42
42
  @has_gift_cards = T.let(nil, T.nilable(T::Boolean))
43
43
  @has_storefront = T.let(nil, T.nilable(T::Boolean))
@@ -121,7 +121,7 @@ module ShopifyAPI
121
121
  attr_reader :force_ssl
122
122
  sig { returns(T.nilable(String)) }
123
123
  attr_reader :google_apps_domain
124
- sig { returns(T.nilable(String)) }
124
+ sig { returns(T.nilable(T::Boolean)) }
125
125
  attr_reader :google_apps_login_enabled
126
126
  sig { returns(T.nilable(T::Boolean)) }
127
127
  attr_reader :has_discounts
@@ -37,7 +37,7 @@ module ShopifyAPI
37
37
  @finances = T.let(nil, T.nilable(T::Boolean))
38
38
  @force_ssl = T.let(nil, T.nilable(T::Boolean))
39
39
  @google_apps_domain = T.let(nil, T.nilable(String))
40
- @google_apps_login_enabled = T.let(nil, T.nilable(String))
40
+ @google_apps_login_enabled = T.let(nil, T.nilable(T::Boolean))
41
41
  @has_discounts = T.let(nil, T.nilable(T::Boolean))
42
42
  @has_gift_cards = T.let(nil, T.nilable(T::Boolean))
43
43
  @has_storefront = T.let(nil, T.nilable(T::Boolean))
@@ -121,7 +121,7 @@ module ShopifyAPI
121
121
  attr_reader :force_ssl
122
122
  sig { returns(T.nilable(String)) }
123
123
  attr_reader :google_apps_domain
124
- sig { returns(T.nilable(String)) }
124
+ sig { returns(T.nilable(T::Boolean)) }
125
125
  attr_reader :google_apps_login_enabled
126
126
  sig { returns(T.nilable(T::Boolean)) }
127
127
  attr_reader :has_discounts
@@ -37,7 +37,7 @@ module ShopifyAPI
37
37
  @finances = T.let(nil, T.nilable(T::Boolean))
38
38
  @force_ssl = T.let(nil, T.nilable(T::Boolean))
39
39
  @google_apps_domain = T.let(nil, T.nilable(String))
40
- @google_apps_login_enabled = T.let(nil, T.nilable(String))
40
+ @google_apps_login_enabled = T.let(nil, T.nilable(T::Boolean))
41
41
  @has_discounts = T.let(nil, T.nilable(T::Boolean))
42
42
  @has_gift_cards = T.let(nil, T.nilable(T::Boolean))
43
43
  @has_storefront = T.let(nil, T.nilable(T::Boolean))
@@ -121,7 +121,7 @@ module ShopifyAPI
121
121
  attr_reader :force_ssl
122
122
  sig { returns(T.nilable(String)) }
123
123
  attr_reader :google_apps_domain
124
- sig { returns(T.nilable(String)) }
124
+ sig { returns(T.nilable(T::Boolean)) }
125
125
  attr_reader :google_apps_login_enabled
126
126
  sig { returns(T.nilable(T::Boolean)) }
127
127
  attr_reader :has_discounts
@@ -37,7 +37,7 @@ module ShopifyAPI
37
37
  @finances = T.let(nil, T.nilable(T::Boolean))
38
38
  @force_ssl = T.let(nil, T.nilable(T::Boolean))
39
39
  @google_apps_domain = T.let(nil, T.nilable(String))
40
- @google_apps_login_enabled = T.let(nil, T.nilable(String))
40
+ @google_apps_login_enabled = T.let(nil, T.nilable(T::Boolean))
41
41
  @has_discounts = T.let(nil, T.nilable(T::Boolean))
42
42
  @has_gift_cards = T.let(nil, T.nilable(T::Boolean))
43
43
  @has_storefront = T.let(nil, T.nilable(T::Boolean))
@@ -121,7 +121,7 @@ module ShopifyAPI
121
121
  attr_reader :force_ssl
122
122
  sig { returns(T.nilable(String)) }
123
123
  attr_reader :google_apps_domain
124
- sig { returns(T.nilable(String)) }
124
+ sig { returns(T.nilable(T::Boolean)) }
125
125
  attr_reader :google_apps_login_enabled
126
126
  sig { returns(T.nilable(T::Boolean)) }
127
127
  attr_reader :has_discounts
@@ -37,7 +37,7 @@ module ShopifyAPI
37
37
  @finances = T.let(nil, T.nilable(T::Boolean))
38
38
  @force_ssl = T.let(nil, T.nilable(T::Boolean))
39
39
  @google_apps_domain = T.let(nil, T.nilable(String))
40
- @google_apps_login_enabled = T.let(nil, T.nilable(String))
40
+ @google_apps_login_enabled = T.let(nil, T.nilable(T::Boolean))
41
41
  @has_discounts = T.let(nil, T.nilable(T::Boolean))
42
42
  @has_gift_cards = T.let(nil, T.nilable(T::Boolean))
43
43
  @has_storefront = T.let(nil, T.nilable(T::Boolean))
@@ -121,7 +121,7 @@ module ShopifyAPI
121
121
  attr_reader :force_ssl
122
122
  sig { returns(T.nilable(String)) }
123
123
  attr_reader :google_apps_domain
124
- sig { returns(T.nilable(String)) }
124
+ sig { returns(T.nilable(T::Boolean)) }
125
125
  attr_reader :google_apps_login_enabled
126
126
  sig { returns(T.nilable(T::Boolean)) }
127
127
  attr_reader :has_discounts
@@ -37,7 +37,7 @@ module ShopifyAPI
37
37
  @finances = T.let(nil, T.nilable(T::Boolean))
38
38
  @force_ssl = T.let(nil, T.nilable(T::Boolean))
39
39
  @google_apps_domain = T.let(nil, T.nilable(String))
40
- @google_apps_login_enabled = T.let(nil, T.nilable(String))
40
+ @google_apps_login_enabled = T.let(nil, T.nilable(T::Boolean))
41
41
  @has_discounts = T.let(nil, T.nilable(T::Boolean))
42
42
  @has_gift_cards = T.let(nil, T.nilable(T::Boolean))
43
43
  @has_storefront = T.let(nil, T.nilable(T::Boolean))
@@ -121,7 +121,7 @@ module ShopifyAPI
121
121
  attr_reader :force_ssl
122
122
  sig { returns(T.nilable(String)) }
123
123
  attr_reader :google_apps_domain
124
- sig { returns(T.nilable(String)) }
124
+ sig { returns(T.nilable(T::Boolean)) }
125
125
  attr_reader :google_apps_login_enabled
126
126
  sig { returns(T.nilable(T::Boolean)) }
127
127
  attr_reader :has_discounts
@@ -37,7 +37,7 @@ module ShopifyAPI
37
37
  @finances = T.let(nil, T.nilable(T::Boolean))
38
38
  @force_ssl = T.let(nil, T.nilable(T::Boolean))
39
39
  @google_apps_domain = T.let(nil, T.nilable(String))
40
- @google_apps_login_enabled = T.let(nil, T.nilable(String))
40
+ @google_apps_login_enabled = T.let(nil, T.nilable(T::Boolean))
41
41
  @has_discounts = T.let(nil, T.nilable(T::Boolean))
42
42
  @has_gift_cards = T.let(nil, T.nilable(T::Boolean))
43
43
  @has_storefront = T.let(nil, T.nilable(T::Boolean))
@@ -121,7 +121,7 @@ module ShopifyAPI
121
121
  attr_reader :force_ssl
122
122
  sig { returns(T.nilable(String)) }
123
123
  attr_reader :google_apps_domain
124
- sig { returns(T.nilable(String)) }
124
+ sig { returns(T.nilable(T::Boolean)) }
125
125
  attr_reader :google_apps_login_enabled
126
126
  sig { returns(T.nilable(T::Boolean)) }
127
127
  attr_reader :has_discounts
@@ -37,7 +37,7 @@ module ShopifyAPI
37
37
  @finances = T.let(nil, T.nilable(T::Boolean))
38
38
  @force_ssl = T.let(nil, T.nilable(T::Boolean))
39
39
  @google_apps_domain = T.let(nil, T.nilable(String))
40
- @google_apps_login_enabled = T.let(nil, T.nilable(String))
40
+ @google_apps_login_enabled = T.let(nil, T.nilable(T::Boolean))
41
41
  @has_discounts = T.let(nil, T.nilable(T::Boolean))
42
42
  @has_gift_cards = T.let(nil, T.nilable(T::Boolean))
43
43
  @has_storefront = T.let(nil, T.nilable(T::Boolean))
@@ -121,7 +121,7 @@ module ShopifyAPI
121
121
  attr_reader :force_ssl
122
122
  sig { returns(T.nilable(String)) }
123
123
  attr_reader :google_apps_domain
124
- sig { returns(T.nilable(String)) }
124
+ sig { returns(T.nilable(T::Boolean)) }
125
125
  attr_reader :google_apps_login_enabled
126
126
  sig { returns(T.nilable(T::Boolean)) }
127
127
  attr_reader :has_discounts
@@ -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