Developer changelog
Subscribe to the changelog to stay up to date on recent changes to Shopify’s APIs and other developer products, as well as preview upcoming features and beta releases.
RSS updatesThere are no entries for your filter criteria.
September 09, 2020
Minimum purchase prerequisites added to REST Admin API Price Rules API
Apps can now create BXGY discounts with a minimum purchase amount prerequisite via the REST Admin API.
A new prerequisite_to_entitlement_purchase
field was added that defines the minimum purchase amount required to qualify for the discount.
For more information, visit the Price Rules API reference.
September 03, 2020
Online store speed report and scores now accessible through the partner dashboard Tools
You can now access the online store speed report data from the Stores page in the partner dashboard, so you can quickly identify which clients might need your help making their online store faster. You can view store performance data for all of your managed stores and sort stores by speed score.
Learn more about the online store speed report in the Shopify Help Center.
September 01, 2020
POS Product Recommendations App Extension is Generally Available API
Available today through the Partner Dashboard, the POS product recommendations app extension allows app developers who build product recommendations, and cross-sell and up-sell apps, to extend their app functionality to Shopify POS.
Product recommendations are a valuable feature for merchants with both online and physical store locations, who are looking to surface just-in-time product recommendations that are consistent across all storefronts, and make it easier for store staff to make more data-driven and informed purchase recommendations to buyers. This app extension allows app developers to provide this surface, while in turn making their app available to a whole new customer base.
To learn more about the POS product recommendations app extension, please visit the Shopify Help Centre.
September 01, 2020
Removing the ability to change the tax field data API
As of API version 2020-10, we are removing the ability to change any tax field data using the Country and Province resources.
Please see the 2020-10 release notes for more information.
September 01, 2020
New webhook topic: profiles API
You can now subscribe to events related to delivery profiles with webhooks.
In the past, changes to a shop’s shipping zones triggered the shop/update webhook, but didn’t include any information about the new zone configuration. To stay current, apps would then have to send a follow up request to the shipping_zones
endpoint and compare the results with their local copies of the data.
With the release of delivery profiles, we wanted to provide a proper webhook topic for apps that would allow them to avoid these frequent callbacks. As of today, you can now subscribe to the profile_create
, profile_update
, and profile_delete
webhooks.
For more information, see the webhooks topic documentation, our updated delivery profiles guide, and the 2020-10 release notes.
August 27, 2020
Fulfillment Order delivery method available using Admin GraphQL API API
As of the 2020-10 version, we have added information to fulfillment orders that allow API clients to understand the delivery method of any fulfillment order.
A fulfillment order delivery method can help you figure out how the line items represented by the fulfillment order should be delivered, or if they need to be picked up in-store.
Learn more about Fulfillment Orders and their associated delivery methods in our documentation.
August 26, 2020
Private app permissions disabled by default Platform
Starting in the next few weeks, private app permissions will be set to Off by default in all non-Plus stores. This ensures that merchants opt in to all private apps and understand the permissions they’re giving to developers. All current private apps will continue to function, but cannot be modified until merchants re-enable private apps in the Shopify admin.
If you are looking for an alternative to private apps when building bespoke apps for merchants, consider using custom apps.
To learn more about private app permissions, please visit the Shopify Help Center.
August 12, 2020
Apps can now edit orders they created API
Previously apps could only edit orders created through a Shopify channel (for example, POS, online store, or draft orders). Going forward, apps can now edit orders they created. To determine if your app can edit an order on Shopify, you can query the merchantEditable field on the Order object. If the return value of this field is true, your app can edit the order.
August 11, 2020
Shopify App Store Ads - Recommended Keywords Shopify App Store
A new feature has been added to make it easier to manage and optimize your ads on the Shopify App Store - Recommended Keywords.
Recommended keywords - Keyword recommendations are now provided when partners add keywords. These recommendations are generated based on organic search performance, app category and other factors.
Learn more about Shopify App Store Ads in the Help Centre
August 04, 2020
Action required
The first online store design experience beta phase is ending Tools
We're closing our first online store design experience beta period to address feedback and add functionality. While we prepare for the next phase, we'll be removing the Online store design experience developer preview, effective August 4, 2020.
Development stores using this developer preview will be removed. If you're currently using this developer preview to build a sections-compatible app or theme, then you need to back up your work before the developer preview ends.
We'll continue to update our developer documentation so you can stay up to date while we build our next iteration. We’ll also share an updated developer preview closer to the release of this feature. All updates we make will be compatible with what you have built so far.
To learn more or to ask questions about the online store design experience developer preview, visit our Shopify Community discussion board.
August 04, 2020
Resuming activity requirement for Partners Platform
On August 4, 2020, we resumed the activity requirement to continue receiving recurring commission payments for referrals and Plus upgrades. If you are a Partner that receives recurring commission payments for referrals or Plus upgrades, please check the Referrals page in your Partner Dashboard to understand how much time you have until you need to complete another activity. The activity requirement does not apply to ongoing earnings from app sales, theme sales, or any Partner activity other than referrals and Plus upgrades.
August 04, 2020
Storefront API checkout throttle Platform
Shopify will now limit the amount of checkouts that can be created on the Storefront per minute. If an API client exceeds this throttle, then a 200 Throttled error response is returned.
For more information, see API rate limits.
July 29, 2020
Cookieless App Bridge auth beta now available Tools
Our new App Bridge authentication beta introduces session tokens to empower developers to create faster apps that are compatible with all modern browsers. Session token-based authentication does not depend on cookies, but instead relies on a Shopify-generated token that your app needs to send with every request.
To learn how you can participate in the beta and get started with App Bridge authentication and session tokens, refer to our developer documentation.
July 28, 2020
Measure storefront performance with new Online store speed report Themes
We've added a new report to the Shopify admin that will help merchants and Partners gauge and measure online store speed.
The new Online store speed report runs speed tests for merchants' home page and highest-traffic collection and product pages, and then combines each page’s Google Lighthouse speed score into an overall score. It also provides a comparison of how a merchants store’s speed compares to similar online stores.
The Online store speed report will roll out to all merchants over the coming weeks. You can learn about how the speed score and ranking are calculated and how you can help merchants improve their speed in the Shopify Help Center.
July 17, 2020
ReCAPTCHA v3 on storefront contact forms & blog comments Themes
Google’s reCAPTCHA v3 has been added to online store contact forms and blog comments to reduce incoming spam. reCAPTCHA v3 analyzes visitor behavior to block spam from bots, and reduces friction for real users by eliminating CAPTCHA challenges. This feature is enabled by on all stores by default, but can be disabled in the online store preferences.
Learn more about reCAPTCHA v3 and how it interacts with themes on Shopify.dev.
July 07, 2020
Apps can now offer annual subscriptions through the Billing API Shopify App Store
To support more business models on the Shopify App Store, we’re introducing annual subscriptions through the Billing API. Merchants can choose a yearly subscription for your app, and you can track annual revenue from the Partner Dashboard.
We’ve also made it simple for merchants to upgrade an existing app subscription from a monthly to a yearly plan. Price differences will be prorated when merchants change plan intervals.
Learn more about enabling annual subscriptions for apps on Shopify Developers.
July 02, 2020
API version 2020-07 is now stable and ready for general usage API
The 2020-07 release adds Amazon EventBridge support, enabling you to receive Shopify webhooks using an event bus. Version 2020-07 also adds annual billing support to the Shopify Billing API, Tax ID support for Brazilian merchants using localization extensions, and additional data on domains associated with a given shop.
This release also improves access errors in GraphQL by adding an error code and a message that includes the name of the restricted resource.
Explore all the API changes included in this release in the 2020-07 release notes.
You can also read more about API versioning in the versioning guide and on the partner blog.
July 02, 2020
Action required
API Versions 2019-04 and 2019-10: Upcoming end of support API
Last April, we released API versioning to improve the stability and predictability of Shopify's APIs.
2019-04 was scheduled for deprecation on April 1st, 2020. Support was extended for three months to reduce pressure on our developer community during COVID-19. This extension means that on July 2nd, our first and second supported versions, 2019-04 and 2019-07, will both become unsupported.
On July 2nd, 2020, the following API changes come into effect:
- The 2019-04 and 2019-07 versions become unsupported.
- Requests with no API version specified serve the 2019-10 API version.
- Requests for the 2019-04 or 2019-07 versions will no longer receive them. Instead, these requests receive version 2019-10.
- Webhooks set to 2019-04 or 2019-07 receive version 2019-10.
- The 2020-07 version becomes stable and ready for general usage.
For a full list of breaking changes, please visit our Breaking Changes sections in the 2019-07 release notes and the 2019-10 release notes
July 02, 2020
Domain data available using Admin GraphQL API and webhooks API
With the release of the 2020-07 version of the Admin GraphQL API, you can now access additional data on domains associated with a given shop using the new shop.domains
field and webhook events.
Along with this new field you will be able to use the Domain
object to determine if a shop has SSL enabled and surface cross border domain data including the country, default and alternate locales for each given domain.
June 30, 2020
Add a Facebook pixel to your app listing Shopify App Store
You can now add a Facebook pixel to your app listing. A Facebook pixel can help you to track your app listing traffic and increase your reach through Facebook. Learn more about tracking.
June 26, 2020
New liquid page_image global object Themes
You can now use the page_image
global object to output a store's social sharing image preview. This is the image that is displayed when Shopify store URLs are shared on social channels.
Learn more about the global page_image
object in our developer documentation.
June 25, 2020
Currency API rate_updated_at
field now reflects manual FX rates
API
The currency API rate_updated_at
field now returns the date the manual currency exchange rate was updated, if applicable. If no manual rate was set, the date the automatic rate was updated is returned. This change was made to support the new manual exchange rates feature.
Previously, the currency API returned the date the automatic rate was last updated in this field.
Learn more about the currency API Learn more about manual exchange rates Learn more about automatic exchange rates
June 15, 2020
Action required
New error messages for GraphQL operations without necessary access scopes API
As of 2020-07, we are refining the error messages for GraphQL documents if the app does not have the required access scope(s). Currently, if an app does not have the required access scope, the error message returned is “access denied”
. From 2020-07, the message returned will be “Access denied for <field-name>. Required access: <access scope required> access scope”.
Responses will now also include Extensions, which consist of an error code, link to necessary documentation, and the name of the required access scope. Learn more about access scopes here
June 04, 2020
The Shopify App Store is now available in 4 additional languages Shopify App Store
The Shopify App Store is now available in Czech, Polish, Portuguese (Portugal), and Turkish. You can now create a listing in these languages that will be shown to merchants. Learn more about translated listings.
June 03, 2020
Action required
Removing discount allocation method "one" API
This is a possibly breaking call, where there's no way for Shopify to know if your app is using the 'one' value. As a result, we will not delist any app that continues to get this warning.
As of API version 2020-07, we're updating the allocation method for discounts that have set the target_selection
as explicit
. Currently, Shopify applies these discounts to a single line item, which corresponds to an allocation method of one
. With this change, the allocation methods will instead include "each" and "across".
We're making this change to add "each" functionality, and simplify the discount syntax, as "one" and "across" functionally both discount the final price by a set amount.
This change also affects discount_applications
on the following webhook payloads :
orders/cancelled
orders/create
orders/fulfilled
orders/paid
orders/partially_fulfilled
orders/updated
For more information, please visit the community forum post.
June 01, 2020
Multipass dentifier available in GraphQL API
A customer's multipass identifier is now available in the GraphQL Admin API 2020-07 release candidate using Customer.multipassIdentifer
.
See the 2020-07 release candidate reference docs for details.
June 01, 2020
Effective June 1, 2020 - Partner Program Agreement billing and taxes updates Platform
The Shopify Partner Program Agreement (PPA) updates previously announced on March 3, 2020, go into effect today.
These updates clarify our role as a billing agent, which means we’re the party responsible for facilitating payment transactions between partners and merchants of apps, themes, and services. Product changes that reflect these billing and tax updates will be live in the coming weeks.
May 28, 2020
Localization extensions developer preview API
The Localization Extensions developer preview is currently available. Localization extensions allow partners and app developers to access the tax id that is collected during checkout and use this information to augment shipping apps (expedite customs clearance) and invoicing apps (issue goverment invoices).
Starting in the 2020-07 release candidate, orders made through checkout in countries that require a tax id for customs clearance or government invoicing will have this information available through the GraphQL API.
You can try these APIs by using a development store with the 'Localization Extensions' developer preview enabled.
For more information on how to apply tax IDs on checkout and view them through the GraphQL API, read to our localization extenson tutorial.
For any questions and discussion regarding the Localization Extensions developer preview, visit our forum post.
May 28, 2020
Shopify theme inspector for Chrome now supports collaborator account access Tools
You can now use the Shopify theme inspector for Chrome to debug Liquid render performance on shops you have collaborator account access to.
If you'd like to learn more, contribute a feature, open an issue, or make a feature request, then check out the Shopify theme inspector Github repository.
May 26, 2020
Page picker available for Online Store Design Experience developer preview Themes
Navigating to individual pages on the Online Store Editor is now supported for the Online Store Design Experience developer preview with a new page picker feature on the Online Store Editor.
The page picker option in the top bar of the Online Store Editor allows users to search for specific pages, or navigate to a page using a drop-down selector filtered by page types. This will enable merchants and developers to quickly access a specific page when customizing the storefront using the Online Store Editor.
May 25, 2020
Total tip received available in GraphQL API
The total tip amount received on an order is now available in the GraphQL Admin API 2020-07 release candidate via Order.totalTipReceived
.
See the 2020-07 release candidate reference docs for details.
May 14, 2020
Amazon’s EventBridge integration now available Tools
You can now integrate your app with Amazon EventBridge to receive Shopify webhooks using an event bus. EventBridge's serverless, event-driven architecture can help you reduce infrastructure costs while providing a scalable system.
Visit our developer documentation to learn how to set up an event source and manage events with EventBridge.
May 14, 2020
New Liquid multiline tags Themes
We’ve added two new Liquid theme tags.
liquid
The liquid
theme tag simplifies theme code. Developers can now write multi-line tags and output expressions within one set of delimiters. This reduces the requirement to open and close multiple sets of delimiters when creating variables and conditions, or executing blocks of code. Learn more about the liquid
tag in our developer documentation.
echo
The echo
theme tag works inside the new liquid
tag to output an expression, or Liquid object, in the rendered HTML. Filters can also be applied to expressions using the echo
tag. Learn more about the echo
tag in our developer documentation.
May 12, 2020
Change to merchant billing Platform
We’re adding more flexibility to merchant billing, making it easier for your users to keep running their businesses during COVID-19 and avoid store shutdowns. The change means that you might see delayed payouts from some of your referred stores.
Learn more about how merchant payments impact your payouts in the Shopify Help Center.
May 04, 2020
All-new Shopify POS is now available Platform
Shopify POS 6.0 has been rebuilt and redesigned. Omnichannel features and essential upgrades to Shopify’s point of sale, including a new smart grid interface, global search, analytics, curbside pickup, and more, have been added.
Apps built to integrate with Shopify POS using the POS SDK or App Bridge will continue to function in POS 6.0 (all-new POS), and the app interface will automatically adjust to work within the new smart-grid design.
Discover new opportunities to build integrations and features for brick and mortar merchants today.
Lean more about building apps for POS
May 04, 2020
Improved reporting for app store ads Shopify App Store
We’ve improved the reporting for ads so that advertisers can more accurately tell where their ads are showing up. Specifically, we are adding the following two new reporting columns:
- Average position will report on the position that their ad displays as. Learn more here.
- Visibility will report (as a percentage of first page auctions you participate in) what percentage of your impressions are served on the first page. Visibility will only apply to impressions served March 11, 2020 onward. Learn more here.
April 22, 2020
Pause plan introduced - app access and billings restricted during pause Platform
Shopify has introduced a new Pause plan for stores. The new Pause plan allows merchants to pause their store for up to three months.
While merchants take a pause from running their store on Shopify, all apps will remain installed on the paused store, but app billings will be frozen and merchants will not abe able to access or use the apps. This means that merchants do not need to reinstall and reconfigure their apps when they resume running their business.
This update helps app developers to retain users in the long term by allowing a simple and seamless pause in the short term. No action is required from app developers.
Stores in this state have a plan display name of Full Pause
in the shop/update
webhook. Recurring charges for these stores appear as as Recurring charge frozen in the Partner Dashboard.
April 17, 2020
Amount no longer required on DraftOrderAppliedDiscountInput API
The amount
field is no longer a required field on DraftOrderAppliedDiscountInput
. If omitted, then the amount
is automatically calculated based on the value
and valueType
. This avoids unnecessary calculations by API clients that can otherwise be done by Shopify.
For more information, refer to DraftOrderAppliedDiscountInput in our GraphQL reference.
April 14, 2020
Updates to the Online Store Design Experience partner beta Themes
This month we have released new features for developers participating in the Online Store Design Experience partner beta. The following features are now available for testing for new and existing development stores using the "online store design experience" developer preview. You can find info on how to create a developer preview store in our Help Center.
The Sections theme architecture is now supported on the Cart, Password, and 404 pages. Sections can be enabled on these pages using the Online Store Editor with a sections-compatible theme. More info on how to enable sections on a page can be found in our Developer Documentation.
The Section Rendering API can be used to request the HTML markup of frame, page, content, and app sections through an AJAX request. This improves storefront performance by allowing you to update page content by fetching only partial elements of a page, instead of reloading it entirely. More info on this new API can be found in our Developer Documentation.
HTML tags can be inserted around theme frame sections using the wrapper
property. This allows developers to optionally use containers and other tags around the three segments of a page. More info on the wrapper
property can be found in our Developer Documentation.
Sections can now contain a text input and a URL picker on a single setting with the link
setting type. The link
setting type can only be used in sections (including the additional settings of content sections).
For any questions regarding the online store design experience developer preview visit our dedicated forum.
April 09, 2020
Update to how app ratings are calculated Shopify App Store
As of today, we've changed how we calculate and display an app’s overall star rating, from a historical average to a weighted average that favours recent reviews. As apps change over time, we want to ensure that merchants see a rating that’s more reflective of the current capabilities of your app.
Please note that there shouldn't be a noticeable impact on your search and category ranking.
If you’re concerned that the volume of reviews you’ve received hasn’t grown inline with your app improvements, take note around best practices for asking for reviews. We also recommend replying to reviews as we’ve seen a positive correlation in review replies and updated star ratings.
April 01, 2020
Length of the Shopify access token is increasing API
The length of newly generated Shopify access tokens will increase from 32 to 38 characters, adding a static prefix of shpat_
(for public apps), shpca_
(for custom apps), or shppa_
(for legacy private apps). This change will take effect on April 1st, and will impact all access tokens generated after this date.
This is a breaking change only if your application makes assumptions regarding the length of Shopify access tokens. For example, if your app store Shopify access tokens in a 32-character database field or validates that they are exactly 32 characters, then you should adjust your application or database so it can accept longer access tokens prior to April 1st. Existing access tokens will continue to function in their 32-character form until they expire or are re-requested.
Learn more about authenticating your Shopify app from the Shopify Help Center.
April 01, 2020
Order duties released in developer preview API
Today we are releasing a new developer preview to allow merchants the ability to charge duties calculated by Shopify during checkout and avoid surprise charges for their customers upon delivery.
As of the 2020-04 release, duties and taxes charged on international orders through checkout can be viewed through the REST and GraphQL API, and refunded through the GraphQL API.
You can try these changes using a development store with the 'Duties and Taxes' developer preview enabled.
For more information on how to apply duties on checkout and refund them through the GraphQL API, refer to our tutorial.
For any questions and discussion regarding the Duties and Taxes developer preview, visit our forum post.
April 01, 2020
API version 2020-04 is now stable and ready for general usage API
The 2020-04 release adds parameters to better represent edited orders to the Storefront API and exposes new information about duties and taxes on international orders . Version 2020-04 also adds more information about media that has been embedded on product pages with additional fields for Product Media.
Explore all the API changes included in this release in the 2020-04 release notes.
You can also read more about API versioning in the versioning guide and on the partner blog.
March 30, 2020
Changes to order and payment testing on newly created development stores Platform
Beginning today, partners who want to test orders in development stores can only process payments using the following methods:
- Shopify's test payment provider (Bogus Gateway).
- A payment provider set to test mode.
If you need to test your development store using real transactions, then you need to transfer your store to a paid plan.
Orders and payments in existing development stores will not change immediately. Updates to existing development stores will be announced in the developer changelog.
Learn more about test orders on the Shopify Help Center.
If you have further questions about testing payments and orders in newly created development stores, get answers in our dedicated discussion area for developers, or reach out to partner support through your Partner Dashboard.
March 20, 2020
Changes to 2019-04 version timeline API
With the evolving concerns around COVID-19’s impact on communities around the world, we know that partners and merchants are making adjustments to continue running their businesses smoothly. That’s why we’ve decided to postpone the April 1 version removal from April 1, 2020 to July 1, 2020.
This change in the timeline means that you have until July 1 to update your apps to account for changes in both 2019-07 and 2019-10 API versions. The move from page to cursor-based pagination comes into effect for all endpoints on July 1. This simplifies the migration process for apps that need to update their pagination strategies.
To see the deprecated API calls your apps are making, check out the API Health report on the Partner Dashboard.
March 18, 2020
Action required
New password errors for customer mutations API
The customerActivate
, customerActivateByUrl
, customerReset
, and customerResetByUrl
mutations now return more specific error codes when users enter a password input that is invalid. These errors were previously returned as generic invalid customer or token errors.
Check out the full list of possible error codes.
March 03, 2020
New Storefront API fields on the Order and OrderLineItem objects API
We’ve added the following Storefront API fields to the Order and OrderLineItem objects. These new fields can be used to gain additional visibility into an order's state after an edit.
Order.fulfillment_status
Order.cancelled_at
Order.financial_status
Order.cancel_reason
LineItem.current_quantity
LineItem.original_total_price
LineItem.discounted_total_price
Order.original_total_price
Order.current_total_price
Order.edited
Order.current_subtotal_price
Order.current_total_tax
March 03, 2020
Partner Program Agreement updates - Shopify as a billing agent, custom and public apps Platform
We’ve updated our Partner Program Agreement (PPA) to include new definitions of public and custom apps, and to clarify our role as a billing agent. Being a billing agent means we’re the party responsible for facilitating payment transactions between partners and merchants of apps, themes, and services.
PPA updates regarding public and custom apps are effective immediately, as communicated on our partner blog.
For PPA updates regarding the billing and tax status of some Shopify partners, we’ve made sure to provide partners with 90 days notice to assess the potential impact on how they run their businesses. As a result, the billing and tax updates to our PPA will come into effect on June 1st, 2020. Partners will begin to see product changes that reflect these billing and tax updates starting June 2020.
Partners who are impacted by these PPA updates have been directly notified by email and their Partner Dashboard.
February 27, 2020
Get insights into API updates that affect your apps with our new API Health report Tools
The new API Health report on the Partner dashboard shows the deprecated API calls your apps are making, along with documentation and timelines that help keep your apps up to date with Shopify’s API versions. This tool shows details of each deprecated call including the affected endpoint and the last time a call was detected.
Learn more about the API Health report in the Shopify Help Center.
February 18, 2020
New customerActivateByUrl mutation API
Use the customerActivateByUrl
mutation to activate customer accounts without parsing the activation URL for the customer ID and token. Just send the full URL and a new password to activate the customer.
Learn more about updating customers using the Storefront API in the Shopify Help Center.