shopify_api 14.3.0 → 14.5.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (117) hide show
  1. checksums.yaml +4 -4
  2. data/BREAKING_CHANGES_FOR_V15.md +42 -0
  3. data/CHANGELOG.md +19 -0
  4. data/Gemfile.lock +2 -2
  5. data/README.md +3 -0
  6. data/docs/usage/custom_apps.md +32 -1
  7. data/docs/usage/oauth.md +88 -16
  8. data/docs/usage/webhooks.md +3 -2
  9. data/lib/shopify_api/admin_versions.rb +2 -1
  10. data/lib/shopify_api/clients/graphql/client.rb +14 -3
  11. data/lib/shopify_api/clients/graphql/storefront.rb +12 -2
  12. data/lib/shopify_api/rest/base.rb +7 -1
  13. data/lib/shopify_api/rest/resources/2022_04/customer.rb +1 -0
  14. data/lib/shopify_api/rest/resources/2022_04/recurring_application_charge.rb +9 -0
  15. data/lib/shopify_api/rest/resources/2022_04/shop.rb +12 -2
  16. data/lib/shopify_api/rest/resources/2022_07/customer.rb +1 -0
  17. data/lib/shopify_api/rest/resources/2022_07/recurring_application_charge.rb +9 -0
  18. data/lib/shopify_api/rest/resources/2022_07/shop.rb +12 -2
  19. data/lib/shopify_api/rest/resources/2022_10/customer.rb +1 -0
  20. data/lib/shopify_api/rest/resources/2022_10/recurring_application_charge.rb +9 -0
  21. data/lib/shopify_api/rest/resources/2022_10/shop.rb +12 -2
  22. data/lib/shopify_api/rest/resources/2023_01/customer.rb +1 -0
  23. data/lib/shopify_api/rest/resources/2023_01/recurring_application_charge.rb +9 -0
  24. data/lib/shopify_api/rest/resources/2023_01/shop.rb +12 -2
  25. data/lib/shopify_api/rest/resources/2023_04/customer.rb +1 -0
  26. data/lib/shopify_api/rest/resources/2023_04/recurring_application_charge.rb +9 -0
  27. data/lib/shopify_api/rest/resources/2023_04/shop.rb +12 -2
  28. data/lib/shopify_api/rest/resources/2023_07/customer.rb +1 -0
  29. data/lib/shopify_api/rest/resources/2023_07/recurring_application_charge.rb +9 -0
  30. data/lib/shopify_api/rest/resources/2023_07/shop.rb +12 -2
  31. data/lib/shopify_api/rest/resources/2023_10/customer.rb +1 -0
  32. data/lib/shopify_api/rest/resources/2023_10/recurring_application_charge.rb +9 -0
  33. data/lib/shopify_api/rest/resources/2023_10/shop.rb +12 -2
  34. data/lib/shopify_api/rest/resources/2024_01/customer.rb +1 -0
  35. data/lib/shopify_api/rest/resources/2024_01/recurring_application_charge.rb +9 -0
  36. data/lib/shopify_api/rest/resources/2024_01/shop.rb +12 -2
  37. data/lib/shopify_api/rest/resources/2024_04/customer.rb +1 -0
  38. data/lib/shopify_api/rest/resources/2024_04/recurring_application_charge.rb +9 -0
  39. data/lib/shopify_api/rest/resources/2024_04/shop.rb +12 -2
  40. data/lib/shopify_api/rest/resources/2024_07/abandoned_checkout.rb +194 -0
  41. data/lib/shopify_api/rest/resources/2024_07/access_scope.rb +62 -0
  42. data/lib/shopify_api/rest/resources/2024_07/apple_pay_certificate.rb +109 -0
  43. data/lib/shopify_api/rest/resources/2024_07/application_charge.rb +113 -0
  44. data/lib/shopify_api/rest/resources/2024_07/application_credit.rb +95 -0
  45. data/lib/shopify_api/rest/resources/2024_07/article.rb +269 -0
  46. data/lib/shopify_api/rest/resources/2024_07/asset.rb +122 -0
  47. data/lib/shopify_api/rest/resources/2024_07/assigned_fulfillment_order.rb +92 -0
  48. data/lib/shopify_api/rest/resources/2024_07/balance.rb +58 -0
  49. data/lib/shopify_api/rest/resources/2024_07/blog.rb +166 -0
  50. data/lib/shopify_api/rest/resources/2024_07/cancellation_request.rb +87 -0
  51. data/lib/shopify_api/rest/resources/2024_07/carrier_service.rb +120 -0
  52. data/lib/shopify_api/rest/resources/2024_07/checkout.rb +213 -0
  53. data/lib/shopify_api/rest/resources/2024_07/collect.rb +146 -0
  54. data/lib/shopify_api/rest/resources/2024_07/collection.rb +114 -0
  55. data/lib/shopify_api/rest/resources/2024_07/collection_listing.rb +159 -0
  56. data/lib/shopify_api/rest/resources/2024_07/comment.rb +287 -0
  57. data/lib/shopify_api/rest/resources/2024_07/country.rb +141 -0
  58. data/lib/shopify_api/rest/resources/2024_07/currency.rb +61 -0
  59. data/lib/shopify_api/rest/resources/2024_07/custom_collection.rb +191 -0
  60. data/lib/shopify_api/rest/resources/2024_07/customer.rb +335 -0
  61. data/lib/shopify_api/rest/resources/2024_07/customer_address.rb +215 -0
  62. data/lib/shopify_api/rest/resources/2024_07/deprecated_api_call.rb +61 -0
  63. data/lib/shopify_api/rest/resources/2024_07/discount_code.rb +226 -0
  64. data/lib/shopify_api/rest/resources/2024_07/dispute.rb +115 -0
  65. data/lib/shopify_api/rest/resources/2024_07/dispute_evidence.rb +121 -0
  66. data/lib/shopify_api/rest/resources/2024_07/dispute_file_upload.rb +85 -0
  67. data/lib/shopify_api/rest/resources/2024_07/draft_order.rb +279 -0
  68. data/lib/shopify_api/rest/resources/2024_07/event.rb +152 -0
  69. data/lib/shopify_api/rest/resources/2024_07/fulfillment.rb +235 -0
  70. data/lib/shopify_api/rest/resources/2024_07/fulfillment_event.rb +167 -0
  71. data/lib/shopify_api/rest/resources/2024_07/fulfillment_order.rb +326 -0
  72. data/lib/shopify_api/rest/resources/2024_07/fulfillment_request.rb +101 -0
  73. data/lib/shopify_api/rest/resources/2024_07/fulfillment_service.rb +134 -0
  74. data/lib/shopify_api/rest/resources/2024_07/gift_card.rb +222 -0
  75. data/lib/shopify_api/rest/resources/2024_07/gift_card_adjustment.rb +122 -0
  76. data/lib/shopify_api/rest/resources/2024_07/image.rb +161 -0
  77. data/lib/shopify_api/rest/resources/2024_07/inventory_item.rb +112 -0
  78. data/lib/shopify_api/rest/resources/2024_07/inventory_level.rb +183 -0
  79. data/lib/shopify_api/rest/resources/2024_07/location.rb +171 -0
  80. data/lib/shopify_api/rest/resources/2024_07/locations_for_move.rb +60 -0
  81. data/lib/shopify_api/rest/resources/2024_07/marketing_event.rb +213 -0
  82. data/lib/shopify_api/rest/resources/2024_07/metafield.rb +348 -0
  83. data/lib/shopify_api/rest/resources/2024_07/mobile_platform_application.rb +114 -0
  84. data/lib/shopify_api/rest/resources/2024_07/order.rb +489 -0
  85. data/lib/shopify_api/rest/resources/2024_07/order_risk.rb +148 -0
  86. data/lib/shopify_api/rest/resources/2024_07/page.rb +198 -0
  87. data/lib/shopify_api/rest/resources/2024_07/payment.rb +144 -0
  88. data/lib/shopify_api/rest/resources/2024_07/payment_gateway.rb +147 -0
  89. data/lib/shopify_api/rest/resources/2024_07/payment_transaction.rb +114 -0
  90. data/lib/shopify_api/rest/resources/2024_07/payout.rb +101 -0
  91. data/lib/shopify_api/rest/resources/2024_07/policy.rb +73 -0
  92. data/lib/shopify_api/rest/resources/2024_07/price_rule.rb +227 -0
  93. data/lib/shopify_api/rest/resources/2024_07/product.rb +227 -0
  94. data/lib/shopify_api/rest/resources/2024_07/product_listing.rb +200 -0
  95. data/lib/shopify_api/rest/resources/2024_07/product_resource_feedback.rb +92 -0
  96. data/lib/shopify_api/rest/resources/2024_07/province.rb +136 -0
  97. data/lib/shopify_api/rest/resources/2024_07/recurring_application_charge.rb +184 -0
  98. data/lib/shopify_api/rest/resources/2024_07/redirect.rb +143 -0
  99. data/lib/shopify_api/rest/resources/2024_07/refund.rb +155 -0
  100. data/lib/shopify_api/rest/resources/2024_07/resource_feedback.rb +77 -0
  101. data/lib/shopify_api/rest/resources/2024_07/script_tag.rb +159 -0
  102. data/lib/shopify_api/rest/resources/2024_07/shipping_zone.rb +87 -0
  103. data/lib/shopify_api/rest/resources/2024_07/shop.rb +232 -0
  104. data/lib/shopify_api/rest/resources/2024_07/smart_collection.rb +220 -0
  105. data/lib/shopify_api/rest/resources/2024_07/storefront_access_token.rb +91 -0
  106. data/lib/shopify_api/rest/resources/2024_07/tender_transaction.rb +97 -0
  107. data/lib/shopify_api/rest/resources/2024_07/theme.rb +127 -0
  108. data/lib/shopify_api/rest/resources/2024_07/transaction.rb +188 -0
  109. data/lib/shopify_api/rest/resources/2024_07/usage_charge.rb +106 -0
  110. data/lib/shopify_api/rest/resources/2024_07/user.rb +142 -0
  111. data/lib/shopify_api/rest/resources/2024_07/variant.rb +212 -0
  112. data/lib/shopify_api/rest/resources/2024_07/webhook.rb +172 -0
  113. data/lib/shopify_api/utils/attributes_comparator.rb +21 -4
  114. data/lib/shopify_api/version.rb +1 -1
  115. data/lib/shopify_api/webhooks/registry.rb +5 -4
  116. data/sorbet/rbi/shims/hash.rb +3 -0
  117. metadata +81 -6
