Skip to main content

2020-01 release notes

Note

We're no longer publishing API release notes. Instead, you can find the latest updates on Shopify APIs in our developer 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.

Release dateDate version is no longer supported
January 1, 2020January 1, 2021

The 2020-01 release contains many of the features we previewed at Unite 2019. The product media, order editing, and fulfillment orders features are now stable and available on merchant stores. You’ll also find new additions to how you can manage smart collections and discount codes.

What's new in 2020-01

The following features were added in version 2020-01 of Shopify’s APIs:


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.

As of verison 2020-01, the Collects REST API only returns collects associated with custom collections, and no longer returns products associated with Smart Collections. To get the products in a smart collection, use the new /admin/api/2020-04/collections/#{collection_id}/products.json endpoint.

Anchor to Maximum input array size for GraphQL operationsMaximum input array size for GraphQL operations

Input arguments that accept an array now have a maximum size of 250. Queries and mutations return an error if an input array exceeds 250 items. This change applies to both the Admin API and the Storefront API.


Anchor to REST Admin API changesREST Admin API changes

Below are all the changes introduced in the 2020-01 version of the REST Admin API.

Collects API now returns only collects associated with custom collections, and no longer returns products associated with Smart Collections. The following endpoints are affected:

  • GET /admin/api/2020-01/collects.json: Now only returns collects associated with custom collections.
  • GET /admin/api/2020-01/collects/count.json: Now only returns the count of collects associated with custom collections.
  • GET /admin/api/2020-01/collects/{collect_id}.json: If the ID collect_id is related to smart collection, then this endpoint returns a 404 error.

  • New API for getting products inside a collection. GET /admin/api/2020-01/collections/#{collection_id}/products.json
  • New API for getting a collection by its ID. GET /admin/api/2020-01/collections/#{collection_id}.json

You can manage fulfillments with more control using FulfillmentOrder-based fulfillment. To learn more, refer to Managing fulfillments with the FulfillmentOrder resource.

Anchor to Fulfillment ServicesFulfillment Services

  • Added the fulfillment_orders_opt_in property to fulfillment services.

Anchor to Assigned fulfillment ordersAssigned fulfillment orders

  • Added a new route GET /admin/api/2020-01/assigned_fulfillment_orders.json?assignment_status=cancellation_requested&location_ids[]=487838322 to retrieve all the fulfillment orders that are assigned to an app at the shop level.

Anchor to Cancellation requestsCancellation requests

  • Added a new route POST /admin/api/2020-01/fulfillment_orders/#{fulfillment_order_id}/cancellation_request.json to send a cancellation request to a fulfillment service for a fulfillment order.
  • Added a new route POST /admin/api/2020-01/fulfillment_orders/#{fulfillment_order_id}/cancellation_request/accept.json to accept a cancellation request sent to a fulfillment service for a fulfillment order.
  • Added a new route POST /admin/api/2020-01/fulfillment_orders/#{fulfillment_order_id}/cancellation_request/reject.json to reject a cancellation request sent to a fulfillment service for a fulfillment order.

Anchor to Fulfillment requestsFulfillment requests

  • Added a new route POST /admin/api/2020-01/fulfillment_orders/#{fulfillment_order_id}/fulfillment_request.json to send a fulfillment request to a fulfillment service for a fulfillment order.
  • Added a new route POST /admin/api/2020-01/fulfillment_orders/#{fulfillment_order_id}/fulfillment_request/accept.json to accept a fulfillment request to a fulfillment service for a fulfillment order.
  • Added a new route POST /admin/api/2020-01/fulfillment_orders/#{fulfillment_order_id}/fulfillment_request/reject.json to reject a fulfillment request to a fulfillment service for a fulfillment order.

  • Added a new route GET /admin/api/2020-01/orders/#{order_id}/fulfillment_orders.json to retrieve a list of fulfillment orders for a specific order.
  • Added a new route GET /admin/api/2020-01/fulfillment_orders/#{fulfillment_order_id}.json to retrieve a specific fulfillment order.
  • Added a new route POST /admin/api/2020-01/fulfillment_orders/#{fulfillment_order_id}/cancel.json to cancel a fulfillment order.
  • Added a new route POST /admin/api/2020-01/fulfillment_orders/#{fulfillment_order_id}/close.json to close a fulfillment order.
  • Added a new route POST /admin/api/2020-01/fulfillment_orders/#{fulfillment_order_id}/move.json to move a fulfillment order.

  • Added a new route GET /admin/api/2020-01/fulfillment_orders/#{fulfillment_order_id}/locations_for_move.json to retrieve locations that a fulfillment order can potentially move to.

  • Added a new route GET /admin/api/2020-01/fulfillment_orders/#{fulfillment_order_id}/fulfillments.json to retrieve fulfillments associated with a fulfillment order.
  • Added a new route POST /admin/api/2020-01/fulfillments.json to create a fulfillment for one or many fulfillment orders.
  • Added a new route POST /admin/api/2020-01/fulfillments/#{fulfillment_id}/cancel.json to cancel a fulfillment.
  • Added a new route POST /admin/api/2020-01/fulfillments/#{fulfillment_id}/update_tracking.json to update the tracking information for a fulfillment.

