> Note:
> We're no longer publishing API release notes. Instead, you can find the latest updates on Shopify APIs in our [developer changelog](https://shopify.dev/changelog). You can filter updates by area. For example, you can filter API updates by the API name and version, such as GraphQL Admin API changes in version 2025-04.


<table>
  <caption>The API version release date and the date that the version is no longer supported</caption>
  <thead>
    <tr>
      <th scope="col">Release date</th>
      <th scope="col">Date version is no longer supported</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td scope="row">October 1, 2024</td>
      <td scope="row">October 1, 2025</td>
   </tr>
  </tbody>
</table>

## Highlights

Here are some highlights of version 2024-10 of Shopify's APIs:

- **[Abandoned checkouts](/docs/api/admin-graphql/latest/objects/AbandonedCheckout)**: We've added new types that are associated with the `AbandonedCheckout` object. This object replaces the [`Abandoned checkouts`](/docs/api/admin-rest/latest/resources/abandoned-checkouts) resource in the REST Admin API.
- **[`app_scopes/update` webhook](/docs/api/webhooks/latest?reference=toml#list-of-topics-app/scopes_update)**: Apps can now subscribe to the `app/scopes_update` webhook topic. This webhook is triggered when the granted access scopes for the installed app on a shop have been modified.
- **[Cart warnings](/docs/storefronts/headless/building-with-the-storefront-api/cart/cart-warnings)**: Storefront API cart mutations now include warnings to show automatic changes that occurred while executing a mutation.
- **[Fulfillment constraints](/docs/apps/build/orders-fulfillment/order-routing-apps/build-fulfillment-constraints-function)**: You can now associate a fulfillment constraint function to one or multiple delivery methods, such as `SHIPPING` and `PICKUP`. The function will only run under the context of the specified delivery methods.
- **[Gift cards](/docs/api/admin-graphql/2024-10/queries/giftCard)**: You can now use new gift cards and gift card transaction types in all apps and shops, with no additional approval scopes or flags required.
- **[Metafield capabilities](/docs/apps/build/custom-data/metafields/use-metafield-capabilities)**: Create an automated collection based on metafield values for a given definition. Then, filter products based on metafield values for that definition.
- **[`Products` query attributes](/docs/api/admin-graphql/latest/queries/products#argument-query)**: We've added new attributes to the `products` query, which include `publication_ids`, `variant_id`, and `variant_title`.
- **[`StaffMember` improvements](/docs/api/admin-graphql/latest/objects/StaffMember)**: We've made several improvements to the `StaffMember` object. These improvements enable apps using the REST Admin API's [`User`](/docs/api/admin-rest/latest/resources/user) resource to migrate to using the GraphQL Admin API's `StaffMember` object.
- **[Subscription contracts](/docs/api/customer/2024-10/objects/SubscriptionContract)**: New types for subscription contracts are now available in the Customer Account API.


## Breaking changes

These changes require special attention. If your app uses these API resources, and you don’t adjust your usage of the resources according to the following instructions, then your app might break when you update to this API version.


### Cart warnings

Inventory errors about stock levels are no longer included in the `userErrors` of cart mutations in the Storefront API. Inventory errors are now available in the `warnings` return field, and contain the following explicit values:

- `MERCHANDISE_NOT_ENOUGH_STOCK`
- `MERCHANDISE_OUT_OF_STOCK`

Warnings are available on all cart mutations to show automatic changes that occurred while executing the mutation. You can use warnings to manage items in your cart or display information to a buyer. For example, you can remove out-of-stock lines from a cart by using the [`target`](/docs/api/storefront/2024-10/mutations/cartLinesRemove#field-cartlinesremovepayload-warnings) field included in the `warning` as the input to the `cartLinesRemove` mutation.

[Learn more about cart warnings](/docs/storefronts/headless/building-with-the-storefront-api/cart/cart-warnings).

### Changed enum value for `OrderDisplayFulfillmentStatus`

The [`OrderDisplayFulfillmentStatus`](/docs/api/admin-graphql/2024-10/enums/OrderDisplayFulfillmentStatus) enum now returns a `REQUEST_DECLINED` value for an order that has had its fulfillment request rejected by a third-party fulfillment service. In API versions prior to 2024-10, orders in the request rejected state return an `UNFULFILLED` status.

### Event query enhancements

We've made the [`CommentEvent.subject`](/docs/api/admin-graphql/2024-10/objects/CommentEvent#field-subject) field nullable. `null` is returned when the subject's underlying data has been deleted. You must update your code to handle cases where `subject` might return `null`. For example, revise existing logic that assumes the field will always contain data, and implement checks or fallback mechanisms to manage situations where the `subject` data has been deleted.

We've also deprecated the [`deletionEvents`](/docs/api/admin-graphql/2024-10/queries/deletionEvents) query in favour of events that indicate deletion. Update your code to remove any reliance on `deletionEvents`, and use the new event structure. To support querying events, we've added the following types:

<table>
  <caption>Types for events</caption>
  <tr>
    <th scope="col">Name</th>
    <th scope="col">Type</th>
    <th scope="col">Change</th>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/interfaces/Event#field-action">action</a></code></td>
    <td>field</td>
    <td>Added to <code>Event</code> interface</td>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/queries/event">event</a></code></td>
    <td>Query</td>
    <td>Added</td>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/queries/events">events</a></code></td>
    <td>Query</td>
    <td>Added</td>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/queries/eventsCount">eventsCount</a></code></td>
    <td>Query</td>
    <td>Added</td>
  </tr>
  <tr>
    <td scope="row"><code>events</code></td>
    <td>Connection</td>
    <td>Added to <code><a href="/docs/api/admin-graphql/2024-10/objects/Article#connection-events">Article</a></code>, <code><a href="/docs/api/admin-graphql/2024-10/objects/Blog#connection-events">Blog</a></code>, <code><a href="/docs/api/admin-graphql/2024-10/objects/Comment#connection-events">Comment</a></code>, <code><a href="/docs/api/admin-graphql/2024-10/objects/Page#connection-events">Page</a></code>, <code><a href="/docs/api/admin-graphql/2024-10/objects/Product#connection-events">Product</a></code>, and <code><a href="/docs/api/admin-graphql/2024-10/objects/ProductVariant#connection-events">ProductVariant</a></code> objects</td>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/enums/EventSubjectType">EventSubjectType</a></code></td>
    <td>Enum</td>
    <td>Added</td>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/objects/BasicEvent#field-arguments">arguments</a></code></td>
    <td>field</td>
    <td>Added to <code>BasicEvent</code> object</td>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/objects/BasicEvent#field-subject">subject</a></code></td>
    <td>field</td>
    <td>Added to <code>BasicEvent</code> object</td>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/objects/BasicEvent#field-subjectid">subjectID</a></code></td>
    <td>field</td>
    <td>Added to <code>BasicEvent</code> object</td>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/objects/BasicEvent#field-subjecttype">subjectType</a></code></td>
    <td>field</td>
    <td>Added to <code>BasicEvent</code> object</td>
  </tr>
</table>

### Fulfillment by Amazon

As of API version 2024-10, the [`shippingMethods`](/docs/api/admin-graphql/2024-10/objects/FulfillmentService#field-shippingmethods) field on the `FulfillmentService` object has been deprecated. The [`shippingMethods`](/docs/api/admin-graphql/2024-10/mutations/fulfillmentOrderSubmitFulfillmentRequest#argument-shippingmethod) argument on the `fulfillmentOrderSubmitFulfillmentRequest` mutation has also been deprecated.

The shipping method associated with the fulfillment service provider applied only to the **Fulfill By Amazon** fulfillment service. The Fulfillment by Amazon feature isn't supported as of March 30, 2023. To continue using Amazon fulfillment, merchants need to set up a [multi-channel fulfillment solution](https://help.shopify.com/manual/shipping/fulfillment-services/amazon#activate-fulfillment-by-amazon), as recommended by Amazon.

### Fulfillment holds

As of API version 2024-10, apps can't [release fulfillment holds](/docs/api/admin-graphql/2024-10/mutations/fulfillmentOrderReleaseHold) unless they have write access to them. You need to request the following access scopes for your app:

- `write_merchant_managed_fulfillment_orders`: Allows your app to release holds on fulfillment orders assigned to a merchant-managed location

- `write_third_party_fulfillment_orders`: Allows your app to release holds on fulfillment orders assigned to a third-party location

- `write_marketplace_fulfillment_orders`: Allows your app to release holds on fulfillment orders which belong to one of your marketplace's orders

If your app doesn't have sufficient access scopes to release a hold, then a user error with the [`INVALID_ACCESS`](/docs/api/admin-graphql/2024-10/enums/FulfillmentOrderReleaseHoldUserErrorCode#value-fulfillmentordernotfound) code is returned and the hold isn't released.

We've deprecated the [`fulfillmentOrdersReleaseHolds`](/docs/api/admin-graphql/2024-10/mutations/fulfillmentOrdersReleaseHolds) mutation. Use the [`fulfillmentOrderReleaseHold`](/docs/api/admin-graphql/latest/mutations/fulfillmentOrderReleaseHold) mutation instead.

We've also deprecated the `GREATER_THAN_ZERO` and `INVALID_LINE_ITEM_QUANTITY` [error codes](/docs/api/admin-graphql/2024-10/enums/FulfillmentOrderReleaseHoldUserErrorCode) on the `fulfillmentOrderReleaseHold` mutation.

We've also added the [`heldByRequestingApp`](/docs/api/admin-graphql/2024-10/objects/FulfillmentHold#field-heldbyrequestingapp) field to the `FulfillmentHold` object. If you have the `read_apps` scope enabled on your app, then you'll only be able to read the [`heldBy`](/docs/api/admin-graphql/2024-10/objects/FulfillmentHold#field-heldby) field on the `FulfillmentHold` object. Use the `heldByRequestingApp` field instead if you need to confirm whether your app created the fulfillment hold.

Additionally, the `fulfillmentOrderHold` mutation now returns the fulfillment hold that was created in a new [`fulfillmentHold` return field](/docs/api/admin-graphql/2024-10/mutations/fulfillmentOrderHold#field-fulfillmentorderholdpayload-fulfillmenthold).

### Gift cards

We've improved the [`GiftCard`](/docs/api/admin-graphql/2024-10/objects/GiftCard) types and have introduced several new types for working with gift cards. The gift card types are now open to all apps and shops, with no additional approval scopes or flags required.

**Developer action required**

- The [`giftCardDisable`](/docs/api/admin-graphql/2024-07/mutations/giftCardDisable) mutation has been removed. Use [`giftCardDeactivate`](/docs/api/admin-graphql/2024-10/mutations/giftCardDeactivate) instead.
- The [`disabledAt`](/docs/api/admin-graphql/2024-07/objects/GiftCard#field-disabledat) field on the `GiftCard` object has been removed. Use the [`deactivatedAt`](/docs/api/admin-graphql/2024-10/objects/GiftCard#field-deactivatedat) field instead.

The following types for gift cards are now available:

<table>
  <caption>Available types for gift cards</caption>
<thead>
  <tr>
    <th scope="col">Name</th>
    <th scope="col">Type</th>
    <th scope="col">Change</th>
  </tr>
  </thead>
       <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/enums/GiftCardErrorCode#value-customernotfound">CUSTOMER_NOT_FOUND</a></code></td>
    <td>Value</td>
    <td>Added to <code>GiftCardErrorCode</code> enum</td>
  </tr>
     <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/objects/GiftCard#field-deactivatedat">deactivatedAt</a></code></td>
    <td>Field</td>
    <td>Added to <code>GiftCard</code> object</td>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/input-objects/GiftCardCreateInput">GiftCardCreateInput</a></code></td>
    <td>Input object</td>
    <td>Added</td>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/mutations/GiftCardCredit">giftCardCredit</a></code></td>
    <td>Mutation</td>
    <td>Added</td>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/input-objects/GiftCardCreditInput">GiftCardCreditInput</a></code></td>
    <td>Input object</td>
    <td>Added</td>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/objects/GiftCardCreditTransaction">GiftCardCreditTransaction</a></code></td>
    <td>Object</td>
    <td>Added</td>
  </tr>
    <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/mutations/giftCardDebit">giftCardDebit</a></code></td>
    <td>Mutation</td>
    <td>Added</td>
    </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/input-objects/GiftCardDebitInput">GiftCardDebitInput</a></code></td>
    <td>Input object</td>
    <td>Added</td>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/objects/GiftCardDebitTransaction">GiftCardDebitTransaction</a></code></td>
    <td>Object</td>
    <td>Added</td>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/mutations/giftCardDeactivate">giftCardDeactivate</a></code></td>
    <td>Mutation</td>
    <td>Added</td>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/objects/GiftCardRecipient">GiftCardRecipient</a></code></td>
    <td>Object</td>
    <td>Added</td>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/input-objects/GiftCardRecipientInput">GiftCardRecipientInput</a></code></td>
    <td>Input object</td>
    <td>Added</td>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/mutations/giftCardSendNotificationToCustomer">giftCardSendNotificationToCustomer</a></code></td>
    <td>Mutation</td>
    <td>Added</td>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/mutations/giftCardSendNotificationToRecipient">giftCardSendNotificationToRecipient</a></code></td>
    <td>Mutation</td>
    <td>Added</td>
  </tr>
<tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/interfaces/GiftCardTransaction">GiftCardTransaction</a></code></td>
    <td>Interface</td>
    <td>Added</td>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/objects/GiftCardTransactionUserError">GiftCardTransactionUserError</a></code></td>
    <td>Object</td>
    <td>Added</td>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/objects/GiftCard#field-recipientattributes">recipientAttributes</a></code></td>
    <td>Field</td>
    <td>Added to <code>GiftCard</code> object</td>
  </tr>
   <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/input-objects/GiftCardCreateInput#field-recipientattributes">recipientAttributes</a></code></td>
    <td>Field</td>
    <td>Added to <code>GiftCardCreateInput</code> input object</td>
  </tr>
    <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/input-objects/GiftCardUpdateInput#field-recipientattributes">recipientAttributes</code></a></td>
    <td>Field</td>
    <td>Added to <code>GiftCardUpdateInput</code> input object</td>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/enums/GiftCardErrorCode#value-recipientnotfound">RECIPIENT_NOT_FOUND</code></a></td>
    <td>Value</td>
    <td>Added to <code>GiftCardErrorCode</code> enum</td>
  </tr>
    <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/objects/GiftCard#connection-transactions">transactions</code></a></td>
    <td>Connection</td>
    <td>Added to <code>GiftCard</code> object</td>
  </tr>
     <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/objects/GiftCard#field-updatedat">updatedAt</code></a></td>
    <td>Field</td>
       <td>Added to <code>GiftCard</code> object</td>
  </tr>
</table>

### Improvements to the `StaffMember` type

`Shop.staffMembers` has been deprecated. Use the [`staffMembers`](/docs/api/admin-graphql/2024-10/queries/staffMembers) query instead.

### Location error codes

We've removed the `HAS_OPEN_TRANSFERS_ERROR` and `FAILED_TO_RELOCATE_OPEN_TRANSFERS` error codes from the [`LocationDeactivateUserErrorCode`](/docs/api/admin-graphql/2024-10/enums/LocationDeactivateUserErrorCode) enum. If you're explicitly checking for either of these error codes in your app, then you should remove references to them.

### Location resource

If your app retrieves a [`Location`](/docs/api/admin-rest/2024-10/resources/location) resource using the REST Admin API, then you need to request the `read_locations` access scope.

If your app reads a [`Location`](/docs/api/admin-graphql/2024-10/objects/Location) resource without the [`read_locations` access scope](/docs/api/usage/access-scopes), then a [403 Forbidden error](/docs/api/admin-rest#status_and_error_codes) is returned.

### Metafield definitions

We've deprecated the `definitions.visibleToStorefrontApi` argument on the [`standardMetafieldDefinitionEnable`](/docs/api/admin-graphql/unstable/mutations/standardMetafieldDefinitionsEnable#argument-definitions) and [`standardMetafieldDefinitionsEnable`](/docs/api/admin-graphql/unstable/mutations/standardMetafieldDefinitionsEnable#argument-definitions) mutations. Use the `definitions.access` argument on these mutations instead.

> Note:
> The `definitions.access` argument allows you to specify more granular [permissions](/docs/apps/build/custom-data/permissions) when enabling a [standard metafield definition template](/docs/api/admin-graphql/2024-10/objects/StandardMetafieldDefinitionTemplate).

### Online store

We've deprecated the [`OnlineStorePage`](/docs/api/admin-graphql/2024-10/objects/OnlineStorePage), [`OnlineStoreArticle`](/docs/api/admin-graphql/2024-10/objects/OnlineStoreArticle), and [`OnlineStoreBlog`](/docs/api/admin-graphql/2024-10/objects/OnlineStoreBlog) objects. Use the [`Page`](/docs/api/admin-graphql/2024-10/objects/Page), [`Article`](/docs/api/admin-graphql/2024-10/objects/Article), and [`Blog`](/docs/api/admin-graphql/2024-10/objects/Blog) objects instead.

You can now read and modify pages, articles, blogs, and comments. The following types are now available:

<table>
  <caption>Types for the online store</caption>
  <tr>
    <th scope="col">Name</th>
    <th scope="col">Type</th>
    <th scope="col">Change</th>
  </tr>
 <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/input-objects/pageCreateInput">pageCreateInput</a></code></td>
    <td>Input object</td>
    <td>Added</td>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/input-objects/pageUpdateInput">pageUpdateInput</a></code></td>
    <td>Input object</td>
    <td>Added</td>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/mutations/pageCreate">pageCreate</a></code></td>
    <td>Mutation</td>
    <td>Added</td>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/mutations/pageUpdate">pageUpdate</a></code></td>
    <td>Mutation</td>
    <td>Added</td>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/mutations/pageDelete">pageDelete</a></code></td>
    <td>Mutation</td>
    <td>Added</td>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/queries/page">page</a></code></td>
    <td>Query</td>
    <td>Added</td>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/queries/pages">pages</a></code></td>
    <td>Query</td>
    <td>Added</td>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/queries/pagescount">pagesCount</a></code></td>
    <td>Query</td>
    <td>Added</td>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/enums/TranslatableResourceType#value-page">PAGE</a></code></td>
    <td>Value</td>
    <td>Added to <code>TranslatableResourceType</code> enum</td>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/objects/ArticleAuthor">ArticleAuthor</a></code></td>
    <td>Object</td>
    <td>Added</td>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/input-objects/ArticleBlogInput">ArticleBlogInput</a></code></td>
    <td>Input object</td>
    <td>Added</td>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/input-objects/ArticleCreateInput">ArticleCreateInput</a></code></td>
    <td>Input object</td>
    <td>Added</td>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/input-objects/ArticleImageInput">ArticleImageInput</a></code></td>
    <td>Input object</td>
    <td>Added</td>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/input-objects/ArticleUpdateInput">ArticleUpdateInput</a></code></td>
    <td>Input object</td>
    <td>Added</td>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/mutations/articleCreate">articleCreate</a></code></td>
    <td>Mutation</td>
    <td>Added</td>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/mutations/articleUpdate">articleUpdate</a></code></td>
    <td>Mutation</td>
    <td>Added</td>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/mutations/articleDelete">articleDelete</a></code></td>
    <td>Mutation</td>
    <td>Added</td>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/queries/article">article</a></code></td>
    <td>Query</td>
    <td>Added</td>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/queries/articles">articles</a></code></td>
    <td>Query</td>
    <td>Added</td>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/enums/TranslatableResourceType#value-article">ARTICLE</a></code></td>
    <td>Value</td>
    <td>Added to <code>TranslatableResourceType</code> enum</td>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/input-objects/AuthorInput">AuthorInput</a></code></td>
    <td>Input object</td>
    <td>Added</td>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/input-objects/BlogCreateInput">BlogCreateInput</a></code></td>
    <td>Input object</td>
    <td>Added</td>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/input-objects/BlogUpdateInput">BlogUpdateInput</a></code></td>
    <td>Input object</td>
    <td>Added</td>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/objects/BlogFeed">BlogFeed</a></code></td>
    <td>Object</td>
    <td>Added</td>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/mutations/blogCreate">blogCreate</a></code></td>
    <td>Mutation</td>
    <td>Added</td>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/mutations/blogUpdate">blogUpdate</a></code></td>
    <td>Mutation</td>
    <td>Added</td>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/mutations/blogDelete">blogDelete</a></code></td>
    <td>Mutation</td>
    <td>Added</td>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/queries/blog">blog</a></code></td>
    <td>Query</td>
    <td>Added</td>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/queries/blogs">blogs</a></code></td>
    <td>Query</td>
    <td>Added</td>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/queries/blogscount">blogsCount</a></code></td>
    <td>Query</td>
    <td>Added</td>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/enums/TranslatableResourceType#value-blog">BLOG</a></code></td>
    <td>Value</td>
    <td>Added to <code>TranslatableResourceType</code> enum</td>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/objects/Comment">Comment</a></code></td>
    <td>Object</td>
    <td>Added</td>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/objects/CommentAuthor">CommentAuthor</a></code></td>
    <td>Object</td>
    <td>Added</td>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/mutations/commentApprove">commentApprove</a></code></td>
    <td>Mutation</td>
    <td>Added</td>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/mutations/commentSpam">commentSpam</a></code></td>
    <td>Mutation</td>
    <td>Added</td>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/mutations/commentNotSpam">commentNotSpam</a></code></td>
    <td>Mutation</td>
    <td>Added</td>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/mutations/commentDelete">commentDelete</a></code></td>
    <td>Mutation</td>
    <td>Added</td>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/queries/comment">comment</a></code></td>
    <td>Query</td>
    <td>Added</td>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/queries/comments">comments</a></code></td>
    <td>Query</td>
    <td>Added</td>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/enums/CommentStatus">CommentStatus</a></code></td>
    <td>Enum</td>
    <td>Added</td>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/enums/CommentPolicy">CommentPolicy</a></code></td>
    <td>Enum</td>
    <td>Added</td>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/enums/TranslatableResourceType#value-menu">MENU</a></code></td>
    <td>Value</td>
    <td>Added to <code>TranslatableResourceType</code> enum</td>
  </tr>
</table>


### Order line items

We've removed the `lineItemsMutable` connection on the `Order` object. Use the [`lineItems`](/docs/api/admin-graphql/2024-10/objects/Order#connection-lineitems) connection on the `Order` object instead.

### Order management apps

The `write_third_party_fulfillment_orders` access scope no longer allows [order management apps](/docs/apps/build/orders-fulfillment/order-management-apps) to fulfill fulfillment orders assigned to locations that are owned by other fulfillment service apps. Order management apps will still be able to access and manage these orders, but fulfillment creation will be prohibited.

The `write_assigned_fulfillment_orders` and `write_merchant_managed_fulfillment_orders` access scopes remain unchanged. Fulfillment service apps can still fulfill orders that are assigned to them, as long as they're granted the `write_assigned_fulfillment_orders` access scope. Fulfillment orders that are assigned to merchant-managed locations are still fulfillable by order management apps, as long as they're granted the `write_merchant_managed_fulfillment_orders` access scope.

Apps can confirm whether fulfillment creation is possible by querying supported actions using the [GraphQL Admin API](/docs/api/admin-graphql/2024-10/objects/FulfillmentOrder#field-supportedactions). If the fulfillment order is assigned to a merchant-managed location or to the fulfillment service performing the query and it's in a fulfillable state, then the `CREATE_FULFILLMENT` action is returned as a possible option.

### Pickup locations

You can now use the [`destination`](/docs/api/admin-graphql/2024-10/objects/FulfillmentOrder#field-destination) field on the `fulfillmentOrder` object to retrieve the pickup location for a fulfillment order.

As of API version 2024-10, the `destination` field returns a [`FulfillmentOrderDestination`](/docs/api/admin-graphql/2024-10/objects/FulfillmentOrderDestination) object instead of `null` for fulfillment orders that don't have an associated shipping address. If the fulfillment order doesn't have a shipping address, then the address-related fields within the `FulfillmentOrderDestination` object are set to `null`.

### PriceRule types removed

As of API version 2024-10, we've removed `PriceRule` types from the GraphQL Admin API. The associated queries and mutations have been deprecated since API version 2023-03. Use the [`discountNode`](/docs/api/admin-graphql/2024-10/queries/discountNode) query instead.

The following types have been removed:

- `PriceRuleUserError` object
- `PriceRuleCustomerSelectionInput` input object
- `PriceRuleDiscountCodeInput` input object
- `PriceRuleEntitlementToPrerequisiteQuantityRatioInput` input object
- `PriceRuleInput` input object
- `PriceRuleItemEntitlementsInput` input object
- `PriceRuleItemPrerequisitesInput` input object
- `PriceRuleMoneyRangeInput` input object
- `PriceRulePrerequisiteToEntitlementQuantityRatioInput` input object
- `PriceRuleQuantityRangeInput` input object
- `PriceRuleShippingEntitlementsInput` input object
- `PriceRuleValidityPeriodInput` input object
- `PriceRuleValueInput` input object
- `priceRuleSavedSearches` query
- `PriceRuleActivate` mutation
- `PriceRuleCreate` mutation
- `PriceRuleDeactivate` mutation
- `PriceRuleDelete` mutation
- `PriceRuleDiscountCodeCreate` mutation
- `PriceRuleDiscountCodeUpdate` mutation
- `PriceRuleUpdate` mutation
- `priceRule` field on the `QueryRoot` object
- `priceRules` connection on the `QueryRoot` object
- `priceRules` connection on the `Shop` object
- `priceRuleSavedSearches` connection on the `Shop` object

### Product duplications

The [`productDuplicateAsyncV2`](/docs/api/admin-graphql/2024-10/mutations/productDuplicateAsyncV2) mutation has been removed. We've added the [`synchronous`](/docs/api/admin-graphql/2024-10/mutations/productDuplicate#argument-synchronous) argument to the `productDuplicate` mutation, allowing you to choose whether the product duplication should be processed synchronously or asynchronously.

- **Asynchronous duplication:** By setting the `synchronous` field to `false` in the `productDuplicate` mutation, the operation operates asynchronously, and returns a [`ProductDuplicateOperation`](/docs/api/admin-graphql/2024-10/objects/ProductDuplicateOperation) object.
- **Operation tracking:** You can track the status of the asynchronous duplication by querying the operation ID through the [`productOperation`](/docs/api/admin-graphql/2024-10/queries/productOperation#argument-id) query.

### Product input

We've removed the `input` argument on the [`productCreate`](/docs/api/admin-graphql/2024-10/mutations/productCreate) and [`productUpdate`](/docs/api/admin-graphql/2024-10/mutations/productUpdate) mutations.

Use the following `product` arguments instead:

- [`ProductCreateInput`](/docs/api/admin-graphql/2024-10/input-objects/ProductCreateInput) on the `productCreate` mutation
- [`ProductUpdateInput`](/docs/api/admin-graphql/2024-10/input-objects/ProductUpdateInput) on the `productUpdate` mutation

### Product media

We've made changes to how you work with product media by replacing the current media ID inputs with file inputs and expanding media capabilities:

- The `mediaIds` field on the [`ProductSetInput`](/docs/api/admin-graphql/2024-10/input-objects/ProductSetInput) input object has been removed. Use the [`files`](/docs/api/admin-graphql/2024-10/input-objects/ProductSetInput#field-files) field instead to associate files to a product.

- The `mediaId` field on the [`ProductVariantSetInput`](/docs/api/admin-graphql/2024-10/input-objects/ProductVariantSetInput) input object has been removed. Use the [`file`](/docs/api/admin-graphql/2024-10/input-objects/ProductVariantSetInput#field-file) field instead to associate a file with the product variant.

- The [`FileSetInput`](/docs/api/admin-graphql/2024-10/input-objects/FileSetInput) input object is now available for working with existing media and creating new files. This input object is a derivative of the [`FileCreateInput`](/docs/api/admin-graphql/2024-10/input-objects/FileCreateInput) input object, with an added `id` field.

### Product mutations

We've removed the following deprecated product mutations from the GraphQL Admin API:

- [`productAppendImages`](/docs/api/admin-graphql/2024-07/mutations/productAppendImages) is removed. Use the [`productCreateMedia`](/docs/api/admin-graphql/2024-10/mutations/productCreateMedia) mutation instead.
- [`productDeleteImages`](/docs/api/admin-graphql/2024-07/mutations/productDeleteImages) is removed. Use the [`productDeleteMedia`](/docs/api/admin-graphql/2024-10/mutations/productDeleteMedia) mutation instead.
- [`productImageUpdate`](/docs/api/admin-graphql/2024-07/mutations/productImageUpdate) is removed. Use the [`productDeleteMedia`](/docs/api/admin-graphql/2024-10/mutations/productDeleteMedia). Use the [`productUpdateMedia`](/docs/api/admin-graphql/2024-10/mutations/productUpdateMedia) mutation instead.
- [`productReorderImages`](/docs/api/admin-graphql/2024-07/mutations/productReorderImages) is removed. Use the [`productReorderMedia`](/docs/api/admin-graphql/2024-10/mutations/productReorderMedia) mutation instead.

### Product variant mutations

We've deprecated the following singular product variant mutations in favor of their equivalent bulk versions:

- [`productVariantCreate`](/docs/api/admin-graphql/2024-07/mutations/productvariantcreate) is deprecated. Use the [`productVariantsBulkCreate`](/docs/api/admin-graphql/2024-10/mutations/productvariantsbulkcreate) mutation instead.

- [`productVariantUpdate`](/docs/api/admin-graphql/2024-07/mutations/productvariantupdate) is deprecated. Use the [`productVariantsBulkUpdate`](/docs/api/admin-graphql/2024-10/mutations/productvariantsbulkupdate) mutation instead.

- [`productVariantDelete`](/docs/api/admin-graphql/2024-07/mutations/productvariantdelete) is deprecated. Use the [`productVariantsBulkDelete`](/docs/api/admin-graphql/2024-10/mutations/productvariantsbulkdelete) mutation instead.

### ProductImage value removed

The `PRODUCTIMAGE` value has been removed from the [`MetafieldOwnerType`](/docs/api/admin-graphql/2024-10/enums/MetafieldOwnerType) enum. Use `MEDIA_IMAGE` instead.

### ProductInput fields removed

We've removed the following deprecated `ProductInput` fields from the GraphQL Admin API:

- `bodyHTML` is removed. Use the [`descriptionHtml`](/docs/api/admin-graphql/2024-10/input-objects/ProductInput#field-descriptionhtml) field instead.
- `privateMetaFields` is removed. Use the [`productOptions`](/docs/api/admin-graphql/2024-10/input-objects/ProductInput#field-productoptions) field instead.
- `standardizedProductType` is removed. Use the [`category`](/docs/api/admin-graphql/2024-10/input-objects/ProductInput#field-category) field instead.
- `productCategory` is removed. Use the [`category`](/docs/api/admin-graphql/2024-10/input-objects/ProductInput#field-category) field instead.
- `customProductType` is removed. Use the [`category`](/docs/api/admin-graphql/2024-10/input-objects/ProductInput#field-category) field instead.

### Removed fields on `ShopFeatures` object

The following deprecated fields on the [`ShopFeatures`](/docs/api/admin-graphql/2024-10/objects/ShopFeatures) object have been removed:

- `avalaraAvatax`
- `branding`
- `captcha`
- `dynamicRemarketing`
- `harmonizedSystemCode`
- `liveView`
- `onboardingVisual`
- `reports`
- `showMetrics`

Instead of the `branding` field, use [`Shop.plan.shopifyPlus`](/docs/api/admin-graphql/2024-10/objects/Shop#field-plan) instead.

### Removed `V2` on Fulfillment mutations

We've deprecated the [`fulfillmentCreateV2`](/docs/api/admin-graphql/2024-10/mutations/fulfillmentCreateV2) and [`fulfillmentTrackingInfoUpdateV2`](/docs/api/admin-graphql/2024-10/mutations/fulfillmentTrackingInfoUpdateV2) mutations. Use the [`fulfillmentCreate`](/docs/api/admin-graphql/2024-10/mutations/fulfillmentCreate) and [`fulfillmentTrackingInfoUpdate`](/docs/api/admin-graphql/2024-10/mutations/fulfillmentTrackingInfoUpdate) mutations instead.

The behavior of the new mutations remains the same as the previous ones. The only change is the removal of `V2` to ensure consistent naming across all mutations.

### Reverse fulfillment orders

The [`reverseDeliveryDispose`](/docs/api/admin-graphql/2024-07/mutations/reverseDeliveryDispose) mutation is deprecated. Use the [`reverseFulfillmentOrderDispose`](/docs/api/admin-graphql/2024-10/mutations/reverseFulfillmentOrderDispose) mutation instead.

The [`fulfillmentLineItem`](/docs/api/admin-graphql/2024-10/objects/ReverseFulfillmentOrderLineItem#field-fulfillmentlineitem) field on the `ReverseFulfillmentOrderLineItem` object is now nullable. A `ReverseFulfillmentOrderLineItem` object won't always be associated with a `FulfillmentLineItem` object. The non-null `fulfillmentLineItem` field on API versions prior to 2024-10 returns an error when the fulfillment line item doesn't exist.

[Learn more about managing reverse fulfillment orders](/docs/apps/build/orders-fulfillment/returns-apps/manage-reverse-fulfillment-orders).

### Setting available inventory quantity

We've deprecated the ability to set the available quantity on the [`inventoryActivate`](/docs/api/admin-graphql/2024-10/mutations/inventoryActivate) mutation for inventory items that are already in an active state. Use the [`inventorySetQuantities`](/docs/api/admin-graphql/2024-10/mutations/inventorySetQuantities) mutation instead.

We've also added the [`INVALID_QUANTITY_TOO_LOW`](/docs/api/admin-graphql/2024-10/enums/InventorySetQuantitiesUserErrorCode#value-invalidquantitytoolow) value to the `InventorySetQuantitiesUserErrorCode` enum. The error code is returned if you run the `inventorySetQuantities` mutation and a quantity is less than negative one billion.

## GraphQL Admin API changes

Version 2024-10 of the GraphQL Admin API introduces the following changes:

<div class="accordion-container">
  <div class="accordion-controls">
    <button class="accordion-control" data-accordion-control-type="expand-all" type="button">Expand all</button>
  </div>
  <div class="accordion-content-container">
    <div class="accordion-item">
  <div class="accordion-link">
    <div class="chevron-up"></div>
    <div class="chevron-down"></div>
    <h3>Abandoned checkouts</h3>
  </div>
  <div class="accordion-content">
    <p>We&#39;ve added new types that are associated with the <a href="/docs/api/admin-graphql/2024-10/objects/AbandonedCheckout"><code class="text-highlight text-highlight--grey">AbandonedCheckout</code></a> object. This object replaces the <a href="/docs/api/admin-rest/2024-10/resources/abandoned-checkouts"><code class="text-highlight text-highlight--grey">Abandoned checkouts</code></a> resource in the REST Admin API.</p>
<p>The following new types are available:</p>
<table>
  <caption>New types related to abandoned checkouts</caption>
  <tr>
    <th scope="col">Name</th>
    <th scope="col">Type</th>
    <th scope="col">Change</th>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/objects/UnitPriceMeasurement">UnitPriceMeasurement</a></code></td>
    <td>Object</td>
    <td>Added</td>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/queries/abandonedcheckouts">abandonedCheckouts</a></code></td>
    <td>Query</td>
    <td>Added</td>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/queries/abandonedcheckoutscount">abandonedCheckoutsCount</a></code></td>
    <td>Query</td>
    <td>Added</td>
  </tr>
 <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/objects/AbandonedCheckout#field-totalweight">totalWeight</a></code></td>
    <td>Field</td>
    <td>Added to <code>AbandonedCheckout</code> object</td>
  </tr>
 <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/objects/AbandonedCheckout#field-referringsite">referringSite</a></code></td>
    <td>Field</td>
    <td>Added to <code>AbandonedCheckout</code> object</td>
  </tr>
 <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/objects/AbandonedCheckout#field-landingsite">landingSite</a></code></td>
    <td>Field</td>
    <td>Added to <code>AbandonedCheckout</code> object</td>
  </tr>
 <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/objects/AbandonedCheckout#field-gateway">gateway</a></code></td>
    <td>Field</td>
    <td>Added to <code>AbandonedCheckout</code> object</td>
  </tr>
 <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/objects/AbandonedCheckout#field-currencycode">currencyCode</a></code></td>
    <td>Field</td>
    <td>Added to <code>AbandonedCheckout</code> object</td>
  </tr>
 <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/objects/AbandonedCheckout#field-presentmentcurrencycode">presentmentCurrencyCode</a></code></td>
    <td>Field</td>
    <td>Added to <code>AbandonedCheckout</code> object</td>
  </tr>
 <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/objects/AbandonedCheckout#field-token">token</a></code></td>
    <td>Field</td>
    <td>Added to <code>AbandonedCheckout</code> object</td>
  </tr>
 <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/objects/AbandonedCheckout#field-carttoken">cartToken</a></code></td>
    <td>Field</td>
    <td>Added to <code>AbandonedCheckout</code> object</td>
  </tr>
 <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/objects/AbandonedCheckout#field-customattributes">customAttributes</a></code></td>
    <td>Field</td>
    <td>Added to <code>AbandonedCheckout</code> object</td>
  </tr>
 <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/objects/AbandonedCheckout#field-note">note</a></code></td>
    <td>Field</td>
    <td>Added to <code>AbandonedCheckout</code> object</td>
  </tr>
 <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/objects/AbandonedCheckout#field-totallineitemspriceset">totalLineItemsPriceSet</a></code></td>
    <td>Field</td>
    <td>Added to <code>AbandonedCheckout</code> object</td>
  </tr>
 <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/objects/AbandonedCheckout#field-subtotalpriceset">subtotalPriceSet</a></code></td>
    <td>Field</td>
    <td>Added to <code>AbandonedCheckout</code> object</td>
  </tr>
 <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/objects/AbandonedCheckout#field-discountcodes">discountCodes</a></code></td>
    <td>Field</td>
    <td>Added to <code>AbandonedCheckout</code> object</td>
  </tr>
 <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/objects/AbandonedCheckout#field-totaldiscountset">totalDiscountSet</a></code></td>
    <td>Field</td>
    <td>Added to <code>AbandonedCheckout</code> object</td>
  </tr>
 <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/objects/AbandonedCheckout#field-totalTaxSet">totalTaxSet</a></code></td>
    <td>Field</td>
    <td>Added to <code>AbandonedCheckout</code> object</td>
  </tr>
 <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/objects/AbandonedCheckout#field-totaldutiesset">totalDutiesSet</a></code></td>
    <td>Field</td>
    <td>Added to <code>AbandonedCheckout</code> object</td>
  </tr>
 <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/objects/AbandonedCheckout#field-taxlines">taxLines</a></code></td>
    <td>Field</td>
    <td>Added to <code>AbandonedCheckout</code> object</td>
  </tr>
 <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/objects/AbandonedCheckout#field-taxesincluded">taxesIncluded</a></code></td>
    <td>Field</td>
    <td>Added to <code>AbandonedCheckout</code> object</td>
  </tr>
 <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/objects/AbandonedCheckout#field-closedat">closedAt</a></code></td>
    <td>Field</td>
    <td>Added to <code>AbandonedCheckout</code> object</td>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/objects/AbandonedCheckout#field-completedat">completedAt</a></code></td>
    <td>Field</td>
    <td>Added to <code>AbandonedCheckout</code> object</td>
  </tr>
 <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/objects/AbandonedCheckout#field-updatedat">updatedAt</a></code></td>
    <td>Field</td>
    <td>Added to <code>AbandonedCheckout</code> object</td>
  </tr>
 <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/objects/AbandonedCheckout#field-createdat">createdAt</a></code></td>
    <td>Field</td>
    <td>Added to <code>AbandonedCheckout</code> object</td>
  </tr>
 <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/objects/AbandonedCheckout#field-shippinglines">shippingLines</a></code></td>
    <td>Field</td>
    <td>Added to <code>AbandonedCheckout</code> object</td>
  </tr>
 <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/objects/AbandonedCheckout#field-billingaddress">billingAddress</a></code></td>
    <td>Field</td>
    <td>Added to <code>AbandonedCheckout</code> object</td>
  </tr>
 <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/objects/AbandonedCheckout#field-shippingaddress">shippingAddress</a></code></td>
    <td>Field</td>
    <td>Added to <code>AbandonedCheckout</code> object</td>
  </tr>
 <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/objects/AbandonedCheckout#field-customer">customer</a></code></td>
    <td>Field</td>
    <td>Added to <code>AbandonedCheckout</code> object</td>
  </tr>
 <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/objects/AbandonedCheckout#field-name">name</a></code></td>
    <td>Field</td>
    <td>Added to <code>AbandonedCheckout</code> object</td>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/objects/AbandonedCheckoutShippingLine">AbandonedCheckoutShippingLine</a></code></td>
    <td>Object</td>
    <td>Added</td>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/objects/AbandonedCheckoutLineItem#field-taxlines">taxLines</a></code></td>
    <td>Field</td>
    <td>Added to <code>AbandonedCheckoutLineItem</code> object</td>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/objects/AbandonedCheckoutLineItem#field-discountallocations">discountAllocations</a></code></td>
    <td>Field</td>
    <td>Added to <code>AbandonedCheckoutLineItem</code> object</td>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/objects/AbandonedCheckoutLineItem#field-requiresshipping">requiresShipping</a></code></td>
    <td>Field</td>
    <td>Added to <code>AbandonedCheckoutLineItem</code> object</td>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/objects/AbandonedCheckoutLineItem#field-weight">weight</a></code></td>
    <td>Field</td>
    <td>Added to <code>AbandonedCheckoutLineItem</code> object</td>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/objects/AbandonedCheckoutLineItem#field-fulfillmentservice">fulfillmentService</a></code></td>
    <td>Field</td>
    <td>Added to <code>AbandonedCheckoutLineItem</code> object</td>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/objects/AbandonedCheckoutLineItem#field-presentmentvarianttitle">presentmentVariantTitle</a></code></td>
    <td>Field</td>
    <td>Added to <code>AbandonedCheckoutLineItem</code> object</td>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/objects/AbandonedCheckoutLineItem#field-presentmenttitle">presentmentTitle</a></code></td>
    <td>Field</td>
    <td>Added to <code>AbandonedCheckoutLineItem</code> object</td>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/objects/TaxLines#field-source">source</a></code></td>
    <td>Field</td>
    <td>Added to <code>TaxLines</code> object</td>
  </tr>
    <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/objects/ProductVariant#field-unitpricemeasurement">unitPriceMeasurement</a></code></td>
    <td>Field</td>
    <td>Added to <code>ProductVariant</code> object</td>
  </tr>
</table>
  </div>
</div>
<div class="accordion-item">
  <div class="accordion-link">
    <div class="chevron-up"></div>
    <div class="chevron-down"></div>
    <h3>Adding page links in navigation menus</h3>
  </div>
  <div class="accordion-content">
    <p>You can now add links to the <strong><a rel="external noreferrer noopener" target="_blank" href="https://admin.shopify.com/orders">Orders</a></strong>, <strong><a rel="external noreferrer noopener" target="_blank" href="https://admin.shopify.com/customers">Customer profiles</a></strong>, and <strong><a rel="external noreferrer noopener" target="_blank" href="https://admin.shopify.com/settings">Settings</a></strong> pages in navigation menus.</p>
<p>You can use the GraphQL Admin API to update menus that include these pages, and add activated full page extensions to menus, when <a href="/docs/api/customer-account-ui-extensions">customer account UI extensions</a> are available for general release.  Merchants will also be able to customize their customer account navigation menu. For more information, refer to the <a href="/docs/apps/build/customer-accounts#product-roadmap">product roadmap</a>.</p>
<p>To learn more, refer to the following GraphQL reference documentation:</p>
<ul>
<li><a href="/docs/api/admin-graphql/2024-10/mutations/menuCreate"><code class="text-highlight text-highlight--grey">menuCreate</code></a> mutation</li>
<li><a href="/docs/api/admin-graphql/2024-10/mutations/menuUpdate"><code class="text-highlight text-highlight--grey">menuUpdate</code></a> mutation</li>
<li><a href="/docs/api/admin-graphql/2024-10/queries/menus"><code class="text-highlight text-highlight--grey">menu</code></a> query</li>
</ul>
  </div>
</div>
<div class="accordion-item">
  <div class="accordion-link">
    <div class="chevron-up"></div>
    <div class="chevron-down"></div>
    <h3>App feedback</h3>
  </div>
  <div class="accordion-content">
    <p>We&#39;ve added the <a href="/docs/api/admin-graphql/2024-10/objects/AppFeedback#field-feedbackgeneratedat"><code class="text-highlight text-highlight--grey">feedbackGeneratedAt</code></a> and <a href="/docs/api/admin-graphql/2024-10/objects/AppFeedback#field-state"><code class="text-highlight text-highlight--grey">state</code></a> fields to the <a href="/docs/api/admin-graphql/2024-10/objects/AppFeedback"><code class="text-highlight text-highlight--grey">AppFeedback</code></a> object. This field represents the date and time when the app feedback was generated. It conveys the state of the feedback and whether it requires merchant action.</p>
  </div>
</div>
<div class="accordion-item">
  <div class="accordion-link">
    <div class="chevron-up"></div>
    <div class="chevron-down"></div>
    <h3>App scopes webhook</h3>
  </div>
  <div class="accordion-content">
    <p>Apps can now subscribe to the <a href="/docs/api/webhooks/2024-10?reference=toml#list-of-topics-app/scopes_update"><code class="text-highlight text-highlight--grey">app/scopes_update</code></a> webhook topic. This webhook is triggered when the granted access scopes for the installed app on a shop have been modified. It allows apps to keep track of the granted access scopes of their installations.</p>
  </div>
</div>
<div class="accordion-item">
  <div class="accordion-link">
    <div class="chevron-up"></div>
    <div class="chevron-down"></div>
    <h3>Automatic app discounts</h3>
  </div>
  <div class="accordion-content">
    <p>We&#39;ve added the <code class="text-highlight text-highlight--grey">recurringCycleLimit</code> and <code class="text-highlight text-highlight--grey">appliesOnSubscription</code> fields on the <a href="/docs/api/admin-graphql/2024-10/objects/DiscountAutomaticApp"><code class="text-highlight text-highlight--grey">DiscountAutomaticApp</code></a> object and <a href="/docs/api/admin-graphql/2024-10/input-objects/DiscountAutomaticAppInput"><code class="text-highlight text-highlight--grey">DiscountAutomaticAppInput</code></a> input object.</p>
<p>The fields enable merchants to use <a href="/docs/apps/build/discounts#discount-methods">automatic app discounts</a> for subscriptions, and apply the discounts for a pre-determined number of cycles. Developers can use the fields in their automatic app <a href="/docs/apps/build/discounts/build-discount-function">discount functions</a>.</p>
  </div>
</div>
<div class="accordion-item">
  <div class="accordion-link">
    <div class="chevron-up"></div>
    <div class="chevron-down"></div>
    <h3>Business entities</h3>
  </div>
  <div class="accordion-content">
    <p>Large merchants with an established international presence need to be able to specify which of their business entities handles sales for a given buyer context. You can now use the GraphQL Admin API to query fields related to the business entities that are enabled on a store.</p>
<p>The following new types are available:</p>
<table>
  <caption>New types related to business entities</caption>
  <tr>
    <th scope="col">Name</th>
    <th scope="col">Type</th>
    <th scope="col">Change</th>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/queries/businessentities">businessEntities</a></code></td>
    <td>Query</td>
    <td>Added</td>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/queries/businessentity">businessEntity</a></code></td>
    <td>Query</td>
    <td>Added</td>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/objects/BusinessEntity">BusinessEntity</a></code></td>
    <td>Object</td>
    <td>Added</td>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/objects/BusinessEntityAddress">BusinessEntityAddress</a></code></td>
    <td>Object</td>
    <td>Added</td>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/objects/Payout#field-payout-businessentity">businessEntity</a></code></td>
    <td>Field</td>
    <td>Added to <code>Payout</code> object</td>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/objects/Order#field-order-merchantbusinessentity">merchantBusinessEntity</a></code></td>
    <td>Field</td>
    <td>Added to <code>Order</code> object</td>
  </tr>
</table>
  </div>
</div>
<div class="accordion-item">
  <div class="accordion-link">
    <div class="chevron-up"></div>
    <div class="chevron-down"></div>
    <h3>Cart and checkout validations</h3>
  </div>
  <div class="accordion-content">
    <p>We&#39;ve added the <a href="/docs/api/admin-graphql/2024-10/enums/ValidationUserErrorCode#value-maxvalidationsactivated"><code class="text-highlight text-highlight--grey">MAX_VALIDATIONS_ACTIVATED</code></a> error code to the <code class="text-highlight text-highlight--grey">ValidationUserErrorCode</code> enum. The error code is returned when your app exceeds the maximum of five <a href="/docs/apps/build/checkout/cart-checkout-validation">validation functions</a> in checkout.</p>
  </div>
</div>
<div class="accordion-item">
  <div class="accordion-link">
    <div class="chevron-up"></div>
    <div class="chevron-down"></div>
    <h3>Cash transactions on POS</h3>
  </div>
  <div class="accordion-content">
    <p>We&#39;ve added the <a href="/docs/api/admin-graphql/2024-10/objects/Order#field-totalcashroundingadjustment"><code class="text-highlight text-highlight--grey">totalCashRoundingAdjustment</code></a> field to the <code class="text-highlight text-highlight--grey">Order</code> object, which allows you to query the total rounding adjustment applied on cash payments or refund transactions in an order on Point of Sale (POS).</p>
<p>Cash transactions on POS are now automatically rounded to the nearest denominations for the some currencies and countries, like CAD (Canada), AUD (Australia), NZD (New Zealand), EUR (Switzerland, Belgium, Finland), DKK (Denmark), Sweden (SEK) and Norway (NOK).</p>
  </div>
</div>
<div class="accordion-item">
  <div class="accordion-link">
    <div class="chevron-up"></div>
    <div class="chevron-down"></div>
    <h3>Changed enum value for OrderDisplayFulfillmentStatus <span id="changed-enum-value-for-orderdisplayfulfillmentstatus" class="heading-flag breaking"</h3>
  </div>
  <div class="accordion-content">
    <p>The <a href="/docs/api/admin-graphql/2024-10/enums/OrderDisplayFulfillmentStatus"><code class="text-highlight text-highlight--grey">OrderDisplayFulfillmentStatus</code></a> enum now returns a <code class="text-highlight text-highlight--grey">REQUEST_DECLINED</code> value for an order that has had its fulfillment request rejected by a third-party fulfillment service. In API versions prior to 2024-10, orders in the request rejected state return an <code class="text-highlight text-highlight--grey">UNFULFILLED</code> status.</p>
  </div>
</div>
<div class="accordion-item">
  <div class="accordion-link">
    <div class="chevron-up"></div>
    <div class="chevron-down"></div>
    <h3>Collections count</h3>
  </div>
  <div class="accordion-content">
    <p>We&#39;ve added the <a href="/docs/api/admin-graphql/2024-10/queries/collectionsCount"><code class="text-highlight text-highlight--grey">collectionsCount</code></a> query, which enables you to retrieve a count of all collections in a shop. This includes published and unpublished collections, and custom and smart collections.</p>
  </div>
</div>
<div class="accordion-item">
  <div class="accordion-link">
    <div class="chevron-up"></div>
    <div class="chevron-down"></div>
    <h3>Company location staff members</h3>
  </div>
  <div class="accordion-content">
    <p>We&#39;ve added the <a href="/docs/api/admin-graphql/2024-10/objects/CompanyLocationStaffMemberAssignment"><code class="text-highlight text-highlight--grey">CompanyLocationStaffMemberAssignment</code></a> object, which allows you to retrieve staff members assigned to a company location.</p>
<p>You can assign and remove staff members for a company location using the <a href="/docs/api/admin-graphql/2024-10/mutations/companyLocationAssignStaffMembers"><code class="text-highlight text-highlight--grey">CompanyLocationAssignStaffMembers</code></a> and <a href="/docs/api/admin-graphql/2024-10/mutations/companyLocationRemoveStaffMembers"><code class="text-highlight text-highlight--grey">CompanyLocationRemoveStaffMembers</code></a> mutations.</p>
  </div>
</div>
<div class="accordion-item">
  <div class="accordion-link">
    <div class="chevron-up"></div>
    <div class="chevron-down"></div>
    <h3>Customer account invite</h3>
  </div>
  <div class="accordion-content">
    <p>You can now use the <a href="/docs/api/admin-graphql/2024-10/mutations/customerSendAccountInviteEmail"><code class="text-highlight text-highlight--grey">customerSendAccountInvite</code></a> mutation to send an email invitation to a customer so that they can create a <a rel="external noreferrer noopener" target="_blank" href="https://help.shopify.com/manual/customers/customer-accounts">classic customer</a> account.</p>
<p>We&#39;ve also added the <a href="/docs/api/admin-graphql/2024-10/objects/CustomerSendAccountInviteEmailUserError"><code class="text-highlight text-highlight--grey">CustomerSendAccountInviteEmailUserError</code></a> that defines errors for the <a href="/docs/api/admin-graphql/2024-10/mutations/customerSendAccountInviteEmail"><code class="text-highlight text-highlight--grey">customerSendAccountInvite</code></a> mutation.</p>
  </div>
</div>
<div class="accordion-item">
  <div class="accordion-link">
    <div class="chevron-up"></div>
    <div class="chevron-down"></div>
    <h3>Customer addresses pagination</h3>
  </div>
  <div class="accordion-content">
    <p>We&#39;ve added the <a href="/docs/api/admin-graphql/2024-10/objects/Customer#connection-addressesv2"><code class="text-highlight text-highlight--grey">addressesV2</code></a> connection to the <a href="/docs/api/customer/2024-10/objects/Customer"><code class="text-highlight text-highlight--grey">Customer</code></a> object. The <code class="text-highlight text-highlight--grey">addressesV2</code> connection supports paginating through a customer&#39;s addresses, which enables you to retrieve a subset of results at a time.</p>
  </div>
</div>
<div class="accordion-item">
  <div class="accordion-link">
    <div class="chevron-up"></div>
    <div class="chevron-down"></div>
    <h3>Customer payment methods</h3>
  </div>
  <div class="accordion-content">
    <p>We&#39;ve added the <a href="/docs/api/admin-graphql/2024-10/enums/CustomerPaymentMethodRevocationReason#value-failedtoretrievebillingaddress"><code class="text-highlight text-highlight--grey">FAILED_TO_RETRIEVE_BILLING_ADDRESS</code></a> value on the <code class="text-highlight text-highlight--grey">CustomerPaymentMethodRevocationReason</code> enum. The value is returned when a customer payment method is missing the billing address field.</p>
  </div>
</div>
<div class="accordion-item">
  <div class="accordion-link">
    <div class="chevron-up"></div>
    <div class="chevron-down"></div>
    <h3>Deleting a fulfillment service</h3>
  </div>
  <div class="accordion-content">
    <p>We&#39;ve introduced the <a href="/docs/api/admin-graphql/2024-10/mutations/fulfillmentServiceDelete#argument-inventoryaction"><code class="text-highlight text-highlight--grey">inventoryAction</code></a> argument on the <code class="text-highlight text-highlight--grey">fulfillmentServiceDelete</code> mutation. You can use the argument to specify how to handle inventory when you delete a fulfillment service. Valid values:</p>
<ul>
<li><p><code class="text-highlight text-highlight--grey">KEEP</code>: Converts a fulfillment service&#39;s locations to be merchant-owned. The inventory at the locations becomes the merchant&#39;s responsibility. If <code class="text-highlight text-highlight--grey">KEEP</code> is provided, then the merchant must have a <a rel="external noreferrer noopener" target="_blank" href="https://help.shopify.com/manual/locations/setting-up-your-locations#location-quantity-limit">sufficient remaining quota of locations on their Shopify plan</a> for the operation to succeed. Otherwise, an error is returned.</p></li>
<li><p><code class="text-highlight text-highlight--grey">DELETE</code>: Deletes the inventory at the location and then the location itself. You can only use this option when there are no outstanding fulfillments.</p></li>
<li><p><code class="text-highlight text-highlight--grey">TRANSFER</code>: Relocates the inventory to a specified <code class="text-highlight text-highlight--grey">destinationLocationId</code>. If you specify either <code class="text-highlight text-highlight--grey">KEEP</code> or <code class="text-highlight text-highlight--grey">DELETE</code>, then you can&#39;t also specify a <code class="text-highlight text-highlight--grey">destinationLocationId</code>.</p></li>
</ul>
  </div>
</div>
<div class="accordion-item">
  <div class="accordion-link">
    <div class="chevron-up"></div>
    <div class="chevron-down"></div>
    <h3>Delivery options</h3>
  </div>
  <div class="accordion-content">
    <p>The <a href="/docs/api/admin-graphql/2024-10/objects/DeliveryMethod#field-presentedname"><code class="text-highlight text-highlight--grey">presentedName</code></a> field has been added to the <code class="text-highlight text-highlight--grey">DeliveryMethod</code> object. The <code class="text-highlight text-highlight--grey">presentedName</code> field represents the name of the delivery option that was presented to the customer during checkout.</p>
  </div>
</div>
<div class="accordion-item">
  <div class="accordion-link">
    <div class="chevron-up"></div>
    <div class="chevron-down"></div>
    <h3>Deposits for payment terms</h3>
  </div>
  <div class="accordion-content">
    <p>You can now set up a percentage-based deposit requirement for your payment terms using the <a href="/docs/api/admin-graphql/2024-10/input-objects/DepositInput#field-percentage"><code class="text-highlight text-highlight--grey">DepositInput</code></a> input object. Set up payment terms on company locations using the <a href="/docs/api/admin-graphql/2024-10/mutations/companyCreate"><code class="text-highlight text-highlight--grey">CompanyCreate</code></a>, <a href="/docs/api/admin-graphql/2024-10/mutations/CompanyLocationCreate"><code class="text-highlight text-highlight--grey">CompanyLocationCreate</code></a>, and <a href="/docs/api/admin-graphql/2024-10/mutations/CompanyLocationUpdate"><code class="text-highlight text-highlight--grey">CompanyLocationUpdate</code></a> mutations.</p>
<p><a rel="external noreferrer noopener" target="_blank" href="https://help.shopify.com/manual/b2b/payment-terms#deposits">Learn more about deposits</a>.</p>
  </div>
</div>
<div class="accordion-item">
  <div class="accordion-link">
    <div class="chevron-up"></div>
    <div class="chevron-down"></div>
    <h3>Discount totals</h3>
  </div>
  <div class="accordion-content">
    <p>You can now query the total number of discounts on a shop, automatic and code-based, using the <a href="/docs/api/admin-graphql/2024-10/queries/discountNodesCount"><code class="text-highlight text-highlight--grey">discountNodesCount</code></a> query.</p>
  </div>
</div>
<div class="accordion-item">
  <div class="accordion-link">
    <div class="chevron-up"></div>
    <div class="chevron-down"></div>
    <h3>Duties on orders</h3>
  </div>
  <div class="accordion-content">
    <p>We&#39;ve added the <a href="/docs/api/admin-graphql/2024-10/objects/Order#field-dutiesincluded"><code class="text-highlight text-highlight--grey">dutiesIncluded</code></a> field to <code class="text-highlight text-highlight--grey">Order</code> object.</p>
  </div>
</div>
<div class="accordion-item">
  <div class="accordion-link">
    <div class="chevron-up"></div>
    <div class="chevron-down"></div>
    <h3>Event query enhancements <span id="event-query-enhancements" class="heading-flag breaking"</h3>
  </div>
  <div class="accordion-content">
    <p>We&#39;ve made the <a href="/docs/api/admin-graphql/2024-10/objects/CommentEvent#field-subject"><code class="text-highlight text-highlight--grey">CommentEvent.subject</code></a> field nullable. <code class="text-highlight text-highlight--grey">null</code> is returned when the subject&#39;s underlying data has been deleted. You must update your code to handle cases where <code class="text-highlight text-highlight--grey">subject</code> might return <code class="text-highlight text-highlight--grey">null</code>. For example, revise existing logic that assumes the field will always contain data, and implement checks or fallback mechanisms to manage situations where the <code class="text-highlight text-highlight--grey">subject</code> data has been deleted.</p>
<p>We&#39;ve also deprecated the <a href="/docs/api/admin-graphql/2024-10/queries/deletionEvents"><code class="text-highlight text-highlight--grey">deletionEvents</code></a> query in favour of events that indicate deletion. Update your code to remove any reliance on <code class="text-highlight text-highlight--grey">deletionEvents</code>, and use the new event structure. To support querying events, we&#39;ve added the following types:</p>
<table>
  <caption>Types for events</caption>
  <tr>
    <th scope="col">Name</th>
    <th scope="col">Type</th>
    <th scope="col">Change</th>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/interfaces/Event#field-action">action</a></code></td>
    <td>field</td>
    <td>Added to <code>Event</code> interface</td>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/queries/event">event</a></code></td>
    <td>Query</td>
    <td>Added</td>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/queries/events">events</a></code></td>
    <td>Query</td>
    <td>Added</td>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/queries/eventsCount">eventsCount</a></code></td>
    <td>Query</td>
    <td>Added</td>
  </tr>
  <tr>
    <td scope="row"><code>events</code></td>
    <td>Connection</td>
    <td>Added to <code><a href="/docs/api/admin-graphql/2024-10/objects/Article#connection-events">Article</a></code>, <code><a href="/docs/api/admin-graphql/2024-10/objects/Blog#connection-events">Blog</a></code>, <code><a href="/docs/api/admin-graphql/2024-10/objects/Comment#connection-events">Comment</a></code>, <code><a href="/docs/api/admin-graphql/2024-10/objects/Page#connection-events">Page</a></code>, <code><a href="/docs/api/admin-graphql/2024-10/objects/Product#connection-events">Product</a></code>, and <code><a href="/docs/api/admin-graphql/2024-10/objects/ProductVariant#connection-events">ProductVariant</a></code> objects</td>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/enums/EventSubjectType">EventSubjectType</a></code></td>
    <td>Enum</td>
    <td>Added</td>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/objects/BasicEvent#field-arguments">arguments</a></code></td>
    <td>field</td>
    <td>Added to <code>BasicEvent</code> object</td>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/objects/BasicEvent#field-subject">subject</a></code></td>
    <td>field</td>
    <td>Added to <code>BasicEvent</code> object</td>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/objects/BasicEvent#field-subjectid">subjectID</a></code></td>
    <td>field</td>
    <td>Added to <code>BasicEvent</code> object</td>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/objects/BasicEvent#field-subjecttype">subjectType</a></code></td>
    <td>field</td>
    <td>Added to <code>BasicEvent</code> object</td>
  </tr>
</table>
  </div>
</div>
<div class="accordion-item">
  <div class="accordion-link">
    <div class="chevron-up"></div>
    <div class="chevron-down"></div>
    <h3>Filtering orders</h3>
  </div>
  <div class="accordion-content">
    <p>You can now filter orders by the number of items they contain using the <a href="/docs/api/admin-graphql/2024-10/objects/Order#field-subtotallineitemsquantity"><code class="text-highlight text-highlight--grey">subtotalLineItemsQuantity</code></a> field on the <code class="text-highlight text-highlight--grey">Order</code> object.</p>
<p>You can also filter by an exact number of items, or within a specified range, using the <a href="/docs/api/admin-graphql/2024-10/queries/orders#argument-query"><code class="text-highlight text-highlight--grey">subtotal_line_items_quantity</code></a> query filter.</p>
  </div>
</div>
<div class="accordion-item">
  <div class="accordion-link">
    <div class="chevron-up"></div>
    <div class="chevron-down"></div>
    <h3>Filtering products</h3>
  </div>
  <div class="accordion-content">
    <p>We&#39;ve added <a href="/docs/api/admin-graphql/2024-10/queries/products#argument-query">new attributes to the <code class="text-highlight text-highlight--grey">products</code> query</a>. You can now filter products by the following attributes:</p>
<ul>
<li><code class="text-highlight text-highlight--grey">publication_ids</code>: The IDs of product publications.</li>
<li><code class="text-highlight text-highlight--grey">variant_id</code>: The ID of the product variant.</li>
<li><code class="text-highlight text-highlight--grey">variant_title</code>: The title of the product variant.</li>
</ul>
  </div>
</div>
<div class="accordion-item">
  <div class="accordion-link">
    <div class="chevron-up"></div>
    <div class="chevron-down"></div>
    <h3>Fulfillment by Amazon <span id="fulfillment-by-amazon" class="heading-flag breaking"</h3>
  </div>
  <div class="accordion-content">
    <p>As of API version 2024-10, the <a href="/docs/api/admin-graphql/2024-10/objects/FulfillmentService#field-shippingmethods"><code class="text-highlight text-highlight--grey">shippingMethods</code></a> field on the <code class="text-highlight text-highlight--grey">FulfillmentService</code> object has been deprecated. The <a href="/docs/api/admin-graphql/2024-10/mutations/fulfillmentOrderSubmitFulfillmentRequest#argument-shippingmethod"><code class="text-highlight text-highlight--grey">shippingMethods</code></a> argument on the <code class="text-highlight text-highlight--grey">fulfillmentOrderSubmitFulfillmentRequest</code> mutation has also been deprecated.</p>
<p>The shipping method associated with the fulfillment service provider applied only to the <strong>Fulfill By Amazon</strong> fulfillment service. The Fulfillment by Amazon feature isn&#39;t supported as of March 30, 2023. To continue using Amazon fulfillment, merchants need to set up a <a rel="external noreferrer noopener" target="_blank" href="https://help.shopify.com/manual/shipping/fulfillment-services/amazon#activate-fulfillment-by-amazon">multi-channel fulfillment solution</a>, as recommended by Amazon.</p>
  </div>
</div>
<div class="accordion-item">
  <div class="accordion-link">
    <div class="chevron-up"></div>
    <div class="chevron-down"></div>
    <h3>Fulfillment holds <span id="fulfillment-holds" class="heading-flag breaking"</h3>
  </div>
  <div class="accordion-content">
    <p>As of API version 2024-10, apps can&#39;t <a href="/docs/api/admin-graphql/2024-10/mutations/fulfillmentOrderReleaseHold">release fulfillment holds</a> unless they have write access to them. You need to request the following access scopes for your app:</p>
<ul>
<li><p><code class="text-highlight text-highlight--grey">write_merchant_managed_fulfillment_orders</code>: Allows your app to release holds on fulfillment orders assigned to a merchant-managed location</p></li>
<li><p><code class="text-highlight text-highlight--grey">write_third_party_fulfillment_orders</code>: Allows your app to release holds on fulfillment orders assigned to a third-party location</p></li>
<li><p><code class="text-highlight text-highlight--grey">write_marketplace_fulfillment_orders</code>: Allows your app to release holds on fulfillment orders which belong to one of your marketplace&#39;s orders</p></li>
</ul>
<p>If your app doesn&#39;t have sufficient access scopes to release a hold, then a user error with the <a href="/docs/api/admin-graphql/2024-10/enums/FulfillmentOrderReleaseHoldUserErrorCode#value-fulfillmentordernotfound"><code class="text-highlight text-highlight--grey">INVALID_ACCESS</code></a> code is returned and the hold isn&#39;t released.</p>
<p>We&#39;ve deprecated the <a href="/docs/api/admin-graphql/2024-10/mutations/fulfillmentOrdersReleaseHolds"><code class="text-highlight text-highlight--grey">fulfillmentOrdersReleaseHolds</code></a> mutation. Use the <a href="/docs/api/admin-graphql/latest/mutations/fulfillmentOrderReleaseHold"><code class="text-highlight text-highlight--grey">fulfillmentOrderReleaseHold</code></a> mutation instead.</p>
<p>We&#39;ve also deprecated the <code class="text-highlight text-highlight--grey">GREATER_THAN_ZERO</code> and <code class="text-highlight text-highlight--grey">INVALID_LINE_ITEM_QUANTITY</code> <a href="/docs/api/admin-graphql/2024-10/enums/FulfillmentOrderReleaseHoldUserErrorCode">error codes</a> on the <a href="/docs/api/admin-graphql/2024-10/mutations/fulfillmentOrderReleaseHold"><code class="text-highlight text-highlight--grey">fulfillmentOrderReleaseHold</code></a> mutation.</p>
<p>We&#39;ve added the <a href="/docs/api/admin-graphql/2024-10/objects/FulfillmentHold#field-id"><code class="text-highlight text-highlight--grey">id</code></a> field to the <code class="text-highlight text-highlight--grey">FulfillmentHold</code> object. We&#39;ve also added an optional <a href="/docs/api/admin-graphql/2024-10/mutations/fulfillmentOrderReleaseHold#argument-holdIds"><code class="text-highlight text-highlight--grey">holdIds</code></a> argument to the <code class="text-highlight text-highlight--grey">fulfillmentOrderReleaseHold</code> mutation. The <code class="text-highlight text-highlight--grey">holdIds</code> argument enables apps to release a hold by ID, ensuring that only the intended hold is released.</p>
<p>The <a href="/docs/api/admin-graphql/2024-10/objects/FulfillmentHold#field-heldbyrequestingapp"><code class="text-highlight text-highlight--grey">heldByRequestingApp</code></a> field is now available on the <code class="text-highlight text-highlight--grey">FulfillmentHold</code> object. As of API version 2024-10, you&#39;ll only be able to read the <a href="/docs/api/admin-graphql/2024-10/objects/FulfillmentHold#field-heldby"><code class="text-highlight text-highlight--grey">heldBy</code></a> field on the <code class="text-highlight text-highlight--grey">FulfillmentHold</code> object if you have the <code class="text-highlight text-highlight--grey">read_apps</code> scope enabled on your app. Use the <code class="text-highlight text-highlight--grey">heldByRequestingApp</code> field instead if you need to confirm whether your app created the fulfillment hold.</p>
<p>Additionally, the <code class="text-highlight text-highlight--grey">fulfillmentOrderHold</code> mutation now returns the fulfillment hold that was created in a new <a href="/docs/api/admin-graphql/2024-10/mutations/fulfillmentOrderHold#field-fulfillmentorderholdpayload-fulfillmenthold"><code class="text-highlight text-highlight--grey">fulfillmentHold</code> return field</a>.</p>
<p>As well, we&#39;ve added a localized, <a href="/docs/api/admin-graphql/2024-10/objects/FulfillmentHold#field-displayreason"><code class="text-highlight text-highlight--grey">displayReason</code></a> field to the <code class="text-highlight text-highlight--grey">FulfillmentHold</code> object. You can use this field to query a human-readable reason when a fulfillment is on hold.</p>
  </div>
</div>
<div class="accordion-item">
  <div class="accordion-link">
    <div class="chevron-up"></div>
    <div class="chevron-down"></div>
    <h3>Fulfillment orders webhook</h3>
  </div>
  <div class="accordion-content">
    <p>You can now use the <code class="text-highlight text-highlight--grey">created_fulfillment_hold</code> field on the <a href="/docs/api/webhooks/2024-10?reference=toml#list-of-topics-fulfillment_orders/placed_on_hold"><code class="text-highlight text-highlight--grey">fulfillment_orders/placed_on_hold</code></a> webhook to retrieve the fulfillment hold that was created.</p>
<p>A fulfillment hold is deleted when a hold is released. As a result, it&#39;s possible that <code class="text-highlight text-highlight--grey">FulfillmentOrder.FulfillmentHolds</code> is empty by the time the subscriber receives the webhook. The new <code class="text-highlight text-highlight--grey">created_fulfillment_hold</code> field always shows the hold that was created, regardless of whether it has already been released and deleted.</p>
  </div>
</div>
<div class="accordion-item">
  <div class="accordion-link">
    <div class="chevron-up"></div>
    <div class="chevron-down"></div>
    <h3>Gift cards <span id="gift-cards" class="heading-flag breaking"</h3>
  </div>
  <div class="accordion-content">
    <div class="heading-wrapper heading-wrapper-3"><h3 id="gift-cards">Gift cards</h3><a class="article-anchor-link" href="#gift-cards"><span class="visuallyhidden">Anchor link to section titled "Gift cards"</span></a></div>
<p>We&#39;ve improved the <a href="/docs/api/admin-graphql/2024-10/objects/GiftCard"><code class="text-highlight text-highlight--grey">GiftCard</code></a> types and have introduced several new types for working with gift cards. The gift card types are now open to all apps and shops, with no additional approval scopes or flags required.</p>
<p><strong>Developer action required</strong></p>
<ul>
<li>The <a href="/docs/api/admin-graphql/2024-07/mutations/giftCardDisable"><code class="text-highlight text-highlight--grey">giftCardDisable</code></a> mutation has been removed. Use <a href="/docs/api/admin-graphql/2024-10/mutations/giftCardDeactivate"><code class="text-highlight text-highlight--grey">giftCardDeactivate</code></a> instead.</li>
<li>The <a href="/docs/api/admin-graphql/2024-07/objects/GiftCard#field-disabledat"><code class="text-highlight text-highlight--grey">disabledAt</code></a> field on the <code class="text-highlight text-highlight--grey">GiftCard</code> object has been removed. Use the <a href="/docs/api/admin-graphql/2024-10/objects/GiftCard#field-deactivatedat"><code class="text-highlight text-highlight--grey">deactivatedAt</code></a> field instead.</li>
</ul>
<p>The following types for gift cards are now available:</p>
<table>
  <caption>Available types for gift cards</caption>
<thead>
  <tr>
    <th scope="col">Name</th>
    <th scope="col">Type</th>
    <th scope="col">Change</th>
  </tr>
  </thead>
       <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/enums/GiftCardErrorCode#value-customernotfound">CUSTOMER_NOT_FOUND</a></code></td>
    <td>Value</td>
    <td>Added to <code>GiftCardErrorCode</code> enum</td>
  </tr>
     <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/objects/GiftCard#field-deactivatedat">deactivatedAt</a></code></td>
    <td>Field</td>
    <td>Added to <code>GiftCard</code> object</td>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/input-objects/GiftCardCreateInput">GiftCardCreateInput</a></a></code></td>
    <td>Input object</td>
    <td>Added</td>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/mutations/GiftCardCredit">giftCardCredit</a></code></td>
    <td>Mutation</td>
    <td>Added</td>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/input-objects/GiftCardCreditInput">GiftCardCreditInput</a></code></td>
    <td>Input object</td>
    <td>Added</td>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/objects/GiftCardCreditTransaction">GiftCardCreditTransaction</a></code></td>
    <td>Object</td>
    <td>Added</td>
  </tr>
    <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/mutations/giftCardDebit">giftCardDebit</a></code></td>
    <td>Mutation</td>
    <td>Added</td>
    </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/input-objects/GiftCardDebitInput">GiftCardDebitInput</a></code></td>
    <td>Input object</td>
    <td>Added</td>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/objects/GiftCardDebitTransaction">GiftCardDebitTransaction</a></code></td>
    <td>Object</td>
    <td>Added</td>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/mutations/giftCardDeactivate">giftCardDeactivate</a></code></td>
    <td>Mutation</td>
    <td>Added</td>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/objects/GiftCardRecipient">GiftCardRecipient</a></code></td>
    <td>Object</td>
    <td>Added</td>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/input-objects/GiftCardRecipientInput">GiftCardRecipientInput</a></code></td>
    <td>Input object</td>
    <td>Added</td>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/mutations/giftCardSendNotificationToCustomer">giftCardSendNotificationToCustomer</a></code></td>
    <td>Mutation</td>
    <td>Added</td>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/mutations/giftCardSendNotificationToRecipient">giftCardSendNotificationToRecipient</a></code></td>
    <td>Mutation</td>
    <td>Added</td>
  </tr>
<tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/interfaces/GiftCardTransaction">GiftCardTransaction</a></code></td>
    <td>Interface</td>
    <td>Added</td>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/objects/GiftCardTransactionUserError">GiftCardTransactionUserError</a></code></td>
    <td>Object</td>
    <td>Added</td>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/objects/GiftCard#field-recipientattributes">recipientAttributes</a></code></td>
    <td>Field</td>
    <td>Added to <code>GiftCard</code> object</td>
  </tr>
   <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/input-objects/GiftCardCreateInput#field-recipientattributes">recipientAttributes</a></code></td>
    <td>Field</td>
    <td>Added to <code>GiftCardCreateInput</code> input object</td>
  </tr>
    <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/input-objects/GiftCardUpdateInput#field-recipientattributes">recipientAttributes</code></a></td>
    <td>Field</td>
    <td>Added to <code>GiftCardUpdateInput</code> input object</td>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/enums/GiftCardErrorCode#value-recipientnotfound">RECIPIENT_NOT_FOUND</code></a></td>
    <td>Value</td>
    <td>Added to <code>GiftCardErrorCode</code> enum</td>
  </tr>
    <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/objects/GiftCard#connection-transactions">transactions</code></a></td>
    <td>Connection</td>
    <td>Added to <code>GiftCard</code> object</td>
  </tr>
     <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/objects/GiftCard#field-updatedat">updatedAt</code></a></td>
    <td>Field</td>
       <td>Added to <code>GiftCard</code> object</td>
  </tr>
</table>
  </div>
</div>
<div class="accordion-item">
  <div class="accordion-link">
    <div class="chevron-up"></div>
    <div class="chevron-down"></div>
    <h3>Improvements to the Shop object</h3>
  </div>
  <div class="accordion-content">
    <p>We&#39;ve added the <a href="/docs/api/admin-graphql/2024-10/objects/Shop#field-accountowner"><code class="text-highlight text-highlight--grey">accountOwner</code></a> field to the <code class="text-highlight text-highlight--grey">Shop</code> object. You can use the field to retrieve information about the account owner of a shop. The <code class="text-highlight text-highlight--grey">accountOwner</code> field returns a <a href="/docs/api/admin-graphql/2024-10/objects/StaffMember"><code class="text-highlight text-highlight--grey">StaffMember</code></a> object.</p>
  </div>
</div>
<div class="accordion-item">
  <div class="accordion-link">
    <div class="chevron-up"></div>
    <div class="chevron-down"></div>
    <h3>Improvements to the StaffMember type <span id="improvements-to-the-staff-member-type" class="heading-flag breaking"</h3>
  </div>
  <div class="accordion-content">
    <p>We&#39;ve made several improvements to the <a href="/docs/api/admin-graphql/2024-10/objects/StaffMember"><code class="text-highlight text-highlight--grey">StaffMember</code></a> object. These improvements enable apps using the REST Admin API&#39;s <a href="/docs/api/admin-rest/2024-10/resources/user"><code class="text-highlight text-highlight--grey">User</code></a> resource to migrate to using the GraphQL Admin API&#39;s <code class="text-highlight text-highlight--grey">StaffMember</code> object.</p>
<ul>
<li><code class="text-highlight text-highlight--grey">Shop.staffMembers</code> has been deprecated. Use the <a href="/docs/api/admin-graphql/2024-10/queries/staffMembers"><code class="text-highlight text-highlight--grey">staffMembers</code></a> query instead.</li>
<li>We&#39;ve added the following new fields to the <code class="text-highlight text-highlight--grey">StaffMember</code> object:
<ul>
<li><a href="/docs/api/admin-graphql/2024-10/objects/StaffMember#field-accounttype"><code class="text-highlight text-highlight--grey">accountType</code></a></li>
<li><a href="/docs/api/admin-graphql/2024-10/objects/StaffMember#field-bio"><code class="text-highlight text-highlight--grey">bio</code></a></li>
<li><a href="/docs/api/admin-graphql/2024-10/objects/StaffMember#field-receiveannouncements"><code class="text-highlight text-highlight--grey">receiveAnnouncements</code></a></li>
<li><a href="/docs/api/admin-graphql/2024-10/objects/StaffMember#field-url"><code class="text-highlight text-highlight--grey">url</code></a></li>
</ul></li>
<li>You can retrieve the staff member making the API request with the <a href="/docs/api/admin-graphql/2024-10/queries/currentStaffMember"><code class="text-highlight text-highlight--grey">currentStaffMember</code></a> query.</li>
</ul>
  </div>
</div>
<div class="accordion-item">
  <div class="accordion-link">
    <div class="chevron-up"></div>
    <div class="chevron-down"></div>
    <h3>Inventory items</h3>
  </div>
  <div class="accordion-content">
    <p>You can now use the optional <a href="/docs/api/admin-graphql/2024-10/mutations/inventoryActivate#argument-stockatlegacylocation"><code class="text-highlight text-highlight--grey">stockAtLegacyLocation</code></a> argument on the <code class="text-highlight text-highlight--grey">inventoryActivate</code> mutation. Setting the argument to <code class="text-highlight text-highlight--grey">true</code> allows inventory to be activated if the location ID that&#39;s provided is associated with a fulfillment service that doesn&#39;t permit SKU sharing.</p>
<ul>
<li><p>If an item is activated at a location that doesn&#39;t permit SKU sharing, then the item will be deactivated at all other locations.</p></li>
<li><p>If an item is currently active at a location that doesn&#39;t permit SKU sharing, and you want to activate that item at another location, then you need to set the <code class="text-highlight text-highlight--grey">stockAtLegacyLocation</code> argument to <code class="text-highlight text-highlight--grey">true</code>.</p></li>
</ul>
  </div>
</div>
<div class="accordion-item">
  <div class="accordion-link">
    <div class="chevron-up"></div>
    <div class="chevron-down"></div>
    <h3>Inventory quantities</h3>
  </div>
  <div class="accordion-content">
    <p>You can use the <code class="text-highlight text-highlight--grey">ProductSetInventoryInput</code> input object to specify <a href="/docs/api/admin-graphql/2024-10/input-objects/ProductVariantSetInput#field-inventoryquantities">inventory quantities for individual product variants</a> and set <a href="/docs/apps/build/orders-fulfillment/inventory-management-apps/manage-quantities-states"><code class="text-highlight text-highlight--grey">available</code> or <code class="text-highlight text-highlight--grey">on_hand</code> quantities</a> for new and existing product variants on locations specified.</p>
  </div>
</div>
<div class="accordion-item">
  <div class="accordion-link">
    <div class="chevron-up"></div>
    <div class="chevron-down"></div>
    <h3>Linked metafield value error code</h3>
  </div>
  <div class="accordion-content">
    <p>We&#39;ve added the <a href="/docs/api/admin-graphql/2024-10/enums/ProductOptionsCreateUserErrorCode#value-linkedmetafieldvaluewithoutlinkedoption"><code class="text-highlight text-highlight--grey">LINKED_METAFIELD_VALUE_WITHOUT_LINKED_OPTION</code></a> error code to the <code class="text-highlight text-highlight--grey">ProductOptionsCreateUserError</code> enum. This error code is returned when the <code class="text-highlight text-highlight--grey">linkedMetafieldValue</code> can&#39;t be specified for an option that isn&#39;t linked to a metafield.</p>
  </div>
</div>
<div class="accordion-item">
  <div class="accordion-link">
    <div class="chevron-up"></div>
    <div class="chevron-down"></div>
    <h3>Local payment methods</h3>
  </div>
  <div class="accordion-content">
    <p>We&#39;ve added the <a href="/docs/api/admin-graphql/2024-10/objects/LocalPaymentMethodsPaymentDetails"><code class="text-highlight text-highlight--grey">LocalPaymentMethodsPaymentDetails</code></a> object, which allows you to query the details of a <a rel="external noreferrer noopener" target="_blank" href="https://help.shopify.com/manual/payments/shopify-payments/local-payment-methods">local payment method</a> that&#39;s related to a transaction.</p>
  </div>
</div>
<div class="accordion-item">
  <div class="accordion-link">
    <div class="chevron-up"></div>
    <div class="chevron-down"></div>
    <h3>Location error codes <span id="location-error-codes" class="heading-flag breaking"</h3>
  </div>
  <div class="accordion-content">
    <p>We&#39;ve removed the <code class="text-highlight text-highlight--grey">HAS_OPEN_TRANSFERS_ERROR</code> and <code class="text-highlight text-highlight--grey">FAILED_TO_RELOCATE_OPEN_TRANSFERS</code> error codes from the<a href="/docs/api/admin-graphql/2024-10/enums/LocationDeactivateUserErrorCode"><code class="text-highlight text-highlight--grey">LocationDeactivateUserErrorCode</code></a> enum. If you&#39;re explicitly checking for either of these error codes in your app, then you should remove references to them.</p>
  </div>
</div>
<div class="accordion-item">
  <div class="accordion-link">
    <div class="chevron-up"></div>
    <div class="chevron-down"></div>
    <h3>Metafield capabilities</h3>
  </div>
  <div class="accordion-content">
    <p><a href="/docs/api/admin-graphql/2024-10/objects/MetafieldCapabilities">Metafield capabilities</a> provide a way to include logic with your <a href="/docs/api/admin-rest/2024-10/resources/metafield">metafields</a>. When you create a metafield definition, you can now enable <code class="text-highlight text-highlight--grey">capabilities</code> that provide additional behaviors.</p>
<p>You can enable the following capabilities:</p>
<ul>
<li><strong><a href="/docs/apps/build/custom-data/metafields/use-metafield-capabilities#smart-collection">Smart collection</a></strong>: Create an automated collection based on metafield values for a given definition.</li>
<li><strong><a href="/docs/apps/build/custom-data/metafields/use-metafield-capabilities#admin-filterable">Admin filterable</a></strong>: Filter products based on metafield values for a definition.</li>
</ul>
<p><a href="/docs/apps/build/custom-data/metafields/use-metafield-capabilities">Learn more about using metafield capabilities</a>.</p>
  </div>
</div>
<div class="accordion-item">
  <div class="accordion-link">
    <div class="chevron-up"></div>
    <div class="chevron-down"></div>
    <h3>Metafield definitions <span id="metafield-definitions" class="heading-flag breaking"</h3>
  </div>
  <div class="accordion-content">
    <p>We&#39;ve deprecated the <code class="text-highlight text-highlight--grey">definitions.visibleToStorefrontApi</code> argument on the <a href="/docs/api/admin-graphql/unstable/mutations/standardMetafieldDefinitionsEnable#argument-definitions"><code class="text-highlight text-highlight--grey">standardMetafieldDefinitionEnable</code></a> and <a href="/docs/api/admin-graphql/unstable/mutations/standardMetafieldDefinitionsEnable#argument-definitions"><code class="text-highlight text-highlight--grey">standardMetafieldDefinitionsEnable</code></a> mutations. Use the <code class="text-highlight text-highlight--grey">definitions.access</code> argument on these mutations instead.</p>
<aside class="note">
  <h4>Note</h4>
  <p>
The <code class="text-highlight text-highlight--grey">definitions.access</code> argument allows you to specify more granular <a href="/docs/apps/build/custom-data/permissions">permissions</a> when enabling a <a href="/docs/api/admin-graphql/latest/objects/StandardMetafieldDefinitionTemplate">standard metafield definition template</a>.</p>
</aside>
  </div>
</div>
<div class="accordion-item">
  <div class="accordion-link">
    <div class="chevron-up"></div>
    <div class="chevron-down"></div>
    <h3>Metafield definition webhooks</h3>
  </div>
  <div class="accordion-content">
    <p>You can subscribe to <a href="/docs/api/admin-graphql/2024-10/enums/WebhookSubscriptionTopic#value-me[tafielddefinitionscreate"><code class="text-highlight text-highlight--grey">MetafieldDefinition</code></a> webhook changes under the webhook topics:</p>
<ul>
<li><a href="/docs/api/admin-graphql/2024-10/enums/WebhookSubscriptionTopic#value-metafielddefinitionscreate"><code class="text-highlight text-highlight--grey">METAFIELD_DEFINITIONS_CREATE</code></a></li>
<li><a href="/docs/api/admin-graphql/2024-10/enums/WebhookSubscriptionTopic#value-metafielddefinitionsupdate"><code class="text-highlight text-highlight--grey">METAFIELD_DEFINITIONS_UPDATE</code></a></li>
<li><a href="/docs/api/admin-graphql/2024-10/enums/WebhookSubscriptionTopic#value-metafielddefinitionsdelete"><code class="text-highlight text-highlight--grey">METAFIELD_DEFINITIONS_DELETE</code></a></li>
</ul>
  </div>
</div>
<div class="accordion-item">
  <div class="accordion-link">
    <div class="chevron-up"></div>
    <div class="chevron-down"></div>
    <h3>Metafield-linked product options</h3>
  </div>
  <div class="accordion-content">
    <p>In the 2024-04 API version release, we introduced the ability to use the <a href="/docs/api/admin-graphql/2024-10/mutations/productOptionsCreate"><code class="text-highlight text-highlight--grey">productOptionsCreate</code></a>, <a href="/docs/api/admin-graphql/2024-10/mutations/productCreate"><code class="text-highlight text-highlight--grey">productCreate</code></a>, and <a href="/docs/api/admin-graphql/2024-10/mutations/productOptionUpdate"><code class="text-highlight text-highlight--grey">productOptionUpdate</code></a> mutations to create <a href="/docs/apps/build/graphql/migrate/new-product-model/metafield-linked">metafield-linked product options</a>.</p>
<p>As of API version 2024-10, we&#39;ve added more fields and error codes to support linking metafields to product options.</p>
<p><strong>Available types</strong></p>
<table>
  <caption>New types for managing metafield-linked product options</caption>
  <tr>
    <th scope="col">Name</th>
    <th scope="col">Type</th>
    <th scope="col">Change</th>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/input-objects/OptionSetInput#field-linkedmetafield">linkedMetafield</a></code></td>
    <td>Field</td>
    <td>Added to <code>OptionSetInput</code> input object</td>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/input-objects/VariantOptionValueInput#field-linkedmetafieldvalue">linkedMetafieldValue</a></code></td>
    <td>Field</td>
    <td>Added to <code>VariantOptionValueInput</code> input object</td>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/enums/ProductSetUserErrorCode#value-cannotcombinelinkedandnonlinkedoptionvalues">CANNOT_COMBINE_LINKED_AND_NONLINKED_OPTION_VALUES</a></code></td>
    <td>Error code</td>
    <td>Added to <code>ProductSetUserErrorCode</code> enum</td>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/enums/ProductSetUserErrorCode#value-invalidmetafieldvalueforlinkedoption">INVALID_METAFIELD_VALUE_FOR_LINKED_OPTION</a></code></td>
    <td>Error code</td>
    <td>Added to <code>ProductSetUserErrorCode</code> enum</td>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/enums/ProductSetUserErrorCode#value-duplicatelinkedoption">DUPLICATE_LINKED_OPTION</a></code></td>
    <td>Error code</td>
    <td>Added to <code>ProductSetUserErrorCode</code> enum</td>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/enums/ProductSetUserErrorCode#value-linkedoptionsnotsupportedforshop">LINKED_OPTIONS_NOT_SUPPORTED_FOR_SHOP</a></code></td>
    <td>Error code</td>
    <td>Added to <code>ProductSetUserErrorCode</code> enum</td>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/enums/ProductSetUserErrorCode#value-linkedmetafielddefinitionnotfound">LINKED_METAFIELD_DEFINITION_NOT_FOUND</a></code></td>
    <td>Error code</td>
    <td>Added to <code>ProductSetUserErrorCode</code> enum</td>
  </tr>
</table>
  </div>
</div>
<div class="accordion-item">
  <div class="accordion-link">
    <div class="chevron-up"></div>
    <div class="chevron-down"></div>
    <h3>Metafields support for the cartTransformCreate mutation</h3>
  </div>
  <div class="accordion-content">
    <p>We&#39;ve added the <a href="/docs/api/admin-graphql/2024-10/mutations/cartTransformCreate#argument-metafields"><code class="text-highlight text-highlight--grey">metafields</code></a> argument to the <code class="text-highlight text-highlight--grey">cartTransformCreate</code> mutation. You can use the argument to set metafields for a <a href="/docs/api/admin-graphql/2024-10/objects/CartTransform"><code class="text-highlight text-highlight--grey">CartTransform</code></a> object at creation without needing to call the <a href="/docs/api/admin-graphql/2024-10/mutations/metafieldsSet"><code class="text-highlight text-highlight--grey">metafieldsSet</code></a> mutation in a subsequent call.</p>
<p><a href="/docs/api/functions/reference/cart-transform">Learn more about the Cart Transform Function API</a>.</p>
  </div>
</div>
<div class="accordion-item">
  <div class="accordion-link">
    <div class="chevron-up"></div>
    <div class="chevron-down"></div>
    <h3>Online store <span id="order-line-items" class="heading-flag breaking"</h3>
  </div>
  <div class="accordion-content">
    <p>We&#39;ve deprecated the <a href="/docs/api/admin-graphql/2024-10/objects/OnlineStorePage"><code class="text-highlight text-highlight--grey">OnlineStorePage</code></a>, <a href="/docs/api/admin-graphql/2024-10/objects/OnlineStoreArticle"><code class="text-highlight text-highlight--grey">OnlineStoreArticle</code></a>, and <a href="/docs/api/admin-graphql/2024-10/objects/OnlineStoreBlog"><code class="text-highlight text-highlight--grey">OnlineStoreBlog</code></a> objects. Use the <a href="/docs/api/admin-graphql/2024-10/objects/Page"><code class="text-highlight text-highlight--grey">Page</code></a>, <a href="/docs/api/admin-graphql/2024-10/objects/Article"><code class="text-highlight text-highlight--grey">Article</code></a>, and <a href="/docs/api/admin-graphql/2024-10/objects/Blog"><code class="text-highlight text-highlight--grey">Blog</code></a> objects instead.</p>
<p>You can now read and modify pages, articles, blogs, and comments. The following types are now available:</p>
<table>
  <caption>Types for the online store</caption>
  <tr>
    <th scope="col">Name</th>
    <th scope="col">Type</th>
    <th scope="col">Change</th>
  </tr>
 <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/input-objects/pageCreateInput">pageCreateInput</a></code></td>
    <td>Input object</td>
    <td>Added</td>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/input-objects/pageUpdateInput">pageUpdateInput</a></code></td>
    <td>Input object</td>
    <td>Added</td>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/mutations/pageCreate">pageCreate</a></code></td>
    <td>Mutation</td>
    <td>Added</td>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/mutations/pageUpdate">pageUpdate</a></code></td>
    <td>Mutation</td>
    <td>Added</td>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/mutations/pageDelete">pageDelete</a></code></td>
    <td>Mutation</td>
    <td>Added</td>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/queries/page">page</a></code></td>
    <td>Query</td>
    <td>Added</td>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/queries/pages">pages</a></code></td>
    <td>Query</td>
    <td>Added</td>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/queries/pagescount">pagesCount</a></code></td>
    <td>Query</td>
    <td>Added</td>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/enums/TranslatableResourceType#value-page">PAGE</a></code></td>
    <td>Value</td>
    <td>Added to <code>TranslatableResourceType</code> enum</td>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/objects/ArticleAuthor">ArticleAuthor</a></code></td>
    <td>Object</td>
    <td>Added</td>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/input-objects/ArticleBlogInput">ArticleBlogInput</a></code></td>
    <td>Input object</td>
    <td>Added</td>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/input-objects/ArticleCreateInput">ArticleCreateInput</a></code></td>
    <td>Input object</td>
    <td>Added</td>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/input-objects/ArticleImageInput">ArticleImageInput</a></code></td>
    <td>Input object</td>
    <td>Added</td>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/input-objects/ArticleUpdateInput">ArticleUpdateInput</a></code></td>
    <td>Input object</td>
    <td>Added</td>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/mutations/articleCreate">articleCreate</a></code></td>
    <td>Mutation</td>
    <td>Added</td>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/mutations/articleUpdate">articleUpdate</a></code></td>
    <td>Mutation</td>
    <td>Added</td>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/mutations/articleDelete">articleDelete</a></code></td>
    <td>Mutation</td>
    <td>Added</td>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/queries/article">article</a></code></td>
    <td>Query</td>
    <td>Added</td>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/queries/articles">articles</a></code></td>
    <td>Query</td>
    <td>Added</td>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/enums/TranslatableResourceType#value-article">ARTICLE</a></code></td>
    <td>Value</td>
    <td>Added to <code>TranslatableResourceType</code> enum</td>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/input-objects/AuthorInput">AuthorInput</a></code></td>
    <td>Input object</td>
    <td>Added</td>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/input-objects/BlogCreateInput">BlogCreateInput</a></code></td>
    <td>Input object</td>
    <td>Added</td>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/input-objects/BlogUpdateInput">BlogUpdateInput</a></code></td>
    <td>Input object</td>
    <td>Added</td>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/objects/BlogFeed">BlogFeed</a></code></td>
    <td>Object</td>
    <td>Added</td>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/mutations/blogCreate">blogCreate</a></code></td>
    <td>Mutation</td>
    <td>Added</td>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/mutations/blogUpdate">blogUpdate</a></code></td>
    <td>Mutation</td>
    <td>Added</td>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/mutations/blogDelete">blogDelete</a></code></td>
    <td>Mutation</td>
    <td>Added</td>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/queries/blog">blog</a></code></td>
    <td>Query</td>
    <td>Added</td>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/queries/blogs">blogs</a></code></td>
    <td>Query</td>
    <td>Added</td>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/queries/blogscount">blogsCount</a></code></td>
    <td>Query</td>
    <td>Added</td>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/enums/TranslatableResourceType#value-blog">BLOG</a></code></td>
    <td>Value</td>
    <td>Added to <code>TranslatableResourceType</code> enum</td>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/objects/Comment">Comment</a></code></td>
    <td>Object</td>
    <td>Added</td>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/objects/CommentAuthor">CommentAuthor</a></code></td>
    <td>Object</td>
    <td>Added</td>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/mutations/commentApprove">commentApprove</a></code></td>
    <td>Mutation</td>
    <td>Added</td>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/mutations/commentSpam">commentSpam</a></code></td>
    <td>Mutation</td>
    <td>Added</td>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/mutations/commentNotSpam">commentNotSpam</a></code></td>
    <td>Mutation</td>
    <td>Added</td>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/mutations/commentDelete">commentDelete</a></code></td>
    <td>Mutation</td>
    <td>Added</td>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/queries/comment">comment</a></code></td>
    <td>Query</td>
    <td>Added</td>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/queries/comments">comments</a></code></td>
    <td>Query</td>
    <td>Added</td>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/enums/CommentStatus">CommentStatus</a></code></td>
    <td>Enum</td>
    <td>Added</td>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/enums/CommentPolicy">CommentPolicy</a></code></td>
    <td>Enum</td>
    <td>Added</td>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/admin-graphql/2024-10/enums/TranslatableResourceType#value-menu">MENU</a></code></td>
    <td>Value</td>
    <td>Added to <code>TranslatableResourceType</code> enum</td>
  </tr>
</table>
  </div>
</div>
<div class="accordion-item">
  <div class="accordion-link">
    <div class="chevron-up"></div>
    <div class="chevron-down"></div>
    <h3>Optional access scopes</h3>
  </div>
  <div class="accordion-content">
    <p>We&#39;ve added the <a href="/docs/api/admin-graphql/2024-10/objects/App#field-optionalaccessscopes"><code class="text-highlight text-highlight--grey">optionalAccessScopes</code></a> field to the <code class="text-highlight text-highlight--grey">App</code> object so that apps can declare some scopes as optional within their configuration. This field allows merchants to progressively grant apps access to data in their store.</p>
  </div>
</div>
<div class="accordion-item">
  <div class="accordion-link">
    <div class="chevron-up"></div>
    <div class="chevron-down"></div>
    <h3>Order adjustments</h3>
  </div>
  <div class="accordion-content">
    <p>We&#39;ve added the <a href="/docs/api/admin-graphql/2024-10/objects/OrderAdjustment"><code class="text-highlight text-highlight--grey">OrderAdjustment</code></a> object, which represents the difference between a calculated and an actual refund amount. We&#39;ve also added the <a href="/docs/api/admin-graphql/2024-10/objects/Refund#connection-orderadjustments"><code class="text-highlight text-highlight--grey">orderAdjustment</code></a> connection on the <code class="text-highlight text-highlight--grey">Refund</code> object, allowing you to retrieve order adjustments that are attached to a refund.</p>
  </div>
</div>
<div class="accordion-item">
  <div class="accordion-link">
    <div class="chevron-up"></div>
    <div class="chevron-down"></div>
    <h3>Order create</h3>
  </div>
  <div class="accordion-content">
    <p>You can now use the <a href="/docs/api/admin-graphql/2024-10/mutations/orderCreate"><code class="text-highlight text-highlight--grey">orderCreate</code></a> mutation to create an order.</p>
  </div>
</div>
<div class="accordion-item">
  <div class="accordion-link">
    <div class="chevron-up"></div>
    <div class="chevron-down"></div>
    <h3>Order line items <span id="order-line-items" class="heading-flag breaking"</h3>
  </div>
  <div class="accordion-content">
    <p>We&#39;ve removed the <code class="text-highlight text-highlight--grey">lineItemsMutable</code> connection on the <code class="text-highlight text-highlight--grey">Order</code> object. Use the <a href="/docs/api/admin-graphql/2024-10/objects/Order#connection-lineitems"><code class="text-highlight text-highlight--grey">lineItems</code></a> connection on the <code class="text-highlight text-highlight--grey">Order</code> object instead.</p>
  </div>
</div>
<div class="accordion-item">
  <div class="accordion-link">
    <div class="chevron-up"></div>
    <div class="chevron-down"></div>
    <h3>Order management apps <span id="order-management-apps" class="heading-flag breaking"</h3>
  </div>
  <div class="accordion-content">
    <p>The <code class="text-highlight text-highlight--grey">write_third_party_fulfillment_orders</code> access scope no longer allows <a href="/docs/apps/build/orders-fulfillment/order-management-apps">order management apps</a> to fulfill fulfillment orders assigned to locations that are owned by other fulfillment service apps. Order management apps will still be able to access and manage these orders, but fulfillment creation will be prohibited.</p>
<p>The <code class="text-highlight text-highlight--grey">write_assigned_fulfillment_orders</code> and <code class="text-highlight text-highlight--grey">write_merchant_managed_fulfillment_orders</code> access scopes remain unchanged. Fulfillment service apps can still fulfill orders that are assigned to them, as long as they&#39;re granted the <code class="text-highlight text-highlight--grey">write_assigned_fulfillment_orders</code> access scope. Fulfillment orders that are assigned to merchant-managed locations are still fulfillable by order management apps, as long as they&#39;re granted the <code class="text-highlight text-highlight--grey">write_merchant_managed_fulfillment_orders</code> access scope.</p>
<p>Apps can confirm whether fulfillment creation is possible by querying supported actions using the <a href="/docs/api/admin-graphql/2024-10/objects/FulfillmentOrder#field-supportedactions">GraphQL Admin API</a>. If the fulfillment order is assigned to a merchant-managed location or to the fulfillment service performing the query and it&#39;s in a fulfillable state, then the <code class="text-highlight text-highlight--grey">CREATE_FULFILLMENT</code> action is returned as a possible option.</p>
  </div>
</div>
<div class="accordion-item">
  <div class="accordion-link">
    <div class="chevron-up"></div>
    <div class="chevron-down"></div>
    <h3>Order status</h3>
  </div>
  <div class="accordion-content">
    <p>We&#39;ve added the <a href="/docs/api/admin-graphql/2024-10/objects/Order#field-statuspageurl"><code class="text-highlight text-highlight--grey">statusPageUrl</code></a> field to the <code class="text-highlight text-highlight--grey">Order</code> object, allowing you to retrieve the URL where the customer can check the order&#39;s current status.</p>
  </div>
</div>
<div class="accordion-item">
  <div class="accordion-link">
    <div class="chevron-up"></div>
    <div class="chevron-down"></div>
    <h3>Pickup locations <span id="pickup-locations" class="heading-flag breaking"</h3>
  </div>
  <div class="accordion-content">
    <p>You can now use the <a href="/docs/api/admin-graphql/2024-10/objects/FulfillmentOrder#field-destination"><code class="text-highlight text-highlight--grey">destination</code></a> field on the <code class="text-highlight text-highlight--grey">fulfillmentOrder</code> object to retrieve the pickup location for a fulfillment order.</p>
<p>As of API version 2024-10, the <code class="text-highlight text-highlight--grey">destination</code> field returns a <a href="/docs/api/admin-graphql/2024-10/objects/FulfillmentOrderDestination"><code class="text-highlight text-highlight--grey">FulfillmentOrderDestination</code></a> object instead of <code class="text-highlight text-highlight--grey">null</code> for fulfillment orders that don&#39;t have an associated shipping address. If the fulfillment order doesn&#39;t have a shipping address, then the address-related fields within the <code class="text-highlight text-highlight--grey">FulfillmentOrderDestination</code> object are set to <code class="text-highlight text-highlight--grey">null</code>.</p>
  </div>
</div>
<div class="accordion-item">
  <div class="accordion-link">
    <div class="chevron-up"></div>
    <div class="chevron-down"></div>
    <h3>PriceRule types removed <span id="pricerule-types-removed" class="heading-flag breaking"</h3>
  </div>
  <div class="accordion-content">
    <p>As of API version 2024-10, we&#39;ve removed <code class="text-highlight text-highlight--grey">PriceRule</code> types from the GraphQL Admin API. The associated queries and mutations have been deprecated since API version 2023-03. Use the <a href="/docs/api/admin-graphql/2024-10/queries/discountNode"><code class="text-highlight text-highlight--grey">discountNode</code></a> query instead.</p>
<p>The following types have been removed:</p>
<ul>
<li><code class="text-highlight text-highlight--grey">PriceRuleUserError</code> object</li>
<li><code class="text-highlight text-highlight--grey">PriceRuleCustomerSelectionInput</code> input object</li>
<li><code class="text-highlight text-highlight--grey">PriceRuleDiscountCodeInput</code> input object</li>
<li><code class="text-highlight text-highlight--grey">PriceRuleEntitlementToPrerequisiteQuantityRatioInput</code> input object</li>
<li><code class="text-highlight text-highlight--grey">PriceRuleInput</code> input object</li>
<li><code class="text-highlight text-highlight--grey">PriceRuleItemEntitlementsInput</code> input object</li>
<li><code class="text-highlight text-highlight--grey">PriceRuleItemPrerequisitesInput</code> input object</li>
<li><code class="text-highlight text-highlight--grey">PriceRuleMoneyRangeInput</code> input object</li>
<li><code class="text-highlight text-highlight--grey">PriceRulePrerequisiteToEntitlementQuantityRatioInput</code> input object</li>
<li><code class="text-highlight text-highlight--grey">PriceRuleQuantityRangeInput</code> input object</li>
<li><code class="text-highlight text-highlight--grey">PriceRuleShippingEntitlementsInput</code> input object</li>
<li><code class="text-highlight text-highlight--grey">PriceRuleValidityPeriodInput</code> input object</li>
<li><code class="text-highlight text-highlight--grey">PriceRuleValueInput</code> input object</li>
<li><code class="text-highlight text-highlight--grey">priceRuleSavedSearches</code> query</li>
<li><code class="text-highlight text-highlight--grey">PriceRuleActivate</code> mutation</li>
<li><code class="text-highlight text-highlight--grey">PriceRuleCreate</code> mutation</li>
<li><code class="text-highlight text-highlight--grey">PriceRuleDeactivate</code> mutation</li>
<li><code class="text-highlight text-highlight--grey">PriceRuleDelete</code> mutation</li>
<li><code class="text-highlight text-highlight--grey">PriceRuleDiscountCodeCreate</code> mutation</li>
<li><code class="text-highlight text-highlight--grey">PriceRuleDiscountCodeUpdate</code> mutation</li>
<li><code class="text-highlight text-highlight--grey">PriceRuleUpdate</code> mutation</li>
<li><code class="text-highlight text-highlight--grey">priceRule</code> field on the <code class="text-highlight text-highlight--grey">QueryRoot</code> object</li>
<li><code class="text-highlight text-highlight--grey">priceRules</code> connection on the <code class="text-highlight text-highlight--grey">QueryRoot</code> object</li>
<li><code class="text-highlight text-highlight--grey">priceRules</code> connection on the <code class="text-highlight text-highlight--grey">Shop</code> object</li>
<li><code class="text-highlight text-highlight--grey">priceRuleSavedSearches</code> connection on the <code class="text-highlight text-highlight--grey">Shop</code> object</li>
</ul>
  </div>
</div>
<div class="accordion-item">
  <div class="accordion-link">
    <div class="chevron-up"></div>
    <div class="chevron-down"></div>
    <h3>ProductImage value removed <span id="productimage-value-removed" class="heading-flag breaking"</h3>
  </div>
  <div class="accordion-content">
    <p>The <code class="text-highlight text-highlight--grey">PRODUCTIMAGE</code> value has been removed from the <a href="/docs/api/admin-graphql/2024-10/enums/MetafieldOwnerType"><code class="text-highlight text-highlight--grey">MetafieldOwnerType</code></a> enum. Use <code class="text-highlight text-highlight--grey">MEDIA_IMAGE</code> instead.</p>
  </div>
</div>
<div class="accordion-item">
  <div class="accordion-link">
    <div class="chevron-up"></div>
    <div class="chevron-down"></div>
    <h3>ProductInput fields removed <span id="productinput-fields-removed" class="heading-flag breaking"</h3>
  </div>
  <div class="accordion-content">
    <p>We&#39;ve removed the following deprecated <code class="text-highlight text-highlight--grey">ProductInput</code> fields from the GraphQL Admin API:</p>
<ul>
<li><code class="text-highlight text-highlight--grey">bodyHTML</code> is removed. Use the <a href="/docs/api/admin-graphql/2024-10/input-objects/ProductInput#field-descriptionhtml"><code class="text-highlight text-highlight--grey">descriptionHtml</code></a> field instead.</li>
<li><code class="text-highlight text-highlight--grey">privateMetaFields</code> is removed. Use the <a href="/docs/api/admin-graphql/2024-10/input-objects/ProductInput#field-productoptions"><code class="text-highlight text-highlight--grey">productOptions</code></a> field instead.</li>
<li><code class="text-highlight text-highlight--grey">standardizedProductType</code> is removed. Use the <a href="/docs/api/admin-graphql/2024-10/input-objects/ProductInput#field-category"><code class="text-highlight text-highlight--grey">category</code></a> field instead.</li>
<li><code class="text-highlight text-highlight--grey">productCategory</code> is removed. Use the <a href="/docs/api/admin-graphql/2024-10/input-objects/ProductInput#field-category"><code class="text-highlight text-highlight--grey">category</code></a> field instead.</li>
<li><code class="text-highlight text-highlight--grey">customProductType</code> is removed. Use the <a href="/docs/api/admin-graphql/2024-10/input-objects/ProductInput#field-category"><code class="text-highlight text-highlight--grey">category</code></a> field instead.</li>
</ul>
  </div>
</div>
<div class="accordion-item">
  <div class="accordion-link">
    <div class="chevron-up"></div>
    <div class="chevron-down"></div>
    <h3>Product deletions</h3>
  </div>
  <div class="accordion-content">
    <p>We&#39;ve added the <a href="/docs/api/admin-graphql/2024-10/mutations/productDelete#argument-synchronous"><code class="text-highlight text-highlight--grey">synchronous</code></a> argument to the <a href="/docs/api/admin-graphql/2024-10/mutations/productDelete"><code class="text-highlight text-highlight--grey">productDelete</code></a> mutation. The field allows you to choose whether a product should be deleted synchronously or asynchronously.</p>
<ul>
<li><strong>Asynchronous deletion:</strong> By setting the <code class="text-highlight text-highlight--grey">synchronous</code> field to <code class="text-highlight text-highlight--grey">false</code> in the <code class="text-highlight text-highlight--grey">productDelete</code> mutation, the operation proceeds asynchronously, and returns a <a href="/docs/api/admin-graphql/2024-10/objects/ProductDeleteOperation"><code class="text-highlight text-highlight--grey">ProductDeleteOperation</code></a> object.</li>
<li><strong>Operation tracking:</strong> You can track the status of the asynchronous deletion by querying the operation ID through the <a href="/docs/api/admin-graphql/2024-10/queries/productOperation#argument-id"><code class="text-highlight text-highlight--grey">productOperation</code></a> query.</li>
</ul>
  </div>
</div>
<div class="accordion-item">
  <div class="accordion-link">
    <div class="chevron-up"></div>
    <div class="chevron-down"></div>
    <h3>Product duplications <span id="product-duplications" class="heading-flag breaking"</h3>
  </div>
  <div class="accordion-content">
    <p>The <a href="/docs/api/admin-graphql/2024-10/mutations/productDuplicateAsyncV2"><code class="text-highlight text-highlight--grey">productDuplicateAsyncV2</code></a> mutation has been removed. We&#39;ve added the <a href="/docs/api/admin-graphql/2024-10/mutations/productDuplicate#argument-synchronous"><code class="text-highlight text-highlight--grey">synchronous</code></a> argument to the <code class="text-highlight text-highlight--grey">productDuplicate</code> mutation, allowing you to choose whether the product duplication should be processed synchronously or asynchronously.</p>
<ul>
<li><strong>Asynchronous duplication:</strong> By setting the <code class="text-highlight text-highlight--grey">synchronous</code> field to <code class="text-highlight text-highlight--grey">false</code> in the <code class="text-highlight text-highlight--grey">productDuplicate</code> mutation, the operation operates asynchronously, and returns a <a href="/docs/api/admin-graphql/2024-10/objects/ProductDuplicateOperation"><code class="text-highlight text-highlight--grey">ProductDuplicateOperation</code></a> object.</li>
<li><strong>Operation tracking:</strong> You can track the status of the asynchronous duplication by querying the operation ID through the <a href="/docs/api/admin-graphql/2024-10/queries/productOperation#argument-id"><code class="text-highlight text-highlight--grey">productOperation</code></a> query.</li>
</ul>
  </div>
</div>
<div class="accordion-item">
  <div class="accordion-link">
    <div class="chevron-up"></div>
    <div class="chevron-down"></div>
    <h3>Product input <span id="product-input" class="heading-flag breaking"</h3>
  </div>
  <div class="accordion-content">
    <p>We&#39;ve removed the <code class="text-highlight text-highlight--grey">input</code> argument on the <a href="/docs/api/admin-graphql/2024-10/mutations/productCreate"><code class="text-highlight text-highlight--grey">productCreate</code></a> and <a href="/docs/api/admin-graphql/2024-10/mutations/productUpdate"><code class="text-highlight text-highlight--grey">productUpdate</code></a> mutations.</p>
<p>Use the following <code class="text-highlight text-highlight--grey">product</code> arguments instead:</p>
<ul>
<li><a href="/docs/api/admin-graphql/2024-10/input-objects/ProductCreateInput"><code class="text-highlight text-highlight--grey">ProductCreateInput</code></a> on the <code class="text-highlight text-highlight--grey">productCreate</code> mutation</li>
<li><a href="/docs/api/admin-graphql/2024-10/input-objects/ProductUpdateInput"><code class="text-highlight text-highlight--grey">ProductUpdateInput</code></a> on the <code class="text-highlight text-highlight--grey">productUpdate</code> mutation</li>
</ul>
  </div>
</div>
<div class="accordion-item">
  <div class="accordion-link">
    <div class="chevron-up"></div>
    <div class="chevron-down"></div>
    <h3>Product media <span id="product-media" class="heading-flag breaking"</h3>
  </div>
  <div class="accordion-content">
    <p>We&#39;ve made changes to how you work with product media by replacing the current media ID inputs with file inputs and expanding media capabilities:</p>
<ul>
<li><p>The <code class="text-highlight text-highlight--grey">mediaIds</code> field on the <a href="/docs/api/admin-graphql/2024-10/input-objects/ProductSetInput"><code class="text-highlight text-highlight--grey">ProductSetInput</code></a> input object has been removed. Use the <a href="/docs/api/admin-graphql/2024-10/input-objects/ProductSetInput#field-files"><code class="text-highlight text-highlight--grey">files</code></a> field instead to associate files to a product.</p></li>
<li><p>The <code class="text-highlight text-highlight--grey">mediaId</code> field on the <a href="/docs/api/admin-graphql/2024-10/input-objects/ProductVariantSetInput"><code class="text-highlight text-highlight--grey">ProductVariantSetInput</code></a> input object has been removed. Use the <a href="/docs/api/admin-graphql/2024-10/input-objects/ProductVariantSetInput#field-file"><code class="text-highlight text-highlight--grey">file</code></a> field instead to associate a file with the product variant.</p></li>
<li><p>The <a href="/docs/api/admin-graphql/2024-10/input-objects/FileSetInput"><code class="text-highlight text-highlight--grey">FileSetInput</code></a> input object is now available for working with existing media and creating new files. This input object is a derivative of the <a href="/docs/api/admin-graphql/2024-10/input-objects/FileCreateInput"><code class="text-highlight text-highlight--grey">FileCreateInput</code></a> input object, with an added <code class="text-highlight text-highlight--grey">id</code> field.</p></li>
</ul>
  </div>
</div>
<div class="accordion-item">
  <div class="accordion-link">
    <div class="chevron-up"></div>
    <div class="chevron-down"></div>
    <h3>Product mutations <span id="product-mutations" class="heading-flag breaking"</h3>
  </div>
  <div class="accordion-content">
    <p>We&#39;ve removed the following deprecated product mutations from the GraphQL Admin API:</p>
<ul>
<li><a href="/docs/api/admin-graphql/2024-07/mutations/productAppendImages"><code class="text-highlight text-highlight--grey">productAppendImages</code></a> is removed. Use the <a href="/docs/api/admin-graphql/2024-10/mutations/productCreateMedia"><code class="text-highlight text-highlight--grey">productCreateMedia</code></a> mutation instead.</li>
<li><a href="/docs/api/admin-graphql/2024-07/mutations/productDeleteImages"><code class="text-highlight text-highlight--grey">productDeleteImages</code></a> is removed. Use the <a href="/docs/api/admin-graphql/2024-10/mutations/productDeleteMedia"><code class="text-highlight text-highlight--grey">productDeleteMedia</code></a> mutation instead.</li>
<li><a href="/docs/api/admin-graphql/2024-07/mutations/productImageUpdate"><code class="text-highlight text-highlight--grey">productImageUpdate</code></a> is removed. Use the <a href="/docs/api/admin-graphql/2024-10/mutations/productDeleteMedia"><code class="text-highlight text-highlight--grey">productDeleteMedia</code></a>. Use the <a href="/docs/api/admin-graphql/2024-10/mutations/productUpdateMedia"><code class="text-highlight text-highlight--grey">productUpdateMedia</code></a> mutation instead.</li>
<li><a href="/docs/api/admin-graphql/2024-07/mutations/productReorderImages"><code class="text-highlight text-highlight--grey">productReorderImages</code></a> is removed. Use the <a href="/docs/api/admin-graphql/2024-10/mutations/productReorderMedia"><code class="text-highlight text-highlight--grey">productReorderMedia</code></a> mutation instead.</li>
</ul>
  </div>
</div>
<div class="accordion-item">
  <div class="accordion-link">
    <div class="chevron-up"></div>
    <div class="chevron-down"></div>
    <h3>Product restrictions</h3>
  </div>
  <div class="accordion-content">
    <p>We&#39;ve added the <a href="/docs/api/admin-graphql/2024-10/objects/Product#field-restrictedforresource"><code class="text-highlight text-highlight--grey">restrictedForResource</code></a> field to the <code class="text-highlight text-highlight--grey">Product</code> object. The field allows you to query product restrictions for a given <a href="/docs/api/admin-graphql/2024-10/objects/CalculatedOrder"><code class="text-highlight text-highlight--grey">CalculatedOrder</code></a> object, and returns both the restricted status and the reason for the restriction.</p>
  </div>
</div>
<div class="accordion-item">
  <div class="accordion-link">
    <div class="chevron-up"></div>
    <div class="chevron-down"></div>
    <h3>Product taxonomy</h3>
  </div>
  <div class="accordion-content">
    <p>We&#39;ve deprecated the <a href="/docs/api/admin-graphql/2024-10/enums/CollectionRuleColumn#value-producttaxonomynodeid"><code class="text-highlight text-highlight--grey">PRODUCT_TAXONOMY_NODE_ID</code></a> value on the <code class="text-highlight text-highlight--grey">CollectionRuleColumn</code> enum, which is used when creating automated collections. Use the <a href="/docs/api/admin-graphql/2024-10/enums/CollectionRuleColumn#value-producttaxonomynodeid"><code class="text-highlight text-highlight--grey">PRODUCT_CATEGORY_ID</code></a> value instead.</p>
<p>For more information, refer to the <a href="/changelog/introducing-product_category_id-in-collectionrulecolumn-and-deprecating-product_taxonomy_node_id-for-automated-collection-creation">developer changelog</a>.</p>
  </div>
</div>
<div class="accordion-item">
  <div class="accordion-link">
    <div class="chevron-up"></div>
    <div class="chevron-down"></div>
    <h3>Product variant mutations <span id="product-variant-mutations" class="heading-flag breaking"</h3>
  </div>
  <div class="accordion-content">
    <p>We&#39;ve deprecated the following singular product variant mutations in favor of their equivalent bulk versions:</p>
<ul>
<li><p><a href="/docs/api/admin-graphql/2024-07/mutations/productvariantcreate"><code class="text-highlight text-highlight--grey">productVariantCreate</code></a> is deprecated. Use the <a href="/docs/api/admin-graphql/2024-10/mutations/productvariantsbulkcreate"><code class="text-highlight text-highlight--grey">productVariantsBulkCreate</code></a> mutation instead.</p></li>
<li><p><a href="/docs/api/admin-graphql/2024-07/mutations/productvariantupdate"><code class="text-highlight text-highlight--grey">productVariantUpdate</code></a> is deprecated. Use the <a href="/docs/api/admin-graphql/2024-10/mutations/productvariantsbulkupdate"><code class="text-highlight text-highlight--grey">productVariantsBulkUpdate</code></a> mutation instead.</p></li>
<li><p><a href="/docs/api/admin-graphql/2024-07/mutations/productvariantdelete"><code class="text-highlight text-highlight--grey">productVariantDelete</code></a> is deprecated. Use the <a href="/docs/api/admin-graphql/2024-10/mutations/productvariantsbulkdelete"><code class="text-highlight text-highlight--grey">productVariantsBulkDelete</code></a> mutation instead.</p></li>
</ul>
  </div>
</div>
<div class="accordion-item">
  <div class="accordion-link">
    <div class="chevron-up"></div>
    <div class="chevron-down"></div>
    <h3>Product variants count</h3>
  </div>
  <div class="accordion-content">
    <p>We&#39;ve added the <a href="/docs/api/admin-graphql/2024-10/queries/productVariantsCount"><code class="text-highlight text-highlight--grey">productVariantsCount</code></a> query to the GraphQL Admin API to provide parity with the <a href="/docs/api/admin-rest/2024-10/resources/product-variant#get-products-product-id-variants-count">REST Admin API&#39;s <code class="text-highlight text-highlight--grey">ProductVariant</code> count endpoint</a>.</p>
  </div>
</div>
<div class="accordion-item">
  <div class="accordion-link">
    <div class="chevron-up"></div>
    <div class="chevron-down"></div>
    <h3>Product variants strategy</h3>
  </div>
  <div class="accordion-content">
    <p>We&#39;ve added the <a href="/docs/api/admin-graphql/2024-10/mutations/productOptionsCreate#argument-variantstrategy"><code class="text-highlight text-highlight--grey">variantStrategy</code></a> argument to the <code class="text-highlight text-highlight--grey">productOptionsCreate</code> mutation, which enables more precise control over product variant configuration and inventory management.</p>
<p>The <code class="text-highlight text-highlight--grey">variantStrategy</code> argument includes the following input fields:</p>
<ul>
<li><code class="text-highlight text-highlight--grey">CREATE</code>: Generates new product variants for all possible combinations of option values.</li>
<li><code class="text-highlight text-highlight--grey">LEAVE_AS_IS</code>: Updates existing variants to include new option values, without creating new variants.</li>
</ul>
  </div>
</div>
<div class="accordion-item">
  <div class="accordion-link">
    <div class="chevron-up"></div>
    <div class="chevron-down"></div>
    <h3>Products webhook topics</h3>
  </div>
  <div class="accordion-content">
    <p>The <a href="/docs/api/webhooks/2024-10?reference=graphql#list-of-topics-products_create"><code class="text-highlight text-highlight--grey">PRODUCTS_CREATE</code></a> and <a href="/docs/api/webhooks/2024-10?reference=graphql#list-of-topics-products_update"><code class="text-highlight text-highlight--grey">PRODUCTS_UPDATE</code></a> webhook payloads now contain the following fields:</p>
<ul>
<li><p><code class="text-highlight text-highlight--grey">has_variants_that_requires_components</code>: Indicates whether a product has a variant that&#39;s a <a href="/docs/apps/build/product-merchandising/bundles">product bundle</a>. The field mirrors the <a href="/docs/api/admin-graphql/2024-10/objects/Product#field-product-hasvariantsthatrequirescomponents"><code class="text-highlight text-highlight--grey">hasVariantsThatRequiresComponents</code></a> field on the <code class="text-highlight text-highlight--grey">Product</code> object.</p></li>
<li><p><code class="text-highlight text-highlight--grey">category</code>: Information about the product category associated with a product. The <a href="/docs/api/admin-graphql/2024-10/objects/Product#field-category"><code class="text-highlight text-highlight--grey">category</code></a> field exposes a trimmed version of fields that are available on the <code class="text-highlight text-highlight--grey">Product</code> object.</p></li>
</ul>
  </div>
</div>
<div class="accordion-item">
  <div class="accordion-link">
    <div class="chevron-up"></div>
    <div class="chevron-down"></div>
    <h3>Redirects count</h3>
  </div>
  <div class="accordion-content">
    <p>You can now use the <a href="/docs/api/admin-graphql/2024-10/queries/urlRedirectsCount"><code class="text-highlight text-highlight--grey">urlRedirectsCount</code></a> query to retrieve a count of redirects. Previously, this functionality was only available using the REST Admin API.</p>
  </div>
</div>
<div class="accordion-item">
  <div class="accordion-link">
    <div class="chevron-up"></div>
    <div class="chevron-down"></div>
    <h3>Refunding multiple shipping lines</h3>
  </div>
  <div class="accordion-content">
    <p>You can now refund multiple shipping lines using the <a href="/docs/api/admin-graphql/2024-10/input-objects/RefundInput#field-shipping"><code class="text-highlight text-highlight--grey">shipping</code></a> field on the <code class="text-highlight text-highlight--grey">RefundInput</code> input object or <a href="/docs/api/admin-graphql/2024-10/input-objects/ReturnRefundInput#field-refundshipping"><code class="text-highlight text-highlight--grey">refundShipping</code></a> field on the <code class="text-highlight text-highlight--grey">ReturnRefundInput</code> input object.</p>
<p>For more information, refer to the <a href="/changelog/refunding-orders-with-multiple-shipping-lines-returns-accurate-data">developer changelog</a>.</p>
  </div>
</div>
<div class="accordion-item">
  <div class="accordion-link">
    <div class="chevron-up"></div>
    <div class="chevron-down"></div>
    <h3>Removed fields on ShopFeatures object <span id="removed-fields-on-shopfeatures-object" class="heading-flag breaking"</h3>
  </div>
  <div class="accordion-content">
    <p>The following deprecated fields on the <a href="/docs/api/admin-graphql/2024-10/objects/ShopFeatures"><code class="text-highlight text-highlight--grey">ShopFeatures</code></a> object have been removed:</p>
<ul>
<li><code class="text-highlight text-highlight--grey">avalaraAvatax</code></li>
<li><code class="text-highlight text-highlight--grey">branding</code></li>
<li><code class="text-highlight text-highlight--grey">captcha</code></li>
<li><code class="text-highlight text-highlight--grey">dynamicRemarketing</code></li>
<li><code class="text-highlight text-highlight--grey">harmonizedSystemCode</code></li>
<li><code class="text-highlight text-highlight--grey">liveView</code></li>
<li><code class="text-highlight text-highlight--grey">onboardingVisual</code></li>
<li><code class="text-highlight text-highlight--grey">reports</code></li>
<li><code class="text-highlight text-highlight--grey">showMetrics</code></li>
</ul>
<p>Instead of the <code class="text-highlight text-highlight--grey">branding</code> field, use <a href="/docs/api/admin-graphql/2024-10/objects/Shop#field-plan"><code class="text-highlight text-highlight--grey">Shop.plan.shopifyPlus</code></a> instead.</p>
  </div>
</div>
<div class="accordion-item">
  <div class="accordion-link">
    <div class="chevron-up"></div>
    <div class="chevron-down"></div>
    <h3>Removed V2 on Fulfillment mutations <span id="removed-v2-on-fulfillment-mutations" class="heading-flag breaking"</h3>
  </div>
  <div class="accordion-content">
    <p>We&#39;ve deprecated the <a href="/docs/api/admin-graphql/2024-10/mutations/fulfillmentCreateV2"><code class="text-highlight text-highlight--grey">fulfillmentCreateV2</code></a> and <a href="/docs/api/admin-graphql/2024-10/mutations/fulfillmentTrackingInfoUpdateV2"><code class="text-highlight text-highlight--grey">fulfillmentTrackingInfoUpdateV2</code></a> mutations. Use the <a href="/docs/api/admin-graphql/2024-10/mutations/fulfillmentCreate"><code class="text-highlight text-highlight--grey">fulfillmentCreate</code></a> and <a href="/docs/api/admin-graphql/2024-10/mutations/fulfillmentTrackingInfoUpdate"><code class="text-highlight text-highlight--grey">fulfillmentTrackingInfoUpdate</code></a> mutations instead.</p>
<p>The behavior of the new mutations remains the same as the previous ones. The only change is the removal of <code class="text-highlight text-highlight--grey">V2</code> to ensure consistent naming across all mutations.</p>
  </div>
</div>
<div class="accordion-item">
  <div class="accordion-link">
    <div class="chevron-up"></div>
    <div class="chevron-down"></div>
    <h3>Return approvals and rejections</h3>
  </div>
  <div class="accordion-content">
    <p>We&#39;ve added the <code class="text-highlight text-highlight--grey">notifyCustomer</code> field on the <a href="/docs/api/admin-graphql/2024-10/input-objects/ReturnApproveRequestInput#field-notifycustomer"><code class="text-highlight text-highlight--grey">ReturnApproveRequestInput</code></a> input object and the <a href="/docs/api/admin-graphql/2024-10/input-objects/ReturnDeclineRequestInput#field-notifycustomer"><code class="text-highlight text-highlight--grey">ReturnDeclineRequestInput</code></a> input object.</p>
<p>We&#39;ve also added the <a href="/docs/api/admin-graphql/2024-10/input-objects/ReturnDeclineRequestInput#field-declinenote"><code class="text-highlight text-highlight--grey">declineNote</code></a> field on the <code class="text-highlight text-highlight--grey">ReturnDeclineRequestInput</code> input object, which represents the notification message that&#39;s sent to a customer about their declined return request.</p>
  </div>
</div>
<div class="accordion-item">
  <div class="accordion-link">
    <div class="chevron-up"></div>
    <div class="chevron-down"></div>
    <h3>Reverse fulfillment orders <span id="reverse-fulfillment-orders" class="heading-flag breaking"</h3>
  </div>
  <div class="accordion-content">
    <p>The <a href="/docs/api/admin-graphql/2024-07/mutations/reverseDeliveryDispose"><code class="text-highlight text-highlight--grey">reverseDeliveryDispose</code></a> mutation is deprecated. Use the <a href="/docs/api/admin-graphql/2024-10/mutations/reverseFulfillmentOrderDispose"><code class="text-highlight text-highlight--grey">reverseFulfillmentOrderDispose</code></a> mutation instead.</p>
<p>The <a href="/docs/api/admin-graphql/2024-10/objects/ReverseFulfillmentOrderLineItem#field-fulfillmentlineitem"><code class="text-highlight text-highlight--grey">fulfillmentLineItem</code></a> field on the <code class="text-highlight text-highlight--grey">ReverseFulfillmentOrderLineItem</code> object is now nullable. A <code class="text-highlight text-highlight--grey">ReverseFulfillmentOrderLineItem</code> object won&#39;t always be associated with a <code class="text-highlight text-highlight--grey">FulfillmentLineItem</code> object. The non-null <code class="text-highlight text-highlight--grey">fulfillmentLineItem</code> field on API versions prior to 2024-10 returns an error when the fulfillment line item doesn&#39;t exist.</p>
<p><a href="/docs/apps/build/orders-fulfillment/returns-apps/manage-reverse-fulfillment-orders">Learn more about managing reverse fulfillment orders</a>.</p>
  </div>
</div>
<div class="accordion-item">
  <div class="accordion-link">
    <div class="chevron-up"></div>
    <div class="chevron-down"></div>
    <h3>Rounding adjustments on cash amounts</h3>
  </div>
  <div class="accordion-content">
    <p>We&#39;ve added the <a href="/docs/api/admin-graphql/2024-10/objects/OrderTransaction#field-amountrounding"><code class="text-highlight text-highlight--grey">amountRounding</code></a> field on the <code class="text-highlight text-highlight--grey">OrderTransaction</code> object. The <code class="text-highlight text-highlight--grey">amountRounding</code> field represents the rounding adjustment applied on a cash amount in presentment currency.</p>
  </div>
</div>
<div class="accordion-item">
  <div class="accordion-link">
    <div class="chevron-up"></div>
    <div class="chevron-down"></div>
    <h3>Setting available inventory quantity <span id="setting-available-inventory-quantity" class="heading-flag breaking"</h3>
  </div>
  <div class="accordion-content">
    <p>We&#39;ve deprecated the ability to set the available quantity on the <a href="/docs/api/admin-graphql/2024-10/mutations/inventoryActivate"><code class="text-highlight text-highlight--grey">inventoryActivate</code></a> mutation for inventory items that are already in an active state. Use the <a href="/docs/api/admin-graphql/2024-10/mutations/inventorySetQuantities"><code class="text-highlight text-highlight--grey">inventorySetQuantities</code></a> mutation instead.</p>
<p>We&#39;ve also added the <a href="/docs/api/admin-graphql/2024-10/enums/InventorySetQuantitiesUserErrorCode#value-invalidquantitytoolow"><code class="text-highlight text-highlight--grey">INVALID_QUANTITY_TOO_LOW</code></a> value to the <code class="text-highlight text-highlight--grey">InventorySetQuantitiesUserErrorCode</code> enum. The error code is returned if you run the <code class="text-highlight text-highlight--grey">inventorySetQuantities</code> mutation and a quantity is less than negative one billion.</p>
  </div>
</div>
<div class="accordion-item">
  <div class="accordion-link">
    <div class="chevron-up"></div>
    <div class="chevron-down"></div>
    <h3>Shop owner name</h3>
  </div>
  <div class="accordion-content">
    <p>We&#39;ve added the <a href="/docs/api/admin-graphql/2024-10/objects/Shop#field-shopownername"><code class="text-highlight text-highlight--grey">shopOwnerName</code></a> field to the <code class="text-highlight text-highlight--grey">Shop</code> object. The field returns the shop owner&#39;s first and last name.</p>
  </div>
</div>
<div class="accordion-item">
  <div class="accordion-link">
    <div class="chevron-up"></div>
    <div class="chevron-down"></div>
    <h3>Shopify Payments disputes</h3>
  </div>
  <div class="accordion-content">
    <p>You can now use the <a href="/docs/api/admin-graphql/2024-10/objects/ShopifyPaymentsDispute"><code class="text-highlight text-highlight--grey">ShopifyPaymentsDispute</code></a> object to query all Shopify Payments disputes that are associated with a store.</p>
<p>We&#39;ve also added the <a href="/docs/api/admin-graphql/2024-10/enums/ShopifyPaymentsTransactionType#value-advance"><code class="text-highlight text-highlight--grey">ADVANCE</code></a> and <a href="/docs/api/admin-graphql/2024-10/enums/ShopifyPaymentsTransactionType#value-advancefunding"><code class="text-highlight text-highlight--grey">ADVANCE_FUNDING</code></a> values to the <code class="text-highlight text-highlight--grey">ShopifyPaymentsTransactionType</code> enum.</p>
  </div>
</div>
<div class="accordion-item">
  <div class="accordion-link">
    <div class="chevron-up"></div>
    <div class="chevron-down"></div>
    <h3>Shopify Payments payouts</h3>
  </div>
  <div class="accordion-content">
    <p>We&#39;ve added the <a href="/docs/api/admin-graphql/2024-10/objects/ShopifyPaymentsPayoutSummary#field-advancefees"><code class="text-highlight text-highlight--grey">advanceFees</code></a> and <a href="/docs/api/admin-graphql/2024-10/objects/ShopifyPaymentsPayoutSummary#field-advancegross"><code class="text-highlight text-highlight--grey">advanceGross</code></a> fields to the <code class="text-highlight text-highlight--grey">ShopifyPaymentsPayoutSummary</code> object.</p>
  </div>
</div>
<div class="accordion-item">
  <div class="accordion-link">
    <div class="chevron-up"></div>
    <div class="chevron-down"></div>
    <h3>Subscription billing attempts</h3>
  </div>
  <div class="accordion-content">
    <p>We&#39;ve added the <a href="/docs/api/admin-graphql/2024-10/objects/SubscriptionBillingAttempt#connection-transactions"><code class="text-highlight text-highlight--grey">transactions</code></a> connection to the <code class="text-highlight text-highlight--grey">SubscriptionBillingAttempt</code> object. The connection returns the transactions that are created by billing attempts.</p>
  </div>
</div>
<div class="accordion-item">
  <div class="accordion-link">
    <div class="chevron-up"></div>
    <div class="chevron-down"></div>
    <h3>Subscription contracts</h3>
  </div>
  <div class="accordion-content">
    <p>We&#39;ve added the <a href="/docs/api/admin-graphql/2024-10/objects/SubscriptionContract#field-lastbillingattempterrortype"><code class="text-highlight text-highlight--grey">lastBillingAttemptErrorType</code></a> field to the <code class="text-highlight text-highlight--grey">SubscriptionContract</code> object. You can use this field to determine the billing error type when a billing attempt fails.</p>
  </div>
</div>
<div class="accordion-item">
  <div class="accordion-link">
    <div class="chevron-up"></div>
    <div class="chevron-down"></div>
    <h3>Tender transactions</h3>
  </div>
  <div class="accordion-content">
    <p>We&#39;ve added the <a href="/docs/api/admin-graphql/2024-10/objects/TenderTransaction#field-order"><code class="text-highlight text-highlight--grey">order</code></a> field to the <code class="text-highlight text-highlight--grey">TenderTransaction</code> object. You can use the field to retrieve an order that&#39;s related to a transaction with financial impact on a store&#39;s balance sheet. If the order has been deleted, then the value is <code class="text-highlight text-highlight--grey">null</code>.</p>
  </div>
</div>
<div class="accordion-item">
  <div class="accordion-link">
    <div class="chevron-up"></div>
    <div class="chevron-down"></div>
    <h3>Translatable resources</h3>
  </div>
  <div class="accordion-content">
    <p>We&#39;ve added the <a href="/docs/api/admin-graphql/2024-10/enums/TranslatableResourceType#value-onlinestorethemeappembed"><code class="text-highlight text-highlight--grey">ONLINE_STORE_THEME_APP_EMBED</code></a> value to the <code class="text-highlight text-highlight--grey">TranslatableResourceType</code> enum. You can use this value to query the translatable content for an embedded app.</p>
  </div>
</div>
  </div>
</div>


## REST Admin API changes



<aside class="note note-deprecated">
<h4>Legacy</h4>
<p>The REST Admin API is a legacy API as of October 1, 2024. All apps and integrations should be built with the <a href="/docs/api/admin-graphql">GraphQL Admin API</a>. For details and migration steps, visit our <a href="/docs/apps/build/graphql/migrate">migration guide</a>.</p>
</aside>




Version 2024-10 of the REST Admin API introduces the following changes:

<div class="accordion-container">
  <div class="accordion-controls">
    <button class="accordion-control" data-accordion-control-type="expand-all" type="button">Expand all</button>
  </div>
  <div class="accordion-content-container">
    <div class="accordion-item">
  <div class="accordion-link">
    <div class="chevron-up"></div>
    <div class="chevron-down"></div>
    <h3>Business entities</h3>
  </div>
  <div class="accordion-content">
    <p>Large merchants with an established international presence need to be able to specify which of their business entities handles sales for a given buyer context. You can now use the REST Admin API to request the business entity ID (<code class="text-highlight text-highlight--grey">merchant_business_entity_id</code>) associated with an <a href="/docs/api/admin-rest/2024-10/resources/order">order</a>.</p>
  </div>
</div>
<div class="accordion-item">
  <div class="accordion-link">
    <div class="chevron-up"></div>
    <div class="chevron-down"></div>
    <h3>Comment events <span id="event-query-enhancements-rest" class="heading-flag breaking"</h3>
  </div>
  <div class="accordion-content">
    <p>On the <a href="/docs/api/admin-rest/2024-10/resources/event"><code class="text-highlight text-highlight--grey">Event</code></a> resource, we now return <code class="text-highlight text-highlight--grey">null</code> when underlying subject data has been deleted. You must update your code to handle <code class="text-highlight text-highlight--grey">null</code> cases. For example, revise existing logic that assumes the field will always contain data, and implement checks or fallback mechanisms to manage situations where subject data has been deleted.</p>
  </div>
</div>
<div class="accordion-item">
  <div class="accordion-link">
    <div class="chevron-up"></div>
    <div class="chevron-down"></div>
    <h3>Delivery options</h3>
  </div>
  <div class="accordion-content">
    <p>The <code class="text-highlight text-highlight--grey">presented_name</code> property has been added to the <a href="/docs/api/admin-rest/2024-10/resources/fulfillmentorder"><code class="text-highlight text-highlight--grey">FulfillmentOrder</code></a> resource. The <code class="text-highlight text-highlight--grey">presented_name</code> property represents the name of the delivery option that was presented to the customer during checkout.</p>
  </div>
</div>
<div class="accordion-item">
  <div class="accordion-link">
    <div class="chevron-up"></div>
    <div class="chevron-down"></div>
    <h3>Location resource <span id="location-resource" class="heading-flag breaking"</h3>
  </div>
  <div class="accordion-content">
    <p>If your app retrieves a <a href="/docs/api/admin-rest/2024-10/resources/location"><code class="text-highlight text-highlight--grey">Location</code></a> resource, then you need to request the <code class="text-highlight text-highlight--grey">read_locations</code> access scope.</p>
<p>If your app reads a <code class="text-highlight text-highlight--grey">Location</code> resource without the <code class="text-highlight text-highlight--grey">read_locations</code> access scope, then a <a href="/docs/api/admin-rest#status_and_error_codes">403 Forbidden error</a> is returned.</p>
  </div>
</div>
<div class="accordion-item">
  <div class="accordion-link">
    <div class="chevron-up"></div>
    <div class="chevron-down"></div>
    <h3>Products webhook topics</h3>
  </div>
  <div class="accordion-content">
    <p>The <a href="/docs/api/webhooks/2024-10?reference=rest#list-of-topics-products/create"><code class="text-highlight text-highlight--grey">products/create</code></a> and <a href="/docs/api/webhooks/2024-10?reference=rest#list-of-topics-products/update"><code class="text-highlight text-highlight--grey">products/update</code></a> webhook payloads now contain the following properties:</p>
<ul>
<li><code class="text-highlight text-highlight--grey">has_variants_that_requires_components</code>: Indicates whether a product has a variant that&#39;s a <a href="/docs/apps/build/product-merchandising/bundles">product bundle</a></li>
<li><code class="text-highlight text-highlight--grey">category</code>: Information about the product category that&#39;s associated with a product</li>
</ul>
  </div>
</div>
<div class="accordion-item">
  <div class="accordion-link">
    <div class="chevron-up"></div>
    <div class="chevron-down"></div>
    <h3>Refunding multiple shipping lines</h3>
  </div>
  <div class="accordion-content">
    <p>You can now refund multiple shipping lines using the <a href="/docs/api/admin-rest/2024-10/resources/refund"><code class="text-highlight text-highlight--grey">Refunds</code></a> resource in the REST Admin API.</p>
<p>For more information, refer to the <a href="/changelog/refunding-orders-with-multiple-shipping-lines-returns-accurate-data">developer changelog</a>.</p>
  </div>
</div>
<div class="accordion-item">
  <div class="accordion-link">
    <div class="chevron-up"></div>
    <div class="chevron-down"></div>
    <h3>Rounding adjustments on cash amounts</h3>
  </div>
  <div class="accordion-content">
    <p>We&#39;ve added the <a href="/docs/api/admin-rest/2024-10/resources/transaction#resource-object"><code class="text-highlight text-highlight--grey">amount_rounding</code></a> property on the <code class="text-highlight text-highlight--grey">Transaction</code> resource. The <code class="text-highlight text-highlight--grey">amount_rounding</code> property represents the rounding adjustment applied on a cash amount in presentment currency.</p>
  </div>
</div>
  </div>
</div>


## Storefront API changes

Version 2024-10 of the Storefront API introduces the following changes:

<div class="accordion-container">
  <div class="accordion-controls">
    <button class="accordion-control" data-accordion-control-type="expand-all" type="button">Expand all</button>
  </div>
  <div class="accordion-content-container">
    <div class="accordion-item">
  <div class="accordion-link">
    <div class="chevron-up"></div>
    <div class="chevron-down"></div>
    <h3>Cart warnings <span id="cart-warnings" class="heading-flag breaking"</h3>
  </div>
  <div class="accordion-content">
    <p>Inventory errors about stock levels are no longer included in the <code class="text-highlight text-highlight--grey">userErrors</code> of cart mutations. Inventory errors are now available in the <code class="text-highlight text-highlight--grey">warnings</code> return field, and contain the following explicit values:</p>
<ul>
<li><code class="text-highlight text-highlight--grey">MERCHANDISE_NOT_ENOUGH_STOCK</code></li>
<li><code class="text-highlight text-highlight--grey">MERCHANDISE_OUT_OF_STOCK</code></li>
</ul>
<p>Warnings are available on all cart mutations to show automatic changes that occurred while executing the mutation. You can use warnings to manage items in your cart or display information to a buyer. For example, you can remove out-of-stock lines from a cart by using the <a href="/docs/api/storefront/2024-10/mutations/cartLinesRemove#field-cartlinesremovepayload-warnings"><code class="text-highlight text-highlight--grey">target</code></a> field included in the <code class="text-highlight text-highlight--grey">warning</code> as the input to the <code class="text-highlight text-highlight--grey">cartLinesRemove</code> mutation.</p>
<p><a href="/docs/storefronts/headless/building-with-the-storefront-api/cart/cart-warnings">Learn more about cart warnings</a>.</p>
  </div>
</div>
<div class="accordion-item">
  <div class="accordion-link">
    <div class="chevron-up"></div>
    <div class="chevron-down"></div>
    <h3>Shop Pay installments pricing</h3>
  </div>
  <div class="accordion-content">
    <p>We&#39;ve added <code class="text-highlight text-highlight--grey">ShopPayInstallmentsPricing</code> fields to the <a href="/docs/api/storefront/2024-10/objects/Shop"><code class="text-highlight text-highlight--grey">Shop</code></a> and <a href="/docs/api/storefront/2024-10/objects/ProductVariant"><code class="text-highlight text-highlight--grey">ProductVariant</code></a> types. In the future, Hydrogen will support using these fields to display the <a rel="external noreferrer noopener" target="_blank" href="https://help.shopify.com/manual/payments/shop-pay-installments/product-banner">Shop Pay installments banner</a> on the product page. These require the <code class="text-highlight text-highlight--grey">unauthenticated_read_shop_pay_installments_pricing</code> access scope.</p>
  </div>
</div>
<div class="accordion-item">
  <div class="accordion-link">
    <div class="chevron-up"></div>
    <div class="chevron-down"></div>
    <h3>Combined listings support</h3>
  </div>
  <div class="accordion-content">
    <p>You can now query <a href="/docs/apps/build/product-merchandising/combined-listings">combined listings</a> products.</p>
<p>The <a href="/docs/api/storefront/2024-10/objects/Product#field-options"><code class="text-highlight text-highlight--grey">options</code></a> field on the <code class="text-highlight text-highlight--grey">Product</code> object returns options and values for both parent and child products. We&#39;ve also added the following fields to simplify working with complex products:</p>
<ul>
<li><a href="/docs/api/storefront/2024-10/objects/Product#field-adjacentvariants"><code class="text-highlight text-highlight--grey">Product.adjacentVariants</code></a></li>
<li><a href="/docs/api/storefront/2024-10/objects/Product#field-selectedorfirstavailablevariant"><code class="text-highlight text-highlight--grey">Product.selectedOrFirstAvailableVariant</code></a></li>
<li><a href="/docs/api/storefront/2024-10/objects/Product#field-encodedvariantavailability"><code class="text-highlight text-highlight--grey">Product.encodedVariantAvailability</code></a></li>
<li><a href="/docs/api/storefront/2024-10/objects/Product#field-encodedvariantexistence"><code class="text-highlight text-highlight--grey">Product.encodedVariantExistence</code></a></li>
<li><a href="/docs/api/storefront/2024-10/objects/ProductOptionValue#field-firstselectablevariant"><code class="text-highlight text-highlight--grey">ProductOptionValue.firstSelectableVariant</code></a></li>
</ul>
<p>In the future, you&#39;ll be able to use these fields in <a href="/docs/api/hydrogen">Hydrogen</a> to build option pickers and display combined listings and other complex products on a storefront.</p>
  </div>
</div>
  </div>
</div>


## Shopify Function APIs changes

Version 2024-10 of the Shopify Function APIs introduces the following changes:

<div class="accordion-container">
  <div class="accordion-controls">
    <button class="accordion-control" data-accordion-control-type="expand-all" type="button">Expand all</button>
  </div>
  <div class="accordion-content-container">
    <div class="accordion-item">
  <div class="accordion-link">
    <div class="chevron-up"></div>
    <div class="chevron-down"></div>
    <h3>Fulfillment constraints</h3>
  </div>
  <div class="accordion-content">
    <p>You can now associate a <a href="/docs/apps/build/orders-fulfillment/order-routing-apps/build-fulfillment-constraints-function">fulfillment constraint function</a> to one or multiple delivery methods, such as <code class="text-highlight text-highlight--grey">SHIPPING</code> and <code class="text-highlight text-highlight--grey">PICKUP</code>. The function will only run under the context of the specified delivery methods.</p>
<p>We&#39;ve added the <a href="/docs/api/admin-graphql/2024-10/objects/FulfillmentConstraintRule#field-deliverymethodtypes"><code class="text-highlight text-highlight--grey">deliveryMethodTypes</code></a> field to the <code class="text-highlight text-highlight--grey">FulfillmentConstraintRule</code> object. You can use the <a href="/docs/api/admin-graphql/2024-10/mutations/fulfillmentConstraintRuleCreate"><code class="text-highlight text-highlight--grey">fulfillmentConstraintRuleCreate</code></a> mutation to register your fulfillment constraint function and associate it with one or more delivery methods.</p>
<p>Use the <a href="/docs/api/admin-graphql/2024-10/mutations/fulfillmentConstraintRuleUpdate"><code class="text-highlight text-highlight--grey">fulfillmentConstraintRuleUpdate</code></a> mutation to update delivery methods for an existing registered function.</p>
  </div>
</div>
<div class="accordion-item">
  <div class="accordion-link">
    <div class="chevron-up"></div>
    <div class="chevron-down"></div>
    <h3>Metafields support for the cartTransformCreate mutation</h3>
  </div>
  <div class="accordion-content">
    <p>We&#39;ve added the <a href="/docs/api/admin-graphql/2024-10/mutations/cartTransformCreate#argument-metafields"><code class="text-highlight text-highlight--grey">metafields</code></a> argument to the <code class="text-highlight text-highlight--grey">cartTransformCreate</code> mutation. You can use the argument to set metafields for a <a href="/docs/api/admin-graphql/2024-10/objects/CartTransform"><code class="text-highlight text-highlight--grey">CartTransform</code></a> object at creation without needing to call the <a href="/docs/api/admin-graphql/2024-10/mutations/metafieldsSet"><code class="text-highlight text-highlight--grey">metafieldsSet</code></a> mutation in a subsequent call.</p>
<p><a href="/docs/api/functions/reference/cart-transform">Learn more about the Cart Transform Function API</a>.</p>
  </div>
</div>
  </div>
</div>


## Customer Account API changes

Version 2024-10 of the Customer Account API introduces the following changes:

<div class="accordion-container">
  <div class="accordion-controls">
    <button class="accordion-control" data-accordion-control-type="expand-all" type="button">Expand all</button>
  </div>
  <div class="accordion-content-container">
    <div class="accordion-item">
  <div class="accordion-link">
    <div class="chevron-up"></div>
    <div class="chevron-down"></div>
    <h3>Deposits for payment terms</h3>
  </div>
  <div class="accordion-content">
    <p>You can now query the <a href="/docs/api/customer/2024-10/objects/DepositPercentage">percentage-based deposit requirement</a> for your payment terms on company locations.</p>
<p><a rel="external noreferrer noopener" target="_blank" href="https://help.shopify.com/manual/b2b/payment-terms#deposits">Learn more about deposits</a>.</p>
  </div>
</div>
<div class="accordion-item">
  <div class="accordion-link">
    <div class="chevron-up"></div>
    <div class="chevron-down"></div>
    <h3>Subscription contracts</h3>
  </div>
  <div class="accordion-content">
    <p>We&#39;ve added new types for subscription contracts. The <code class="text-highlight text-highlight--grey">customer_read_own_subscription_contracts</code> permission is now required to query subscription contracts and the <code class="text-highlight text-highlight--grey">customer_write_own_subscription_contracts</code> permission is required to run subscription contracts mutations.</p>
<p>The following new types for managing subscription contracts are available:</p>
<table>
  <caption>New types for managing subscription contracts</caption>
  <tr>
    <th scope="col">Name</th>
    <th scope="col">Type</th>
    <th scope="col">Change</th>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/customer/2024-10/input-objects/SubscriptionBillingCycleInput">SubscriptionBillingCycleInput</a></code></td>
    <td>Input object</td>
    <td>Added</td>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/customer/2024-10/input-objects/SubscriptionBillingCycleSelector">SubscriptionBillingCycleSelector</a></code></td>
    <td>Input object</td>
    <td>Added</td>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/customer/2024-10/input-objects/SubscriptionDeliveryMethodInput">SubscriptionDeliveryMethodInput</a></code></td>
    <td>Input object</td>
    <td>Added</td>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/customer/2024-10/input-objects/SubscriptionDeliveryMethodLocalDeliveryInput">SubscriptionDeliveryMethodLocalDeliveryInput</a></code></td>
    <td>Input object</td>
    <td>Added</td>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/customer/2024-10/input-objects/SubscriptionDeliveryMethodPickupInput">SubscriptionDeliveryMethodPickupInput</a></code></td>
    <td>Input object</td>
    <td>Added</td>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/customer/2024-10/input-objects/SubscriptionDeliveryMethodShippingInput">SubscriptionDeliveryMethodShippingInput</a></code></td>
    <td>Input object</td>
    <td>Added</td>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/customer/2024-10/objects/SubscriptionContractStatusUpdateUserError">SubscriptionContractStatusUpdateUserError</a></code></td>
    <td>Object</td>
    <td>Added</td>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/customer/2024-10/objects/SubscriptionContractUserError">SubscriptionContractUserError</a></code></td>
    <td>Object</td>
    <td>Added</td>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/customer/2024-10/objects/SubscriptionDeliveryMethodLocalDeliveryOption">SubscriptionDeliveryMethodLocalDeliveryOption</a></code></td>
    <td>Object</td>
    <td>Added</td>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/customer/2024-10/objects/SubscriptionDeliveryMethodLocalDelivery">SubscriptionDeliveryMethodLocalDelivery</a></code></td>
    <td>Object</td>
    <td>Added</td>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/customer/2024-10/objects/SubscriptionDeliveryMethodPickupOption">SubscriptionDeliveryMethodPickupOption</a></code></td>
    <td>Object</td>
    <td>Added</td>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/customer/2024-10/objects/SubscriptionDeliveryMethodPickup">SubscriptionDeliveryMethodPickup</a></code></td>
    <td>Object</td>
    <td>Added</td>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/customer/2024-10/objects/SubscriptionDeliveryMethodShippingOption">SubscriptionDeliveryMethodShippingOption</a></code></td>
    <td>Object</td>
    <td>Added</td>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/customer/2024-10/objects/SubscriptionDeliveryMethodShipping">SubscriptionDeliveryMethodShipping</a></code></td>
    <td>Object</td>
    <td>Added</td>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/customer/2024-10/objects/SubscriptionLine">SubscriptionLine</a></code></td>
    <td>Object</td>
    <td>Added</td>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/customer/2024-10/objects/SubscriptionLocalDeliveryOption">SubscriptionLocalDeliveryOption</a></code></td>
    <td>Object</td>
    <td>Added</td>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/customer/2024-10/objects/SubscriptionPickupOption">SubscriptionPickupOption</a></code></td>
    <td>Object</td>
    <td>Added</td>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/customer/2024-10/objects/SubscriptionMailingAddress">SubscriptionMailingAddress</a></code></td>
    <td>Object</td>
    <td>Added</td>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/customer/2024-10/objects/SubscriptionShippingOption">SubscriptionShippingOption</a></code></td>
    <td>Object</td>
    <td>Added</td>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/customer/2024-10/unions/SubscriptionDeliveryMethod">SubscriptionDeliveryMethod</a></code></td>
    <td>Union</td>
    <td>Added</td>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/customer/2024-10/unions/SubscriptionDeliveryOption">SubscriptionDeliveryOption</a></code></td>
    <td>Union</td>
    <td>Added</td>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/customer/2024-10/interfaces/SubscriptionContractBase">SubscriptionContractBase</a></code></td>
    <td>Interface</td>
    <td>Added</td>
  </tr>
  <tr>
    <td scope="row"><code><a href="/docs/api/customer/2024-10/mutations/subscriptionContractFetchDeliveryOptions#argument-address">address</a></code></td>
    <td>Argument</td>
    <td>Added to <code>SubscriptionContractFetchDeliveryOptions</code> mutation</td>
  </tr>
</table>
  </div>
</div>
  </div>
</div>