@@ -66,7 +66,7 @@ module ShopifyAPI
66
66
  @setup_required = T.let(nil, T.nilable(T::Boolean))
67
67
  @shop_owner = T.let(nil, T.nilable(String))
68
68
  @source = T.let(nil, T.nilable(String))
69
- @tax_shipping = T.let(nil, T.nilable(String))
69
+ @tax_shipping = T.let(nil, T.nilable(T::Boolean))
70
70
  @taxes_included = T.let(nil, T.nilable(T::Boolean))
71
71
  @timezone = T.let(nil, T.nilable(String))
72
72
  @transactional_sms_disabled = T.let(nil, T.nilable(T::Boolean))
@@ -179,7 +179,7 @@ module ShopifyAPI
179
179
  attr_reader :shop_owner
180
180
  sig { returns(T.nilable(String)) }
181
181
  attr_reader :source
182
- sig { returns(T.nilable(String)) }
182
+ sig { returns(T.nilable(T::Boolean)) }
183
183
  attr_reader :tax_shipping
184
184
  sig { returns(T.nilable(T::Boolean)) }
185
185
  attr_reader :taxes_included
@@ -216,6 +216,16 @@ module ShopifyAPI
216
216
  T.cast(response, T::Array[Shop])
217
217
  end
218
218
 
