> 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>
  <tr>
    <th>Release date</th>
    <th>Date version is no longer supported</th>
  </tr>
  <tr>
    <td>July 1, 2019</td>
    <td>July 1, 2020</td>
  </tr>
</table>

The 2019-07 release focuses on improving performance by removing page-based pagination and introducing a more efficient way to paginate through resources using cursor-based pagination. Cursor-based pagination has been implemented across various endpoints, and more are expected to support cursor-paged pagination in upcoming versions.

The GraphQL Admin API is growing in 2019-07. Among some of the GraphQL API changes is the introduction of delivery profiles, which now gives developers the ability to set per-product and per-location shipping rules. Support for billing and automatic discounting is also now available in GraphQL. Metafields can now be accessed and published to the Storefront API in 2019-07.

**What’s new in 2019-07**

- Storefront API was added to our admin versioning scheme
- Page-based pagination has been replaced by cursor-based pagination across multiple REST endpoints
- Delivery profiles was added to allow you to set per-product and per-location shipping rules
- Added GraphQL support for billing
- Improved sorting of metafields
- Improved interoperability for consuming webhook data with the addition GraphQL Admin API IDs
- Metafields were made available through Storefront API
- New discount types added in GraphQL

Below are all the changes introduced to the REST Admin API, the GraphQL Admin API, and the Storefront API in 2019-07.

## Breaking changes
These changes require special attention as failure to migrate can result in broken requests in the future.

### Pagination
Page-based pagination has been removed, and has been replaced with [cursor-based pagination](/docs/api/usage/pagination-rest) on many endpoints.

