@shopify/hydrogen-react 2025.7.2 → 2026.1.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 (155) hide show
  1. package/customer-account.schema.json +1 -1
  2. package/dist/browser-dev/AddToCartButton.mjs +3 -1
  3. package/dist/browser-dev/AddToCartButton.mjs.map +1 -1
  4. package/dist/browser-dev/CartLineProvider.mjs.map +1 -1
  5. package/dist/browser-dev/CartProvider.mjs.map +1 -1
  6. package/dist/browser-dev/Image.mjs.map +1 -1
  7. package/dist/browser-dev/ModelViewer.mjs.map +1 -1
  8. package/dist/browser-dev/Money.mjs.map +1 -1
  9. package/dist/browser-dev/Video.mjs.map +1 -1
  10. package/dist/browser-dev/cart-queries.mjs +64 -10
  11. package/dist/browser-dev/cart-queries.mjs.map +1 -1
  12. package/dist/browser-dev/codegen.helpers.mjs.map +1 -1
  13. package/dist/browser-dev/optionValueDecoder.mjs.map +1 -1
  14. package/dist/browser-dev/packages/hydrogen-react/package.json.mjs +1 -1
  15. package/dist/browser-dev/parse-metafield.mjs +2 -0
  16. package/dist/browser-dev/parse-metafield.mjs.map +1 -1
  17. package/dist/browser-dev/storefront-api-constants.mjs +1 -1
  18. package/dist/browser-dev/storefront-api-constants.mjs.map +1 -1
  19. package/dist/browser-dev/storefront-client.mjs +0 -1
  20. package/dist/browser-dev/storefront-client.mjs.map +1 -1
  21. package/dist/browser-dev/useCartAPIStateMachine.mjs.map +1 -1
  22. package/dist/browser-dev/useCartActions.mjs.map +1 -1
  23. package/dist/browser-dev/useMoney.mjs.map +1 -1
  24. package/dist/browser-prod/AddToCartButton.mjs +3 -1
  25. package/dist/browser-prod/AddToCartButton.mjs.map +1 -1
  26. package/dist/browser-prod/CartLineProvider.mjs.map +1 -1
  27. package/dist/browser-prod/CartProvider.mjs.map +1 -1
  28. package/dist/browser-prod/Image.mjs.map +1 -1
  29. package/dist/browser-prod/ModelViewer.mjs.map +1 -1
  30. package/dist/browser-prod/Money.mjs.map +1 -1
  31. package/dist/browser-prod/Video.mjs.map +1 -1
  32. package/dist/browser-prod/cart-queries.mjs +64 -10
  33. package/dist/browser-prod/cart-queries.mjs.map +1 -1
  34. package/dist/browser-prod/codegen.helpers.mjs.map +1 -1
  35. package/dist/browser-prod/optionValueDecoder.mjs.map +1 -1
  36. package/dist/browser-prod/packages/hydrogen-react/package.json.mjs +1 -1
  37. package/dist/browser-prod/parse-metafield.mjs +2 -0
  38. package/dist/browser-prod/parse-metafield.mjs.map +1 -1
  39. package/dist/browser-prod/storefront-api-constants.mjs +1 -1
  40. package/dist/browser-prod/storefront-api-constants.mjs.map +1 -1
  41. package/dist/browser-prod/storefront-client.mjs +0 -1
  42. package/dist/browser-prod/storefront-client.mjs.map +1 -1
  43. package/dist/browser-prod/useCartAPIStateMachine.mjs.map +1 -1
  44. package/dist/browser-prod/useCartActions.mjs.map +1 -1
  45. package/dist/browser-prod/useMoney.mjs.map +1 -1
  46. package/dist/node-dev/AddToCartButton.js +3 -1
  47. package/dist/node-dev/AddToCartButton.js.map +1 -1
  48. package/dist/node-dev/AddToCartButton.mjs +3 -1
  49. package/dist/node-dev/AddToCartButton.mjs.map +1 -1
  50. package/dist/node-dev/CartLineProvider.js.map +1 -1
  51. package/dist/node-dev/CartLineProvider.mjs.map +1 -1
  52. package/dist/node-dev/CartProvider.js.map +1 -1
  53. package/dist/node-dev/CartProvider.mjs.map +1 -1
  54. package/dist/node-dev/Image.js.map +1 -1
  55. package/dist/node-dev/Image.mjs.map +1 -1
  56. package/dist/node-dev/ModelViewer.js.map +1 -1
  57. package/dist/node-dev/ModelViewer.mjs.map +1 -1
  58. package/dist/node-dev/Money.js.map +1 -1
  59. package/dist/node-dev/Money.mjs.map +1 -1
  60. package/dist/node-dev/Video.js.map +1 -1
  61. package/dist/node-dev/Video.mjs.map +1 -1
  62. package/dist/node-dev/cart-queries.js +64 -10
  63. package/dist/node-dev/cart-queries.js.map +1 -1
  64. package/dist/node-dev/cart-queries.mjs +64 -10
  65. package/dist/node-dev/cart-queries.mjs.map +1 -1
  66. package/dist/node-dev/codegen.helpers.js.map +1 -1
  67. package/dist/node-dev/codegen.helpers.mjs.map +1 -1
  68. package/dist/node-dev/optionValueDecoder.js.map +1 -1
  69. package/dist/node-dev/optionValueDecoder.mjs.map +1 -1
  70. package/dist/node-dev/packages/hydrogen-react/package.json.js +1 -1
  71. package/dist/node-dev/packages/hydrogen-react/package.json.mjs +1 -1
  72. package/dist/node-dev/parse-metafield.js +2 -0
  73. package/dist/node-dev/parse-metafield.js.map +1 -1
  74. package/dist/node-dev/parse-metafield.mjs +2 -0
  75. package/dist/node-dev/parse-metafield.mjs.map +1 -1
  76. package/dist/node-dev/storefront-api-constants.js +1 -1
  77. package/dist/node-dev/storefront-api-constants.js.map +1 -1
  78. package/dist/node-dev/storefront-api-constants.mjs +1 -1
  79. package/dist/node-dev/storefront-api-constants.mjs.map +1 -1
  80. package/dist/node-dev/storefront-client.js +0 -1
  81. package/dist/node-dev/storefront-client.js.map +1 -1
  82. package/dist/node-dev/storefront-client.mjs +0 -1
  83. package/dist/node-dev/storefront-client.mjs.map +1 -1
  84. package/dist/node-dev/useCartAPIStateMachine.js.map +1 -1
  85. package/dist/node-dev/useCartAPIStateMachine.mjs.map +1 -1
  86. package/dist/node-dev/useCartActions.js.map +1 -1
  87. package/dist/node-dev/useCartActions.mjs.map +1 -1
  88. package/dist/node-dev/useMoney.js.map +1 -1
  89. package/dist/node-dev/useMoney.mjs.map +1 -1
  90. package/dist/node-prod/AddToCartButton.js +3 -1
  91. package/dist/node-prod/AddToCartButton.js.map +1 -1
  92. package/dist/node-prod/AddToCartButton.mjs +3 -1
  93. package/dist/node-prod/AddToCartButton.mjs.map +1 -1
  94. package/dist/node-prod/CartLineProvider.js.map +1 -1
  95. package/dist/node-prod/CartLineProvider.mjs.map +1 -1
  96. package/dist/node-prod/CartProvider.js.map +1 -1
  97. package/dist/node-prod/CartProvider.mjs.map +1 -1
  98. package/dist/node-prod/Image.js.map +1 -1
  99. package/dist/node-prod/Image.mjs.map +1 -1
  100. package/dist/node-prod/ModelViewer.js.map +1 -1
  101. package/dist/node-prod/ModelViewer.mjs.map +1 -1
  102. package/dist/node-prod/Money.js.map +1 -1
  103. package/dist/node-prod/Money.mjs.map +1 -1
  104. package/dist/node-prod/Video.js.map +1 -1
  105. package/dist/node-prod/Video.mjs.map +1 -1
  106. package/dist/node-prod/cart-queries.js +64 -10
  107. package/dist/node-prod/cart-queries.js.map +1 -1
  108. package/dist/node-prod/cart-queries.mjs +64 -10
  109. package/dist/node-prod/cart-queries.mjs.map +1 -1
  110. package/dist/node-prod/codegen.helpers.js.map +1 -1
  111. package/dist/node-prod/codegen.helpers.mjs.map +1 -1
  112. package/dist/node-prod/optionValueDecoder.js.map +1 -1
  113. package/dist/node-prod/optionValueDecoder.mjs.map +1 -1
  114. package/dist/node-prod/packages/hydrogen-react/package.json.js +1 -1
  115. package/dist/node-prod/packages/hydrogen-react/package.json.mjs +1 -1
  116. package/dist/node-prod/parse-metafield.js +2 -0
  117. package/dist/node-prod/parse-metafield.js.map +1 -1
  118. package/dist/node-prod/parse-metafield.mjs +2 -0
  119. package/dist/node-prod/parse-metafield.mjs.map +1 -1
  120. package/dist/node-prod/storefront-api-constants.js +1 -1
  121. package/dist/node-prod/storefront-api-constants.js.map +1 -1
  122. package/dist/node-prod/storefront-api-constants.mjs +1 -1
  123. package/dist/node-prod/storefront-api-constants.mjs.map +1 -1
  124. package/dist/node-prod/storefront-client.js +0 -1
  125. package/dist/node-prod/storefront-client.js.map +1 -1
  126. package/dist/node-prod/storefront-client.mjs +0 -1
  127. package/dist/node-prod/storefront-client.mjs.map +1 -1
  128. package/dist/node-prod/useCartAPIStateMachine.js.map +1 -1
  129. package/dist/node-prod/useCartAPIStateMachine.mjs.map +1 -1
  130. package/dist/node-prod/useCartActions.js.map +1 -1
  131. package/dist/node-prod/useCartActions.mjs.map +1 -1
  132. package/dist/node-prod/useMoney.js.map +1 -1
  133. package/dist/node-prod/useMoney.mjs.map +1 -1
  134. package/dist/types/AddToCartButton.d.ts +3 -0
  135. package/dist/types/CartLineProvider.d.ts +1 -1
  136. package/dist/types/CartProvider.d.ts +2 -2
  137. package/dist/types/Image.d.ts +1 -1
  138. package/dist/types/ModelViewer.d.ts +1 -1
  139. package/dist/types/Money.d.ts +5 -5
  140. package/dist/types/Video.d.ts +1 -1
  141. package/dist/types/codegen.helpers.d.ts +2 -2
  142. package/dist/types/customer-account-api-types.d.ts +669 -20
  143. package/dist/types/optionValueDecoder.d.ts +2 -2
  144. package/dist/types/parse-metafield.d.ts +14 -2
  145. package/dist/types/storefront-api-constants.d.ts +1 -1
  146. package/dist/types/storefront-api-types.d.ts +165 -7
  147. package/dist/types/useCartAPIStateMachine.d.ts +2 -2
  148. package/dist/types/useCartActions.d.ts +2 -2
  149. package/dist/types/useMoney.d.ts +4 -4
  150. package/dist/umd/hydrogen-react.dev.js +71 -14
  151. package/dist/umd/hydrogen-react.dev.js.map +1 -1
  152. package/dist/umd/hydrogen-react.prod.js +78 -24
  153. package/dist/umd/hydrogen-react.prod.js.map +1 -1
  154. package/package.json +1 -1
  155. package/storefront.schema.json +1 -1
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * THIS FILE IS AUTO-GENERATED, DO NOT EDIT
3
- * Based on Customer Account API 2025-07
3
+ * Based on Customer Account API 2026-01
4
4
  * If changes need to happen to the types defined in this file, then generally the Storefront API needs to update. After it's updated, you can run `npm run graphql-types`.