219
+ sig do
220
+ params(
221
+ fields: T.untyped,
222
+ session: Auth::Session,
223
+ ).returns(T.nilable(Shop))
224
+ end
225
+ def current(fields: nil, session: ShopifyAPI::Context.active_session)
226
+ all(session: session, fields: fields).first
227
+ end
228
+
219
229
  end
220
230
 
221
231
  end
@@ -55,6 +55,7 @@ module ShopifyAPI
55
55
  metafield: Metafield
56
56
  }, T::Hash[Symbol, Class])
57
57
  @has_many = T.let({}, T::Hash[Symbol, Class])
58
+ @atomic_hash_attributes = [:email_marketing_consent]
58
59
  @paths = T.let([
59
60
  {http_method: :delete, operation: :delete, ids: [:id], path: "customers/<id>.json"},
60
61
  {http_method: :get, operation: :count, ids: [], path: "customers/count.json"},
@@ -149,6 +149,15 @@ module ShopifyAPI
149
149
  T.cast(response, T::Array[RecurringApplicationCharge])
150
150
  end
151
151
 
152
+ sig do
153
+ params(session: Auth::Session)
154
+ .returns(T.nilable(RecurringApplicationCharge))
155
+ end
156
+ def current(session: ShopifyAPI::Context.active_session)
157
+ charges = all(session: session)
158
+ charges.select { |charge| charge.status == "active" }.first
159
+ end
160
+
152
161
  end
153
162
 
154
163
  sig do
@@ -66,7 +66,7 @@ module ShopifyAPI
66
66
  @setup_required = T.let(nil, T.nilable(T::Boolean))
67
67
  @shop_owner = T.let(nil, T.nilable(String))
68
68
  @source = T.let(nil, T.nilable(String))
69
- @tax_shipping = T.let(nil, T.nilable(String))
69
+ @tax_shipping = T.let(nil, T.nilable(T::Boolean))
70
70
  @taxes_included = T.let(nil, T.nilable(T::Boolean))
71
71
  @timezone = T.let(nil, T.nilable(String))
72
72
  @transactional_sms_disabled = T.let(nil, T.nilable(T::Boolean))
@@ -179,7 +179,7 @@ module ShopifyAPI
179
179
  attr_reader :shop_owner
180
180
  sig { returns(T.nilable(String)) }
181
181
  attr_reader :source
182
- sig { returns(T.nilable(String)) }
182
+ sig { returns(T.nilable(T::Boolean)) }
183
183
  attr_reader :tax_shipping
184
184
  sig { returns(T.nilable(T::Boolean)) }
185
185
  attr_reader :taxes_included
@@ -216,6 +216,16 @@ module ShopifyAPI
216
216
  T.cast(response, T::Array[Shop])
217
217
  end
218
218
 
219
+ sig do
220
+ params(
221
+ fields: T.untyped,
222
+ session: Auth::Session,
223
+ ).returns(T.nilable(Shop))
224
+ end
225
+ def current(fields: nil, session: ShopifyAPI::Context.active_session)
226
+ all(session: session, fields: fields).first
227
+ end
228
+
219
229
  end
220
230
 
221
231
  end
@@ -55,6 +55,7 @@ module ShopifyAPI
55
55
  metafield: Metafield
56
56
  }, T::Hash[Symbol, Class])
