2019-10 release notes

Release date Date version is no longer supported
October 1, 2019 October 1, 2020

The 2019-10 release continues to focus on improving performance by completing the transition to cursor-based pagination. You can now use cursor-based pagination across the remaining endpoints. With the GraphQL Admin API, you can now perform bulk operations to fetch large amounts of data in a single request, letting Shopify handle pagination for you.

This release also solidifies many features we showcased at Unite 2019. Private metafields and translations are available for general use with the GraphQL Admin API, and delivery profiles have received a few updates. We've also added support for 3D Secure transactions to the REST Admin API and Storefront API.

What's new in 2019-10

Below are some of the highlights of new features in version 2019-10 of Shopify's APIs:

Breaking changes

These changes require special attention. If your app uses these API resources and you don’t upgrade to a more recent API version, then your app will break.

Pagination

Page-based pagination has been removed on all remaining REST endpoints, and has been replaced with cursor-based pagination.

To migrate, see our tutorial on cursor-based pagination.

For operations that need to fetch large amounts of data, use the GraphQL Admin API to perform bulk operations rather than paginating through resources.

Delivery Profiles

The activatedCarrierServices field isn't compatible with multiple origin shipping, and has been removed.

Use the availableCarrierServices field instead. It includes both the carrier service and applicable countries.

Inventory

Deprecation for legacy inventory behavior is now extended to all apps. To learn more, refer to Migrating to support multiple locations.

Developer preview

There are no new Shopify admin features for the API changes in version 2019-10, and no developer preview. Use a normal development store for your development environments.

To use the new API features, call the 2019-10 version of the API.

REST Admin API changes

Below are all the changes introduced in the 2019-10 release candidate of the REST Admin API.

Page-based pagination has been replaced by cursor-based pagination across the remaining REST endpoints.

All REST API endpoints

  • You can't use both order and since_id. Using since_id requires ordering by id asc and the ordering is done automatically.

AbandonedCheckouts

  • Removed the page filter, and replaced page-based pagination with cursor-based pagination for GET /admin/api/2019-10/checkouts.json.

Articles

  • Removed the page filter, and replaced page-based pagination with cursor-based pagination for GET /admin/api/2019-10/blogs/#{blog_id}/articles.json.
  • If blog_id is used and the blog doesn’t have any articles, then no result are returned. In previous version, blog_id tried to match the filters against all articles in a shop, if the blog with blog_id didn't have any articles.
  • The default sort order has changed. Now blog posts are sorted by id desc. Previously they were sorted by unpublished first and then published blog post sorted by the date they were published.

Blogs

  • Removed the page filter, and replaced page-based pagination with cursor-based pagination for GET /admin/api/2019-10/blogs.json.

Comments

  • Removed the page filter, and replaced page-based pagination with cursor-based pagination for GET /admin/api/2019-10/comments.json.

CustomCollections

  • Removed the page filter, and replaced page-based pagination with cursor-based pagination for GET /admin/api/2019-10/custom_collections.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.

CustomerAddresses

  • Removed the page filter, and replaced page-based pagination with cursor-based pagination for GET /admin/api/2019-10/customers/#{customer_id}/addresses.json.

Customers

  • Removed the page filter, and replaced page-based pagination with cursor-based pagination for GET /admin/api/2019-10/customers.json and GET /admin/api/2019-10/customers/search.json.

DiscountCodes (Price Rules)

  • Removed the page filter, and replaced page-based pagination with cursor-based pagination for GET /admin/api/2019-10/price_rules/#{price_rule_id}/discount_codes.json.

Disputes (Shopify Payments)

  • Removed the page filter, and replaced page-based pagination with cursor-based pagination for GET /admin/api/2019-10/shopify_payments/disputes.json.
  • No longer accept limits over 250. Limits over 250 return an error.

DraftOrders

  • Removed the page filter, and replaced page-based pagination with cursor-based pagination for GET /admin/api/2019-10/draft_orders.json.

Fulfillments

  • Removed the page filter, and replaced page-based pagination with cursor-based pagination for GET /admin/api/2019-10/orders/#{order_id}/fulfillments.json.

GiftCards

  • Removed the page filter, and replaced page-based pagination with cursor-based pagination for GET /admin/api/2019-10/gift_cards.j