The following changes have been made to the Webhook resource:

New topics

Anchor to Track whether inventory items need shippingTrack whether inventory items need shipping

  • The requires_shipping property on the InventoryItem resource can now be updated. This property replaces the deprecated requires_shipping property on the Product Variant resource.

Anchor to GraphQL Admin API changesGraphQL Admin API changes

Below are all the changes introduced in the 2020-01 version of the GraphQL Admin API.

Anchor to Maximum input array size for GraphQL operationsMaximum input array size for GraphQL operations

Input arguments that accept an array have a maximum size of 250. Queries and mutations return an error if an input array exceeds 250 items.

Anchor to Associate new media types with productsAssociate new media types with products

Products now support three types of media: images, 3D models, and videos. Use the GraphQL Admin API to upload media assets and then associate them with a product. To learn more, refer to Working with product media.

Updated types

Anchor to Edit existing ordersEdit existing orders

You can now edit orders to add items, remove items, or update item quantities. To learn more, refer to Editing existing orders.

Updated types

Anchor to Grant staff members permission to edit translated contentGrant staff members permission to edit translated content

Staff member permissions include the option to edit translated content.

Updated types

  • TRANSLATIONS was added to enum StaffMemberPermission

Anchor to Manage fulfillments with fulfillment ordersManage fulfillments with fulfillment orders

You can manage fulfillments with more control using FulfillmentOrder-based fulfillment. To learn more, refer to Managing fulfillments with the FulfillmentOrder resource.

Updated types

Anchor to Minor non-breaking changesMinor non-breaking changes

Updated fields and types

Anchor to New error code for maximum number of discounts createdNew error code for maximum number of discounts created

A better error code is returned when an app tries to create more than 20 million discounts or discount codes.

Updated types

Anchor to Set and query customer localesSet and query customer locales

The Customer object type now includes a customer's locale.

New fields

Anchor to Set minimum purchase amounts for discountsSet minimum purchase amounts for discounts

We added support for required minimum purchase amounts for discounts. When a discount requires a minimum amount, a customer's purchase needs to exceed that value to be eligible for the discount.

Updated types

Anchor to Translate delivery method definitionsTranslate delivery method definitions

Delivery method definitions are now translatable resources. To learn more about delivery method definitions, refer to Manage delivery profiles. To learn more about translating resources, refer to Translating content with the API

Updated types

Anchor to Updates to delivery profilesUpdates to delivery profiles

Updated fields

  • merchantOwnedOnly argument was added to field QueryRoot.deliveryProfiles

    New types

  • DeliveryProductVariantsCount object type was added

    New fields

  • productVariantsCountV2 was added to object type DeliveryProfile

  • DeliveryProfile.productVariantsCount was deprecated in favor of productVariantsCountV2

Anchor to Query all available localesQuery all available locales

You can query the full list of locales available for a shop to enable. Refer to the example for retrieving a shop's locales.

New types

  • Locale object was added

    New fields

  • availableLocales was added to QueryRoot


Anchor to Storefront API changesStorefront API changes

Below are all the changes introduced in the 2020-01 version of the Storefront API.

Anchor to Maximum input array size for GraphQL operationsMaximum input array size for GraphQL operations

Input arguments that accept an array have a maximum size of 250. Queries and mutations return an error if an input array exceeds 250 items.

Anchor to Minor non-breaking changesMinor non-breaking changes

Updated fields and types

Anchor to Query the unit price of product variantsQuery the unit price of product variants

You can now query unit measurement and price data for product variants to display per-unit prices (for example, $9.99 / 100 ml).

New types

Anchor to Retrieve new media types for productsRetrieve new media types for products

Products now support three types of media: images, 3D models, and videos. Use the Storefront API to retrieve a product's media and display it on the store's storefront.

Updated types

Anchor to Retrieve translated content with the Storefront APIRetrieve translated content with the Storefront API

You can now retrieve translated content for select resource properties using the Storefront API. You need to use the Accept-Language HTTP request header when sending queries. Before you can retrieve the content, it needs to be created using the GraphQL Admin API.

To learn more, refer to Support multiple languages on storefronts.

Supported resources

  • Collection

  • Metafield

  • Article

  • Blog

  • Page

  • Product

  • ProductOption

  • ProductVariant

  • ShopPolicy

    For a full list of translatable properties, refer to Translatable resources.

Anchor to Corresponding Buy SDK versionsCorresponding Buy SDK versions

SDKSupported Versions
Mobile Buy SDK Android4.0.0
Mobile Buy SDK iOS3.7.0, 3.7.1
Unity Buy SDK2.0.0
JS Buy SDK2.9.0, 2.9.1,2.9.1, 2.9.2, 2.9.3
Buy Button JS2.1.0, 2.1.1, 2.1.2

Was this page helpful?