57
57
  @has_many = T.let({}, T::Hash[Symbol, Class])
58
+ @atomic_hash_attributes = [:email_marketing_consent]
58
59
  @paths = T.let([
59
60
  {http_method: :delete, operation: :delete, ids: [:id], path: "customers/<id>.json"},
60
61
  {http_method: :get, operation: :count, ids: [], path: "customers/count.json"},
@@ -149,6 +149,15 @@ module ShopifyAPI
149
149
  T.cast(response, T::Array[RecurringApplicationCharge])
150
150
  end
151
151
 
152
+ sig do
153
+ params(session: Auth::Session)
154
+ .returns(T.nilable(RecurringApplicationCharge))
155
+ end
156
+ def current(session: ShopifyAPI::Context.active_session)
157
+ charges = all(session: session)
158
+ charges.select { |charge| charge.status == "active" }.first
159
+ end
160
+
152
161
  end
153
162
 
154
163
  sig do
@@ -66,7 +66,7 @@ module ShopifyAPI
66
66
  @setup_required = T.let(nil, T.nilable(T::Boolean))
67
67
  @shop_owner = T.let(nil, T.nilable(String))
68
68
  @source = T.let(nil, T.nilable(String))
69
- @tax_shipping = T.let(nil, T.nilable(String))
69
+ @tax_shipping = T.let(nil, T.nilable(T::Boolean))
70
70
  @taxes_included = T.let(nil, T.nilable(T::Boolean))
71
71
  @timezone = T.let(nil, T.nilable(String))
72
72
  @transactional_sms_disabled = T.let(nil, T.nilable(T::Boolean))
@@ -179,7 +179,7 @@ module ShopifyAPI
179
179
  attr_reader :shop_owner
180
180
  sig { returns(T.nilable(String)) }
181
181
  attr_reader :source
182
- sig { returns(T.nilable(String)) }
182
+ sig { returns(T.nilable(T::Boolean)) }
183
183
  attr_reader :tax_shipping
184
184
  sig { returns(T.nilable(T::Boolean)) }
185
185
  attr_reader :taxes_included
@@ -216,6 +216,16 @@ module ShopifyAPI
216
216
  T.cast(response, T::Array[Shop])
217
217
  end
218
218
 
219
+ sig do
220
+ params(
221
+ fields: T.untyped,
222
+ session: Auth::Session,
223
+ ).returns(T.nilable(Shop))
224
+ end
225
+ def current(fields: nil, session: ShopifyAPI::Context.active_session)
226
+ all(session: session, fields: fields).first
227
+ end
228
+
219
229
  end
220
230
 
221
231
  end
@@ -55,6 +55,7 @@ module ShopifyAPI
55
55
  metafield: Metafield
56
56
  }, T::Hash[Symbol, Class])
