2019-07 release notes
Release date | Date version is no longer supported |
---|---|
July 1, 2019 | July 1, 2020 |
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
Anchor link to section titled "Breaking changes"These changes require special attention as failure to migrate can result in broken requests in the future.
Page-based pagination has been removed, and has been replaced with cursor-based pagination on many endpoints.
To migrate, see our guide on cursor-based pagination.
Featured field removed from Collect
Anchor link to section titled "Featured field removed from Collect"The featured
field was removed from the collect endpoint.
To migrate, update the URL of all your requests to the collect endpoint to API version 2019-07
or later.
GraphQL Admin ID added to webhooks
Anchor link to section titled "GraphQL Admin ID added to webhooks"Added the admin_graphql_api_id
property to webhook payloads for many resources.
To migrate, update webhook API version to API version 2019-07
or later.
Developer preview
Anchor link to section titled "Developer preview"There is no developer preview for the API changes in version 2019-07. Use a development store for your development environments.
To use the new API features, call the 2019-07 version of the API.
REST Admin API changes
Anchor link to section titled "REST Admin API changes"- Added new route
/admin/api/2019-07/abandoned_checkouts.json
to access the Abandoned checkouts API.
ArticleSavedSearch
Anchor link to section titled "ArticleSavedSearch"- Removed the
page
filter, and replaced page-based pagination with cursor-based pagination forGET /admin/api/2019-07/article_saved_searches.json
.
BalanceTransactionSavedSearch
Anchor link to section titled "BalanceTransactionSavedSearch"- Removed the
page
filter, and replaced page-based pagination with cursor-based pagination forGET /admin/api/2019-07/balance_transaction_saved_searches.json
.
BlogSavedSearch
Anchor link to section titled "BlogSavedSearch"- Removed the
page
filter, and replaced page-based pagination with cursor-based pagination forGET /admin/api/2019-07/blog_saved_searches.json
.
- Removed the
X-Shopify-Checkout-Version
header support fromGET /admin/checkouts.json
.
CheckoutSavedSearch
Anchor link to section titled "CheckoutSavedSearch"- Removed the
page
filter, and replaced page-based pagination with cursor-based pagination forGET /admin/api/2019-07/checkout_saved_searches.json
.
- Removed the
page
filter, and replaced page-based pagination with cursor-based pagination forGET /admin/api/2019-07/collects.json
. - Removed the
featured
property.
- Removed the
page
filter, and replaced page-based pagination with cursor-based pagination forGET /admin/api/2019-07/collection_listings.json
. - Removed the
page
filter, and replaced page-based pagination with cursor-based pagination forGET /admin/api/2019-07/collection_listings/#{collection_listing_id}/product_ids.json
.
Collections
Anchor link to section titled "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 forGET /admin/api/2019-07/collections.json
.
CollectionSavedSearch
Anchor link to section titled "CollectionSavedSearch"- Removed the
page
filter, and replaced page-based pagination with cursor-based pagination forGET /admin/api/2019-07/collection_saved_searches.json
.
CommentSavedSearch
Anchor link to section titled "CommentSavedSearch"- Removed the
page
filter, and replaced page-based pagination with cursor-based pagination forGET /admin/api/2019-07/comment_saved_searches.json
.
- Removed the ability to update a province's code.
- Added
tax_exemptions
property.
CustomerSavedSearch
Anchor link to section titled "CustomerSavedSearch"- Removed the
page
filter, and replaced page-based pagination with cursor-based pagination forGET /admin/api/2019-07/customer_saved_searches.json
.
DiscountCodeSavedSearch
Anchor link to section titled "DiscountCodeSavedSearch"- Removed the
page
filter, and replaced page-based pagination with cursor-based pagination forGET /admin/api/2019-07/discount_code_saved_searches.json
.
DraftOrderSavedSearch
Anchor link to section titled "DraftOrderSavedSearch"- Removed the
page
filter, and replaced page-based pagination with cursor-based pagination forGET /admin/api/2019-07/draft_order_saved_searches.json
.
- Removed the
page
filter, and replaced page-based pagination with cursor-based pagination forGET /admin/api/2019-07/events.json
.
FileSavedSearch
Anchor link to section titled "FileSavedSearch"- Removed the
page
filter, and replaced page-based pagination with cursor-based pagination forGET /admin/api/2019-07/file_saved_searches.json
.
GiftCardSavedSearch
Anchor link to section titled "GiftCardSavedSearch"- Removed the
page
filter, and replaced page-based pagination with cursor-based pagination forGET /admin/api/2019-07/gift_card_saved_searches.json
.
InventoryTransferSavedSearch
Anchor link to section titled "InventoryTransferSavedSearch"- Removed the
page
filter, and replaced page-based pagination with cursor-based pagination forGET /admin/api/2019-07/inventory_transfer_saved_searches.json
.
- 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 forGET /admin/api/2019-07/metafields.json
.
OrderSavedSearch
Anchor link to section titled "OrderSavedSearch"- Removed the
page
filter, and replaced page-based pagination with cursor-based pagination forGET /admin/api/2019-07/order_saved_searches.json
.
PageSavedSearch
Anchor link to section titled "PageSavedSearch"- Removed the
page
filter, and replaced page-based pagination with cursor-based pagination forGET /admin/api/2019-07/page_saved_searches.json
.
PriceRuleSavedSearch
Anchor link to section titled "PriceRuleSavedSearch"- Removed the
page
filter, and replaced page-based pagination with cursor-based pagination forGET /admin/api/2019-07/price_rule_saved_searches.json
.
- Removed the
page
filter, and replaced page-based pagination with cursor-based pagination forGET /admin/api/2019-07/products.json
. - 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 forGET /admin/api/2019-07/product_listings.json
.
ProductSavedSearch
Anchor link to section titled "ProductSavedSearch"- Removed the
page
filter, and replaced page-based pagination with cursor-based pagination forGET /admin/api/2019-07/product_saved_searches.json
.
- Removed the
page
filter, and replaced page-based pagination with cursor-based pagination forGET /admin/api/2019-07/variants/search.json
.
ProductVariantSavedSearch
Anchor link to section titled "ProductVariantSavedSearch"- Removed the
page
filter, and replaced page-based pagination with cursor-based pagination forGET /admin/api/2019-07/product_variant_saved_searches.json
.
- Removed the ability to update a province's code.
RedirectSavedSearch
Anchor link to section titled "RedirectSavedSearch"- Removed the
page
filter, and replaced page-based pagination with cursor-based pagination forGET /admin/api/2019-07/redirect_saved_searches.json
.
- Added
profile_id
,location_group_id
, andadmin_graphql_api_id
properties. Learn more.
TransferSavedSearch
Anchor link to section titled "TransferSavedSearch"- Removed the
page
filter, and replaced page-based pagination with cursor-based pagination forGET /admin/api/2019-07/transfer_saved_searches.json
.
- 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
.
GraphQL Admin API changes
Anchor link to section titled "GraphQL Admin API changes"Schema changes
Anchor link to section titled "Schema changes"Changes to QueryRoot
The following fields were added
activatedCarrierServices
availableCarrierServices
automaticDiscounts
automaticDiscountSavedSearches
automaticDiscountNodes
automaticDiscountNode
automaticDiscount
carrierService
codeDiscountSavedSearches
codeDiscountNodes
codeDiscountNode
codeDiscountNodeByCode
deliveryProfile
deliveryProfiles
deliverySettings
locationsAvailableForDeliveryProfiles
metafieldStorefrontVisibilities
metafieldStorefrontVisibility
Changes to objects
The following fields were added
activeSubscriptions
was added to AppInstallationactivityListUrl
was added to MarketingActivityallSubscriptions
was added to AppInstallationcreatedAt
was added to ShopifyPaymentsBankAccountcredits
was added to AppInstallationdeliveryProfiles
was added to ShopFeaturesduplicateSkuCount
was added to InventoryItemoneTimePurchases
was added to AppInstallationownerType
was added to Metafieldsubscriptions
was added to AppInstallation
The following objects were added
- AppCredit
- AppPlanV2
- AppPricingDetails
- AppPurchase
- AppPurchaseOneTime
- AppRecurringPricing
- AppSubscription
- AppSubscriptionLineItem
- AppUsagePricing
- AppUsageRecord
- AutomaticDiscountApplication
- DeliveryAvailableService
- DeliveryCarrierService
- DeliveryCarrierServiceAndLocations
- DeliveryCondition
- DeliveryConditionCriteria
- DeliveryCountry
- DeliveryCountryAndZone
- DeliveryCountryCodesOrRestOfWorld
- DeliveryLocationGroup
- DeliveryLocationGroupZone
- DeliveryMethodDefinition
- DeliveryParticipant
- DeliveryParticipantService
- DeliveryProfile
- DeliveryProfileItem
- DeliveryProfileLocationGroup
- DeliveryProvince
- DeliveryRateDefinition
- DeliveryRateProvider
- DeliverySetting
- DeliveryZone
- DiscountUserError
- DiscountErrorCode
- CodeDiscountSortKeys
- DiscountCountryAll
- DiscountCountries
- DiscountShippingDestinationSelection
- DiscountCodeFreeShipping
- DiscountCodeBxgy
- DiscountCustomers
- DiscountCustomerSavedSearches
- DiscountCustomerAll
- DiscountCustomerSelection
- DiscountRedeemCode
- DiscountCodeBasic
- DiscountCode
- DiscountCodeNode
- AutomaticDiscountSortKeys
- DiscountAutomaticNode
- DiscountCustomerBuysValue
- DiscountAutomaticBxgy
- DiscountStatus
- DiscountMinimumSubtotal
- DiscountMinimumQuantity
- DiscountMinimumRequirement
- DiscountQuantity
- DiscountPercentage
- DiscountEffect
- DiscountOnQuantity
- DiscountAmount
- DiscountCustomerGetsValue
- DiscountProducts
- DiscountCollections
- AllDiscountItems
- DiscountItems
- DiscountCustomerGets
- DiscountAutomaticBasic
- DiscountAutomatic
- MetafieldStorefrontVisibility
Changes to input objects
The following fields were added
metafields
was added to CollectionInputmetafields
was added to OrderInputtitle
was added to MarketingActivityUpdateInput
The following input objects were added
- AppPlanInput
- AppRecurringPricingInput
- AppSubscriptionLineItemInput
- AppUsagePricingInput
- DeliveryCountryInput
- DeliveryLocationGroupZoneInput
- DeliveryMethodDefinitionInput
- DeliveryParticipantInput
- DeliveryParticipantServiceInput
- DeliveryPriceConditionInput
- DeliveryProfileInput
- DeliveryProfileLocationGroupInput
- DeliveryProvinceInput
- DeliveryRateDefinitionInput
- DeliverySettingInput
- DeliveryUpdateConditionInput
- DeliveryWeightConditionInput
- DiscountCodeFreeShippingInput
- DiscountCountriesInput
- DiscountEffectInput
- DiscountShippingDestinationSelectionInput
- DiscountCodeBxgyInput
- DiscountCustomersInput
- DiscountCustomerSavedSearchesInput
- DiscountCustomerSelectionInput
- DiscountCodeBasicInput
- DiscountCustomerBuysValueInput
- DiscountCustomerBuysInput
- DiscountAutomaticBxgyInput
- DiscountMinimumSubtotalInput
- DiscountMinimumQuantityInput
- DiscountMinimumRequirementInput
- DiscountOnQuantityInput
- DiscountAmountInput
- DiscountCustomerGetsValueInput
- DiscountProductsInput
- DiscountCollectionsInput
- DiscountItemsInput
- DiscountCustomerGetsInput
- DiscountAutomaticBasicInput
- MetafieldStorefrontVisibilityInput
Changes to mutations
The following mutations were added
- appCreditCreate
- appPurchaseOneTimeCreate
- appSubscriptionCancel
- appSubscriptionCreate
- appSubscriptionLineItemUpdate
- appUsageRecordCreate
- deliveryProfileCreate
- deliveryProfileRemove
- deliveryProfileUpdate
- deliverySettingUpdate
- discountCodeFreeShippingUpdate
- discountCodeFreeShippingCreate
- discountCodeDelete
- discountCodeDeActivate
- discountCodeBxgyUpdate
- discountCodeBxgyCreate
- discountCodeBasicUpdate
- discountCodeBasicCreate
- discountCodeActivate
- discountAutomaticDelete
- discountAutomaticDeActivate
- discountAutomaticBxgyUpdate
- discountAutomaticBxgyCreate
- discountAutomaticBulkDelete
- discountAutomaticBasicUpdate
- discountAutomaticBasicCreate
- discountAutomaticActivate
kitSkillTriggerRequest
- metafieldStorefrontVisibilityCreate
- metafieldStorefrontVisibilityDelete
- shippingPackageDelete
- shippingPackageMakeDefault
- shippingPackageUpdate
Changes to enums
The following enum values were added
APP_PURCHASES_ONE_TIME_UPDATE
was added to WebhookSubscriptionTopicAPP_SUBSCRIPTIONS_UPDATE
was added to WebhookSubscriptionTopicDISCOUNTS_AUTOMATIC
was added to ResourceExportableTypeDISCOUNTS_AUTOMATIC
was added to ResourceType
The following enum types were added
Other changes
- Argument
sort: ShopTagSort
was added toShop.orderTags
field
Storefront API
Anchor link to section titled "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
Anchor link to section titled "Corresponding Buy SDK versions"SDK | Supported Versions |
---|---|
Mobile Buy SDK Android | 3.5.0 |
Mobile Buy SDK iOS | 3.6.0 |
Unity Buy SDK | 1.1.0 |
JS Buy SDK | 2.6.1, 2.7.0, 2.7.1, 2.7.2 |
Buy Button JS | 0.12.0, 0.12.1, 1.0.0, 1.0.1, 1.0.2, 1.0.3, 1.0.4, 2.0.0 |