To migrate, see our guide on [cursor-based pagination](/docs/api/usage/pagination-rest#make-a-request-for-paginated-data).

### Featured field removed from Collect
The `featured` field was removed from the [collect](/docs/api/admin-rest/latest/resources/collect) endpoint.

To migrate, [update the URL of all your requests](/docs/api/usage/versioning#making-requests-to-an-api-version) to the collect endpoint to API version `2019-07` or later.

### GraphQL Admin ID added to webhooks
Added the `admin_graphql_api_id` property to webhook payloads for many resources.

>Note
This is a breaking change exclusive to apps that use versions of the `shopify_app` gem lower than 10.0.0 and Rails versions lower than 5.2.1.1. See the [`shopify_app` gem changelog](https://github.com/Shopify/shopify_app/blob/main/CHANGELOG.md#1000) for more details.

To migrate, [update webhook API version](/docs/apps/build/webhooks) to API version `2019-07` or later.

## Developer preview

There is no developer preview for the API changes in version 2019-07. [Use a development store](/docs/api/development-stores) for your development environments.

To use the new API features, [call the 2019-07 version of the API](/docs/api/usage/versioning#making-requests-to-an-api-version).

## REST Admin API changes

### [Abandoned checkouts](/docs/api/admin-rest/latest/resources/abandoned-checkouts)
* Added new route `/admin/api/2019-07/abandoned_checkouts.json` to access the Abandoned checkouts API.

### ArticleSavedSearch
* Removed the `page` filter, and replaced page-based pagination with [cursor-based pagination](/docs/api/usage/pagination-rest) for `GET /admin/api/2019-07/article_saved_searches.json`. <span class="heading-flag breaking"></span>

### BalanceTransactionSavedSearch
* Removed the `page` filter, and replaced page-based pagination with [cursor-based pagination](/docs/api/usage/pagination-rest) for `GET /admin/api/2019-07/balance_transaction_saved_searches.json`. <span class="heading-flag breaking"></span>

### BlogSavedSearch
* Removed the `page` filter, and replaced page-based pagination with [cursor-based pagination](/docs/api/usage/pagination-rest) for `GET /admin/api/2019-07/blog_saved_searches.json`. <span class="heading-flag breaking"></span>

### [Checkout](/docs/api/admin-rest/latest/resources/checkout)
* Removed the `X-Shopify-Checkout-Version` header support from `GET /admin/checkouts.json`.

### CheckoutSavedSearch
* Removed the `page` filter, and replaced page-based pagination with [cursor-based pagination](/docs/api/usage/pagination-rest) for `GET /admin/api/2019-07/checkout_saved_searches.json`. <span class="heading-flag breaking"></span>

### [Collect](/docs/api/admin-rest/latest/resources/collect)
* Removed the `page` filter, and replaced page-based pagination with [cursor-based pagination](/docs/api/usage/pagination-rest) for `GET /admin/api/2019-07/collects.json`. <span class="heading-flag breaking"></span>
* Removed the `featured` property. <span class="heading-flag breaking"></span>

### [CollectionListing](/docs/api/admin-rest/latest/resources/collectionlisting)
* Removed the `page` filter, and replaced page-based pagination with [cursor-based pagination](/docs/api/usage/pagination-rest) for `GET /admin/api/2019-07/collection_listings.json`. <span class="heading-flag breaking"></span>
* Removed the `page` filter, and replaced page-based pagination with [cursor-based pagination](/docs/api/usage/pagination-rest) for `GET /admin/api/2019-07/collection_listings/#{collection_listing_id}/product_ids.json`. <span class="heading-flag breaking"></span>

### Collections
* Requests that pass a value for `title` will match only if the value is the same as the complete title. Partial matches aren't supported.
* Removed the `page` filter, and replaced page-based pagination with [cursor-based pagination](/docs/api/usage/pagination-rest) for `GET /admin/api/2019-07/collections.json`. <span class="heading-flag breaking"></span>

### CollectionSavedSearch
* Removed the `page` filter, and replaced page-based pagination with [cursor-based pagination](/docs/api/usage/pagination-rest) for `GET /admin/api/2019-07/collection_saved_searches.json`. <span class="heading-flag breaking"></span>

### CommentSavedSearch
* Removed the `page` filter, and replaced page-based pagination with [cursor-based pagination](/docs/api/usage/pagination-rest) for `GET /admin/api/2019-07/comment_saved_searches.json`. <span class="heading-flag breaking"></span>

### [Country](/docs/api/admin-rest/latest/resources/country)
* Removed the ability to update a province's code. <span class="heading-flag breaking"></span>

### [Customer](/docs/api/admin-rest/latest/resources/customer)
* Added [`tax_exemptions`](/docs/api/admin-rest/latest/resources/customer#tax-exempt-property) property.

### CustomerSavedSearch
* Removed the `page` filter, and replaced page-based pagination with [cursor-based pagination](/docs/api/usage/pagination-rest) for `GET /admin/api/2019-07/customer_saved_searches.json`. <span class="heading-flag breaking"></span>

### DiscountCodeSavedSearch
* Removed the `page` filter, and replaced page-based pagination with [cursor-based pagination](/docs/api/usage/pagination-rest) for `GET /admin/api/2019-07/discount_code_saved_searches.json`. <span class="heading-flag breaking"></span>

### DraftOrderSavedSearch
* Removed the `page` filter, and replaced page-based pagination with [cursor-based pagination](/docs/api/usage/pagination-rest) for `GET /admin/api/2019-07/draft_order_saved_searches.json`. <span class="heading-flag breaking"></span>

### [Event](/docs/api/admin-rest/latest/resources/event)
* Removed the `page` filter, and replaced page-based pagination with [cursor-based pagination](/docs/api/usage/pagination-rest) for `GET /admin/api/2019-07/events.json`. <span class="heading-flag breaking"></span>

### FileSavedSearch
* Removed the `page` filter, and replaced page-based pagination with [cursor-based pagination](/docs/api/usage/pagination-rest) for `GET /admin/api/2019-07/file_saved_searches.json`. <span class="heading-flag breaking"></span>

### GiftCardSavedSearch
* Removed the `page` filter, and replaced page-based pagination with [cursor-based pagination](/docs/api/usage/pagination-rest) for `GET /admin/api/2019-07/gift_card_saved_searches.json`. <span class="heading-flag breaking"></span>

### InventoryTransferSavedSearch
* Removed the `page` filter, and replaced page-based pagination with [cursor-based pagination](/docs/api/usage/pagination-rest) for `GET /admin/api/2019-07/inventory_transfer_saved_searches.json`. <span class="heading-flag breaking"></span>

### [Metafield](/docs/api/admin-rest/latest/resources/metafield)
* By default, metafields are now sorted by ID instead of namespace and key.
* Removed the `page` filter, and replaced page-based pagination with [cursor-based pagination](/docs/api/usage/pagination-rest) for `GET /admin/api/2019-07/metafields.json`. <span class="heading-flag breaking"></span>

### OrderSavedSearch
* Removed the `page` filter, and replaced page-based pagination with [cursor-based pagination](/docs/api/usage/pagination-rest) for `GET /admin/api/2019-07/order_saved_searches.json`.

### PageSavedSearch
* Removed the `page` filter, and replaced page-based pagination with [cursor-based pagination](/docs/api/usage/pagination-rest) for `GET /admin/api/2019-07/page_saved_searches.json`. <span class="heading-flag breaking"></span>

### PriceRuleSavedSearch
* Removed the `page` filter, and replaced page-based pagination with [cursor-based pagination](/docs/api/usage/pagination-rest) for `GET /admin/api/2019-07/price_rule_saved_searches.json`. <span class="heading-flag breaking"></span>

### [Product](/docs/api/admin-rest/latest/resources/product)
* Removed the `page` filter, and replaced page-based pagination with [cursor-based pagination](/docs/api/usage/pagination-rest) for `GET /admin/api/2019-07/products.json`. <span class="heading-flag breaking"></span>
* Requests that pass a value for `title` will match only if the value is the same as the complete title. Partial matches aren't supported.

### [ProductListing](/docs/api/admin-rest/latest/resources/productlisting)
* Removed the `page` filter, and replaced page-based pagination with [cursor-based pagination](/docs/api/usage/pagination-rest) for `GET /admin/api/2019-07/product_listings.json`. <span class="heading-flag breaking"></span>

### ProductSavedSearch
* Removed the `page` filter, and replaced page-based pagination with [cursor-based pagination](/docs/api/usage/pagination-rest) for `GET /admin/api/2019-07/product_saved_searches.json`. <span class="heading-flag breaking"></span>

### [ProductVariant](/docs/api/admin-rest/latest/resources/product-variant)
* Removed the `page` filter, and replaced page-based pagination with [cursor-based pagination](/docs/api/usage/pagination-rest) for `GET /admin/api/2019-07/variants/search.json`. <span class="heading-flag breaking"></span>

### ProductVariantSavedSearch
* Removed the `page` filter, and replaced page-based pagination with [cursor-based pagination](/docs/api/usage/pagination-rest) for `GET /admin/api/2019-07/product_variant_saved_searches.json`. <span class="heading-flag breaking"></span>

### [Province](/docs/api/admin-rest/latest/resources/province)
* Removed the ability to update a province's code. <span class="heading-flag breaking"></span>

### RedirectSavedSearch
* Removed the `page` filter, and replaced page-based pagination with [cursor-based pagination](/docs/api/usage/pagination-rest) for `GET /admin/api/2019-07/redirect_saved_searches.json`. <span class="heading-flag breaking"></span>

### [ShippingZone](/docs/api/admin-rest/latest/resources/shippingzone)
* Added `profile_id`, `location_group_id`, and `admin_graphql_api_id` properties. [Learn more](/docs/apps/build/purchase-options/deferred/delivery-and-deferment/build-delivery-profiles).

### TransferSavedSearch
* Removed the `page` filter, and replaced page-based pagination with [cursor-based pagination](/docs/api/usage/pagination-rest) for `GET /admin/api/2019-07/transfer_saved_searches.json`. <span class="heading-flag breaking"></span>

### [Webhook](/docs/api/admin-rest/latest/resources/webhook)
* Added the `admin_graphql_api_id` property to webhook payloads for many resources for easier interoperability. The property returns the resource's GraphQL Admin API ID in the global ID format: `gid://shopify/Order/1234`. <span class="heading-flag breaking"></span>

>Note
This is a breaking change exclusive to apps that use versions of the `shopify_app` gem lower than 10.0.0 and Rails versions lower than 5.2.1.1. See the [`shopify_app` gem changelog](https://github.com/Shopify/shopify_app/blob/main/CHANGELOG.md#1000) for more details.

## GraphQL Admin API changes

### Schema 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>Changes to QueryRoot</h3>
  </div>
  <div class="accordion-content">
    <p><strong>The following fields were added</strong></p>
<ul>
<li><code class="text-highlight text-highlight--grey">activatedCarrierServices</code></li>
<li><a href="/docs/api/admin-graphql/latest/objects/queryroot#field-queryroot-availablecarrierservices"><code class="text-highlight text-highlight--grey">availableCarrierServices</code></a></li>
<li><code class="text-highlight text-highlight--grey">automaticDiscounts</code></li>
<li><a href="/docs/api/admin-graphql/latest/objects/queryroot#field-queryroot-automaticdiscountsavedsearches"><code class="text-highlight text-highlight--grey">automaticDiscountSavedSearches</code></a></li>
<li><a href="/docs/api/admin-graphql/latest/objects/queryroot#field-queryroot-automaticdiscountnodes"><code class="text-highlight text-highlight--grey">automaticDiscountNodes</code></a></li>
<li><a href="/docs/api/admin-graphql/latest/objects/queryroot#field-queryroot-automaticdiscountnode"><code class="text-highlight text-highlight--grey">automaticDiscountNode</code></a></li>
<li><code class="text-highlight text-highlight--grey">automaticDiscount</code></li>
<li><a href="/docs/api/admin-graphql/latest/objects/queryroot#field-queryroot-carrierservice"><code class="text-highlight text-highlight--grey">carrierService</code></a></li>
<li><a href="/docs/api/admin-graphql/latest/objects/queryroot#field-queryroot-codediscountsavedsearches"><code class="text-highlight text-highlight--grey">codeDiscountSavedSearches</code></a></li>
<li><a href="/docs/api/admin-graphql/latest/objects/queryroot#field-queryroot-codediscountnodes"><code class="text-highlight text-highlight--grey">codeDiscountNodes</code></a></li>
<li><a href="/docs/api/admin-graphql/latest/objects/queryroot#field-queryroot-codediscountnode"><code class="text-highlight text-highlight--grey">codeDiscountNode</code></a></li>
<li><a href="/docs/api/admin-graphql/latest/objects/queryroot#field-queryroot-codediscountnodebycode"><code class="text-highlight text-highlight--grey">codeDiscountNodeByCode</code></a></li>
<li><a href="/docs/api/admin-graphql/latest/objects/queryroot#field-queryroot-deliveryprofile"><code class="text-highlight text-highlight--grey">deliveryProfile</code></a></li>
<li><a href="/docs/api/admin-graphql/latest/objects/queryroot#field-queryroot-deliveryprofiles"><code class="text-highlight text-highlight--grey">deliveryProfiles</code></a></li>
<li><a href="/docs/api/admin-graphql/latest/objects/queryroot#field-queryroot-deliverysettings"><code class="text-highlight text-highlight--grey">deliverySettings</code></a></li>
<li><code class="text-highlight text-highlight--grey">locationsAvailableForDeliveryProfiles</code></li>
<li><a href="/docs/api/admin-graphql/latest/objects/queryroot#field-queryroot-metafieldstorefrontvisibilities"><code class="text-highlight text-highlight--grey">metafieldStorefrontVisibilities</code></a></li>
<li><a href="/docs/api/admin-graphql/latest/objects/queryroot#field-queryroot-metafieldstorefrontvisibility"><code class="text-highlight text-highlight--grey">metafieldStorefrontVisibility</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>Changes to objects</h3>
  </div>
  <div class="accordion-content">
    <p><strong>The following fields were added</strong></p>
<ul>
<li><code class="text-highlight text-highlight--grey">activeSubscriptions</code> was added to <a href="/docs/api/admin-graphql/latest/objects/appinstallation">AppInstallation</a></li>
<li><code class="text-highlight text-highlight--grey">activityListUrl</code> was added to <a href="/docs/api/admin-graphql/latest/objects/marketingactivity">MarketingActivity</a></li>
<li><code class="text-highlight text-highlight--grey">allSubscriptions</code> was added to <a href="/docs/api/admin-graphql/latest/objects/appinstallation">AppInstallation</a></li>
<li><code class="text-highlight text-highlight--grey">createdAt</code> was added to <a href="/docs/api/admin-graphql/latest/objects/shopifypaymentsbankaccount">ShopifyPaymentsBankAccount</a></li>
<li><code class="text-highlight text-highlight--grey">credits</code> was added to <a href="/docs/api/admin-graphql/latest/objects/appinstallation">AppInstallation</a></li>
<li><code class="text-highlight text-highlight--grey">deliveryProfiles</code> was added to <a href="/docs/api/admin-graphql/latest/objects/shopfeatures">ShopFeatures</a></li>
<li><code class="text-highlight text-highlight--grey">duplicateSkuCount</code> was added to <a href="/docs/api/admin-graphql/latest/objects/inventoryitem">InventoryItem</a></li>
<li><code class="text-highlight text-highlight--grey">oneTimePurchases</code> was added to <a href="/docs/api/admin-graphql/latest/objects/appinstallation">AppInstallation</a></li>
<li><code class="text-highlight text-highlight--grey">ownerType</code> was added to <a href="/docs/api/admin-graphql/latest/objects/metafield">Metafield</a></li>
<li><code class="text-highlight text-highlight--grey">subscriptions</code> was added to <a href="/docs/api/admin-graphql/latest/objects/appinstallation">AppInstallation</a></li>
</ul>
<p><strong>The following objects were added</strong></p>
<ul>
<li><a href="/docs/api/admin-graphql/latest/objects/appcredit">AppCredit</a></li>
<li><a href="/docs/api/admin-graphql/latest/objects/appplanv2">AppPlanV2</a></li>
<li><a href="/docs/api/admin-graphql/latest/objects/apppricingdetails">AppPricingDetails</a></li>
<li><a href="/docs/api/admin-graphql/latest/objects/apppurchase">AppPurchase</a></li>
<li><a href="/docs/api/admin-graphql/latest/objects/apppurchaseonetime">AppPurchaseOneTime</a></li>
<li><a href="/docs/api/admin-graphql/latest/objects/apprecurringpricing">AppRecurringPricing</a></li>
<li><a href="/docs/api/admin-graphql/latest/objects/appsubscription">AppSubscription</a></li>
<li><a href="/docs/api/admin-graphql/latest/objects/appsubscriptionlineitem">AppSubscriptionLineItem</a></li>
<li><a href="/docs/api/admin-graphql/latest/objects/appusagepricing">AppUsagePricing</a></li>
<li><a href="/docs/api/admin-graphql/latest/objects/appusagerecord">AppUsageRecord</a></li>
<li><a href="/docs/api/admin-graphql/latest/objects/automaticdiscountapplication">AutomaticDiscountApplication</a></li>
<li><a href="/docs/api/admin-graphql/latest/objects/deliveryavailableservice">DeliveryAvailableService</a></li>
<li><a href="/docs/api/admin-graphql/latest/objects/deliverycarrierservice">DeliveryCarrierService</a></li>
<li><a href="/docs/api/admin-graphql/latest/objects/deliverycarrierserviceandlocations">DeliveryCarrierServiceAndLocations</a></li>
<li><a href="/docs/api/admin-graphql/latest/objects/deliverycondition">DeliveryCondition</a></li>
<li><a href="/docs/api/admin-graphql/latest/objects/deliveryconditioncriteria">DeliveryConditionCriteria</a></li>
<li><a href="/docs/api/admin-graphql/latest/objects/deliverycountry">DeliveryCountry</a></li>
<li><a href="/docs/api/admin-graphql/latest/objects/deliverycountryandzone">DeliveryCountryAndZone</a></li>
<li><a href="/docs/api/admin-graphql/latest/objects/deliverycountrycodesorrestofworld">DeliveryCountryCodesOrRestOfWorld</a></li>
<li><a href="/docs/api/admin-graphql/latest/objects/deliverylocationgroup">DeliveryLocationGroup</a></li>
<li><a href="/docs/api/admin-graphql/latest/objects/deliverylocationgroupzone">DeliveryLocationGroupZone</a></li>
<li><a href="/docs/api/admin-graphql/latest/objects/deliverymethoddefinition">DeliveryMethodDefinition</a></li>
<li><a href="/docs/api/admin-graphql/latest/objects/deliveryparticipant">DeliveryParticipant</a></li>
<li><a href="/docs/api/admin-graphql/latest/objects/deliveryparticipantservice">DeliveryParticipantService</a></li>
<li><a href="/docs/api/admin-graphql/latest/objects/deliveryprofile">DeliveryProfile</a></li>
<li><a href="/docs/api/admin-graphql/latest/objects/deliveryprofileitem">DeliveryProfileItem</a></li>
<li><a href="/docs/api/admin-graphql/latest/objects/deliveryprofilelocationgroup">DeliveryProfileLocationGroup</a></li>
<li><a href="/docs/api/admin-graphql/latest/objects/deliveryprovince">DeliveryProvince</a></li>
<li><a href="/docs/api/admin-graphql/latest/objects/deliveryratedefinition">DeliveryRateDefinition</a></li>
<li><a href="/docs/api/admin-graphql/latest/objects/deliveryrateprovider">DeliveryRateProvider</a></li>
<li><a href="/docs/api/admin-graphql/latest/objects/deliverysetting">DeliverySetting</a></li>
<li><a href="/docs/api/admin-graphql/latest/objects/deliveryzone">DeliveryZone</a></li>
<li><a href="/docs/api/admin-graphql/latest/objects/discountusererror">DiscountUserError</a></li>
<li><a href="/docs/api/admin-graphql/latest/objects/discounterrorcode">DiscountErrorCode</a></li>
<li><a href="/docs/api/admin-graphql/latest/enums/codediscountsortkeys">CodeDiscountSortKeys</a></li>
<li><a href="/docs/api/admin-graphql/latest/objects/discountcountryall">DiscountCountryAll</a></li>
<li><a href="/docs/api/admin-graphql/latest/objects/discountcountries">DiscountCountries</a></li>
<li><a href="/docs/api/admin-graphql/latest/objects/discountshippingdestinationselection">DiscountShippingDestinationSelection</a></li>
<li><a href="/docs/api/admin-graphql/latest/objects/discountcodefreeshipping">DiscountCodeFreeShipping</a></li>
<li><a href="/docs/api/admin-graphql/latest/objects/discountcodebxgy">DiscountCodeBxgy</a></li>
<li><a href="/docs/api/admin-graphql/latest/objects/discountcustomers">DiscountCustomers</a></li>
<li><a href="/docs/api/admin-graphql/latest/objects/discountcustomersavedsearches">DiscountCustomerSavedSearches</a></li>
<li><a href="/docs/api/admin-graphql/latest/objects/discountcustomerall">DiscountCustomerAll</a></li>
<li><a href="/docs/api/admin-graphql/latest/objects/discountcustomerselection">DiscountCustomerSelection</a></li>
<li><a href="/docs/api/admin-graphql/latest/objects/discountredeemcode">DiscountRedeemCode</a></li>
<li><a href="/docs/api/admin-graphql/latest/objects/discountcodebasic">DiscountCodeBasic</a></li>
<li><a href="/docs/api/admin-graphql/latest/objects/discountcode">DiscountCode</a></li>
<li><a href="/docs/api/admin-graphql/latest/objects/discountcodenode">DiscountCodeNode</a></li>
<li><a href="/docs/api/admin-graphql/latest/enums/automaticdiscountsortkeys">AutomaticDiscountSortKeys</a></li>
<li><a href="/docs/api/admin-graphql/latest/objects/discountautomaticnode">DiscountAutomaticNode</a></li>
<li><a href="/docs/api/admin-graphql/latest/objects/discountcustomerbuysvalue">DiscountCustomerBuysValue</a></li>
<li><a href="/docs/api/admin-graphql/latest/objects/discountautomaticbxgy">DiscountAutomaticBxgy</a></li>
<li><a href="/docs/api/admin-graphql/latest/enums/discountstatus">DiscountStatus</a></li>
<li><a href="/docs/api/admin-graphql/latest/objects/discountminimumsubtotal">DiscountMinimumSubtotal</a></li>
<li><a href="/docs/api/admin-graphql/latest/objects/discountminimumquantity">DiscountMinimumQuantity</a></li>
<li><a href="/docs/api/admin-graphql/latest/objects/discountminimumrequirement">DiscountMinimumRequirement</a></li>
<li><a href="/docs/api/admin-graphql/latest/objects/discountquantity">DiscountQuantity</a></li>
<li><a href="/docs/api/admin-graphql/latest/objects/discountpercentage">DiscountPercentage</a></li>
<li><a href="/docs/api/admin-graphql/latest/objects/discounteffect">DiscountEffect</a></li>
<li><a href="/docs/api/admin-graphql/latest/objects/discountonquantity">DiscountOnQuantity</a></li>
<li><a href="/docs/api/admin-graphql/latest/objects/discountamount">DiscountAmount</a></li>
<li><a href="/docs/api/admin-graphql/latest/objects/discountcustomergetsvalue">DiscountCustomerGetsValue</a></li>
<li><a href="/docs/api/admin-graphql/latest/objects/discountproducts">DiscountProducts</a></li>
<li><a href="/docs/api/admin-graphql/latest/objects/discountcollections">DiscountCollections</a></li>
<li><a href="/docs/api/admin-graphql/latest/objects/alldiscountitems">AllDiscountItems</a></li>
<li><a href="/docs/api/admin-graphql/latest/objects/discountitems">DiscountItems</a></li>
<li><a href="/docs/api/admin-graphql/latest/objects/discountcustomergets">DiscountCustomerGets</a></li>
<li><a href="/docs/api/admin-graphql/latest/objects/discountautomaticbasic">DiscountAutomaticBasic</a></li>
<li><a href="/docs/api/admin-graphql/latest/objects/discountautomatic">DiscountAutomatic</a></li>
<li><a href="/docs/api/admin-graphql/latest/objects/metafieldstorefrontvisibility">MetafieldStorefrontVisibility</a></li>
</ul>
  </div>
</div>
<div class="accordion-item">
  <div class="accordion-link">
    <div class="chevron-up"></div>
    <div class="chevron-down"></div>
    <h3>Changes to input objects</h3>
  </div>
  <div class="accordion-content">
    <p><strong>The following fields were added</strong></p>
<ul>
<li><code class="text-highlight text-highlight--grey">metafields</code> was added to <a href="/docs/api/admin-graphql/latest/input-objects/CollectionInput">CollectionInput</a></li>
<li><code class="text-highlight text-highlight--grey">metafields</code> was added to <a href="/docs/api/admin-graphql/latest/input-objects/orderinput">OrderInput</a></li>
<li><code class="text-highlight text-highlight--grey">title</code> was added to <a href="/docs/api/admin-graphql/latest/input-objects/marketingactivityupdateinput">MarketingActivityUpdateInput</a></li>
</ul>
<p><strong>The following input objects were added</strong></p>
<ul>
<li><a href="/docs/api/admin-graphql/latest/input-objects/appplaninput">AppPlanInput</a></li>
<li><a href="/docs/api/admin-graphql/latest/input-objects/apprecurringpricinginput">AppRecurringPricingInput</a></li>
<li><a href="/docs/api/admin-graphql/latest/input-objects/appsubscriptionlineiteminput">AppSubscriptionLineItemInput</a></li>
<li><a href="/docs/api/admin-graphql/latest/input-objects/appusagepricinginput">AppUsagePricingInput</a></li>
<li><a href="/docs/api/admin-graphql/latest/input-objects/deliverycountryinput">DeliveryCountryInput</a></li>
<li><a href="/docs/api/admin-graphql/latest/input-objects/deliverylocationgroupzoneinput">DeliveryLocationGroupZoneInput</a></li>
<li><a href="/docs/api/admin-graphql/latest/input-objects/deliverymethoddefinitioninput">DeliveryMethodDefinitionInput</a></li>
<li><a href="/docs/api/admin-graphql/latest/input-objects/deliveryparticipantinput">DeliveryParticipantInput</a></li>
<li><a href="/docs/api/admin-graphql/latest/input-objects/deliveryparticipantserviceinput">DeliveryParticipantServiceInput</a></li>
<li><a href="/docs/api/admin-graphql/latest/input-objects/deliverypriceconditioninput">DeliveryPriceConditionInput</a></li>
<li><a href="/docs/api/admin-graphql/latest/input-objects/deliveryprofileinput">DeliveryProfileInput</a></li>
<li><a href="/docs/api/admin-graphql/latest/input-objects/deliveryprofilelocationgroupinput">DeliveryProfileLocationGroupInput</a></li>
<li><a href="/docs/api/admin-graphql/latest/input-objects/deliveryprovinceinput">DeliveryProvinceInput</a></li>
<li><a href="/docs/api/admin-graphql/latest/input-objects/deliveryratedefinitioninput">DeliveryRateDefinitionInput</a></li>
<li><a href="/docs/api/admin-graphql/latest/input-objects/deliverysettinginput">DeliverySettingInput</a></li>
<li><a href="/docs/api/admin-graphql/latest/input-objects/deliveryupdateconditioninput">DeliveryUpdateConditionInput</a></li>
<li><a href="/docs/api/admin-graphql/latest/input-objects/deliveryweightconditioninput">DeliveryWeightConditionInput</a></li>
<li><a href="/docs/api/admin-graphql/latest/input-objects/discountcodefreeshippinginput">DiscountCodeFreeShippingInput</a></li>
<li><a href="/docs/api/admin-graphql/latest/input-objects/discountcountriesinput">DiscountCountriesInput</a></li>
<li><a href="/docs/api/admin-graphql/latest/input-objects/discounteffectinput">DiscountEffectInput</a></li>
<li><a href="/docs/api/admin-graphql/latest/input-objects/discountshippingdestinationselectioninput">DiscountShippingDestinationSelectionInput</a></li>
<li><a href="/docs/api/admin-graphql/latest/input-objects/discountcodebxgyinput">DiscountCodeBxgyInput</a></li>
<li><a href="/docs/api/admin-graphql/latest/input-objects/discountcustomersinput">DiscountCustomersInput</a></li>
<li><a href="/docs/api/admin-graphql/latest/input-objects/discountcustomersavedsearchesinput">DiscountCustomerSavedSearchesInput</a></li>
<li><a href="/docs/api/admin-graphql/latest/input-objects/discountcustomerselectioninput">DiscountCustomerSelectionInput</a></li>
<li><a href="/docs/api/admin-graphql/latest/input-objects/discountcodebasicinput">DiscountCodeBasicInput</a></li>
<li><a href="/docs/api/admin-graphql/latest/input-objects/discountcustomerbuysvalueinput">DiscountCustomerBuysValueInput</a></li>
<li><a href="/docs/api/admin-graphql/latest/input-objects/discountcustomerbuysinput">DiscountCustomerBuysInput</a></li>
<li><a href="/docs/api/admin-graphql/latest/input-objects/discountautomaticbxgyinput">DiscountAutomaticBxgyInput</a></li>
<li><a href="/docs/api/admin-graphql/latest/input-objects/discountminimumsubtotalinput">DiscountMinimumSubtotalInput</a></li>
<li><a href="/docs/api/admin-graphql/latest/input-objects/discountminimumquantityinput">DiscountMinimumQuantityInput</a></li>
<li><a href="/docs/api/admin-graphql/latest/input-objects/discountminimumrequirementinput">DiscountMinimumRequirementInput</a></li>
<li><a href="/docs/api/admin-graphql/latest/input-objects/discountonquantityinput">DiscountOnQuantityInput</a></li>
<li><a href="/docs/api/admin-graphql/latest/input-objects/discountamountinput">DiscountAmountInput</a></li>
<li><a href="/docs/api/admin-graphql/latest/input-objects/discountcustomergetsvalueinput">DiscountCustomerGetsValueInput</a></li>
<li><a href="/docs/api/admin-graphql/latest/input-objects/discountproductsinput">DiscountProductsInput</a></li>
<li><a href="/docs/api/admin-graphql/latest/input-objects/discountcollectionsinput">DiscountCollectionsInput</a></li>
<li><a href="/docs/api/admin-graphql/latest/input-objects/discountitemsinput">DiscountItemsInput</a></li>
<li><a href="/docs/api/admin-graphql/latest/input-objects/discountcustomergetsinput">DiscountCustomerGetsInput</a></li>
<li><a href="/docs/api/admin-graphql/latest/input-objects/discountautomaticbasicinput">DiscountAutomaticBasicInput</a></li>
<li><a href="/docs/api/admin-graphql/latest/input-objects/metafieldstorefrontvisibilityinput">MetafieldStorefrontVisibilityInput</a></li>
</ul>
  </div>
</div>
<div class="accordion-item">
  <div class="accordion-link">
    <div class="chevron-up"></div>
    <div class="chevron-down"></div>
    <h3>Changes to mutations</h3>
  </div>
  <div class="accordion-content">
    <p><strong>The following mutations were added</strong></p>
<ul>
<li><a href="/docs/api/admin-graphql/latest/mutations/appcreditcreate">appCreditCreate</a></li>
<li><a href="/docs/api/admin-graphql/latest/mutations/apppurchaseonetimecreate">appPurchaseOneTimeCreate</a></li>
<li><a href="/docs/api/admin-graphql/latest/mutations/appsubscriptioncancel">appSubscriptionCancel</a></li>
<li><a href="/docs/api/admin-graphql/latest/mutations/appsubscriptioncreate">appSubscriptionCreate</a></li>
<li><a href="/docs/api/admin-graphql/latest/mutations/appsubscriptionlineitemupdate">appSubscriptionLineItemUpdate</a></li>
<li><a href="/docs/api/admin-graphql/latest/mutations/appusagerecordcreate">appUsageRecordCreate</a></li>
<li><a href="/docs/api/admin-graphql/latest/mutations/deliveryprofilecreate">deliveryProfileCreate</a></li>
<li><a href="/docs/api/admin-graphql/latest/mutations/deliveryprofileremove">deliveryProfileRemove</a></li>
<li><a href="/docs/api/admin-graphql/latest/mutations/deliveryprofileupdate">deliveryProfileUpdate</a></li>
<li><a href="/docs/api/admin-graphql/latest/mutations/deliverysettingupdate">deliverySettingUpdate</a></li>
<li><a href="/docs/api/admin-graphql/latest/mutations/discountcodefreeshippingupdate">discountCodeFreeShippingUpdate</a></li>
<li><a href="/docs/api/admin-graphql/latest/mutations/discountcodefreeshippingcreate">discountCodeFreeShippingCreate</a></li>
<li><a href="/docs/api/admin-graphql/latest/mutations/discountcodedelete">discountCodeDelete</a></li>
<li><a href="/docs/api/admin-graphql/latest/mutations/discountcodedeactivate">discountCodeDeActivate</a></li>
<li><a href="/docs/api/admin-graphql/latest/mutations/discountcodebxgyupdate">discountCodeBxgyUpdate</a></li>
<li><a href="/docs/api/admin-graphql/latest/mutations/discountcodebxgycreate">discountCodeBxgyCreate</a></li>
<li><a href="/docs/api/admin-graphql/latest/mutations/discountcodebasicupdate">discountCodeBasicUpdate</a></li>
<li><a href="/docs/api/admin-graphql/latest/mutations/discountcodebasiccreate">discountCodeBasicCreate</a></li>
<li><a href="/docs/api/admin-graphql/latest/mutations/discountcodeactivate">discountCodeActivate</a></li>
<li><a href="/docs/api/admin-graphql/latest/mutations/discountautomaticdelete">discountAutomaticDelete</a></li>
<li><a href="/docs/api/admin-graphql/latest/mutations/discountautomaticdeactivate">discountAutomaticDeActivate</a></li>
<li><a href="/docs/api/admin-graphql/latest/mutations/discountautomaticbxgyupdate">discountAutomaticBxgyUpdate</a></li>
<li><a href="/docs/api/admin-graphql/latest/mutations/discountautomaticbxgycreate">discountAutomaticBxgyCreate</a></li>
<li><a href="/docs/api/admin-graphql/latest/mutations/discountautomaticbulkdelete">discountAutomaticBulkDelete</a></li>
<li><a href="/docs/api/admin-graphql/latest/mutations/discountautomaticbasicupdate">discountAutomaticBasicUpdate</a></li>
<li><a href="/docs/api/admin-graphql/latest/mutations/discountautomaticbasiccreate">discountAutomaticBasicCreate</a></li>
<li><a href="/docs/api/admin-graphql/latest/mutations/discountautomaticactivate">discountAutomaticActivate</a></li>
<li><code class="text-highlight text-highlight--grey">kitSkillTriggerRequest</code></li>
<li><a href="/docs/api/admin-graphql/latest/mutations/metafieldstorefrontvisibilitycreate">metafieldStorefrontVisibilityCreate</a></li>
<li><a href="/docs/api/admin-graphql/latest/mutations/metafieldstorefrontvisibilitydelete">metafieldStorefrontVisibilityDelete</a></li>
<li><a href="/docs/api/admin-graphql/latest/objects/shippingpackagedelete">shippingPackageDelete</a></li>
<li><a href="/docs/api/admin-graphql/latest/objects/shippingpackagemakedefault">shippingPackageMakeDefault</a></li>
<li><a href="/docs/api/admin-graphql/latest/mutations/shippingpackageupdate">shippingPackageUpdate</a></li>
</ul>
  </div>
</div>
<div class="accordion-item">
  <div class="accordion-link">
    <div class="chevron-up"></div>
    <div class="chevron-down"></div>
    <h3>Changes to enums</h3>
  </div>
  <div class="accordion-content">
    <p><strong>The following enum values were added</strong></p>
<ul>
<li><code class="text-highlight text-highlight--grey">APP_PURCHASES_ONE_TIME_UPDATE</code> was added to <a href="/docs/api/admin-graphql/latest/enums/webhooksubscriptiontopic">WebhookSubscriptionTopic</a></li>
<li><code class="text-highlight text-highlight--grey">APP_SUBSCRIPTIONS_UPDATE</code> was added to <a href="/docs/api/admin-graphql/latest/enums/webhooksubscriptiontopic">WebhookSubscriptionTopic</a></li>
<li><code class="text-highlight text-highlight--grey">DISCOUNTS_AUTOMATIC</code> was added to ResourceExportableType</li>
<li><code class="text-highlight text-highlight--grey">DISCOUNTS_AUTOMATIC</code> was added to ResourceType</li>
</ul>
<p><strong>The following enum types were added</strong></p>
<ul>
<li><a href="/docs/api/admin-graphql/latest/enums/apppricinginterval">AppPricingInterval</a></li>
<li><a href="/docs/api/admin-graphql/latest/enums/apppurchasestatus">AppPurchaseStatus</a></li>
<li><a href="/docs/api/admin-graphql/latest/enums/appsubscriptionsortkeys">AppSubscriptionSortKeys</a></li>
<li><a href="/docs/api/admin-graphql/latest/enums/appsubscriptionstatus">AppSubscriptionStatus</a></li>
<li><a href="/docs/api/admin-graphql/latest/enums/apptransactionsortkeys">AppTransactionSortKeys</a></li>
<li><a href="/docs/api/admin-graphql/latest/enums/appusagerecordsortkeys">AppUsageRecordSortKeys</a></li>
<li><a href="/docs/api/admin-graphql/latest/objects/deliveryconditionfield">DeliveryConditionField</a></li>
<li><a href="/docs/api/admin-graphql/latest/objects/deliveryconditionoperator">DeliveryConditionOperator</a></li>
<li><a href="/docs/api/admin-graphql/latest/objects/metafieldownertype">MetafieldOwnerType</a></li>
<li><a href="/docs/api/admin-graphql/latest/enums/shoptagsort">ShopTagSort</a></li>
</ul>
  </div>
</div>
<div class="accordion-item">
  <div class="accordion-link">
    <div class="chevron-up"></div>
    <div class="chevron-down"></div>
    <h3>Other changes</h3>
  </div>
  <div class="accordion-content">
    <ul>
<li>Argument <code class="text-highlight text-highlight--grey">sort: ShopTagSort</code> was added to <a href="/docs/api/admin-graphql/latest/objects/shop"><code class="text-highlight text-highlight--grey">Shop.orderTags</code> field</a></li>
</ul>
  </div>
</div>
  </div>
</div>


## Storefront API

Version `2019-07` is the base version of the GraphQL API. This base version is a snapshot of the existing API, which means that there are no changes in this initial release. You can begin adopting API calls to this version in your apps without needing to make changes to your code base.

We strongly recommend that you update your apps to call a stable API version. Updating your apps to use the latest stable version lets you spend less time configuring your apps to be version aware, and helps you to be first to market by adopting new API changes when they are released.

### Corresponding Buy SDK versions

<table>
  <tr>
    <th>SDK</th>
    <th>Supported Versions</th>
  </tr>
  <tr>
    <td>Mobile Buy SDK Android</td>
    <td>3.5.0</td>
  </tr>
  <tr>
    <td>Mobile Buy SDK iOS</td>
    <td>3.6.0</td>
  </tr>
  <tr>
    <td>Unity Buy SDK</td>
    <td>1.1.0</td>
  </tr>
  <tr>
    <td>JS Buy SDK</td>
    <td>2.6.1, 2.7.0, 2.7.1, 2.7.2</td>
  </tr>
  <tr>
    <td>Buy Button JS</td>
    <td>0.12.0, 0.12.1, 1.0.0, 1.0.1, 1.0.2, 1.0.3, 1.0.4, 2.0.0</td>
  </tr>
</table>