57
57
  @has_many = T.let({}, T::Hash[Symbol, Class])
58
+ @atomic_hash_attributes = [:email_marketing_consent]
58
59
  @paths = T.let([
59
60
  {http_method: :delete, operation: :delete, ids: [:id], path: "customers/<id>.json"},
60
61
  {http_method: :get, operation: :count, ids: [], path: "customers/count.json"},
@@ -149,6 +149,15 @@ module ShopifyAPI
149
149
  T.cast(response, T::Array[RecurringApplicationCharge])
150
150
  end
151
151
 
152
+ sig do
153
+ params(session: Auth::Session)
154
+ .returns(T.nilable(RecurringApplicationCharge))
155
+ end
156
+ def current(session: ShopifyAPI::Context.active_session)
157
+ charges = all(session: session)
158
+ charges.select { |charge| charge.status == "active" }.first
159
+ end
160
+
152
161
  end
153
162
 
154
163
  sig do
@@ -66,7 +66,7 @@ module ShopifyAPI
66
66
  @setup_required = T.let(nil, T.nilable(T::Boolean))
67
67
  @shop_owner = T.let(nil, T.nilable(String))
68
68
  @source = T.let(nil, T.nilable(String))
69
- @tax_shipping = T.let(nil, T.nilable(String))
69
+ @tax_shipping = T.let(nil, T.nilable(T::Boolean))
70
70
  @taxes_included = T.let(nil, T.nilable(T::Boolean))
71
71
  @timezone = T.let(nil, T.nilable(String))
72
72
  @transactional_sms_disabled = T.let(nil, T.nilable(T::Boolean))
@@ -179,7 +179,7 @@ module ShopifyAPI
179
179
  attr_reader :shop_owner
180
180
  sig { returns(T.nilable(String)) }
181
181
  attr_reader :source
182
- sig { returns(T.nilable(String)) }
182
+ sig { returns(T.nilable(T::Boolean)) }
183
183
  attr_reader :tax_shipping
184
184
  sig { returns(T.nilable(T::Boolean)) }
185
185
  attr_reader :taxes_included
@@ -216,6 +216,16 @@ module ShopifyAPI
216
216
  T.cast(response, T::Array[Shop])
217
217
  end
218
218
 
219
+ sig do
220
+ params(
221
+ fields: T.untyped,
222
+ session: Auth::Session,
223
+ ).returns(T.nilable(Shop))
224
+ end
225
+ def current(fields: nil, session: ShopifyAPI::Context.active_session)
226
+ all(session: session, fields: fields).first
227
+ end
228
+
219
229
  end
220
230
 
221
231
  end
@@ -55,6 +55,7 @@ module ShopifyAPI
55
55
  metafield: Metafield
56
56
  }, T::Hash[Symbol, Class])