5
5
  * Except custom Scalars, which are defined in the `codegen.ts` file
6
6
  */
@@ -36,6 +36,15 @@ export type Scalars = {
36
36
  UnsignedInt64: {input: string; output: string};
37
37
  };
38
38
 
39
+ /** The bank account payment details related to a transaction. */
40
+ export type AchPaymentDetails = {
41
+ __typename?: 'AchPaymentDetails';
42
+ /** The name of the bank used. */
43
+ bankName: Scalars['String']['output'];
44
+ /** The last four digits of the bank account used. */
45
+ last4?: Maybe<Scalars['String']['output']>;
46
+ };
47
+
39
48
  /** A sale that includes an additional fee charge. */
40
49
  export type AdditionalFeeSale = Node &
41
50
  Sale & {
@@ -118,6 +127,15 @@ export type AdjustmentSale = Node &
118
127
  totalTaxAmount: MoneyV2;
119
128
  };
120
129
 
130
+ /** A Shopify app. */
131
+ export type App = Node & {
132
+ __typename?: 'App';
133
+ /** A globally-unique ID. */
134
+ id: Scalars['ID']['output'];
135
+ /** The name of the app. */
136
+ title: Scalars['String']['output'];
137
+ };
138
+
121
139
  /** The input fields for the billing address received from Apple Pay. */
