--- title: 2020-01 release notes description: Update your app from API version 2019-10 to 2020-01. api_name: release-notes source_url: html: https://shopify.dev/docs/api/release-notes/previous-versions/2020-01?itcat=partner_blog&itterm=api_deprecation_update_2020_10 md: https://shopify.dev/docs/api/release-notes/previous-versions/2020-01.md?itcat=partner_blog&itterm=api_deprecation_update_2020_10 --- ExpandOn this page * [Breaking changes](https://shopify.dev/docs/api/release-notes/previous-versions/2020-01#breaking-changes) * [REST Admin API changes](https://shopify.dev/docs/api/release-notes/previous-versions/2020-01#rest-admin-api-changes) * [Graph​QL Admin API changes](https://shopify.dev/docs/api/release-notes/previous-versions/2020-01#graphql-admin-api-changes) * [Storefront API changes](https://shopify.dev/docs/api/release-notes/previous-versions/2020-01#storefront-api-changes) # 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](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. | Release date | Date version is no longer supported | | - | - | | January 1, 2020 | January 1, 2021 | The 2020-01 release contains many of the features we previewed at [Unite 2019](https://www.shopify.ca/partners/blog/shopify-unite-announcements-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: * [Manage the various types of media associated with merchants' products](https://shopify.dev/docs/apps/build/online-store/product-media) using the GraphQL Admin API. * [Edit orders](https://shopify.dev/docs/apps/build/orders-fulfillment/order-management-apps/edit-orders) using the GraphQL Admin API. * [Improve your fulfillment workflows with fulfillment orders](https://shopify.dev/docs/apps/build/orders-fulfillment/fulfillment-service-apps) using the GraphQL Admin API. * [Manage smart collections more effectively](https://shopify.dev/docs/api/admin-rest/latest/resources/collection) using the REST Admin API. * [Create “Spend X Get Y” discount codes](https://shopify.dev/docs/apps/build/discounts#related-mutations-and-queries) using the GraphQL Admin 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. ### Collects API 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. ### Maximum input array size for Graph​QL 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. *** ## REST Admin API changes Below are all the changes introduced in the 2020-01 version of the REST Admin API. ### Collects #### Breaking 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 Collections API * 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` ### Fulfillment orders You can manage fulfillments with more control using FulfillmentOrder-based fulfillment. To learn more, refer to [Managing fulfillments with the FulfillmentOrder resource](https://shopify.dev/docs/apps/build/orders-fulfillment/fulfillment-service-apps). ### Fulfillment Services * Added the `fulfillment_orders_opt_in` property to fulfillment services. ### Assigned 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. ### Cancellation 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. ### Fulfillment 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. ### Fulfillment orders * 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. ### Locations for move * 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. ### Fulfillments * 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. ### Changes to webhooks The following changes have been made to the [Webhook](https://shopify.dev/docs/api/admin-rest/latest/resources/webhook) resource: **New topics** * `orders/edited` was added as part of the new [order editing feature for the GraphQL Admin API](#graphql-admin-api-changes). ### Track whether inventory items need shipping * The `requires_shipping` property on the [InventoryItem](https://shopify.dev/docs/api/admin-rest/latest/resources/inventoryitem) resource can now be updated. This property replaces the deprecated `requires_shipping` property on the [Product Variant](https://shopify.dev/docs/api/admin-rest/latest/resources/product-variant) resource. *** ## Graph​QL Admin API changes Below are all the changes introduced in the 2020-01 version of the GraphQL Admin API. ### Maximum input array size for Graph​QL operations #### Breaking 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. ### Associate 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](https://shopify.dev/docs/apps/build/online-store/product-media). **Updated types** * `VIDEO` value was added to enum [`StagedUploadTargetGenerateUploadResource`](https://shopify.dev/docs/api/admin-graphql/latest/enums/stageduploadtargetgenerateuploadresource) * `MODEL_3D` value was added to enum [`StagedUploadTargetGenerateUploadResource`](https://shopify.dev/docs/api/admin-graphql/latest/enums/stageduploadtargetgenerateuploadresource) * `IMAGE` value was added to enum [`StagedUploadTargetGenerateUploadResource`](https://shopify.dev/docs/api/admin-graphql/latest/enums/stageduploadtargetgenerateuploadresource) * `media: [CreateMediaInput!]` argument was added to mutation [`productCreate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productcreate) **New fields** * `fileSize` field was added to input object type [`StagedUploadTargetGenerateInput`](https://shopify.dev/docs/api/admin-graphql/latest/input-objects/stageduploadtargetgenerateinput) * `mediaCount` field was added to object type [`Product`](https://shopify.dev/docs/api/admin-graphql/latest/objects/product) * `media` field was added to object type [`Product`](https://shopify.dev/docs/api/admin-graphql/latest/objects/product) * `featuredMedia` field was added to object type [`Product`](https://shopify.dev/docs/api/admin-graphql/latest/objects/product) **New types** * [`VideoSource`](https://shopify.dev/docs/api/admin-graphql/latest/objects/videosource) object was added * [`Video`](https://shopify.dev/docs/api/admin-graphql/latest/objects/video) object was added * [`Model3dSource`](https://shopify.dev/docs/api/admin-graphql/latest/objects/model3dsource) object was added * [`Model3d`](https://shopify.dev/docs/api/admin-graphql/latest/objects/model3d) object was added * [`MediaImage`](https://shopify.dev/docs/api/admin-graphql/latest/objects/mediaimage) object was added * [`ExternalVideo`](https://shopify.dev/docs/api/admin-graphql/latest/objects/externalvideo) was added * [`StagedUploadInput`](https://shopify.dev/docs/api/admin-graphql/latest/input-objects/stageduploadinput) input object was added * [`StagedUploadParameter`](https://shopify.dev/docs/api/admin-graphql/latest/objects/stageduploadparameter) object was added * [`StagedMediaUploadTarget`](https://shopify.dev/docs/api/admin-graphql/latest/objects/stagedmediauploadtarget) object was added * [`UpdateMediaInput`](https://shopify.dev/docs/api/admin-graphql/latest/input-objects/updatemediainput) input object was added * [`CreateMediaInput`](https://shopify.dev/docs/api/admin-graphql/latest/input-objects/createmediainput) input object was added * [`ProductMediaSortKeys`](https://shopify.dev/docs/api/admin-graphql/latest/enums/productmediasortkeys) enum was added * [`MediaStatus`](https://shopify.dev/docs/api/admin-graphql/latest/enums/mediastatus) enum was added * [`MediaPreviewImageStatus`](https://shopify.dev/docs/api/admin-graphql/latest/enums/productmediasortkeys) enum was added * [`MediaPreviewImage`](https://shopify.dev/docs/api/admin-graphql/latest/enums/productmediasortkeys) enum was added * [`MediaErrorCode`](https://shopify.dev/docs/api/admin-graphql/latest/enums/mediaerrorcode) enum was added * [`MediaError`](https://shopify.dev/docs/api/admin-graphql/latest/objects/mediaerror) object was added * [`MediaContentType`](https://shopify.dev/docs/api/admin-graphql/latest/enums/mediacontenttype) was added * [`Media`](https://shopify.dev/docs/api/admin-graphql/latest/interfaces/media) interface was added **New mutations** * [`stagedUploadsCreate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/stageduploadscreate) was added * [`productUpdateMedia`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productupdatemedia) was added * [`productReorderMedia`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productreordermedia) was added * [`productDeleteMedia`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productdeletemedia) was added * [`productCreateMedia`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productcreatemedia) was added ### Edit existing orders You can now edit orders to add items, remove items, or update item quantities. To learn more, refer to [Editing existing orders](https://shopify.dev/docs/apps/build/orders-fulfillment/order-management-apps/edit-orders). **Updated types** * `EDIT_ORDERS` was added to enum type `StaffMemberPermission` **New types** * [`CalculatedOrder`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/calculatedorder) was added * [`OrderStagedChangeIncrementItem`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/orderstagedchangeincrementitem) was added * [`OrderStagedChangeDecrementItem`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/orderstagedchangedecrementitem) was added * [`OrderStagedChangeAddVariant`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/orderstagedchangeaddvariant) was added * [`OrderStagedChangeAddCustomItem`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/orderstagedchangeaddcustomitem) was added * [`OrderStagedChange`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/orderstagedchange) was added * [`CalculatedLineItem`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/calculatedlineitem) was added * [`LineItemMutable`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/lineitemmutable) was added **New fields** * `totalOutstandingSet` was added to [`Order`](https://shopify.dev/docs/api/admin-graphql/latest/objects/order) * `refundDiscrepancySet` was added to [`Order`](https://shopify.dev/docs/api/admin-graphql/latest/objects/order) * `originalTotalPriceSet` was added to [`Order`](https://shopify.dev/docs/api/admin-graphql/latest/objects/order) * `lineItemsMutable` was added to [`Order`](https://shopify.dev/docs/api/admin-graphql/latest/objects/order) * `edited` was added to [`Order`](https://shopify.dev/docs/api/admin-graphql/latest/objects/order) **New mutations** * [`orderEditSetQuantity`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/ordereditsetquantity) was added * [`orderEditCommit`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/ordereditcommit) was added * [`orderEditBegin`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/ordereditbegin) was added * [`orderEditAddVariant`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/ordereditaddvariant) was added * [`orderEditAddCustomItem`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/ordereditaddcustomitem) was added ### Grant 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` ### Manage 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](https://shopify.dev/docs/apps/build/orders-fulfillment/fulfillment-service-apps). **Updated types** * `IN_PROGRESS` value was added to the [OrderDisplayFulfillmentStatus](https://shopify.dev/docs/api/admin-graphql/latest/enums/orderdisplayfulfillmentstatus) enum. **New fields** * `fulfillment_order` was added to [QueryRoot](https://shopify.dev/docs/api/admin-graphql/latest/objects/queryroot). * `fulfillment_orders` was added to [Shop](https://shopify.dev/docs/api/admin-graphql/latest/objects/shop). * `assigned_fulfillment_orders` was added to [Shop](https://shopify.dev/docs/api/admin-graphql/latest/objects/shop). * `fulfillment_orders` was added to [Order](https://shopify.dev/docs/api/admin-graphql/latest/objects/order). * `fulfillment_orders` was added to [Fulfillment](https://shopify.dev/docs/api/admin-graphql/latest/objects/fulfillment). * `order` was added to [Fulfillment](https://shopify.dev/docs/api/admin-graphql/latest/objects/fulfillment). * `callback_url` was added to [FulfillmentService](https://shopify.dev/docs/api/admin-graphql/latest/objects/fulfillmentservice). * `fulfillment_orders_opt_in` was added to [FulfillmentService](https://shopify.dev/docs/api/admin-graphql/latest/objects/fulfillmentservice). **New types** * [FulfillmentTrackingInput](https://shopify.dev/docs/api/admin-graphql/latest/input-objects/fulfillmenttrackinginput) input type was added. * [FulfillmentV2Input](https://shopify.dev/docs/api/admin-graphql/latest/input-objects/fulfillmentv2input) input type was added. * [FulfillmentOrder](https://shopify.dev/docs/api/admin-graphql/latest/objects/fulfillmentorder) object was added. * [FulfillmentOrderAction](https://shopify.dev/docs/api/admin-graphql/latest/objects/fulfillmentorderaction) enum was added. * [FulfillmentOrderAssignedLocation](https://shopify.dev/docs/api/admin-graphql/latest/objects/fulfillmentorderassignedlocation) object was added. * [FulfillmentOrderAssignmentStatus](https://shopify.dev/docs/api/admin-graphql/latest/objects/fulfillmentorderassignmentstatus) enum was added. * [FulfillmentOrderDestination](https://shopify.dev/docs/api/admin-graphql/latest/objects/fulfillmentorderdestination) object was added. * [FulfillmentOrderLineItem](https://shopify.dev/docs/api/admin-graphql/latest/objects/fulfillmentorderlineitem) object was added. * [FulfillmentOrderLineItemInput](https://shopify.dev/docs/api/admin-graphql/latest/input-objects/fulfillmentorderlineiteminput) input type was added. * [FulfillmentOrderLineItemsInput](https://shopify.dev/docs/api/admin-graphql/latest/input-objects/fulfillmentorderlineitemsinput) input type was added. * [FulfillmentOrderLocationForMove](https://shopify.dev/docs/api/admin-graphql/latest/mutations/fulfillmentorderlocationformove) object was added. * [FulfillmentOrderMerchantRequest](https://shopify.dev/docs/api/admin-graphql/latest/objects/fulfillmentordermerchantrequest) object was added. * [FulfillmentOrderMerchantRequestKind](https://shopify.dev/docs/api/admin-graphql/latest/objects/fulfillmentordermerchantrequestkind) enum was added. * [FulfillmentOrderRequestStatus](https://shopify.dev/docs/api/admin-graphql/latest/objects/fulfillmentorderrequeststatus) enum was added. * [FulfillmentOrderSupportedAction](https://shopify.dev/docs/api/admin-graphql/latest/objects/fulfillmentordersupportedaction) object was added. **New mutations** * [FulfillmentCreateV2](https://shopify.dev/docs/api/admin-graphql/latest/objects/fulfillmentcreatev2) was added. * [FulfillmentTrackingInfoUpdateV2](https://shopify.dev/docs/api/admin-graphql/latest/objects/fulfillmenttrackinginfoupdatev2) was added. * [fulfillmentCancel](https://shopify.dev/docs/api/admin-graphql/latest/mutations/fulfillmentcancel) was added. * [FulfillmentOrderSubmitCancellationRequest](https://shopify.dev/docs/api/admin-graphql/latest/objects/fulfillmentordersubmitcancellationrequest) was added. * [FulfillmentOrderAcceptCancellationRequest](https://shopify.dev/docs/api/admin-graphql/latest/objects/fulfillmentorderacceptcancellationrequest) was added. * [FulfillmentOrderRejectCancellationRequest](https://shopify.dev/docs/api/admin-graphql/latest/objects/fulfillmentorderrejectcancellationrequest) was added. * [FulfillmentOrderSubmitFulfillmentRequest](https://shopify.dev/docs/api/admin-graphql/latest/objects/fulfillmentordersubmitfulfillmentrequest) was added. * [FulfillmentOrderAcceptFulfillmentRequest](https://shopify.dev/docs/api/admin-graphql/latest/objects/fulfillmentorderacceptfulfillmentrequest) was added. * [FulfillmentOrderRejectFulfillmentRequest](https://shopify.dev/docs/api/admin-graphql/latest/objects/fulfillmentorderrejectfulfillmentrequest) was added. * [FulfillmentOrderClose](https://shopify.dev/docs/api/admin-graphql/latest/mutations/fulfillmentorderclose) was added. * [FulfillmentOrderCancel](https://shopify.dev/docs/api/admin-graphql/latest/mutations/fulfillmentordercancel) was added. * [FulfillmentOrderMove](https://shopify.dev/docs/api/admin-graphql/latest/mutations/fulfillmentordermove) was added. **Updated mutations** * `fulfillment_orders_opt_in` optional argument was added to [FulfillmentServiceUpdate](https://shopify.dev/docs/api/admin-graphql/latest/mutations/fulfillmentserviceupdate). ### Minor non-breaking changes **Updated fields and types** * `SHP` value was added to enum [`CurrencyCode`](https://shopify.dev/docs/api/admin-graphql/latest/enums/currencycode) * `GIP` value was added to enum [`CurrencyCode`](https://shopify.dev/docs/api/admin-graphql/latest/enums/currencycode) * `FKP` value was added to enum [`CurrencyCode`](https://shopify.dev/docs/api/admin-graphql/latest/enums/currencycode) ### New 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** * `EXCEEDED_MAX` was added to enum [`PriceRuleErrorCode`](https://shopify.dev/docs/api/admin-graphql/latest/objects/priceruleerrorcode) ### Set and query customer locales The Customer object type now includes a customer's locale. **New fields** * `locale` was added to input object type [`CustomerInput`](https://shopify.dev/docs/api/admin-graphql/latest/input-objects/customerinput) * `locale` was added to object type [`Customer`](https://shopify.dev/docs/api/admin-graphql/latest/objects/customer) ### Set 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** * `DiscountPurchaseAmount` was added to union type [`DiscountCustomerBuysValue`](https://shopify.dev/docs/api/admin-graphql/latest/objects/discountcustomerbuysvalue) **New types** * [`DiscountPurchaseAmount`](https://shopify.dev/docs/api/admin-graphql/latest/objects/discountpurchaseamount) was added **New fields** * `amount` was added to [`DiscountCustomerBuysValueInput`](https://shopify.dev/docs/api/admin-graphql/latest/objects/discountcustomerbuysvalueinput) * `extraInfo` was added to [`DiscountUserError`](https://shopify.dev/docs/api/admin-graphql/latest/objects/discountusererror) ### Translate delivery method definitions Delivery method definitions are now translatable resources. To learn more about delivery method definitions, refer to [Manage delivery profiles](https://shopify.dev/docs/apps/build/purchase-options/deferred/delivery-and-deferment/build-delivery-profiles). To learn more about translating resources, refer to [Translating content with the API](https://shopify.dev/docs/api/admin-graphql/latest/queries/translatableResource#section-examples) **Updated types** * `DELIVERY_METHOD_DEFINITION` was added to enum [`TranslatableResourceType`](https://shopify.dev/docs/api/admin-graphql/latest/enums/translatableresourcetype) ### Updates to delivery profiles **Updated fields** * `merchantOwnedOnly` argument was added to field `QueryRoot.deliveryProfiles` **New types** * [`DeliveryProductVariantsCount`](https://shopify.dev/docs/api/admin-graphql/latest/objects/deliveryproductvariantscount) object type was added **New fields** * `productVariantsCountV2` was added to object type [`DeliveryProfile`](https://shopify.dev/docs/api/admin-graphql/latest/objects/deliveryprofile) * `DeliveryProfile.productVariantsCount` was deprecated in favor of `productVariantsCountV2` ### Query 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](https://shopify.dev/docs/api/admin-graphql/latest/queries/shopLocales#section-examples). **New types** * [`Locale`](https://shopify.dev/docs/api/admin-graphql/latest/objects/locale) object was added **New fields** * `availableLocales` was added to [`QueryRoot`](https://shopify.dev/docs/api/admin-graphql/latest/objects/queryroot) *** ## Storefront API changes Below are all the changes introduced in the 2020-01 version of the Storefront API. ### Maximum input array size for Graph​QL operations #### Breaking 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. ### Minor non-breaking changes **Updated fields and types** * `SHP` value was added to enum [`CurrencyCode`](https://shopify.dev/docs/api/storefront/reference/common-objects/currencycode) * `GIP` value was added to enum [`CurrencyCode`](https://shopify.dev/docs/api/storefront/reference/common-objects/currencycode) * `FKP` value was added to enum [`CurrencyCode`](https://shopify.dev/docs/api/storefront/reference/common-objects/currencycode) ### Query 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** * [`UnitPriceMeasurementMeasuredUnit`](https://shopify.dev/docs/api/storefront/reference/products/unitpricemeasurementmeasuredunit) was added * [`UnitPriceMeasurementMeasuredType`](https://shopify.dev/docs/api/storefront/reference/products/unitpricemeasurementmeasuredtype) was added * [`UnitPriceMeasurement`](https://shopify.dev/docs/api/storefront/reference/products/unitpricemeasurement) was added **New fields** * `unitPrice` was added to [`ProductVariant`](https://shopify.dev/docs/api/storefront/reference/products/productvariant) * `presentmentUnitPrices` was added to [`ProductVariant`](https://shopify.dev/docs/api/storefront/reference/products/productvariant) * `unitPriceMeasurement` was added to [`ProductVariant`](https://shopify.dev/docs/api/storefront/reference/products/productvariant) ### Retrieve 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** * `media` was added to object type [`Product`](https://shopify.dev/docs/api/storefront/reference/products/product) **New types** * [`VideoSource`](https://shopify.dev/docs/api/storefront/reference/products/videosource) was added * [`Video`](https://shopify.dev/docs/api/storefront/reference/products/video) was added * [`Model3dSource`](https://shopify.dev/docs/api/storefront/reference/products/model3dsource) was added * [`Model3d`](https://shopify.dev/docs/api/storefront/reference/products/model3d) was added * [`MediaImage`](https://shopify.dev/docs/api/storefront/reference/products/mediaimage) was added * [`ExternalVideo`](https://shopify.dev/docs/api/storefront/reference/products/externalvideo) was added * [`MediaContentType`](https://shopify.dev/docs/api/storefront/reference/products/mediacontenttype) was added * [`Media`](https://shopify.dev/docs/api/storefront/reference/products/media) was added ### Retrieve translated content with the Storefront API You can now retrieve translated content for select [resource properties](https://shopify.dev/docs/storefronts/headless/building-with-the-storefront-api/markets#translatable-resources) 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](https://shopify.dev/docs/api/admin-graphql/latest/objects/translationsregister). To learn more, refer to [Support multiple languages on storefronts](https://shopify.dev/docs/storefronts/headless/building-with-the-storefront-api/markets/multiple-languages). **Supported resources** * `Collection` * `Metafield` * `Article` * `Blog` * `Page` * `Product` * `ProductOption` * `ProductVariant` * `ShopPolicy` For a full list of translatable properties, refer to [Translatable resources](https://shopify.dev/docs/storefronts/headless/building-with-the-storefront-api/markets#translatable-resources). ### Corresponding Buy SDK versions | SDK | Supported Versions | | - | - | | Mobile Buy SDK Android | 4.0.0 | | Mobile Buy SDK iOS | 3.7.0, 3.7.1 | | Unity Buy SDK | 2.0.0 | | JS Buy SDK | 2.9.0, 2.9.1,2.9.1, 2.9.2, 2.9.3 | | Buy Button JS | 2.1.0, 2.1.1, 2.1.2 | *** * [Breaking changes](https://shopify.dev/docs/api/release-notes/previous-versions/2020-01#breaking-changes) * [REST Admin API changes](https://shopify.dev/docs/api/release-notes/previous-versions/2020-01#rest-admin-api-changes) * [Graph​QL Admin API changes](https://shopify.dev/docs/api/release-notes/previous-versions/2020-01#graphql-admin-api-changes) * [Storefront API changes](https://shopify.dev/docs/api/release-notes/previous-versions/2020-01#storefront-api-changes)