57
57
  @has_many = T.let({}, T::Hash[Symbol, Class])
58
+ @atomic_hash_attributes = [:email_marketing_consent]
58
59
  @paths = T.let([
59
60
  {http_method: :delete, operation: :delete, ids: [:id], path: "customers/<id>.json"},
60
61
  {http_method: :get, operation: :count, ids: [], path: "customers/count.json"},
@@ -149,6 +149,15 @@ module ShopifyAPI
149
149
  T.cast(response, T::Array[RecurringApplicationCharge])
150
150
  end
151
151
 
152
+ sig do
153
+ params(session: Auth::Session)
154
+ .returns(T.nilable(RecurringApplicationCharge))
155
+ end
156
+ def current(session: ShopifyAPI::Context.active_session)
157
+ charges = all(session: session)
158
+ charges.select { |charge| charge.status == "active" }.first
159
+ end
160
+
152
161
  end
153
162
 
154
163
  sig do
@@ -66,7 +66,7 @@ module ShopifyAPI
66
66
  @setup_required = T.let(nil, T.nilable(T::Boolean))
67
67
  @shop_owner = T.let(nil, T.nilable(String))
68
68
  @source = T.let(nil, T.nilable(String))
69
- @tax_shipping = T.let(nil, T.nilable(String))
69
+ @tax_shipping = T.let(nil, T.nilable(T::Boolean))
70
70
  @taxes_included = T.let(nil, T.nilable(T::Boolean))
71
71
  @timezone = T.let(nil, T.nilable(String))
72
72
  @transactional_sms_disabled = T.let(nil, T.nilable(T::Boolean))
@@ -179,7 +179,7 @@ module ShopifyAPI
179
179
  attr_reader :shop_owner
180
180
  sig { returns(T.nilable(String)) }
181
181
  attr_reader :source
182
- sig { returns(T.nilable(String)) }
182
+ sig { returns(T.nilable(T::Boolean)) }
183
183
  attr_reader :tax_shipping
184
184
  sig { returns(T.nilable(T::Boolean)) }
185
185
  attr_reader :taxes_included
@@ -216,6 +216,16 @@ module ShopifyAPI
216
216
  T.cast(response, T::Array[Shop])
217
217
  end
218
218
 
219
+ sig do
220
+ params(
221
+ fields: T.untyped,
222
+ session: Auth::Session,
223
+ ).returns(T.nilable(Shop))
224
+ end
225
+ def current(fields: nil, session: ShopifyAPI::Context.active_session)
226
+ all(session: session, fields: fields).first
227
+ end
228
+
219
229
  end
220
230
 
221
231
  end
@@ -55,6 +55,7 @@ module ShopifyAPI
55
55
  metafield: Metafield
56
56
  }, T::Hash[Symbol, Class])
57
57
  @has_many = T.let({}, T::Hash[Symbol, Class])