122
140
  export type ApplePayBillingAddressInput = {
123
141
  /** The first line of the address, typically the street address or PO Box number. */
@@ -262,6 +280,80 @@ export type AvailableShippingRates = {
262
280
  shippingRates?: Maybe<Array<ShippingRate>>;
263
281
  };
264
282
 
283
+ /** The type of bank account holder. */
284
+ export type BankAccountHolderType =
285
+ /** A company account holder. */
286
+ | 'COMPANY'
287
+ /** An individual account holder. */
288
+ | 'INDIVIDUAL';
289
+
290
+ /** The type of bank account. */
291
+ export type BankAccountType =
292
+ /** A checking account. */
293
+ | 'CHECKING'
294
+ /** A savings account. */
295
+ | 'SAVINGS';
296
+
297
+ /** Represents a bank account payment instrument. */
298
+ export type BankPaymentInstrument = Node &
299
+ PaymentInstrument & {
300
+ __typename?: 'BankPaymentInstrument';
301
+ /** The type of account holder. */
302
+ accountHolderType?: Maybe<BankAccountHolderType>;
303
+ /** The type of bank account. */
304
+ accountType: BankAccountType;
305
+ /** The name of the bank. */
306
+ bankName: Scalars['String']['output'];
307
+ /** The billing address associated with the bank account. */
308
+ billingAddress?: Maybe<PaymentInstrumentBillingAddress>;
309
+ /** The list of open draft orders associated with this payment instrument. */
310
+ draftOrders: DraftOrderConnection;
311
+ /** The globally-unique ID. */
312
+ id: Scalars['ID']['output'];
313
+ /** The last four digits of the account number. */
314
+ lastDigits: Scalars['String']['output'];
315
+ /** The list of pending orders associated with this payment instrument. */
316
+ orders: OrderConnection;
317
+ /** The list of subscription contracts charged using this payment instrument. */
318
+ subscriptionContracts: SubscriptionContractConnection;
319
+ };
320
+
321
+ /** Represents a bank account payment instrument. */
322
+ export type BankPaymentInstrumentDraftOrdersArgs = {
323
+ after?: InputMaybe<Scalars['String']['input']>;
324
+ before?: InputMaybe<Scalars['String']['input']>;
325
+ first?: InputMaybe<Scalars['Int']['input']>;
326
+ last?: InputMaybe<Scalars['Int']['input']>;
327
+ reverse?: InputMaybe<Scalars['Boolean']['input']>;
328
+ };
329
+
330
+ /** Represents a bank account payment instrument. */
331
+ export type BankPaymentInstrumentOrdersArgs = {
332
+ after?: InputMaybe<Scalars['String']['input']>;
333
+ before?: InputMaybe<Scalars['String']['input']>;
334
+ first?: InputMaybe<Scalars['Int']['input']>;
335
+ last?: InputMaybe<Scalars['Int']['input']>;
336
+ reverse?: InputMaybe<Scalars['Boolean']['input']>;
337
+ };
338
+
339
+ /** Represents a bank account payment instrument. */
340
+ export type BankPaymentInstrumentSubscriptionContractsArgs = {
341
+ after?: InputMaybe<Scalars['String']['input']>;
342
+ before?: InputMaybe<Scalars['String']['input']>;
343
+ first?: InputMaybe<Scalars['Int']['input']>;
344
+ last?: InputMaybe<Scalars['Int']['input']>;
345
+ query?: InputMaybe<Scalars['String']['input']>;
346
+ reverse?: InputMaybe<Scalars['Boolean']['input']>;
347
+ sortKey?: InputMaybe<SubscriptionContractsSortKeys>;
348
+ };
349
+
350
+ /** A bank payment method that can be used for recurring and future payments. */
351
+ export type BankPaymentMethod = {
352
+ __typename?: 'BankPaymentMethod';
353
+ /** The payment provider client credentials. */
354
+ paymentProviderClientCredentials: PaymentProviderClientCredentials;
355
+ };
356
+
265
357
  /** The input fields required for updating a business contact. */
266
358
  export type BusinessContactUpdateInput = {
267
359
  /** The first name of the business contact. */
@@ -413,6 +505,8 @@ export type CalculatedReturnLineItem = {
413
505
  lineItem: LineItem;
414
506
  /** The quantity being returned. */
415
507
  quantity: Scalars['Int']['output'];
508
+ /** The subtotal of the return line item without target all discounts. */
509
+ subtotalBeforeTargetAllDiscountsSet: MoneyBag;
416
510
  /** The subtotal of the return line item. */
417
511
  subtotalSet: MoneyBag;
418
512
  /** The total tax of the return line item. */
@@ -927,6 +1021,8 @@ export type CompanyLocation = HasMetafields &
927
1021
  HasStoreCreditAccounts &
928
1022
  Node & {
929
1023
  __typename?: 'CompanyLocation';
1024
+ /** The list of all available payment methods that can be used for recurring and future payments. */
1025
+ availablePaymentMethods: Array<PaymentMethod>;
930
1026
  /** The billing address of the company location. */
931
1027
  billingAddress?: Maybe<CompanyAddress>;
932
1028
  /** The configuration of the buyer's B2B checkout. */
@@ -959,6 +1055,12 @@ export type CompanyLocation = HasMetafields &
959
1055
  name: Scalars['String']['output'];
960
1056
  /** The list of customer orders under the company. */
961
1057
  orders: OrderConnection;
1058
+ /** The payment instrument corresponding to the provided ID. */
1059
+ paymentInstrument?: Maybe<
1060
+ BankPaymentInstrument | CustomerCreditCard | PaypalBillingAgreement
1061
+ >;
1062
+ /** The list of stored payment instruments. */
1063
+ paymentInstruments: PaymentInstrumentConnection;
962
1064
  /** The list of roles assigned to this location. */
963
1065
  roleAssignments: CompanyContactRoleAssignmentConnection;
964
1066
  /** The shipping address of the company location. */
@@ -1031,6 +1133,20 @@ export type CompanyLocationOrdersArgs = {
1031
1133
  sortKey?: InputMaybe<OrderByLocationSortKeys>;
1032
1134
  };
1033
1135
 
1136
+ /** Represents a company's business location. */
1137
+ export type CompanyLocationPaymentInstrumentArgs = {
1138
+ id: Scalars['ID']['input'];
1139
+ };
1140
+
1141
+ /** Represents a company's business location. */
1142
+ export type CompanyLocationPaymentInstrumentsArgs = {
1143
+ after?: InputMaybe<Scalars['String']['input']>;
1144
+ before?: InputMaybe<Scalars['String']['input']>;
1145
+ first?: InputMaybe<Scalars['Int']['input']>;
1146
+ last?: InputMaybe<Scalars['Int']['input']>;
1147
+ reverse?: InputMaybe<Scalars['Boolean']['input']>;
1148
+ };
1149
+
1034
1150
  /** Represents a company's business location. */
1035
1151
  export type CompanyLocationRoleAssignmentsArgs = {
1036
1152
  after?: InputMaybe<Scalars['String']['input']>;
@@ -1111,7 +1227,7 @@ export type ContactPermissionLocationScopeType =
1111
1227
  /** The contact has permission on only one location. */
1112
1228
  | 'ONE';
1113
1229
 
1114
- /** Details for count of elements. */
1230
+ /** A numeric count with precision information indicating whether the count is exact or an estimate. */
1115
1231
  export type Count = {
1116
1232
  __typename?: 'Count';
1117
1233
  /** The count of elements. */
@@ -2000,6 +2116,8 @@ export type Customer = HasMetafields &
2000
2116
  __typename?: 'Customer';
2001
2117
  /** The addresses associated with the customer. */
2002
2118
  addresses: CustomerAddressConnection;
2119
+ /** The list of all available payment methods that can be used for recurring and future payments. */
2120
+ availablePaymentMethods: Array<PaymentMethod>;
2003
2121
  /** The list of wallet payment configs for providers that the payment method accepts. */
2004
2122
  availableWalletPaymentConfigs: Array<WalletPaymentConfig>;
2005
2123
  /** The list of contacts the customer is associated with. */
@@ -2039,6 +2157,12 @@ export type Customer = HasMetafields &
2039
2157
  metafields: Array<Maybe<Metafield>>;
2040
2158
  /** The orders associated with the customer. */
2041
2159
  orders: OrderConnection;
2160
+ /** The payment instrument corresponding to the provided ID. */
2161
+ paymentInstrument?: Maybe<
2162
+ BankPaymentInstrument | CustomerCreditCard | PaypalBillingAgreement
2163
+ >;
2164
+ /** The list of stored payment instruments. */
2165
+ paymentInstruments: PaymentInstrumentConnection;
2042
2166
  /** A PayPal Billing Agreement resource. */
2043
2167
  paypalBillingAgreement?: Maybe<PaypalBillingAgreement>;
2044
2168
  /** The phone number of the customer. */
@@ -2123,6 +2247,20 @@ export type CustomerOrdersArgs = {
2123
2247
  sortKey?: InputMaybe<OrderSortKeys>;
2124
2248
  };
2125
2249
 
2250
+ /** Represents the personal information of a customer. Apps using the Customer Account API must meet the protected customer data [requirements](https://shopify.dev/docs/apps/launch/protected-customer-data). */
2251
+ export type CustomerPaymentInstrumentArgs = {
2252
+ id: Scalars['ID']['input'];
2253
+ };
2254
+
2255
+ /** Represents the personal information of a customer. Apps using the Customer Account API must meet the protected customer data [requirements](https://shopify.dev/docs/apps/launch/protected-customer-data). */
2256
+ export type CustomerPaymentInstrumentsArgs = {
2257
+ after?: InputMaybe<Scalars['String']['input']>;
2258
+ before?: InputMaybe<Scalars['String']['input']>;
2259
+ first?: InputMaybe<Scalars['Int']['input']>;
2260
+ last?: InputMaybe<Scalars['Int']['input']>;
2261
+ reverse?: InputMaybe<Scalars['Boolean']['input']>;
2262
+ };
2263
+
2126
2264
  /** Represents the personal information of a customer. Apps using the Customer Account API must meet the protected customer data [requirements](https://shopify.dev/docs/apps/launch/protected-customer-data). */
2127
2265
  export type CustomerReturnArgs = {
2128
2266
  id: Scalars['ID']['input'];
@@ -2306,6 +2444,8 @@ export type CustomerCreditCard = Node &
2306
2444
  brand: Scalars['String']['output'];
2307
2445
  /** Whether the credit card is the default payment method. */
2308
2446
  default: Scalars['Boolean']['output'];
2447
+ /** The list of open draft orders associated with this payment instrument. */
2448
+ draftOrders: DraftOrderConnection;
2309
2449
  /** Whether the credit card is about to expire. */
2310
2450
  expiresSoon: Scalars['Boolean']['output'];
2311
2451
  /** The expiry month of the credit card. */
@@ -2324,6 +2464,8 @@ export type CustomerCreditCard = Node &
2324
2464
  name: Scalars['String']['output'];
2325
2465
  /** The list of open draft orders of an associated credit card. */
2326
2466
  openDraftOrders: DraftOrderConnection;
2467
+ /** The list of pending orders associated with this payment instrument. */
2468
+ orders: OrderConnection;
2327
2469
  /** The list of pending orders associated with this credit card. */
2328
2470
  pendingOrders: OrderConnection;
2329
2471
  /** Whether this credit card has permission to be shown at checkout for future purchases. */
@@ -2336,6 +2478,15 @@ export type CustomerCreditCard = Node &
2336
2478
  walletType?: Maybe<PaymentInstrumentWalletType>;
2337
2479
  };
2338
2480
 
2481
+ /** The credit card payment instrument. */
2482
+ export type CustomerCreditCardDraftOrdersArgs = {
2483
+ after?: InputMaybe<Scalars['String']['input']>;
2484
+ before?: InputMaybe<Scalars['String']['input']>;
2485
+ first?: InputMaybe<Scalars['Int']['input']>;
2486
+ last?: InputMaybe<Scalars['Int']['input']>;
2487
+ reverse?: InputMaybe<Scalars['Boolean']['input']>;
2488
+ };
2489
+
2339
2490
  /** The credit card payment instrument. */
2340
2491
  export type CustomerCreditCardOpenDraftOrdersArgs = {
2341
2492
  after?: InputMaybe<Scalars['String']['input']>;
@@ -2345,6 +2496,15 @@ export type CustomerCreditCardOpenDraftOrdersArgs = {
2345
2496
  reverse?: InputMaybe<Scalars['Boolean']['input']>;
2346
2497
  };
2347
2498
 
2499
+ /** The credit card payment instrument. */
2500
+ export type CustomerCreditCardOrdersArgs = {
2501
+ after?: InputMaybe<Scalars['String']['input']>;
2502
+ before?: InputMaybe<Scalars['String']['input']>;
2503
+ first?: InputMaybe<Scalars['Int']['input']>;
2504
+ last?: InputMaybe<Scalars['Int']['input']>;
2505
+ reverse?: InputMaybe<Scalars['Boolean']['input']>;
2506
+ };
2507
+
2348
2508
  /** The credit card payment instrument. */
2349
2509
  export type CustomerCreditCardPendingOrdersArgs = {
2350
2510
  after?: InputMaybe<Scalars['String']['input']>;
@@ -2534,8 +2694,6 @@ export type CustomerMailingAddressInput = {
2534
2694
  phone?: InputMaybe<Scalars['String']['input']>;
2535
2695
  /** The customer's unique phone number, formatted using E.164 standard. For example, _+16135551111_. */
2536
2696
  phoneNumber?: InputMaybe<Scalars['String']['input']>;
2537
- /** The two-letter code for the country of the address. */
2538
- territoryCode?: InputMaybe<Scalars['String']['input']>;
2539
2697
  /** The zip or postal code of the address. */
2540
2698
  zip?: InputMaybe<Scalars['String']['input']>;
2541
2699
  /**
@@ -3315,6 +3473,25 @@ export type FulfillmentStatus =
3315
3473
  /** The fulfillment was completed successfully. */
3316
3474
  | 'SUCCESS';
3317
3475
 
3476
+ /** The generic file resource lets you manage files in a merchant's store. Generic files include any file that doesn't fit into a designated type such as image or video. Example: PDF, JSON. */
3477
+ export type GenericFile = Media & {
3478
+ __typename?: 'GenericFile';
3479
+ /** A word or phrase to indicate the contents of a file. */
3480
+ alt?: Maybe<Scalars['String']['output']>;
3481
+ /** A globally-unique ID. */
3482
+ id: Scalars['ID']['output'];
3483
+ /** The media content type. */
3484
+ mediaContentType: MediaContentType;
3485
+ /** The MIME type of the file. */
3486
+ mimeType?: Maybe<Scalars['String']['output']>;
3487
+ /** The size of the original file in bytes. */
3488
+ originalFileSize?: Maybe<Scalars['Int']['output']>;
3489
+ /** The preview image for the media. */
3490
+ previewImage?: Maybe<Image>;
3491
+ /** The URL of the file. */
3492
+ url?: Maybe<Scalars['URL']['output']>;
3493
+ };
3494
+
3318
3495
  /** The gift card payment details related to a transaction. */
3319
3496
  export type GiftCardDetails = {
3320
3497
  __typename?: 'GiftCardDetails';
@@ -3924,7 +4101,12 @@ export type LineItem = Node & {
3924
4101
  soldQuantity?: Maybe<Scalars['Int']['output']>;
3925
4102
  /** The total price of the line item, ignoring returns, before discounts. */
3926
4103
  soldTotalPrice?: Maybe<MoneyV2>;
3927
- /** The reasons that the customer can return this line item. */
4104
+ /** Return reasons suggested based on the line item's product category in Shopify's product taxonomy. These are a curated subset of the full library of available reasons via the [`returnReasonDefinitions`](https://shopify.dev/docs/api/admin-graphql/latest/queries/returnReasonDefinitions) query. */
4105
+ suggestedReturnReasonDefinitions?: Maybe<ReturnReasonDefinitionConnection>;
4106
+ /**
4107
+ * The reasons that the customer can return this line item.
4108
+ * @deprecated Use `suggestedReturnReasonDefinitions` instead.
4109
+ */
3928
4110
  supportedReturnReasons: Array<ReturnSupportedReason>;
3929
4111
  /** The title of the product or variant. This field only applies to custom line items. */
3930
4112
  title: Scalars['String']['output'];
@@ -3948,6 +4130,15 @@ export type LineItem = Node & {
3948
4130
  vendor?: Maybe<Scalars['String']['output']>;
3949
4131
  };
3950
4132
 
4133
+ /** A single line item in an order. */
4134
+ export type LineItemSuggestedReturnReasonDefinitionsArgs = {
4135
+ after?: InputMaybe<Scalars['String']['input']>;
4136
+ before?: InputMaybe<Scalars['String']['input']>;
4137
+ first?: InputMaybe<Scalars['Int']['input']>;
4138
+ last?: InputMaybe<Scalars['Int']['input']>;
4139
+ reverse?: InputMaybe<Scalars['Boolean']['input']>;
4140
+ };
4141
+
3951
4142
  /** An auto-generated type for paginating through multiple LineItems. */
3952
4143
  export type LineItemConnection = {
3953
4144
  __typename?: 'LineItemConnection';
@@ -4023,12 +4214,23 @@ export type LineItemGroup = Node & {
4023
4214
  __typename?: 'LineItemGroup';
4024
4215
  /** The total price of the line item group, calculated by aggregating the current total price of its line item components. */
4025
4216
  currentTotalPrice?: Maybe<MoneyV2>;
4217
+ /**
4218
+ * Whether the group merchandise is itself deliverable.
4219
+ * @deprecated Use `is_concrete` instead.
4220
+ */
4221
+ deliverable?: Maybe<Scalars['Boolean']['output']>;
4026
4222
  /** The discount information for the line item group. */
4027
4223
  discountInformation?: Maybe<Array<LineItemDiscountInformation>>;
4028
4224
  /** A globally-unique ID. */
4029
4225
  id: Scalars['ID']['output'];
4030
4226
  /** The image of the line item group variant or the product image if the variant has no image. */
4031
4227
  image?: Maybe<Image>;
4228
+ /** Whether the group represents concrete merchandise (as opposed to virtual merchandise). */
4229
+ isConcrete?: Maybe<Scalars['Boolean']['output']>;
4230
+ /** ID of the parent line item. */
4231
+ parentLineItemId?: Maybe<Scalars['ID']['output']>;
4232
+ /** The title of the parent variant. */
4233
+ parentVariantTitle?: Maybe<Scalars['String']['output']>;
4032
4234
  /** The number of line item groups ordered. */
4033
4235
  quantity: Scalars['Int']['output'];
4034
4236
  /** The title of the line item group. */
@@ -4128,6 +4330,44 @@ export type MarketWebPresenceRootUrl = {
4128
4330
  url: Scalars['URL']['output'];
4129
4331
  };
4130
4332
 
4333
+ /** Represents a media interface. */
4334
+ export type Media = {
4335
+ /** A word or phrase to share the nature or contents of a media. */
4336
+ alt?: Maybe<Scalars['String']['output']>;
4337
+ /** A globally-unique ID. */
4338
+ id: Scalars['ID']['output'];
4339
+ /** The media content type. */
4340
+ mediaContentType: MediaContentType;
4341
+ /** The preview image for the media. */
4342
+ previewImage?: Maybe<Image>;
4343
+ };
4344
+
4345
+ /** The content types that a media can have. */
4346
+ export type MediaContentType =
4347
+ /** A Shopify hosted generic file. */
4348
+ | 'GENERIC_FILE'
4349
+ /** A Shopify hosted image. */
4350
+ | 'IMAGE'
4351
+ /** A Shopify hosted 3D model. */
4352
+ | 'MODEL_3D'
4353
+ /** A Shopify hosted video. */
4354
+ | 'VIDEO';
4355
+
4356
+ /** Represents a Shopify hosted image. */
4357
+ export type MediaImage = Media & {
4358
+ __typename?: 'MediaImage';
4359
+ /** A word or phrase to share the nature or contents of a media. */
4360
+ alt?: Maybe<Scalars['String']['output']>;
4361
+ /** A globally-unique ID. */
4362
+ id: Scalars['ID']['output'];
4363
+ /** The image for the media. */
4364
+ image?: Maybe<Image>;
4365
+ /** The media content type. */
4366
+ mediaContentType: MediaContentType;
4367
+ /** The preview image for the media. */
4368
+ previewImage?: Maybe<Image>;
4369
+ };
4370
+
4131
4371
  /**
4132
4372
  * The custom metadata attached to a resource. Metafields can be sorted into namespaces and are
4133
4373
  * comprised of keys, values, and value types.
@@ -4153,6 +4393,10 @@ export type Metafield = HasCompareDigest &
4153
4393
  key: Scalars['String']['output'];
4154
4394
  /** The namespace for a metafield. */
4155
4395
  namespace: Scalars['String']['output'];
4396
+ /** Returns a reference object if the metafield's type is a resource reference. */
4397
+ reference?: Maybe<MetafieldReference>;
4398
+ /** A list of reference objects if the metafield's type is a resource reference list. */
4399
+ references?: Maybe<MetafieldReferenceConnection>;
4156
4400
  /**
4157
4401
  * The type name of the metafield.
4158
4402
  * See the list of [supported types](https://shopify.dev/apps/metafields/definitions/types).
@@ -4164,6 +4408,17 @@ export type Metafield = HasCompareDigest &
4164
4408
  value: Scalars['String']['output'];
4165
4409
  };
4166
4410
 
4411
+ /**
4412
+ * The custom metadata attached to a resource. Metafields can be sorted into namespaces and are
4413
+ * comprised of keys, values, and value types.
4414
+ */
4415
+ export type MetafieldReferencesArgs = {
4416
+ after?: InputMaybe<Scalars['String']['input']>;
4417
+ before?: InputMaybe<Scalars['String']['input']>;
4418
+ first?: InputMaybe<Scalars['Int']['input']>;
4419
+ last?: InputMaybe<Scalars['Int']['input']>;
4420
+ };
4421
+
4167
4422
  /** Identifies a metafield by its owner resource, namespace, and key. */
4168
4423
  export type MetafieldIdentifier = {
4169
4424
  __typename?: 'MetafieldIdentifier';
@@ -4185,6 +4440,34 @@ export type MetafieldIdentifierInput = {
4185
4440
  ownerId: Scalars['ID']['input'];
4186
4441
  };
4187
4442
 
4443
+ /** Returns the resource which is being referred to by a metafield. */
4444
+ export type MetafieldReference =
4445
+ | GenericFile
4446
+ | MediaImage
4447
+ | Metaobject
4448
+ | Model3d
4449
+ | Video;
4450
+
4451
+ /** An auto-generated type for paginating through multiple MetafieldReferences. */
4452
+ export type MetafieldReferenceConnection = {
4453
+ __typename?: 'MetafieldReferenceConnection';
4454
+ /** The connection between the node and its parent. Each edge contains a minimum of the edge's cursor and the node. */
4455
+ edges: Array<MetafieldReferenceEdge>;
4456
+ /** A list of nodes that are contained in MetafieldReferenceEdge. You can fetch data about an individual node, or you can follow the edges to fetch data about a collection of related nodes. At each node, you specify the fields that you want to retrieve. */
4457
+ nodes: Array<MetafieldReference>;
4458
+ /** An object that’s used to retrieve [cursor information](https://shopify.dev/api/usage/pagination-graphql) about the current page. */
4459
+ pageInfo: PageInfo;
4460
+ };
4461
+
4462
+ /** An auto-generated type which holds one MetafieldReference and a cursor during pagination. */
4463
+ export type MetafieldReferenceEdge = {
4464
+ __typename?: 'MetafieldReferenceEdge';
4465
+ /** The position of each node in an array, used in [pagination](https://shopify.dev/api/usage/pagination-graphql). */
4466
+ cursor: Scalars['String']['output'];
4467
+ /** The item at the end of MetafieldReferenceEdge. */
4468
+ node: MetafieldReference;
4469
+ };
4470
+
4188
4471
  /** Value type to describe the Metafield value. */
4189
4472
  export type MetafieldValueType =
4190
4473
  /** A boolean metafield. */
@@ -4315,10 +4598,76 @@ export type MetafieldsSetUserErrorCode =
4315
4598
  /** The input value is too short. */
4316
4599
  | 'TOO_SHORT';
4317
4600
 
4318
- /**
4319
- * A collection of monetary values in their respective currencies. Typically used in the context of multi-currency pricing and transactions,
4320
- * when an amount in the shop's currency is converted to the customer's currency of choice (the presentment currency).
4321
- */
4601
+ /** An instance of a user-defined model based on a MetaobjectDefinition. */
4602
+ export type Metaobject = Node & {
4603
+ __typename?: 'Metaobject';
4604
+ /** Accesses a field of the object by key. */
4605
+ field?: Maybe<MetaobjectField>;
4606
+ /**
4607
+ * All object fields with defined values.
4608
+ * Omitted object keys can be assumed null, and no guarantees are made about field order.
4609
+ */
4610
+ fields: Array<MetaobjectField>;
4611
+ /** The unique handle of the metaobject. Useful as a custom ID. */
4612
+ handle: Scalars['String']['output'];
4613
+ /** A globally-unique ID. */
4614
+ id: Scalars['ID']['output'];
4615
+ /** The type of the metaobject. */
4616
+ type: Scalars['String']['output'];
4617
+ /** The date and time when the metaobject was last updated. */
4618
+ updatedAt: Scalars['DateTime']['output'];
4619
+ };
4620
+
4621
+ /** An instance of a user-defined model based on a MetaobjectDefinition. */
4622
+ export type MetaobjectFieldArgs = {
4623
+ key: Scalars['String']['input'];
4624
+ };
4625
+
4626
+ /** Provides the value of a Metaobject field. */
4627
+ export type MetaobjectField = {
4628
+ __typename?: 'MetaobjectField';
4629
+ /** The field key. */
4630
+ key: Scalars['String']['output'];
4631
+ /** A referenced object if the field type is a resource reference. */
4632
+ reference?: Maybe<MetafieldReference>;
4633
+ /**
4634
+ * The type name of the field.
4635
+ * See the list of [supported types](https://shopify.dev/apps/metafields/definitions/types).
4636
+ */
4637
+ type: Scalars['String']['output'];
4638
+ /** The field value. */
4639
+ value?: Maybe<Scalars['String']['output']>;
4640
+ };
4641
+
4642
+ /** Represents a Shopify hosted 3D model. */
4643
+ export type Model3d = Media & {
4644
+ __typename?: 'Model3d';
4645
+ /** A word or phrase to share the nature or contents of a media. */
4646
+ alt?: Maybe<Scalars['String']['output']>;
4647
+ /** A globally-unique ID. */
4648
+ id: Scalars['ID']['output'];
4649
+ /** The media content type. */
4650
+ mediaContentType: MediaContentType;
4651
+ /** The preview image for the media. */
4652
+ previewImage?: Maybe<Image>;
4653
+ /** The sources for a 3d model. */
4654
+ sources: Array<Model3dSource>;
4655
+ };
4656
+
4657
+ /** Represents a source for a Shopify hosted 3d model. */
4658
+ export type Model3dSource = {
4659
+ __typename?: 'Model3dSource';
4660
+ /** The filesize of the 3d model. */
4661
+ filesize: Scalars['Int']['output'];
4662
+ /** The format of the 3d model. */
4663
+ format: Scalars['String']['output'];
4664
+ /** The MIME type of the 3d model. */
4665
+ mimeType: Scalars['String']['output'];
4666
+ /** The URL of the 3d model. */
4667
+ url: Scalars['String']['output'];
4668
+ };
4669
+
4670
+ /** A collection of monetary values in their respective currencies. Used throughout the API for multi-currency pricing and transactions, when an amount in the shop's currency is converted to the customer's currency of choice. The `presentmentMoney` field contains the amount in the customer's selected currency. The `shopMoney` field contains the equivalent in the shop's base currency. */
4322
4671
  export type MoneyBag = {
4323
4672
  __typename?: 'MoneyBag';
4324
4673
  /** Amount in presentment currency. */
@@ -4327,7 +4676,7 @@ export type MoneyBag = {
4327
4676
  shopMoney: MoneyV2;
4328
4677
  };
4329
4678
 
4330
- /** A precise monetary value and its associated currency. For example, 12.99 USD. */
4679
+ /** A precise monetary value and its associated currency. Combines a decimal amount with a three-letter currency code to express prices, costs, and other financial values throughout the API. For example, 12.99 USD. */
4331
4680
  export type MoneyV2 = {
4332
4681
  __typename?: 'MoneyV2';
4333
4682
  /**
@@ -4403,8 +4752,12 @@ export type Mutation = {
4403
4752
  metafieldsSet?: Maybe<MetafieldsSetPayload>;
4404
4753
  /** Request a new return on behalf of a customer. */
4405
4754
  orderRequestReturn?: Maybe<OrderRequestReturnPayload>;
4755
+ /** Adds a new payment instrument and associates mandates. Returns the created instrument on success. */
4756
+ paymentInstrumentAdd?: Maybe<PaymentInstrumentAddPayload>;
4406
4757
  /** Removes a payment instrument from a customer's account. */
4407
4758
  paymentInstrumentRemove?: Maybe<PaymentInstrumentRemovePayload>;
4759
+ /** Replace existing payment mandates with a new (or existing) instrument. Subscriptions require special treatment. */
4760
+ paymentInstrumentReplace?: Maybe<PaymentInstrumentReplacePayload>;
4408
4761
  /** Updates a customer's default payment instrument. */
4409
4762
  paymentInstrumentUpdateDefault?: Maybe<PaymentInstrumentUpdateDefaultPayload>;
4410
4763
  /** Connects a customer's PayPal account for use as a payment method. */
@@ -4563,12 +4916,27 @@ export type MutationOrderRequestReturnArgs = {
4563
4916
  requestedLineItems: Array<RequestedLineItemInput>;
4564
4917
  };
4565
4918
 
4919
+ /** This is the schema's entry point for all mutation operations. */
4920
+ export type MutationPaymentInstrumentAddArgs = {
4921
+ idempotencyKey: Scalars['String']['input'];
4922
+ instrument: PaymentInstrumentInput;
4923
+ mandates: Array<PaymentMandateInput>;
4924
+ };
4925
+
4566
4926
  /** This is the schema's entry point for all mutation operations. */
4567
4927
  export type MutationPaymentInstrumentRemoveArgs = {
4568
4928
  paymentInstrumentId: Scalars['ID']['input'];
4569
4929
  replacementPaymentInstrumentId?: InputMaybe<Scalars['ID']['input']>;
4570
4930
  };
4571
4931
 
4932
+ /** This is the schema's entry point for all mutation operations. */
4933
+ export type MutationPaymentInstrumentReplaceArgs = {
4934
+ id: Scalars['ID']['input'];
4935
+ idempotencyKey: Scalars['String']['input'];
4936
+ instrument: PaymentInstrumentInput;
4937
+ mandates?: InputMaybe<Array<PaymentMandateInput>>;
4938
+ };
4939
+
4572
4940
  /** This is the schema's entry point for all mutation operations. */
4573
4941
  export type MutationPaymentInstrumentUpdateDefaultArgs = {
4574
4942
  default: Scalars['Boolean']['input'];
@@ -5445,6 +5813,8 @@ export type OrderTransactionStatus =
5445
5813
 
5446
5814
  /** The type of order transaction. */
5447
5815
  export type OrderTransactionType =
5816
+ /** An ACH bank account transaction. */
5817
+ | 'ACH'
5448
5818
  /** A bank deposit transaction. */
5449
5819
  | 'BANK_DEPOSIT'
5450
5820
  /** A card transaction. */
@@ -5481,8 +5851,18 @@ export type PageInfo = {
5481
5851
  startCursor?: Maybe<Scalars['String']['output']>;
5482
5852
  };
5483
5853
 
5854
+ /** The input fields for a single remote-token credential. */
5855
+ export type PaymentCredentialRemoteTokenInput = {
5856
+ /** Internal provider identifier. */
5857
+ providerId?: InputMaybe<Scalars['Int']['input']>;
5858
+ /** Opaque credential token. */
5859
+ token: Scalars['String']['input'];
5860
+ /** Credential type. */
5861
+ type: Scalars['String']['input'];
5862
+ };
5863
+
5484
5864
  /** Payment details related to a transaction. */
5485
- export type PaymentDetails = CardPaymentDetails;
5865
+ export type PaymentDetails = AchPaymentDetails | CardPaymentDetails;
5486
5866
 
5487
5867
  /** The payment icon to display for the transaction. */
5488
5868
  export type PaymentIcon = {
@@ -5555,8 +5935,58 @@ export type PaymentIconImageUrlArgs = {
5555
5935
 
5556
5936
  /** A payment instrument. */
5557
5937
  export type PaymentInstrument = {
5938
+ /** The list of open draft orders associated with this payment instrument. */
5939
+ draftOrders: DraftOrderConnection;
5558
5940
  /** A globally-unique ID. */
5559
5941
  id: Scalars['ID']['output'];
5942
+ /** The list of pending orders associated with this payment instrument. */
5943
+ orders: OrderConnection;
5944
+ /** The list of subscription contracts charged using this payment instrument. */
5945
+ subscriptionContracts: SubscriptionContractConnection;
5946
+ };
5947
+
5948
+ /** A payment instrument. */
5949
+ export type PaymentInstrumentDraftOrdersArgs = {
5950
+ after?: InputMaybe<Scalars['String']['input']>;
5951
+ before?: InputMaybe<Scalars['String']['input']>;
5952
+ first?: InputMaybe<Scalars['Int']['input']>;
5953
+ last?: InputMaybe<Scalars['Int']['input']>;
5954
+ reverse?: InputMaybe<Scalars['Boolean']['input']>;
5955
+ };
5956
+
5957
+ /** A payment instrument. */
5958
+ export type PaymentInstrumentOrdersArgs = {
5959
+ after?: InputMaybe<Scalars['String']['input']>;
5960
+ before?: InputMaybe<Scalars['String']['input']>;
5961
+ first?: InputMaybe<Scalars['Int']['input']>;
5962
+ last?: InputMaybe<Scalars['Int']['input']>;
5963
+ reverse?: InputMaybe<Scalars['Boolean']['input']>;
5964
+ };
5965
+
5966
+ /** A payment instrument. */
5967
+ export type PaymentInstrumentSubscriptionContractsArgs = {
5968
+ after?: InputMaybe<Scalars['String']['input']>;
5969
+ before?: InputMaybe<Scalars['String']['input']>;
5970
+ first?: InputMaybe<Scalars['Int']['input']>;
5971
+ last?: InputMaybe<Scalars['Int']['input']>;
5972
+ query?: InputMaybe<Scalars['String']['input']>;
5973
+ reverse?: InputMaybe<Scalars['Boolean']['input']>;
5974
+ sortKey?: InputMaybe<SubscriptionContractsSortKeys>;
5975
+ };
5976
+
5977
+ /** Return type for `paymentInstrumentAdd` mutation. */
5978
+ export type PaymentInstrumentAddPayload = {
5979
+ __typename?: 'PaymentInstrumentAddPayload';
5980
+ /** The URL to which the customer should be redirected to complete the 3D Secure payment flow. */
5981
+ nextActionUrl?: Maybe<Scalars['URL']['output']>;
5982
+ /** The newly added payment instrument. */
5983
+ paymentInstrument?: Maybe<
5984
+ BankPaymentInstrument | CustomerCreditCard | PaypalBillingAgreement
5985
+ >;
5986
+ /** If the payment verification result is processing. When this is true, payment_instrument will be null. */
5987
+ processing?: Maybe<Scalars['Boolean']['output']>;
5988
+ /** The list of errors that occurred from executing the mutation. */
5989
+ userErrors: Array<UserErrorsPaymentInstrumentUserErrors>;
5560
5990
  };
5561
5991
 
5562
5992
  /** The billing address associated with a credit card payment instrument. */
@@ -5584,6 +6014,34 @@ export type PaymentInstrumentBillingAddress = {
5584
6014
  zip?: Maybe<Scalars['String']['output']>;
5585
6015
  };
5586
6016
 
6017
+ /** An auto-generated type for paginating through multiple PaymentInstruments. */
6018
+ export type PaymentInstrumentConnection = {
6019
+ __typename?: 'PaymentInstrumentConnection';
6020
+ /** The connection between the node and its parent. Each edge contains a minimum of the edge's cursor and the node. */
6021
+ edges: Array<PaymentInstrumentEdge>;
6022
+ /** A list of nodes that are contained in PaymentInstrumentEdge. You can fetch data about an individual node, or you can follow the edges to fetch data about a collection of related nodes. At each node, you specify the fields that you want to retrieve. */
6023
+ nodes: Array<
6024
+ BankPaymentInstrument | CustomerCreditCard | PaypalBillingAgreement
6025
+ >;
6026
+ /** An object that’s used to retrieve [cursor information](https://shopify.dev/api/usage/pagination-graphql) about the current page. */
6027
+ pageInfo: PageInfo;
6028
+ };
6029
+
6030
+ /** An auto-generated type which holds one PaymentInstrument and a cursor during pagination. */
6031
+ export type PaymentInstrumentEdge = {
6032
+ __typename?: 'PaymentInstrumentEdge';
6033
+ /** The position of each node in an array, used in [pagination](https://shopify.dev/api/usage/pagination-graphql). */
6034
+ cursor: Scalars['String']['output'];
6035
+ /** The item at the end of PaymentInstrumentEdge. */
6036
+ node: BankPaymentInstrument | CustomerCreditCard | PaypalBillingAgreement;
6037
+ };
6038
+
6039
+ /** The input fields for a payment instrument. */
6040
+ export type PaymentInstrumentInput = {
6041
+ /** The remote-token based instrument (e.g., credit card session, PayPal token). */
6042
+ remoteToken?: InputMaybe<RemoteTokenPaymentInstrumentInput>;
6043
+ };
6044
+
5587
6045
  /** Return type for `paymentInstrumentRemove` mutation. */
5588
6046
  export type PaymentInstrumentRemovePayload = {
5589
6047
  __typename?: 'PaymentInstrumentRemovePayload';
@@ -5593,6 +6051,21 @@ export type PaymentInstrumentRemovePayload = {
5593
6051
  userErrors: Array<UserErrorsPaymentInstrumentUserErrors>;
5594
6052
  };
5595
6053
 
6054
+ /** Return type for `paymentInstrumentReplace` mutation. */
6055
+ export type PaymentInstrumentReplacePayload = {
6056
+ __typename?: 'PaymentInstrumentReplacePayload';
6057
+ /** The URL to which the customer should be redirected to complete the 3D Secure payment flow. */
6058
+ nextActionUrl?: Maybe<Scalars['URL']['output']>;
6059
+ /** The replacement payment instrument. */
6060
+ paymentInstrument?: Maybe<
6061
+ BankPaymentInstrument | CustomerCreditCard | PaypalBillingAgreement
6062
+ >;
6063
+ /** If the payment verification result is processing. When this is true, payment_instrument will be null. */
6064
+ processing?: Maybe<Scalars['Boolean']['output']>;
6065
+ /** The list of errors that occurred from executing the mutation. */
6066
+ userErrors: Array<UserErrorsPaymentInstrumentUserErrors>;
6067
+ };
6068
+
5596
6069
  /** Return type for `paymentInstrumentUpdateDefault` mutation. */
5597
6070
  export type PaymentInstrumentUpdateDefaultPayload = {
5598
6071
  __typename?: 'PaymentInstrumentUpdateDefaultPayload';
@@ -5611,6 +6084,33 @@ export type PaymentInstrumentWalletType =
5611
6084
  /** The credit card is a Shop Pay wallet. */
5612
6085
  | 'SHOP_PAY';
5613
6086
 
6087
+ /** The input fields for a mandate association for a payment instrument. */
6088
+ export type PaymentMandateInput = {
6089
+ resourceId?: InputMaybe<Scalars['Int']['input']>;
6090
+ resourceType: PaymentMandateResourceType;
6091
+ };
6092
+
6093
+ /** Resources a mandate can be associated with. */
6094
+ export type PaymentMandateResourceType =
6095
+ | 'ANY'
6096
+ | 'CHECKOUT'
6097
+ | 'DRAFTORDER'
6098
+ | 'ORDER'
6099
+ | 'RECEIPT'
6100
+ | 'SUBSCRIPTIONS';
6101
+
6102
+ /** A payment method that customers can use to pay. */
6103
+ export type PaymentMethod = BankPaymentMethod;
6104
+
6105
+ /** Represents a payment provider client credentials. */
6106
+ export type PaymentProviderClientCredentials = {
6107
+ __typename?: 'PaymentProviderClientCredentials';
6108
+ /** The API client key for the payment provider client. */
6109
+ apiClientKey?: Maybe<Scalars['String']['output']>;
6110
+ /** The merchant's payment provider account id. */
6111
+ merchantAccountId?: Maybe<Scalars['String']['output']>;
6112
+ };
6113
+
5614
6114
  /** A single payment schedule defined in the payment terms. */
5615
6115
  export type PaymentSchedule = Node & {
5616
6116
  __typename?: 'PaymentSchedule';
@@ -5627,6 +6127,8 @@ export type PaymentSchedule = Node & {
5627
6127
  dueAt?: Maybe<Scalars['DateTime']['output']>;
5628
6128
  /** A globally-unique ID. */
5629
6129
  id: Scalars['ID']['output'];
6130
+ /** Remaining balance to be paid or authorized by the customer for this payment schedule. */
6131
+ totalBalance: MoneyV2;
5630
6132
  };
5631
6133
 
5632
6134
  /** An auto-generated type for paginating through multiple PaymentSchedules. */
@@ -5720,8 +6222,12 @@ export type PaypalBillingAgreement = Node &
5720
6222
  __typename?: 'PaypalBillingAgreement';
5721
6223
  /** The billing address associated with the payment method. */
5722
6224
  billingAddress?: Maybe<PaymentInstrumentBillingAddress>;
6225
+ /** The list of open draft orders associated with this payment instrument. */
6226
+ draftOrders: DraftOrderConnection;
5723
6227
  /** The globally-unique ID. */
5724
6228
  id: Scalars['ID']['output'];
6229
+ /** The list of pending orders associated with this payment instrument. */
6230
+ orders: OrderConnection;
5725
6231
  /** The email address associated with the PayPal account. */
5726
6232
  paypalAccountEmail?: Maybe<Scalars['String']['output']>;
5727
6233
  /** The list of pending orders associated with this PayPal billing agreement. */
@@ -5730,6 +6236,24 @@ export type PaypalBillingAgreement = Node &
5730
6236
  subscriptionContracts: SubscriptionContractConnection;
5731
6237
  };
5732
6238
 
6239
+ /** A payment method using a PayPal billing agreement. */
6240
+ export type PaypalBillingAgreementDraftOrdersArgs = {
6241
+ after?: InputMaybe<Scalars['String']['input']>;
6242
+ before?: InputMaybe<Scalars['String']['input']>;
6243
+ first?: InputMaybe<Scalars['Int']['input']>;
6244
+ last?: InputMaybe<Scalars['Int']['input']>;
6245
+ reverse?: InputMaybe<Scalars['Boolean']['input']>;
6246
+ };
6247
+
6248
+ /** A payment method using a PayPal billing agreement. */
6249
+ export type PaypalBillingAgreementOrdersArgs = {
6250
+ after?: InputMaybe<Scalars['String']['input']>;
6251
+ before?: InputMaybe<Scalars['String']['input']>;
6252
+ first?: InputMaybe<Scalars['Int']['input']>;
6253
+ last?: InputMaybe<Scalars['Int']['input']>;
6254
+ reverse?: InputMaybe<Scalars['Boolean']['input']>;
6255
+ };
6256
+
5733
6257
  /** A payment method using a PayPal billing agreement. */
5734
6258
  export type PaypalBillingAgreementPendingOrdersArgs = {
5735
6259
  after?: InputMaybe<Scalars['String']['input']>;
@@ -6019,6 +6543,16 @@ export type RemainingLineItemContainerLineItemEdge = {
6019
6543
  node: RemainingLineItemContainerLineItem;
6020
6544
  };
6021
6545
 
6546
+ /** The input fields for a remote-token instrument. */
6547
+ export type RemoteTokenPaymentInstrumentInput = {
6548
+ /** The billing address associated with the payment instrument. */
6549
+ billingAddress?: InputMaybe<CustomerAddressInput>;
6550
+ /** Credentials for the remote token instrument. Multiple entries may be required for some instrument types. */
6551
+ credentials: Array<PaymentCredentialRemoteTokenInput>;
6552
+ /** The owner ID to associate with this instrument. */
6553
+ ownerId: Scalars['ID']['input'];
6554
+ };
6555
+
6022
6556
  /** The input fields for a line item requested for return. */
6023
6557
  export type RequestedLineItemInput = {
6024
6558
  /**
@@ -6031,8 +6565,8 @@ export type RequestedLineItemInput = {
6031
6565
  lineItemId: Scalars['ID']['input'];
6032
6566
  /** The quantity of the line item that the customer wants to return. */
6033
6567
  quantity: Scalars['Int']['input'];
6034
- /** The reason for returning the item. */
6035
- returnReason: ReturnReason;
6568
+ /** The ID of a [`ReturnReasonDefinition`](https://shopify.dev/docs/api/customer/latest/objects/ReturnReasonDefinition). Use [`LineItem.suggestedReturnReasonDefinitions`](https://shopify.dev/docs/api/customer/latest/objects/LineItem#field-LineItem.fields.suggestedReturnReasonDefinitions) to get reasons tailored to the product's category. */
6569
+ returnReasonDefinitionId?: InputMaybe<Scalars['ID']['input']>;
6036
6570
  };
6037
6571
 
6038
6572
  /** Return type for `resendGiftCard` mutation. */
@@ -6266,8 +6800,12 @@ export type ReturnFinancialSummary = {
6266
6800
  __typename?: 'ReturnFinancialSummary';
6267
6801
  /** The subtotal of all return line items restocking fees. */
6268
6802
  restockingFeeSubtotalSet: MoneyBag;
6803
+ /** The sum of all order level discounts that are target_all?. */
6804
+ returnOrderLevelDiscountSubtotalSet: MoneyBag;
6269
6805
  /** The subtotal of all return line items shipping fees. */
6270
6806
  returnShippingFeeSubtotalSet: MoneyBag;
6807
+ /** The subtotal of all return line items excluding target_all discounts. */
6808
+ returnSubtotalBeforeTargetAllDiscountsSet: MoneyBag;
6271
6809
  /** The subtotal of all return line items. */
6272
6810
  returnSubtotalSet: MoneyBag;
6273
6811
  /** The subtotal of all return line items with order level discounts applied. */
@@ -6290,6 +6828,8 @@ export type ReturnLineItem = Node &
6290
6828
  quantity: Scalars['Int']['output'];
6291
6829
  /** The reason the line item quantity was returned. */
6292
6830
  returnReason: ReturnReason;
6831
+ /** The standardized reason for why the item is being returned. */
6832
+ returnReasonDefinition?: Maybe<ReturnReasonDefinition>;
6293
6833
  };
6294
6834
 
6295
6835
  /** A line item that has been returned. */
@@ -6300,8 +6840,13 @@ export type ReturnLineItemType = {
6300
6840
  lineItem: LineItem;
6301
6841
  /** The quantity of the line item that's been returned. */
6302
6842
  quantity: Scalars['Int']['output'];
6303
- /** The reason for returning the line item. */
6843
+ /**
6844
+ * The reason for returning the line item.
6845
+ * @deprecated Use `returnReasonDefinition` instead. This field will be removed in the future.
6846
+ */
6304
6847
  returnReason: ReturnReason;
6848
+ /** The standardized reason for why the item is being returned. */
6849
+ returnReasonDefinition?: Maybe<ReturnReasonDefinition>;
6305
6850
  };
6306
6851
 
6307
6852
  /** An auto-generated type for paginating through multiple ReturnLineItemTypes. */
@@ -6324,7 +6869,13 @@ export type ReturnLineItemTypeEdge = {
6324
6869
  node: ReturnLineItem | UnverifiedReturnLineItem;
6325
6870
  };
6326
6871
 
6327
- /** The reason for returning the item. */
6872
+ /**
6873
+ * The reason for returning the item.
6874
+ *
6875
+ * > **Deprecated**: This enum is deprecated in favor of `ReturnReasonDefinition`.
6876
+ * > Use `returnReasonDefinitionId` in input objects and `returnReasonDefinition` in return line items instead.
6877
+ * > This enum will be removed in a future API version.
6878
+ */
6328
6879
  export type ReturnReason =
6329
6880
  /** The color of the item didn't meet expectations. */
6330
6881
  | 'COLOR'
@@ -6347,6 +6898,61 @@ export type ReturnReason =
6347
6898
  /** The customer received the wrong item. */
6348
6899
  | 'WRONG_ITEM';
6349
6900
 
6901
+ /**
6902
+ * A standardized reason for returning an item.
6903
+ *
6904
+ * - Shopify offers an expanded library of return reasons available to all merchants
6905
+ * - For each product, Shopify suggests a curated subset of reasons based on the product's category.
6906
+ */
6907
+ export type ReturnReasonDefinition = Node & {
6908
+ __typename?: 'ReturnReasonDefinition';
6909
+ /**
6910
+ * Whether the return reason has been removed from taxonomy.
6911
+ *
6912
+ * Deleted reasons should not be presented to customers when creating new returns, but may still
6913
+ * appear on existing returns that were created before the reason was deleted. This field enables
6914
+ * graceful deprecation of return reasons without breaking historical data.
6915
+ */
6916
+ deleted: Scalars['Boolean']['output'];
6917
+ /**
6918
+ * A unique, human-readable, stable identifier for the return reason.
6919
+ *
6920
+ * Example values include "arrived-late", "comfort", "too-tight", "color-too-bright", and "quality".
6921
+ * The handle remains consistent across API versions and localizations, making it suitable for programmatic use.
6922
+ */
6923
+ handle: Scalars['String']['output'];
6924
+ /** A globally-unique ID. */
6925
+ id: Scalars['ID']['output'];
6926
+ /**
6927
+ * The localized, user-facing name of the return reason.
6928
+ *
6929
+ * This field returns the reason name in the requested locale, automatically falling back to
6930
+ * English if no translation is available. Use this field when displaying return reasons to
6931
+ * customers.
6932
+ */
6933
+ name: Scalars['String']['output'];
6934
+ };
6935
+
6936
+ /** An auto-generated type for paginating through multiple ReturnReasonDefinitions. */
6937
+ export type ReturnReasonDefinitionConnection = {
6938
+ __typename?: 'ReturnReasonDefinitionConnection';
6939
+ /** The connection between the node and its parent. Each edge contains a minimum of the edge's cursor and the node. */
6940
+ edges: Array<ReturnReasonDefinitionEdge>;
6941
+ /** A list of nodes that are contained in ReturnReasonDefinitionEdge. You can fetch data about an individual node, or you can follow the edges to fetch data about a collection of related nodes. At each node, you specify the fields that you want to retrieve. */
6942
+ nodes: Array<ReturnReasonDefinition>;
6943
+ /** An object that’s used to retrieve [cursor information](https://shopify.dev/api/usage/pagination-graphql) about the current page. */
6944
+ pageInfo: PageInfo;
6945
+ };
6946
+
6947
+ /** An auto-generated type which holds one ReturnReasonDefinition and a cursor during pagination. */
6948
+ export type ReturnReasonDefinitionEdge = {
6949
+ __typename?: 'ReturnReasonDefinitionEdge';
6950
+ /** The position of each node in an array, used in [pagination](https://shopify.dev/api/usage/pagination-graphql). */
6951
+ cursor: Scalars['String']['output'];
6952
+ /** The item at the end of ReturnReasonDefinitionEdge. */
6953
+ node: ReturnReasonDefinition;
6954
+ };
6955
+
6350
6956
  /** The restocking fee incurred during the return process. */
6351
6957
  export type ReturnRestockingFee = ReturnFee & {
6352
6958
  __typename?: 'ReturnRestockingFee';
@@ -7222,6 +7828,8 @@ export type SubscriptionBillingPolicy = {
7222
7828
  export type SubscriptionContract = Node &
7223
7829
  SubscriptionContractBase & {
7224
7830
  __typename?: 'SubscriptionContract';
7831
+ /** The subscription app that the subscription contract is registered to. */
7832
+ app?: Maybe<App>;
7225
7833
  /** Whether the subscription contract is eligible for customer actions. */
7226
7834
  appEligibleForCustomerActions: Scalars['Boolean']['output'];
7227
7835
  /** The billing policy associated with the subscription contract. */
@@ -7261,7 +7869,9 @@ export type SubscriptionContract = Node &
7261
7869
  /** The order from which the contract originated. */
7262
7870
  originOrder?: Maybe<Order>;
7263
7871
  /** The payment instrument being charged for this subscription contract. */
7264
- paymentInstrument?: Maybe<CustomerCreditCard | PaypalBillingAgreement>;
7872
+ paymentInstrument?: Maybe<
7873
+ BankPaymentInstrument | CustomerCreditCard | PaypalBillingAgreement
7874
+ >;
7265
7875
  /** An estimate of the breakdown of the amounts that will be charged in the next billing attempt. */
7266
7876
  priceBreakdownEstimate?: Maybe<SubscriptionPriceBreakdown>;
7267
7877
  /** The revision ID of the contract. */
@@ -7633,8 +8243,6 @@ export type SubscriptionDeliveryMethodShipping = {
7633
8243
 
7634
8244
  /** The input fields for a shipping delivery method. */
7635
8245
  export type SubscriptionDeliveryMethodShippingInput = {
7636
- /** The address to ship to. */
7637
- address?: InputMaybe<CustomerMailingAddressInput>;
7638
8246
  /** The address to ship to. */
7639
8247
  shippingAddress?: InputMaybe<CustomerAddressInput>;
7640
8248
  };
@@ -8976,8 +9584,13 @@ export type UnverifiedReturnLineItem = Node &
8976
9584
  lineItem: LineItem;
8977
9585
  /** The quantity of the line item that's been returned. */
8978
9586
  quantity: Scalars['Int']['output'];
8979
- /** The reason for returning the line item. */
9587
+ /**
9588
+ * The reason for returning the line item.
9589
+ * @deprecated Use `returnReasonDefinition` instead. This field will be removed in the future.
9590
+ */
8980
9591
  returnReason: ReturnReason;
9592
+ /** The standardized reason for why the item is being returned. */
9593
+ returnReasonDefinition?: Maybe<ReturnReasonDefinition>;
8981
9594
  };
8982
9595
 
8983
9596
  /** The error codes for failed business contact mutations. */
@@ -9259,6 +9872,8 @@ export type UserErrorsPaymentInstrumentUserErrorsCode =
9259
9872
  | 'NAME_INVALID'
9260
9873
  /** The card's number is invalid. */
9261
9874
  | 'NUMBER_INVALID'
9875
+ /** Owner ID is invalid. */
9876
+ | 'OWNER_ID_INVALID'
9262
9877
  /** Payment instrument ID does not exist. */
9263
9878
  | 'PAYMENT_INSTRUMENT_ID_DOES_NOT_EXIST'
9264
9879
  /** This payment instrument is already on file. */
@@ -9362,10 +9977,44 @@ export type UserErrorsStripeFinancialConnectionsSessionUserErrorsCode =
9362
9977
  /** Stripe Financial Connections session could not be initiated. */
9363
9978
  'STRIPE_FINANCIAL_CONNECTIONS_SESSION_ERROR';
9364
9979
 
9980
+ /** Represents a Shopify hosted video. */
9981
+ export type Video = Media & {
9982
+ __typename?: 'Video';
9983
+ /** A word or phrase to share the nature or contents of a media. */
9984
+ alt?: Maybe<Scalars['String']['output']>;
9985
+ /** A globally-unique ID. */
9986
+ id: Scalars['ID']['output'];
9987
+ /** The media content type. */
9988
+ mediaContentType: MediaContentType;
9989
+ /** The preview image for the media. */
9990
+ previewImage?: Maybe<Image>;
9991
+ /** The sources for a video. */
9992
+ sources: Array<VideoSource>;
9993
+ };
9994
+
9995
+ /** Represents a source for a Shopify hosted video. */
9996
+ export type VideoSource = {
9997
+ __typename?: 'VideoSource';
9998
+ /** The format of the video source. */
9999
+ format: Scalars['String']['output'];
10000
+ /** The height of the video. */
10001
+ height: Scalars['Int']['output'];
10002
+ /** The video MIME type. */
10003
+ mimeType: Scalars['String']['output'];
10004
+ /** The URL of the video. */
10005
+ url: Scalars['String']['output'];
10006
+ /** The width of the video. */
10007
+ width: Scalars['Int']['output'];
10008
+ };
10009
+
9365
10010
  /** The configuration used for Payment Wallets. */
9366
10011
  export type WalletPaymentConfig = ApplePayWalletConfig | GooglePayWalletConfig;
9367
10012
 
9368
- /** A weight, which includes a numeric value and a unit of measurement. */
10013
+ /**
10014
+ * A weight measurement with its numeric value and unit. Used throughout the API, for example in shipping calculations, delivery conditions, order line items, and inventory measurements.
10015
+ *
10016
+ * The weight combines a decimal value with a standard unit of measurement to ensure consistent weight handling across different regional systems.
10017
+ */
9369
10018
  export type Weight = {
9370
10019
  __typename?: 'Weight';
9371
10020
  /** The unit of measurement for `value`. */