58
+ @atomic_hash_attributes = [:email_marketing_consent]
58
59
  @paths = T.let([
59
60
  {http_method: :delete, operation: :delete, ids: [:id], path: "customers/<id>.json"},
60
61
  {http_method: :get, operation: :count, ids: [], path: "customers/count.json"},
@@ -149,6 +149,15 @@ module ShopifyAPI
149
149
  T.cast(response, T::Array[RecurringApplicationCharge])
150
150
  end
151
151
 
152
+ sig do
153
+ params(session: Auth::Session)
154
+ .returns(T.nilable(RecurringApplicationCharge))
155
+ end
156
+ def current(session: ShopifyAPI::Context.active_session)
157
+ charges = all(session: session)
158
+ charges.select { |charge| charge.status == "active" }.first
159
+ end
160
+
152
161
  end
153
162
 
154
163
  sig do
@@ -66,7 +66,7 @@ module ShopifyAPI
66
66
  @setup_required = T.let(nil, T.nilable(T::Boolean))
67
67
  @shop_owner = T.let(nil, T.nilable(String))
68
68
  @source = T.let(nil, T.nilable(String))
69
- @tax_shipping = T.let(nil, T.nilable(String))
69
+ @tax_shipping = T.let(nil, T.nilable(T::Boolean))
70
70
  @taxes_included = T.let(nil, T.nilable(T::Boolean))
71
71
  @timezone = T.let(nil, T.nilable(String))
72
72
  @transactional_sms_disabled = T.let(nil, T.nilable(T::Boolean))
@@ -179,7 +179,7 @@ module ShopifyAPI
179
179
  attr_reader :shop_owner
180
180
  sig { returns(T.nilable(String)) }
181
181
  attr_reader :source
182
- sig { returns(T.nilable(String)) }
182
+ sig { returns(T.nilable(T::Boolean)) }
183
183
  attr_reader :tax_shipping
184
184
  sig { returns(T.nilable(T::Boolean)) }
185
185
  attr_reader :taxes_included
@@ -216,6 +216,16 @@ module ShopifyAPI
216
216
  T.cast(response, T::Array[Shop])
217
217
  end
218
218
 
219
+ sig do
220
+ params(
221
+ fields: T.untyped,
222
+ session: Auth::Session,
223
+ ).returns(T.nilable(Shop))
224
+ end
225
+ def current(fields: nil, session: ShopifyAPI::Context.active_session)
226
+ all(session: session, fields: fields).first
227
+ end
228
+
219
229
  end
220
230
 
221
231
  end
@@ -55,6 +55,7 @@ module ShopifyAPI
55
55
  metafield: Metafield
56
56
  }, T::Hash[Symbol, Class])
57
57
  @has_many = T.let({}, T::Hash[Symbol, Class])
58
+ @atomic_hash_attributes = [:email_marketing_consent]
58
59
  @paths = T.let([
59
60
  {http_method: :delete, operation: :delete, ids: [:id], path: "customers/<id>.json"},
60
61
  {http_method: :get, operation: :count, ids: [], path: "customers/count.json"},
@@ -149,6 +149,15 @@ module ShopifyAPI
149
149
  T.cast(response, T::Array[RecurringApplicationCharge])
150
150
  end
151
151
 
152
+ sig do
153
+ params(session: Auth::Session)
154
+ .returns(T.nilable(RecurringApplicationCharge))
155
+ end
156
+ def current(session: ShopifyAPI::Context.active_session)
157
+ charges = all(session: session)
158
+ charges.select { |charge| charge.status == "active" }.first
159
+ end
160
+
152
161
  end
153
162
 
154
163
  sig do
@@ -66,7 +66,7 @@ module ShopifyAPI
66
66
  @setup_required = T.let(nil, T.nilable(T::Boolean))
67
67
  @shop_owner = T.let(nil, T.nilable(String))
68
68
  @source = T.let(nil, T.nilable(String))
69
- @tax_shipping = T.let(nil, T.nilable(String))
69
+ @tax_shipping = T.let(nil, T.nilable(T::Boolean))
70
70
  @taxes_included = T.let(nil, T.nilable(T::Boolean))
71
71
  @timezone = T.let(nil, T.nilable(String))
72
72
  @transactional_sms_disabled = T.let(nil, T.nilable(T::Boolean))
@@ -179,7 +179,7 @@ module ShopifyAPI
179
179
  attr_reader :shop_owner
180
180
  sig { returns(T.nilable(String)) }
181
181
  attr_reader :source
182
- sig { returns(T.nilable(String)) }
182
+ sig { returns(T.nilable(T::Boolean)) }
183
183
  attr_reader :tax_shipping
184
184
  sig { returns(T.nilable(T::Boolean)) }
185
185
  attr_reader :taxes_included
@@ -216,6 +216,16 @@ module ShopifyAPI
216
216
  T.cast(response, T::Array[Shop])
217
217
  end
218
218
 
219
+ sig do
220
+ params(
221
+ fields: T.untyped,
222
+ session: Auth::Session,
223
+ ).returns(T.nilable(Shop))
224
+ end
225
+ def current(fields: nil, session: ShopifyAPI::Context.active_session)
226
+ all(session: session, fields: fields).first
227
+ end
228
+
219
229
  end
220
230
 
221
231
  end
@@ -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