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.
Filter by tag:
These are the most recent changes to Shopify’s developer platform.
There are no entries for your filter criteria.
May 31, 2023
Action required
CLI 2.x is deprecated Tools
As of May 31, 2023, Shopify CLI 2.x is deprecated for app and theme development, and is no longer supported. You should use Shopify CLI 3.x for all development tasks moving forward.
Shopify will block app and extension commmands for all CLI 2.x users in the coming weeks.
Theme commands will continue to function in the near term.
Learn how to migrate to Shopify CLI 3.x using the following guides:
May 25, 2023
Storefront API is now available to non-channel apps API
Apps no longer need to be a channel in order to access the Storefront APIs. Just request the appropriate unauthenticated access scope(s) to your app.
Take advantage of the Storefront API’s powerful contextualization features to build rich customer-facing experiences for your merchants.
Learn more about authenticating with the Storefront API on Shopify.dev
May 24, 2023
Transition of application credit creation to the Partner API API
As of Admin API version 2023-07, we are deprecating creating application credits through the Admin API. Both the REST resource, and the GraphQL mutation will have their ability to create application credits deprecated. Going forward, create application credits using our new appCreditCreate mutation in the Partner API.
This change will allow us to implement new features for application credit creation, such as allowing Partners to issue credits to Shops that have uninstalled their app.
May 19, 2023
Add color schemes to themes Themes
Theme developers can now add color schemes
to themes. This update adds clarity and flexibility to the theme editing experience by allowing theme-defined and merchant-defined color schemes, adding a visual preview that enables merchants to more easily and predictably update theme colors, and allowing merchants to implement theme changes at the global, section, and block level within their theme.
A solution which will enable theme developers to specify how to migrate merchants’ theme data during the update process when introducing architecture changes (ex: changing scope of settings, modifying schema structure in other ways etc.) will be available later this summer.
Learn more about color schemes
in the dev docs
May 17, 2023
duplicateResolutionMode added to fileCreate API
As of 2023-07, you can use the new duplicateResolutionMode on the fileCreate mutation to control how duplicate filenames are handled.
Learn more about duplicateResolutionMode on Shopify.dev.
May 15, 2023
Action required
Partner email verification Platform
Starting May 15, we will begin enforcing partner email verification to keep the Shopify App Store safe and secure and to better serve our partner community.
Account owners, please use the banner in the partner dashboard to verify your email as soon as possible avoid restrictions to your dashboard access.
May 15, 2023
metafieldsSet support for MediaImage API
As of 2023-07, you can use the metafieldsSet mutation to set metafields on images via MediaImage GIDs.
Learn more about metafieldsSet on Shopify.dev.
May 15, 2023
Add scanner support to POS UI Extensions API
As of May 15, camera and hardware scanning is supported for POS UI Extensions. Available for POS UI Extensions version 1.1.2 and POS app version 8.9.0.
CameraScanner This new comopnent utilizes the device's camera for scanning. The CameraScanner provides a live feed with guidance markers to help users align the camera with barcodes.
Scanner API This new API allows UI extensions to access scanner data and available scanning sources. The API also introduces support for hardware scanners that have external or embeddeed scanning capabilities.
May 12, 2023
Adding read and write permissions for Dependabot secrets to Shopify’s GitHub app Tools
Shopify’s GitHub app now requests read and write permissions for Dependabot secrets. This update supports improvements to the developer experience for Hydrogen headless storefronts hosted on Oxygen.
Currently, deployments to Oxygen are triggered by pushes or merges to a GitHub repo. However, Dependabot, GitHub’s dependency management service, doesn’t have access to the API tokens required to create a deployment. By adding these new permissions, Dependabot will be able to trigger preview deployments on Oxygen when creating pull requests that bump package versions. This change will let developers more quickly validate that automated updates can be safely merged.
Learn more about Shopify’s GitHub integration.
May 10, 2023
Improve your themes with theme check in the code editor Themes
As of today, you can prevent Liquid errors and improve the quality of your themes with theme check in the code editor. This new feature identifies and warns you about potential issues in your code, so you can fix them before they affect the performance of your store.
Learn more about the code editor on Shopify.dev.
May 09, 2023
Increased number of dynamic sources available within templates Themes
Based on your feedback, we've updated the number of dynamic sources you can add within an online store template. You can now add up to 100 dynamic sources per template, and 50 per static section.
Specifically, we now support:
- 100 Dynamic sources in a JSON template
- 100 Dynamic sources in general theme settings
- 100 Dynamic sources in a section group
- 50 Dynamic sources in a single setting
- 50 Dynamic sources in a static section
Updated values and more info can be found in Shopify dev docs
May 09, 2023
Action required
Changes to Merchant Asset URLs API
Update: In the coming weeks we'll start serving some store assets (e.g. images, JS or CSS) from a shop’s store domain rather than a Shopify CDN domain. Certain assets will continue to use the old URL format cdn.shopify.com/…
, while the rest will be converted to a new URL format: shop.example.com/cdn/…
. The new URL format can be seen in action on the demo store www.snowdevil.ca. The old cdn.shopify.com/…
URL format will continue to work indefinitely.
The new format will be returned by liquid tags and will be present in Shopify-rendered storefront HTML, but the old format will continue to be used in all API responses. This new asset delivery approach is not used on headless shops, which will continue to use cdn.shopify.com/…
.
The domain used in the new URL format is dependent on the request context: it may be the store’s permanent myshopify.com
domain or a custom domain depending on which one a buyer visits. Code that depends on the old URL format may need to be updated to support both formats.
In addition, new images associated with products now use the /files
path format rather than the previous /products
. Previously uploaded product images will continue to use the /products
path.
These changes are being made to provide a variety of benefits to merchants:
- Improved page load times on storefronts to provide a better buyer experience and improve conversion rate. Improvements to page load speed are potentially on the order of hundreds of milliseconds.
- Improved security: because we don't need to allow for cross-origin assets from our CDN, we can use more restrictive content security policies (CSP) and cross-origin resource sharing (CORS) policies.
- Less Shopify branding on merchant domains.
Learn more about the Shopify CDN and liquid filters on Shopify.dev
Action Required:
- Ensure that any app and theme code is free from hard-coded assumptions on the old URL format
May 08, 2023
Shopify Functions input limit updates API
As of May 8, you can access metafield values up to 10,000 bytes in Shopify Functions input queries, so that you can store more merchant configuration for your function.
The overall input JSON size for Shopify Functions is constrained to 64,000 bytes.
Learn more about execution limitations for Shopify Functions on Shopify.dev.
May 08, 2023
Introducing POS UI extensions API
New POS UI extensions available to app developers
POS UI extensions are available for developers to start building apps for Shopify POS. Improve the efficiency of a current extension or build custom functionality in the POS smart grid. POS UI extensions provide developers with access to numerous components and API's required to develop extensions that feel native to Shopify POS with faster performance. This technology will transform POS extensions for an improved merchant experience.
Extension Points Two extension points are available that allow for the rendering of different components. The Tile which can customize the functionality of the app's smart grid tile and the Modal a full-screen modal that presents on top of the smart grid.
Components Build extensions using the UI Extensions library that utilize interface elements and behaviors that mirror the look at feel of the POS experience. These elements are rendered natively, providing the performance and accessibility inherent to a native app.
To learn more about building apps for POS, please review our developer documentation.
May 02, 2023
Product media and files unification API
As of this week, we've brought product media together with the broader file management system. You can access the file management system from Shopify admin by going to Content>Files
This means that product media is now available within the files section within content in admin. As part of the new update, we’re introducing a reference feature that enables merchants to trace the usage of files in their storefronts. This feature also allows merchants to use references as search parameters, for example a search that only lists files used in product media. Additionally, we’re also launching a new file selector in the online store editor that allows merchants to save views, filter within the selector, and toggle between different types of media as required, all through a new modal design.
Learn more about product media at Shopify.dev. You can also learn more about the Files API at Shopify.dev
May 01, 2023
Changes to support requests for app charge refunds Platform
As of May 3, 2023, merchants will be required to contact partners directly if they want to discuss or request a refund for an app. When a merchant contacts Shopify to request a refund for an app charge, Shopify Support will no longer reach out to partners on behalf of the merchant to facilitate their request.
This change will streamline the refund process, as refunds are at the partners’ discretion and partners have the ability to issue most refunds themselves. The exception is still reversals to pending charges. In this case, Shopify highly encourages partners to issue application credits, which Shopify Support can then apply to the invoice.
What’s not changing?
- Other types of facilitated third party requests
- Processing of reversals for pending charges once approved by the partner
- Follow-ups on unresolved inquires from merchants
- Assistance with bulk refunds, refunds over $1,000, and refunds older than 12 months
Please contact partner support with any questions about these changes.
April 28, 2023
Update bytes in-place using fileUpdate API
As of 2023-07, you can use the fileUpdateInput
to provide an originalSource which will be used to update the bytes of a file. Passing originalSource when updating is supported media images and generic files.
Using this functionality makes it easy to do an in-place update of an existing file.
April 26, 2023
New updates to checkout extensibility API
New Checkout UI Components
DatePicker will help you build customizations to select specific delivery dates in checkout.
Disclosure will help with UX patterns that progressively disclose information, like the long list of line items in a bundle.
Checkout Branding Update
Checkout branding now supports custom fonts. Checkout, accounts, and UI extensions inherit these fonts making experiences consistent across surfaces.
April 26, 2023
Increasing search relevance with behavioral data in the Shopify App Store Shopify App Store
As of April 26, Shopify App Store’s search algorithm folds in even more data on how merchants interact with results after they search.
In other words, apps that merchants find most relevant, given what they’re searching for, will rank higher overall. While term matching will still inform results, this update will reduce the impact of keyword stuffing.
Learn more about search on our blog.
April 20, 2023
Sale attribution edits now can be subscribed via Orders/updated webhook API
As of API version 2023-07, you can now subscribe to the orders/updated webhook to be notified of any sale attribution edits to an order. When a staff attribution edit is made on POS, the orders/updated webhook will fire. The payload will include a new attributed_staffs field under line_items. This new field will reflect the new attributions on the order after the edit.
"lineitems": [ { "id":111, "attributedstaffs": [ { "id": "gid://shopify/StaffMember/123", "quantity": 1 } ] } ]
A user can edit the staff attributions on multiple line items at once on POS. In this case, the webhook payload could include multiple updated line items with different attributions applied to them.
Note that the payload in the orders/create webhook will also be updated to include attributed_staffs.
Learn more about webhook on Shopify.dev.
April 18, 2023
Update on the speed test app listing highlight Shopify App Store
As of April 18, we're temporarily suspending Speed tested as an app listing highlight. We will still measure an app’s impact on store speed once it has applied for Built for Shopify status.
We are making this change while we invest in better tooling and will keep app developers posted on plans to resume incentives in this area, as impact on store speed remains incredibly important to merchants.
Learn more about storefront performance on Shopify.dev
April 17, 2023
Action required
Deprecating mutations inventoryAdjustQuantity and inventoryBulkAdjustQuantityAtLocation API
In the GraphQL Admin API, we're deprecating the inventoryAdjustQuantity
and inventoryBulkAdjustQuantityAtLocation
mutations.
Instead, you can use the new inventoryAdjustQuantities
or inventoryMoveQuantities
mutations instead.
The inventoryAdjustQuantities
mutation supports more inventory quantity names as well as setting a reason. The mutations we're deprecating only supported setting available quantities and didn't allow you to set a reason for the adjustment.
Learn more about inventoryAdjustQuantities
on Shopify.dev or on inventory states on Shopify.dev.
April 17, 2023
Action required
Deprecating available, incoming and deactivationAlertHtml fields on InventoryLevel API
In the GraphQL Admin API, we're deprecating some fields on the InventoryLevel
.
The following fields are deprecated:
- available
: you can use quantities
instead
- incoming
: you can use quantities
instead
- deactivationAlertHtml
: you can use deactivationAlert
instead
The quantities
field supports all the new inventory quantity names. You can still get available
and incoming
from quantities
by specifying those as the names.
Learn more about inventoryLevel
on Shopify.dev as well as inventory states on Shopify.dev.
April 14, 2023
Theme app extension app block deep linking Tools
As of April 14, we have enabled deep linking to theme app blocks so that merchants can easily preview app functionality in their theme.
Learn more about deep links to app blocks.
April 13, 2023
New commerce primitives for development stores test data Tools
We've added new commerce primitives such as gift cards, selling plans, and metafields to development stores populated with test data.
To speed up the development and testing process, you can create a development store that's populated with test data generated by Shopify.
Review all of the objects, configurations, and relationships that are included in the development store test data set on Shopify.dev
April 10, 2023
Write Shopify Functions in JavaScript API
Shopify Functions written in JavaScript can now be deployed in production. Going forward Rust and JavaScript will be our first-class languages for Shopify Functions. However, you can still write Shopify Functions in any WebAssembly-supported language that meets our requirements.
Learn more about JavaScript Shopify Functions here
April 01, 2023
New billingAddress field on the Storefront API Order object API
As of GraphQL Storefront API version 2023-04, the Order
object has a new field: billingAddress
. This field returns a mailingAddress
object for the address associated with the payment method.
Learn more about the Order
object on Shopify.dev.
April 01, 2023
Server Pixels Limited Release API
As of 2023-04, select partners can use Server Pixels to consume customer events on the server-side. These new mutations are available to those partners:
April 01, 2023
Set Metafield values for Locations API
As of GraphQL Admin API Version 2023-04
you can use the mutations locationAdd
and locationEdit
to set Metafield values for locations.
As of Storefront API Version 2023-04
, you can query metafields belonging to a location using the Location query object.
You can use Metafields to store aditional information for Locations.
Learn more about { Metafields } on Shopify.dev.
April 01, 2023
Action required
Removal of deprecated status
field in Payments Apps API 2023-04 release
API
As of 2023-04
GraphQL Payments Apps API version, we are removing the status
field as it was deprecated since 2022-04
version in favour of the state
field of the following objects returned by our GraphQL mutations:
To get up to date, make sure you no longer query the status
field on these objects and use state
instead.
Learn more about payments apps on Shopify.dev.
April 01, 2023
Release of the subscriptionContractAtomicCreate and subscriptionContractProductUpdate mutations API
As of the 2023-04 release of the GraphQL Admin API, you can create a subscription contract in a single operation with the subscriptionContractAtomicCreate
mutation.
You can also replace a retired product by a new one, or update the price of a product in a subscription contract in one GraphQL call to the subscriptonContractProductUpdate
mutation.
More information on Bulk Operations can be found here
April 01, 2023
Generate targeted product recommendations with the new ProductRecommendationIntent
type
API
As of the 2023-04 API version of the Storefront API, the ProductRecommendations query will accept an optional intent
argument. Additionally, a new ProductRecommendationIntent
will be introduced as a GraphQL Enum Type, defining the supported product recommendation intents. By default, the API will return RELATED
recommendations for backward compatibility.
April 01, 2023
New selected_delivery_option
error codes in cart
API
We've added the error codes INVALID_DELIVERY_GROUP
and INVALID_DELIVERY_OPTION
for cartSelectedDeliveryOptionsUpdate
mutation , allowing you to get descriptive error codes when GraphQL returns invalid delivery group id or invalid delivery options input.
April 01, 2023
Introduce onsite credit card support for payments apps API
As of version 2023-04
, payments apps will have support for onsite credit card payments through new types introduced to the GraphQL Payments Apps API.
Changes to support on-site credit card processing are as follows:
-
New rejection codes are now available in the
paymentSessionReject
GraphQL mutation for credit card payments apps -
A new error code is introduced in the
paymentSessionPending
GraphQL mutation
April 01, 2023
Introducing the new Customer Merge API API
As of GraphQL Admin API version 2023-04, you can now use the Customer Merge API to combine two separate customer profiles with certain non-blocking criteria. You can use the new mutations and queries to:
Additionally, you can check whether a customer can be merged with another customer using the new Customer.mergeable field. This field is also available on the CustomerSegmentMember API CustomerSegmentMember. mergeable.
You can learn more about merging customer profiles on Shopify Help Center.
April 01, 2023
Update Access Scope for Publishing and Unpublishing Mutations to Current Channel API
As of version 2023-04, we're deprecating the requirement of writeproductslistings
access scope for the mutations publishableUnpublishToCurrentChannel
and publishablePublishToCurrentChannel
. Use the access scope writepublications
instead.
You can provide this new access scope to your third party app or any stuff member through the admin as it is regularly being done for any other access scope. This change will provide a more restricted access to call these mutations.
April 01, 2023
Filter orders by return status API
You can now filter orders by their return status.
The return_status
filter is available on the orders connection. This status corresponds to the return status merchants see in the orders page.
Learn more about the order's return status on Shopify.dev.
Learn more about return statuses on the help center.
April 01, 2023
Action required
ChangingCartLine
from an Object
to an Interface
API
As part of the GraphQL Storefront API 2023-04 API release, we are creating BaseCartLine
as an interface to CartLine
and we are updating CartLineConnection
to BaseCartLineConnection
.
Learn more about the Cart
object on Shopify.dev.
April 01, 2023
Action required
Deprecating PublishedTranslation
GraphQL type
API
As of 2023-04
, we are deprecating the PublishedTranslation
graphQL type in the admin API. Use the Translation
graphQL type instead.
The Translation
graphQL type contains more fields; outdated
, updatedAt
and market
.
To get up to date, make sure you no longer query the marketId
field on these objects and query using the market
field instead.
Learn more about Translation
on Shopify.dev.
April 01, 2023
Added source_location
field to FulfillmentOrdersMove
webhook payload
API
As of API version 2023-04, FulfillmentOrdersMove
webhook payload is extended source_location
field.
The assignedLocation of the original_fulfillment_order
may be changed by the move operation. Therefore, if you need to determine the originally assigned location, you should refer to the source_location
field.
Learn more about fulfillment order move in the FulfillmentOrdersMove webhook, FulfillmentOrdersMove GraphQL mutation and Moves a fulfillment order to a new location REST endpoint documentation pages.
April 01, 2023
productVariantsBulkUpdate mutation returns data along with errors API
In the Admin GraphQL API version 2023-04, the productVariantsBulkUpdate
mutation will return product
and productVariants
data even when errors are present. Previously, the mutation would always return null
for the product
and productVariants
data.
Learn more about the mutation here.
April 01, 2023
Releasing new Catalogs APIs to manage pricing and product publishing for different customers API
As of API version 2023-04, you can use the Catalogs API to create a set of rules that determine the available products and their prices in different customer contexts. The Catalogs API lets you link Shopify Markets and B2B primitives to Publications and PriceLists to customize product offerings for different audiences. The same APIs also allow you to manage product publishing for sales channels.
To learn more about Catalogs API, read B2B Catalogs and Catalogs for Markets.
April 01, 2023
Adds comparedTo
field to ShopifyQL query response
API
As of 2023-04, you can now use comparedTo
on comparison columns from ShopifyqlResponse
to indicate the column to compare to.
Learn more about COMPARE TO
ShopifyQL queries on Shopify.dev
April 01, 2023
Update ShopifyQL parse error codes API
As of 2023-04, parse error codes enum has been updated to remove stale codes as well as add new ones.
Added
ParseErrorCode.INVALID_DATE_RANGE
ParseErrorCode.EXCESS_BACKFILL_DIMENSIONS
ParseErrorCode.BACKFILL_DATE_RANGE_NOT_FOUND
ParseErrorCode.COMPARE_TO_MISSING_PERIOD
ParseErrorCode.EXCESS_DIMENSIONS
ParseErrorCode.SYNTAX_FAILED_PREDICATE
Removed
ParseErrorCode.VISUALIZE_TYPE_NOT_FOUND
ParseErrorCode.FUNCTION_MODIFIER_INVALID
ParseErrorCode.VISUALIZE_BY_OR_OVER_NOT_FOUND
ParseErrorCode.VISUALIZE_CONTAINS_BY_AND_OVER
ParseErrorCode.BINARY_EXPRESSION_INCOMPATIBLE_TYPES
ParseErrorCode.VISUALIZE_EXCESS_PROJECTIONS_ALPHA
ParseErrorCode.EXCESS_GROUP_BY_ALL
ParseErrorCode.GROUP_BY_ALL_DATE_RANGE_NOT_FOUND
ParseErrorCode.COMPARE_TO_WITHOUT_DURING
ParseErrorCode.GROUP_BY_EXCESS_PROJECTIONS
See the full list of parse error codes on Shopify.dev
April 01, 2023
Action required
Updates to FulfillmentOrderLineItemsPreparedForPickupUserErrorCode resource API
As of the 2023-04 API version of the Admin API, the FulfillmentOrderLineItemsPreparedForPickupUserErrorCode GraphQL object will have the following breaking changes:
- The FULFILLMENT_ORDER_CHANGED
error code will be removed
- The UNABLE_TO_PREPARE_QUANTITY
error code will be added
April 01, 2023
Adding additional filtering to /assigned_fulfillment_orders
REST endpoint
API
As of API version 2023-04
, you can retrieve a subset of fulfillment orders which are assigned to locations owned by the app performing the request but have not been requested for fulfillment so far.
The assignment_status
query parameter in the [/assignedfulfillmentorders.json]((https://shopify.dev/docs/api/admin-rest/latest/resources/assignedfulfillmentorder#get-assigned-fulfillment-orders) endpoint can now accept a value of fulfillment_unsubmitted
for filtering in addition to the existing fulfillment_requested
, fulfillment_accepted
, and cancellation_requested
filter values.
Learn more about retrieving assigned fulfillment orders as a fulfillment service on shopify.dev.
April 01, 2023
Update validations of a metafield definition API
As of GraphQL Admin API Version 2023-04
you can use the field MetafieldDefintionInput.validations
to change the validations of a metafield definition.
Also, as of GraphQL Admin API Version 2023-04
, you can query the field
MetafieldDefinitionUpdatePayload.validationJob
to get the details of the job running to validate existing metafields for the metafield definition.
Learn more about { Metafields } on Shopify.dev.
April 01, 2023
Web Pixels can be queried without specifying an ID API
In the Admin API version 2023-04, you can now query your web pixels installed on an online store without having to provide a Web Pixel ID.
API: https://shopify.dev/docs/api/admin-graphql/2023-04/queries/webPixel
Learn more about web pixels.
April 01, 2023
Accept customer address id as input for delivery address preferences in SFAPI Cart API
As of 2023-04, you can pass Customer address id as an input for CartBuyerIdentity.deliveryAddressPreferences when creating or updating carts for authenticated customers.
You can learn more about the Cart API references in here.
April 01, 2023
Add Metafields to Cart API API
As of GraphQL Storefront API Version 2023-04
you can use Metafields with Carts! Metafields can be added during Cart creation, they can be queried, updated, and deleted.
Learn more: * Create Cart Metafields * Query Cart Metafields * Update Cart Metafields * Delete Cart Metafields
March 31, 2023
GraphQL Admin API now supports creating app charges using the merchant's billing currency API
As of the 2023-04 release of the GraphQL Admin API, the Billing API will allow creating app charges using currencies that match the merchant's local billing currency.
Previously, app charges could only be created using USD and were converted to the merchant's local currency using the exchange rate at the time the invoice is issued. By creating app charges in the merchant's billing currency, app developers will allow merchants to better budget their app spend without being exposed to currency exchange rate fluctuations.
You can use the shopBillingPreferences query to retrieve the merchant's local billing currency, then pass in the currency value as input to the existing GraphQL Billing APIs.
March 30, 2023
ExchangeV2s field is available behind beta flag on order graphql API
As of 2023-07 version, you can use the Order APIs exchangeV2
field to get a better exchange (an exchangeV2
object value).
This will help ERP partners to properly integrate optimal exchange values.
Learn more about it on this doc
March 28, 2023
Update to Google Analytics 4 before July 2023 Shopify App Store
Google is sunsetting Universal Analytics in July 2023, and replacing it with Google Analytics 4 (GA4) which is Google's next-generation measurement solution. Universal Analytics will continue to collect data until its sunset in July 2023, and data will remain accessible for at least 6 months afterwards.
Visit Shopify.dev for next steps to migrate your app listing tracking from Universal Analytics to the new Google Analytics 4 or to set up tracking for the first time.
March 24, 2023
Dynamic sources for blogs and articles now live Themes
You can now use dynamic sources on blogs and articles. This means that merchants can now connect theme files to their metafields and metaobjects when working with the blog and article resources. Previously, this was only possible when working with product, collection, and page resources.
Learn more about datasources on Shopify.dev
March 20, 2023
Additional fees fields for Orders API
The Order object now has fields representing additional fees as of API version 2023-04. Additional fees are extra costs associated with an international package that aren't duties or taxes.
The new fields on the GraphQL Order object are:
- additionalFees
- currentTotalAdditionalFeesSet
- originalTotalAdditionalFeesSet
The new fields on the REST Order resource are:
- currenttotaladditionalfeesset
- originaltotaladditionalfeesset
Learn more about these new fields in the GraphQL reference docs or REST reference docs.
March 20, 2023
Policies for leaving a review on the Shopify App Store Shopify App Store
We’re continuously improving our systems to effectively and efficiently identify and remove fake reviews to ensure a safe, fair, and useful ecosystem for both merchants and developers.
As part of these efforts, you may receive an email notifying you that a review for your app has been removed because it doesn’t comply with our policies.
Learn more about our policies for leaving a review in the Shopify App Store in the Shopify Help Center.
March 19, 2023
Action required
Support For API Version 2022-04 Extended To June 30, 2023 API
Shopify is extending support for API version 2022-04 to June 30, 2023 (previously March 31, 2023). All public, custom, and private apps using API resources that are no longer supported in API version 2022-10 will stop working as intended after this date.
Action Required Existing apps must migrate to API version 2022-10 or later by June 30, 2023 to avoid any interruptions.
Below are a few important breaking changes, please make sure to review the full list:
- The following customer object properties on the REST Admin API’s order resources have been deprecated: lastorderid, lastordername, orderscount , totalspent (see details here)
- Some Fulfillment API endpoints and mutations relating to managing fulfillments via an order have been deprecated (see details here)
To see a full list of apps that may be impacted, please log into your Partner Dashboard and click on Apps > Insights > API Health.
Please note that this extended timeline for supporting API version 2022-04 does not impact deprecation timelines for any subsequent API releases. If you have any questions, reach out to your Shopify account manager or post here, in the Shopify Community.
March 17, 2023
Action required
[Action Required] Support for API version 2022-04 extended to June 30, 2023 API
Shopify is extending support for API version 2022-04 to June 30, 2023 (previously March 31, 2023). All public and custom apps using API resources which support end with the API verions 2022-04 and 2022-07 will stop working as intended after this date.
Action Required: Existing apps must migrate to API version 2022-10 or later by June 30, 2023 to avoid any interruptions.
Below are a few important breaking changes, please make sure to review the full list:
- The following
customer
object properties on the REST Admin API’sorder
resources have been deprecated:last_order_id
,last_order_name
,orders_count
,total_spent
(see details here) - Some Fulfillment API endpoints and mutations relating to managing fulfillments via an order have been deprecated (see details here)
To see a full list of apps that may be impacted, please log into your Partner Dashboard and click on Apps > Insights > API Health.
Please note that this extended timeline for supporting API version 2022-04 does not impact deprecation timelines for any subsequent API releases. If you have any questions, reach out to your Shopify account manager or post in our community forums.
March 16, 2023
Access image Focal Point from the Storefront API API
As of 2023-04
, we're introducing the ability to access the Focal Point
setting value for images using the Storefront API.
Focal Points
can be set from the Admin API or from the shop admin when editing your image files.
Learn more about Focal Points
on Shopify Help
March 16, 2023
Read 3D model configuration settings from the Storefront API API
As of 2023-04
we're introducing the ability to read presentation attributes for 3D models in the storefront api.
When a 3D model is customized via the no code 3D viewer configuration the properties associated with lighting, zoom, camera angle and background color are available in the Storefront API.
Learn more about this feature on Shopify Help
March 15, 2023
Action required
Removal of contextRule
on PriceList
API
Starting in API version 2023-04
, the PriceList.contextRule
field will be removed and deprecated in previous API versions. If you have an existing app that uses the contextRule
field, then you should migrate to catalogs.
Learn more about migrating to catalogs on Shopify.dev.
March 15, 2023
Geotargeting for Shopify App Store ads Shopify App Store
As of March 15, you can geotarget Shopify App Store advertising campaigns, giving greater control over how you market your apps and grow your business. Create effective and relevant regional campaigns with country-specific attribution, metrics, and even recommended bids.
Learn more about creating geotargeted ads on Shopify.dev.
March 15, 2023
The templates
schema attribute is now deprecated for the apps.liquid
section
Themes
As of March 15, the templates
schema attribute is no longer supported in the apps.liquid
section.
- The
templates
schema attribute cannot be specified in theapps.liquid
section. - The
enabled_on/disabled_on
schema attribute cannot containtemplates
attribute in theapps.liquid
section.
March 15, 2023
Webhooks for B2B Customers Primitives API
As of the Admin API 2023-04
Release, we are providing webhook notifications for changes to the major entities within the B2B Customers product. The following webhooks are provided:
companies/create
companies/update
companies/delete
company_locations/create
company_locations/update
company_locations/delete
company_contacts/create
company_contacts/update
company_contacts/delete
Learn more about these webhooks on Shopify.dev
March 15, 2023
SVGs returned as MediaImage in Admin API API
As of 2023-04, SVGs are treated as MediaImages by the Admin API.
This makes it easier to use SVGs in your online storefront.
March 14, 2023
Consistent presence of null values on the order object API
As of 2023-04, we're no longer filtering out null
values on certain fields of the Order
object. Previously, some keys with null
values would not be present on the REST API and webhook payloads.
This change removes unecessary and inconsistent handling of null
.
March 13, 2023
Action required
Google Analytics 4 in the Google channel app Shopify App Store
New release: Google Analytics 4 is now available through the Google channel app on Shopify, enabling you to upgrade and take advantage of its enhanced real-time, multi-channel measurement and privacy controls.
Google Analytics 4 is replacing Universal Analytics, which will continue to process data until July 1, 2023 (July 1, 2024 for Analytics 360 properties).
Learn more about Google Analytics 4 and what this means for you here.
March 13, 2023
Added wallet_preferences
to the Cart
object
API
As part of the GraphQL Storefront API 2023-04 API release, we are adding wallet_preferences
to the Cart
object. The wallet preferences from the cart will allow to pass through a buyer's wallet preference to the checkout.
Learn more about the Cart
object on Shopify.dev.
March 10, 2023
JavaScript support for Shopify Functions developer preview API
The JavaScript support developer preview enables you to write functions in JavaScript or TypeScript, compile them to WebAssembly with Shopify CLI, deploy them to Shopify, and execute them on development stores.
Learn more about the developer preview on Shopify.dev.
March 10, 2023
Idempotent creation of AppUsageRecord API
In the Admin GraphQL API version 2023-04, appUsageRecordCreate
now supports an optional parameter idempotencyKey
which ensures the merchant will not be charged twice. When idempotencyKey
is provided, the mutation will return the same response as any previous appUsageRecordCreate
mutations with identical idempotencyKey
for the intended shop and requesting app, rather than creating a new record and charging the merchant again.
This means that an idempotencyKey
could be reused by an app to create appUsageRecord
s on different shops to charge the merchant. Different apps can also use the same idempotencyKey
on the same shop and still charge the shop. But we recommend a UUID.
The appUsageRecordCreate
will behave like past API versions when idempotencyKey
is not provided and create a new record on every mutation.
March 06, 2023
Translate Metaobjects with Translatable Capability API
As of 2023-04 we're introducing a new capability to translate metaobjects.
Similar to the publishable capability, the translatable capability can be enabled when creating and updating a metaobject definition. When enabled all metaobjects belonging to the definition will be eligible for translations through the Translations API as well as the Translate and Adapt app.
Learn more about the Translatable Capability on Shopify.dev
March 02, 2023
New rich text setting functionality in online store editor Themes
We've added headings as well as ordered lists to the rich text setting within online store editor. This means that themes can now take advantage of this new semantic styling within the editor to allow merchants to configure multiple headings of different semantic sizing and craft lists (now both ordered and unordered) right in the theme.
Learn more about the rich text input setting on Shopify.dev.
February 28, 2023
Partial updates for bulk product variants mutation API
In the Admin GraphQL API version 2023-04, you can use the productVariantsBulkUpdate
mutation to update valid variants even if some variants are invalid. The new allowPartialUpdates
parameter is optional and defaults to false
for backwards compatibility, but by enabling it, the mutation will modify valid variants, instead of not updating any variants due to invalid variants.
Learn more about the mutation here.
February 27, 2023
Increasing search relevance with behavioral data Shopify App Store
As of February 27, Shopify App Store’s search algorithm folds in more data on how merchants interact with results after they search.
In other words, apps that merchants find most relevant, given what they’re searching for, will rank higher overall. While term matching will still inform results, this update will reduce the impact of keyword stuffing.
Learn more about search on our blog.
February 27, 2023
Shopify Functions now support app-owned metafields and reserved prefixes API
You can now use the $app:
metafield namespace prefix in Shopify Functions input queries to ensure your app's ownership of metafields used in your function.
We recommend use of reserved prefixes by default for all functions, so that you can control access to metafields used by your function. By default, they will be private to your app.
Learn more about metafield ownership and using metafields with input queries on Shopify.dev.
February 26, 2023
Action required
Introducing new enabled_on
/ disabled_on
app blocks schema attributes (deprecating templates
)
Themes
You can now use the new enabled_on
/ disabled_on
app block schema attributes to specify where an app block can be used. These new attributes replace the existing templates
attribute and work for both templates and section groups.
- Use the
enabled_on
attribute to limit an app block to specific templates and section groups. - Use the
disabled_on
attribute to prevent an app block from being used in specific templates and section groups. - These new attributes work for both app blocks and app block embeds.
Please keep in mind that you can use only one of enabled_on
or disabled_on
.
February 23, 2023
Action required
Deprecating Price Rules GraphQL API API
We are deprecating Price Rule GraphQL queries & mutations. Use Discounts GraphQL queries & mutations instead.
You will need to migrate to the new endpoints by April of 2024 when we will remove access to these resources.
Certain features, such as Automatic Discounts, and Shopify Functions-backed Discounts, are not supported by these Price Rule endpoints. This migration will allow you to access all the latest features, including ones coming in the future.
Affected queries:
Affected mutations:
priceRuleActivate
priceRuleCreate
priceRuleDeactivate
priceRuleDelete
priceRuleDiscountCodeCreate
priceRuleDiscountCodeUpdate
priceRuleUpdate
To get up to date, make sure you no longer use the affected queries & mutations listed above. To replace them, use the Discounts queries & mutations found on Shopify.dev below:
February 21, 2023
Action required
Upcoming changes to Asset API approval scope API
Over a year ago, we introduced Theme App Extensions as the recommended way for public apps to integrate into themes. The use of Theme App Extensions is a more streamlined and secure method for merchants to customize their Online Store themes, replacing the need for the Asset API.
As of today, when requesting the unstable 2023-04 release candidate, or future versions of the Admin API, the Asset API access to create, update and delete assets is no longer accessible for public apps. Refer to this guide for more details on the change, exemptions and how to migrate your apps.
February 15, 2023
CompanyAddress name field changes API
The CompanyAddress is no longer supporting the use of firstName/lastName fields, preferring instead to use a single recipient field. English-based UI elements may call this new field Attention. This is due to requests from merchants who are not dispatching orders to named individuals, but rather to locations, departments, or roles.
The field recipient has been added to the liquid API for CompanyAddress to display this field. However, there are a large number of existing templates that use the firstName/lastName fields. In order to minimize the impact on these templates, we populate the lastName field with the recipient, and leave the firstName field blank (specifically, it is null
).
The previous paragraph is true for those CompanyAddresses where the recipient field has been populated. Where the address is still using firstName/lastName, the firstName/lastName fields will be populated as before, with the recipient field being the concatenation of these fields in a locale aware manner (in the same way as the name field). We are in the process of porting all CompanyAddresses to use the recipient field only.
February 13, 2023
Certificate Update On Myshopify.Com Domains API
Shopify will be making changes to the certificate used to secure subdomains of myshopify.com (eg: https://test.myshopify.com/) effective February 13, 2023. The current certificate which is being used is issued by Cloudflare via DigiCert. We will be adding in additional certificates signed by Lets Encrypt and Google Trust Services.
Note: This will not affect the certificate used for mTLS connections.
For more information refer to the community notice.
February 13, 2023
Action required
Checkout.liquid will no longer work for in-checkout pages starting August 13, 2024 Tools
Shopify Plus merchants can now customize their in-checkout pages, which include their Information, Shipping, and Payment Pages, using checkout extensibility. Checkout extensibility is a faster way to customize Shopify Checkout in a way that’s app-based, upgrade-safe, higher-converting, and integrated with Shop Pay. It has the power and flexibility for merchants to build the experiences they want.
Checkout extensibility replaces checkout.liquid. As a result, checkout.liquid will no longer work for in-checkout pages on August 13, 2024. Any merchants that currently customize their in-checkout pages with checkout.liquid need to upgrade to checkout extensibility before this date.
Shopify Plus merchants can continue customizing their post-checkout pages, which includes their Thank You Page and Order Status Page, with checkout.liquid. However, we’ll soon support customization on these pages with checkout extensibility as well.
February 13, 2023
Action required
Support for Shopify Scripts will end on August 13, 2024 API
Shopify Functions replace the need for Shopify Scripts, as a result Shopify Scripts will no longer be supported as of August 13, 2024. Merchants that leverage Shopify Scripts will need to migrate to Shopify Functions before this date.
You can now build unique discount, payment, and delivery customizations with Shopify Functions. Functions are deployed via apps and configured alongside native features directly in the Shopify Admin. This means that merchant end users never have to touch a line of code when modifying their customizations.
Please note that Functions and Scripts can work together, so if a use case is not yet supported by Functions, merchants can continue to leverage their existing Shopify Scripts. Over the next year, we will continue to release additional Functions APIs to cover existing Scripts use-cases, and more.
Help merchants migrate by building apps powered by Functions
February 09, 2023
JavaScript support in Shopify Functions local developer preview API
JavaScript support for Shopify Functions is now available in a local developer preview. This means you can try Shopify Functions with JavaScript locally, on your own development machine, but you can't deploy functions to production yet. We are releasing this preview now to get your feedback on our JavaScript development experience.
Learn more about JavaScript support for functions on Shopify.dev.
February 09, 2023
Introducing Mock Shop API for prototyping storefronts Tools
We are introducing Mock.Shop, a free prototyping tool to build a proof-of-concept storefront without having to set up a shop or run any server-side code. Use Mock Shop API to query live commerce data such as sample products, variants, and carts to help you quickly prototype commerce storefronts.
Mock.Shop is publicly available - no server, or access tokens required.
Visit Mock.Shop to learn more and build a proof-of-concept.
February 09, 2023
Cart and Checkout Validations are now available in Developer Preview API
The Shopify Functions API for cart and checkout validations is now available in the Checkout Extensibility developer preview.
This API allows you to apply validation rules that run in both the cart and checkout, ensuring that purchases meet certain criteria before checking out, or completing the order.
Learn more about building cart and checkout validations in our dev docs: Cart and Checkout validations
February 09, 2023
New CheckoutBranding API properties API
We released new checkout branding API properties to make it possible to customize more of checkout’s look and feel. These consist of API-only capabilities that can style interactive elements like buttons and form inputs, as well as more typography controls on heading styles and font styles.
These customizations are automatically inherited by checkout UI extensions and include:
- Font properties for all font surfaces like case and kerning
- Form controls such as corner radius, border presence, label position and label typography
- Button styles such as padding, corner radius and button typography
For more information, view the checkout branding API reference.
February 09, 2023
Order Routing Location Rule API — Developer Preview API
The Order Routing Location Rule API is now available in a developer preview. You can use this new Shopify Functions API to write custom order routing rules that determine how to best fulfill and ship orders, based on the needs of the merchant.
For example, keeping orders within the country, balancing inventory levels to prioritize locations with more items in stock, or shipping directly from stores, just to name a few.
Learn more about the Order Routing Location Rule Function API here
February 09, 2023
Delivery and Payment Customizations - Shopify Functions API
The Shopify Functions APIs for delivery and payment customizations are now generally available. These Functions APIs allow you to hide, reorder, or rename delivery and payment options directly in the checkout.
One of the most popular delivery customizations include the ability to surface unique shipping options to specific buyers — like bike shipping options, that only display to customers that live within certain ZIP or postal codes.
With regards to payment customizations, one of the most popular use cases is to hide certain payment options based on a dollar threshold.
- Start building with the Delivery Customization API
- Start building with the Payment Customization API
February 09, 2023
Cart Transform API (Product Bundles) — Developer Preview API
The Cart Transform API is now available in a developer preview. You can use this new Shopify Functions API to create unique product bundle offerings that display directly in the checkout.
There are two key parts building a product bundle. First, you can determine which specific products can be merged into a bundle. Second, the Cart Transform API can also expand a bundle product into its individual components, making it easier to complete tasks on the backend—like calculating taxes, shipping weights, decrement inventory, and more.
Learn more about how to use the Cart Transform Function API to build product bundles here
February 09, 2023
Checkout UI extensions are now available on the order status page in developer preview API
Checkout UI extensions on the order status page are now available in the Checkout Extensibility developer preview. Add app-powered extensions or content to post-checkout pages such as surveys, social shares or referral links so merchants can install and configure apps without code. Learn more
February 09, 2023
New APIs and components for Checkout UI extensions API
New Checkout UI Extensions APIs
With this new API release, checkout UI extensions can access the storefront API without needing to be a sales channel. They can also read and edit discount codes and gift cards, and generate a signed token to be verified on an app server. Extensions can also verify that they are rendering in the checkout editor.
- Buyer journey and order hooks - Extensions can use the buyer journey API to render different extensions on the order status page based on the intended step in the customer journey (e.g. on checkout completion, or order fulfillment). For more details about extensions on the order status page, see here
- Storefront Direct Access API - Extensions can query the storefront API of a shop to get additional information like product tags, product recommendations, or currency conversions. Shopify handles authentication, so the extension only needs to pass in the query. This API is available to all apps and does not require the app to be a sales channel.
- Rendered in editor API - Extensions can now detect when they are being rendered inside the checkout editor. Extensions that only conditionally render to buyers should always use this to render content for merchants configuring the extension.
- Discount Code API - Extensions can now read discount allocations and discount codes in checkout, and add or remove the discount code(s).
- Gift Card API - Extensions can now read the gift card code applied to a checkout along with the amount. They can also add or remove gift card codes.
- Session Token API - Shopify provides a token signed with the app’s secret to the extension. This token can be passed via external call to an app server, and the app can trust that the contents of the token were created by Shopify
New UI Components
With the following new components, checkout UI extensions can progressively disclose information that buyers can opt in to. Using the overlay activation pattern on interactive components, extensions can show buyers information on customer trust like terms and conditions, trust badges, or warranties. Additional conditional styles offer more props to build performant UI.
- Pressable - Extensions can now use this generic interactive component without the styling that comes with a button or link.
- Component Overlays - Extensions have access to a set of accessible UI component overlays that provide additional information on interaction from Button, Link or Pressable components.
- Conditional style additions to Button, GridItem and Image
- Text has access to a visibility prop that allows visually-hidden content
- GridItem has added styling props on background, BlockSize and InlineSize
February 09, 2023
Introducing the Shop Minis developer program Shopify App Store
Shop Minis are a new way for Shopify App developers to bring their experiences into Shop and in front of 100 million buyers.
Our React Native SDK is designed to get you started with just one command, and it comes with all the components you’ll need, like search, product pages, and cart, to make an incredible shopping experience faster than ever before.
Learn more about early access.
February 08, 2023
Introducing new Catalogs APIs to manage pricing and product publishing for different customers API
As of the latest unstable GraphQL API version, you can use the Catalogs API to create a set of rules that determine the available products and their prices in different customer contexts. The Catalogs API lets you link Shopify Markets and B2B primitives to Publications and PriceLists to customize product offerings for different audiences. The same APIs also allow you to manage product publishing for sales channels.
To learn more about Catalogs API, read B2B Catalogs and Catalogs for Markets.
February 08, 2023
Increased Admin API rate limits for Shopify Plus API
Shopify increased Admin API rate limits for Shopify Plus by 10x over standard limits. Apps installed on Shopify Plus stores will now get 500 points/second on the GraphQL Admin API and 20 requests/second on the REST Admin API. In addition, merchants on Commerce Components by Shopify now have unlimited API calls.
February 07, 2023
Test data for Shopify development stores Tools
Now, you can populate your store with test data in a single click, so you can start developing your app or theme faster.
The generated test data set includes the most common commerce primitives and configurations that you need to test an app, theme, or custom storefront, including some Shopify Plus exclusive features.
Read the developer documentation for more information and try it in your Partner Dashboard today.
February 06, 2023
Updates to our Partner Program Agreement and API License and Terms of Use API
EFFECTIVE FEBRUARY 06, 2023 ACTION REQUIRED
We've made changes to our Partner Program Agreement and API License and Terms of Use. These updates include terms that clarify a partner's responsibility to promptly take certain actions, including as necessary to resolve failed requirements and/or violations to our terms, as well as other important updates.
These changes come into effect as of today, February 06, 2023.
We encourage all developers on our platform to review and be familiar with the API License and Terms and the Partner Program Agreement, so that you understand how to build, run, and grow your app and development business on our platform.
For more information and frequently asked questions, please visit the Shopify Help Center.
February 06, 2023
Action required
Embedded Apps not on App Bridge 2.0.5 or higher will redirect merchants to a new tab API
The following requirements must be met for embedded apps to load in admin.shopify.com
:
- The content security policy includes
admin.shopify.com
. - The app is on App Bridge 2.0.5 or higher, and has correctly implemented the
host
parameter. App Bridge 3.0 is recommended.
When merchants try and access apps which have not been updated, they will be redirected to the old admin domain in a new tab. They will also be shown a banner letting them know that they've been redirected in the original tab.
If you have recently updated your app, or if you are unsure if your app has ever loaded correctly within the new admin domain, you are encouraged to test the app on any partner owned dev store. If you are redirected, ensure that your app has loaded correctly under the banner on admin.shopify.com. We will record the successful load, and within 3 hours our data pipeline will update. Once the pipeline has updated, the banner/redirect will no longer occur.
February 03, 2023
Transaction in Admin REST API will now return the Total Unsettled Set amount API
As of version 2023-04 of the Admin REST API, requests for Transaction will now return total_unsettled_set
. This represents the remaining amount to be captured on the transaction. total_unsettled_set
is returned in both shop
and presentment
money objects with currency.
If you are leveraging manual capture and the authorized amount from Transaction, you should switch to referencing total_unsettled_set
. The authorized amount can differ from the total amount to capture due to adjustments during order finalization such as tax adjustments.
January 27, 2023
Predictive search now returns query suggestions API
As of January 23, 2023, a new resource type for query suggestions has been added to the Predictive Search API.
Notably, several other improvements have been made to the Predictive Search API:
- Resources[type] is now optional with a default set to queries, products, collections and pages
- Performance improvements when requesting multiple resource types
- New parameter: limit_scope to decide whether the limit parameter applies to the total number of returned results, or the total that each resource type returns.
Learn more about query suggestions on Shopify.dev.
January 26, 2023
Introducing intelligent code completion for Liquid API
We've added intelligent code completion features in Theme Check so that you can speedup writing Liquid code.
You can easily explore Liquid attributes as you type and benefit from type inferences, smart filters and scope awareness. With in-line documentation, you can check the most updated version of our documentation for objects, attributes, filters, and tags.
To start using, install Theme Check
January 26, 2023
Shopify Functions adds support for variables in input queries API
Shopify Functions now support the use of variables in input queries, so that you can use merchant input for GraphQL field arguments.
Learn more about input query variables on Shopify.dev.
January 25, 2023
New color settings in themes Themes
Empower your merchants to easily customize their online store with intuitive new color scheme settings. Online store color schemes are now available in developer preview.
You can define the structure of a color scheme in settings_schema.json
and set values for each color scheme in settings_data.json
. You can then reference the color schemes in the settings of a given section or block.
ColorSchemesDrop
provides access to the colors schemes and color values in each scheme. You can define your CSS by iterating over the new drop. This way, merchants no longer need to edit their CSS or liquid file to add or remove color schemes.
Learn more about color scheme and color schemes settings.
January 25, 2023
Cart Mutations return a new cart on FailedToRetrieveCart error API
In order to make the Cart SFAPI experience more seamless, we're rolling out changes to Cart Update mutations so they return a new, valid Cart even if the provided token is no longer valid. If a Cart is found for the provided token, the mutations will work the way they always have. That way you get back a a valid, updated Cart in your response, no matter what.
These mutations will return a new, empty cart:
cartLinesRemove
cartLinesUpdate
cartSelectedDeliveryOptionsUpdate
The following mutations will update the new cart with the requested input:
cartAttributesUpdate
cartBuyerIdentityUpdate
cartDiscountCodesUpdate
cartLinesAdd
cartNoteUpdate
To take advantage of this, use the new Cart ID from the returned Cart when you receive the FailedToRetrieveCart
error code in your response. Please note that the new cart is not a copy of the cart whose token was invalid.
January 23, 2023
Add inventoryItemId on FulfillmentOrderLineItem Resource API
As of Admin Graphql API version 2023-04, you can now get inventoryItemId
on the FulfillmentOrderLineItem
resource.
January 19, 2023
Private apps are automatically converting to custom apps Platform
From January 19th to January 20th, 2023, all private apps will be automatically converted to custom apps managed through the Shopify admin.
Custom apps support all the functionality that private apps did, and provide better security.
Learn more about the different types of app you can build.
January 06, 2023
Action required
We are introducing sections
liquid tag and section groups
Themes
You can now create section groups in your theme’s layout. Section groups are JSON containers that allow merchants to add, remove, and reorder sections in areas of the layout file such as the header and footer.
To include a section group in a layout file, add the section group to the sections directory of your theme, then add a {% sections '<filename>' %}
Liquid tag that references your new sections file to the layout file where you want it to be rendered.
To learn more, refer to section groups.
January 06, 2023
Introducing new enabled_on
/ disabled_on
section schema attributes (deprecating templates
)
Themes
You can now use the new enabled_on
/ disabled_on
section schema attributes to specify where a section can be used. These new attributes replace the existing templates
attribute and work for both templates and section groups.
- Use the
enabled_on
attribute to limit a section to specific templates and section groups. - Use the
disabled_on
attribute to prevent a section from being used in specific templates and section groups.
Please keep in mind that you can use only one of enabled_on
or disabled_on
.
January 04, 2023
Delivery and Payment Customizations are now available in Developer Preview API
The Functions APIs for delivery customizations and payment customizations are now available in a developer preview.
With these new APIs, you can hide, reorder, or rename payment and delivery options to help merchants increase conversions and stand out from the competition.
Learn more about building with delivery and payment Functions in our dev docs: Delivery Customization Payment Customization
January 04, 2023
Return request actions available to merchants in the admin API
We've just released enhancements that allow merchants to approve or decline return requests in their admin for partners using the returnRequest mutation.
This changelog post announced new ways for managing returns via the GraphQL Admin API, including the ability to approve or decline a return automatically.
Partners can now choose to automate this behavior or allow merchants to take action themselves.
January 04, 2023
Publication Id and channel Id validations API
As of the 2023-04 version of the Admin GraphQL API, the publicationId
and channelId
fields of the PublicationInput
will be validated on calls to publishableUnpublish
and productUnpublish
mutations.
This allows you to ensure that ids sent into a mutation correspond to existing records in the database.
The validation message for the publicationId
field will change from "Channel can't be blank" to "Publication does not exist" on a PublicationInput
object.
Learn more about publishableUnpublish and productUnpublish on Shopify.dev.
January 04, 2023
FulfillmentOrder move and hold operations now accept specific line items API
As of API version 2023-04, both FulfillmentOrder hold and move operations for both GraphQL and REST support a fulfillment_order_line_items
parameter to allow you to place only a specified subset of the line items on hold, or move them to another location where they are in stock.
GraphQL
REST
January 04, 2023
Verified by Shopify tiers now available on the GraphQL Admin API's MerchantApprovedSignals object API
You can now query verifiedByShopifyTier
on the MerchantApprovedSignals
object to determine what tier of pre-approval a merchant is in if available.
This query helps you to accelerate the onboarding of merchants to sales channels based on the tiers.
For more information, refer to the release notes.
January 03, 2023
Sort orders by destination API
GraphQL Admin API 2023-04 introduces support for sorting orders by destination, based on the order's shipping address.
Orders will be sorted first by country, then zone (e.g. state or province), then city.
January 02, 2023
New ways to manage returns with the GraphQL Admin API API
Returns apps can now use the stable version of the GraphQL Admin API to give merchants greater visibility into critical returns data across platforms, and help them manage orders more efficiently.
Returns apps can automate the return management process by taking actions on behalf of merchants. These actions can include the following:
- Creating and canceling returns
- Approving or declining return requests
- Managing reverse fulfillment orders and deliveries, including creating a reverse delivery with shipping information, and disposing or restocking items
- Issuing refunds
- Closing and reopening returns
We’ve also added new webhooks that your app can use to listen for events related to returns, refunds, reverse fulfillment orders, and reverse deliveries.
Learn more about returns management workflows on Shopify.dev.
January 01, 2023
Updated MetafieldsSetInput.type to be nullable for metafieldsSet mutation API
As part of the 2023-01 GraphQL Admin API release, we've updated the metafieldsSet
API to make the MetafieldsSetInput.type
field nullable. When the metafield you are trying to mutate already has corresponding metafield definitions, you can simplify the mutation by omitting the type
field from its arguments. The type
field is still required when the metafield doesn't have a corresponding definition to the given ownerId
, namespace
and key
.
For more information, refer to the metafieldsSet mutation.
January 01, 2023
New field tag
added to the ProductFilter object
API
You can now use the Storefront API to filter products by tags if tags are enabled as a filter setting on the shop.
The tag
field has been added to the Storefront API's ProductFilter
object, for this purpose.
January 01, 2023
Storefront API Metaobject
queries
API
With GraphQL Storefront API version 2023-01, you can use Metaobject
queries to display custom content that's associated with resources like products, customers, and orders. Metaobjects created with the CONTENT
category with an Active
status are available through Metaobject
queries.
This change is related to the GraphQL Admin API's support for content management and metaobjects.
January 01, 2023
Selling Plan Group Limit Increase API
As of 2023-01, Selling Plan Groups will have their limit on the number of associated Selling Plans increased from 20 to 31. We recommend paginating all queries on a Selling Plan Group's Selling Plans, rather than relying on this fixed limit.
To learn more about Selling Plan Groups, refer to the purchase options documentation.
January 01, 2023
Add near parameter to StoreAvailability - Storefront API API
You can now use the near parameter to search StoreAvailability by proximity, via Storefront API.
The type is GeoCoordinateInput, so far also used as parameter for Locations.
January 01, 2023
Action required
metafieldsSet
is now Atomic
API
As of 2023-01, the metafieldsSet
mutation is atomic and will not persist changes if any errors are encountered.
January 01, 2023
Duplicate and Delete Product Asynchronously with GraphQL Admin API API
As of GraphQL Admin API version 2023-01
, we are adding mutations productDuplicateAsync and productDeleteAsync. This will allow you to asynchronously duplicate and delete products that have a high number of variants that are stocked at several locations. This is because the mutations productDuplicate and productDelete may time out for these larger products.
Learn more about the mutations at productDuplicateAsync and productDeleteAsync.
January 01, 2023
New field EditedAt
is added to CheckoutProfile object
API
As of 2023-01, you can use the EditedAt
to see when checkout profile has been edited. Checkout profiles are sorted by EditedAt
field instead of updatedAt
.UpdatedAt
field may be deprecated in the future.
January 01, 2023
New And Updated Fulfillment Order Webhooks API
As of the Admin API 2023-01 release candidate, fulfillment service and order management apps can subscribe to webhooks notifications related to fulfillment orders and events relating to them.
Learn more about fulfillment order webhooks at Shopify.dev.
January 01, 2023
Moving the Shop.fulfillmentOrders connection to QueryRoot API
As of the 2023-01 release of the admin GraphQL, you can access fulfillment orders from QueryRoot.fulfillmentOrders
in addition to the pre-existing Shop.fulfillmentOrders
connection.
This change will also include the deprecation of the Shop.fulfillmentOrders
query in favour of the newly added QueryRoot.fulfillmentOrders
This change aligns with direction of the admin API moving forward ensuring that domain primitives are available on QueryRoot
and the Shop
field is reserved for key information related to the shop in the scope of the request.
You can learn more about fulfillment orders here
January 01, 2023
Release of the fulfillmentOrdersReleaseHolds Mutation API
As of the 2023-01, you can use the fulfillmentOrdersReleaseHolds
mutation to release holds on multiple fulfillment orders in a single request.
This will allow developers to reduce the number of individual requests used to complete bulk fulfillment actions with their apps.
For more details on the fulfillmentOrdersReleaseHolds
mutation see here.
January 01, 2023
Shop Resource Feedback with GraphQL Admin API API
GraphQL Admin API 2023-01 introduces support for creation of shop resource feedback.
You can now use shopResourceFeedbackCreate
mutation to create resource feedback on a shop to let merchant know what steps they need to take to make sure that your app is set up correctly.
For more information, refer to https://shopify.dev/api/admin-graphql/unstable/mutations/shopResourceFeedbackCreate.
January 01, 2023
New FulfillmentOrderLineItemsPreparedForPickup GraphQL Mutation Released API
As of the 2023-01 release candidate in the Admin API, you can use the GraphQL FulfillmentOrderLineItemsPreparedForPickup
mutation to mark line items associated with a fulfillment order as being ready for pickup by a customer.
Learn more about FulfillmentOrderLineItemsPreparedForPickup mutation on Shopify.dev.
January 01, 2023
New argument to update shipping package API
As of 2023-01 in GraphQL Admin API stable version, you can use shippingPackage
as a required argument in shippingPackageUpdate
mutation.
shippingPackage
is a set of attributes that describes a shipping package, including: weight
, dimensions
, name
, default
and type
.
Learn more about shippingPackageUpdate.
January 01, 2023
Action required
Removal of SMS Templates as translatable resources API
As part of GraphQL Admin API version 2023-01
, we are removing SMS Templates as a translatable resource.
This means the SMS_TEMPLATE
value will be removed from the TranslatableResourceType
enum and the following GraphQL endpoints will stop accepting SMS Template IDs:
January 01, 2023
Action required
Update: Carrier Service API Access for Stores on Starter and Basic Plans API
As of January 1, 2023 stores on Starter and Basic plans (globally), will no longer be able to request access to the Carrier Service API. The option to request access by transitioning to annual billing or by paying an additional monthly fee for these plan types will be removed.
Stores on Advanced and Shopify Plus plans will continue to have access to Carrier Service API. Stores on Shopify plans can continue to request access by contacting Shopify Support. Stores on Starter or Basic plans that were previously granted access are not impacted by this change.
Learn more about CarrierService access requirements on Shopify.dev.
January 01, 2023
New credit card fields added to Transaction's payment details API
As of the 2023-01 release candidate in the Admin API, new fields are available under the REST Transaction payment_details
property, and the GraphQL OrderTransaction includes a new payment_details
property.
New fields added to REST Transaction payment_details
-
credit_card_name
: The holder of the credit card. -
credit_card_wallet
: The wallet type where this credit card was retrieved from. -
credit_card_expiration_month
: The month in which the credit card expires. -
credit_card_expiration_year
: The year in which the credit card expires.
Learn more about the REST Transaction resource on Shopify.dev.
New paymentDetails
property added to GraphQL OrderTransaction
A new field, payment_details
, is available under the GraphQL OrderTransaction resource. The type of this field is PaymentDetails
, a new union type. Only one type is available at the moment, CardPaymentDetails
, which defines the following properties:
-
avsResultCode
: The response code from the address verification system (AVS). -
bin
: The issuer identification number (IIN), formerly known as bank identification number (BIN) of the customer's credit card. -
company
: The name of the company that issued the customer's credit card. -
cvvResultCode
: The response code from the credit card company indicating whether the customer entered the card security code, or card verification value, correctly. -
expirationMonth
: The month in which the credit card expires. -
expirationYear
: The year in which the credit card expires. -
name
: The holder of the credit card. -
number
: The customer's credit card number, with most of the leading digits redacted. -
wallet
: Digital wallet used for the payment.
Learn more about the GraphQL OrderTransaction resource on Shopify.dev.
January 01, 2023
Deprecate FulfillmentOrderLineItem.lineItem field API
As of API version 2023-01, the lineItem
field on the FulfillmentOrderLineItem
resource has been deprecated. The order line item associated with a FulfillmentOrderLineItem
shouldn't be used to determine what to fulfill.
Use the FulfillmentOrderLineItem
and FulfillmentOrder
objects instead. An order LineItem
represents a single line item on an order, but it doesn't represent what should be fulfilled.
January 01, 2023
Metafields and BulkOperation now available for B2B API
As of GraphQL Admin API version 2023-01, metafields are being added to the Company
and CompanyLocation
primitives for B2B. Additionally, a subset of mutations are now available for use asynchronous usage via BulkOperation.
Learn more about B2B on Shopify.dev.
January 01, 2023
Simplified Metafield Querying API
As of the 2023-01 Admin API release, you can optionally supply the key
argument to metafield queries on resources in the format of namespace.key
to simplify your queries on the metafield
field. You will also be able to optionally supply the keys
argument to the metafields
connection as a list of strings in the same format. The key returned will also be in the format of namespace.key
.
January 01, 2023
B2B Order Import REST API API
As of 2023-01, Merchants with B2B enabled on their stores can import Orders in a B2B context using the REST API.
Learn more about B2B order imports on Shopify.dev.
January 01, 2023
Removal of the error code INVALID
from LocationDeactivateErrorCode
API
As of GraphQL Admin API version 2023-01
, we are removing the error code INVALID
from LocationDeactivateUserError
as we never return this error code when using the mutation locationDeactivate
to deactivate a location.
If you are explicitly checking for this error code, you should remove references to it.
Learn more about { Location deactivate user error codes } on Shopify.dev.
January 01, 2023
Action required
Serving errors on a fulfillment orders opt-out fulfillment service creation and modification API
As of 2022-07 API version, it's mandatory for a fulfillment service to follow a fulfillment order based workflow and have fulfillment_orders_opt_in
set to true
in FulfillmentService
resource. The last API version serving the legacy fulfillment APIs is 2022-04.
With 2023-01 release, we add observability to the migration process.
Errors will be returned if a legacy (fulfillment orders opt-out) fulfillment service is intended to be created on an API version, where the legacy fulfillment APIs are not available.
Errors will be returned on fulfillment service create REST and GraphQL API calls if fulfillment_orders_opt_in
field is not set into true
in the parameters.
Errors will be returned on fulfillment service update REST and GraphQL API calls if the fulfillment service being changed has fulfillment_orders_opt_in
set to false
and the update request does not promote fulfillment_orders_opt_in
into true
. fulfillment_orders_opt_in
and callback_url
become required parameters for fulfillment service create request/mutation.
Follow Migrate to fulfillment orders guide to learn how to migrate. Follow Manage fulfillments as a fulfillment service app guide to learn how to fulfill fulfillment orders.
January 01, 2023
Shop "Contact Information" policy API
As of Admin API 2023-01, Shop Policy now supports the "Contact Information" policy. This policy is intended to allow users to add regulatory information like VAT and Trade number.
January 01, 2023
ShopifyQL API is now available for Developers API
As of Admin API version 2023-01, you can use the shopifyqlQuery API to query analytical data from merchant stores to create reporting apps that provide business insights for merchants on the Plus plan.
We are removing the unstable sales
dataset as a part of this stable channel release.
Learn more about ShopifyQL on Shopify.dev.
January 01, 2023
New webhook topic for when a PaymentSchedule
is due
API
As of Admin API 2023-01, you can subscribe to the new PAYMENT_SCHEDULES_DUE
webhook topic to be notified of when a PaymentSchedule.due_at
date is reached.
Learn more about the PAYMENT_SCHEDULES_DUE
topic on Shopify.dev.
January 01, 2023
Action required
Asynchronous queries in Segmentation API API
Starting in January 2023, on the 2023-01 API release, some queries could be processed and returned asynchronously based on complexity and the amount of shop data. Most queries will continue to be evaluated synchronously. This breaking change allows you to build the best possible user experience as we introduce more complex filters in Segmentation. Async queries should revolve within 5 seconds but some queries might take up to 1-2 minutes or even longer.
To get up to date, make sure you are handling responses returning an error code because the query must be processed asynchronously. You can follow our migration guide.
Learn more about building for asynchronous queries in our developer documentation or visit our API forum for questions.
January 01, 2023
Delivery Settings support for more locations API
As of 2023-01 in GraphQL Admin API stable version, we’ve introduced a few changes that will improve managing delivery settings for merchants with a high number of locations.
Delivery Profile mutation changes
We’ve added a new and more efficient way of managing locations associated with groups within a delivery profile. Instead of using the locations field (which always requires the full list of locations to have in a location group), you can now use the locationsToAdd and locationsToRemove fields to specify exactly the locations you want to adjust from a group.
Delivery Profile query changes
We’ve added a new argument locationGroupId
to profileLocationGroups field. You can use this to query a specific location group and fetch its paginated locations more efficiently.
We’ve added a new field unassignedLocationsPaginated. You can use this field to query locations that are not assigned to a delivery profile in a more efficient way.
We’ve added a new field locationsCount to the DeliveryLocationGroup object.
Local Pickup settings
Local Pickup API introduced in the 2022-10 release is now part of the stable version.
Documentation changes
In addition to the changes above, we’ve also updated documentation for DeliveryProfileInput and DeliveryProfileLocationGroupInput in which we raise awareness regarding performance considerations and input array limits. This also includes examples for the deliveryProfileCreate and deliveryProfileUpdate mutations, where we show how to manage profiles in a more efficient way, using changes introduced in this version.
January 01, 2023
External Ids for Fulfillment Order Holds API
As of 2023-01, you can tag fulfillment order holds with an external ID.
This can be used to track states within your own application on why a fulfillment order has been placed on hold and when it needs to be released. This can be done by utilizing the new FulfillmentOrderHoldInput.externalId
field argument described here.
To learn more about the fulfillment order API see the fulfillment order object documentation
January 01, 2023
Access Controls for App Metafields API
As of the 2023-01 Admin API release, you can optionally specify an access
setting when you create or update metafield definitions via the API. This new setting will allow you to control who else can access the metafields under your definition via the Admin API.
Note that this setting can only be set when the definition is in your own reserved namespace.
Possible settings you can use are PRIVATE
(no one else can access the metafields), MERCHANT_READ
(the merchant has read-only access to the metafields via the admin UI), and MERCHANT_READ_WRITE
(the merchant can view and edit the metafields via the admin UI).
Learn more about reserved namespaces.
Learn more about access controls.
January 01, 2023
Shop.billingAddress
uses new type, deprecates name fields
API
As of 2023-01, the Shop.billingAddress
field uses a new ShopAddress
type instead of the customer-centric MailingAddress
type.
Since Shop.billingAddress
never returns non-null first or last names, these fields have been marked as deprecated on the new ShopAddress
type. You should stop requesting those fields as they will be removed in a later version.
January 01, 2023
Inventory States APIs API
As of Admin API 2023-01, there are new mutations that allow you to alter the inventory quantities at a location. State quantities reserved and on_hand are adjustable through the API. In addition, there are queries to retrieve quantities for every state.
Details about these new endpoints are in the Inventory management apps section of the developer docs.
January 01, 2023
DraftOrder
and Order
fields added to the PaymentTerms
GraphQL object
API
As of GraphQL Admin API 2023-01, you can load the associated Order
or DraftOrder
object when querying for a PaymentTerms
object.
Until now you could only go from Order
or DraftOrder
to PaymentTerms
that relationship is now available in both directions.
Learn more about these new fields on Shopify.dev.
January 01, 2023
PaymentTerms
field added to the PaymentSchedule
GraphQL object
API
As of GraphQL Admin API 2023-01, you can load the associated PaymentTerms
object when querying for a PaymentSchedule
object.
Until now you could only go from PaymentTerms
to PaymentSchedule
, that relationship is now available in both directions.
Learn more about the new field on Shopify.dev.
January 01, 2023
Send payment reminders via email to customers with the paymentReminderSend
endpoint
API
As of GraphQL Admin API 2023-01, you can use the paymentReminderSend
mutation to send payment reminder emails to customers.
Learn more about sending payment reminders on Shopify.dev.
January 01, 2023
Create custom objects with the new Metaobjects API API
As of 2023-01, we're introducing a new Admin API to allow you to create custom data structures called Metaobjects.
Similar to metafields, which enable custom fields to be associated with core resources in Shopify, Metaobjects provide a way to create and associate entirely new data models. The API enables you to do the following:
- Define objects with granular access control on how merchants and apps can interact with them.
- Create entries of custom defined objects and make them publishable to storefronts.
January 01, 2023
Add Purchasing Company to the Cart's Buyer Identity in Shopify Functions for B2B API
As of Shopify Functions API 2023-01, you can use the purchasing company as buyer identity in a B2B context to customize B2B checkout.
January 01, 2023
Creating Fulfillment Events with GraphQL API
As of API version 2023-01, you can create fulfillment events using the GraphQL mutation fulfillmentEventCreate
which was previously only accessible via the REST API.
December 19, 2022
Release of Re-engagement API for use with marketing automations API
As of GraphQL Admin API 2023-01, we are giving apps the capability for Apps to integrate into our Re-engagement marketing automation.
You will now be able to integrate Marketing Automation Flow Actions inside our Re-engagement marketing automation workflows. These are "Browse", "Cart", as well as "Checkout" abandonment automations. Here is the link for more detail about the re-engagement suite for marketing automations.
December 14, 2022
Quickly format your code with the Liquid prettier plugin Tools
As of today, you can format your code instantly with our Liquid prettier plugin (1.0.0) for consistent code styles so you can avoid discussing styles and focus on what matters. Available both in-admin and locally in your favorite code editor.
Learn more about the Liquid Prettier Plugin on Shopify.dev.
December 13, 2022
We’re making it easier for app developers to test webhook topics, and streamlining webhook failure emails API
You’ll now be able to trigger a webhook test payload to a specified destination directly from the CLI. Previously, developers needed to create a dev store and manually click around with an app installed in order to test their app logic. This manual process added significant time and friction to the development loop. With this new feature, it’ll be easy to test your subscriptions for each topic, so you can see what the payload will look like before your app is in production.
We’re also reducing the number of emails sent each time a webhook delivery fails. Previously, there was one email sent per attempt - which could quickly add up and become ineffective for monitoring. Now only one email will be sent for each one per consecutive string of failed attempts, over a two-day period, in order to keep your inbox clean and actionable.
To learn more about testing webhooks, check out the Shopify CLI command reference. If you have any questions about these changes, contact Partner Support with any questions.
December 09, 2022
Recent update to the App Design Guidelines Shopify App Store
The Voice and tone section of the App Design Guidelines has been shortened, with a new link to the complete Polaris documentation for voice and tone.
December 09, 2022
Adding webhooks to the Subscription Billing Cycles API API
As of GraphQL Admin API version 2023-01, you can use webhooks with subscription billing cycles API.
We introduced subscription_billing_cycle_edits_create
, subscription_billing_cycle_delete
and subscription_billing_cycle_edits_update
to WebhookSubscriptionTopic
.
We also added some new error codes to SubscriptionBillingAttemptUserError
and SubscriptionBillingCycleUserError
.
Learn more about the Subscription Billing Cycles API on Shopify.dev.
December 08, 2022
Online store media localizable to different languages & markets API
The Localization API now supports online store media as a localizable resource. Metafield file references and "image" type theme sections can now be translated and localized to different markets using the translationsRegister
mutation.
Note: media localization is currently only supported for theme sections & metafield file references. Product media localization is not yet supported.
December 06, 2022
Plus merchants can now start building with Shopify Functions API
Starting today, Shopify Functions are available to Shopify Plus brands who are not leveraging a checkout.liquid
customization. This means that Plus merchants can start building their own product or order discount Functions and deploy them with a custom app.
Please note that the rollout to eligible Plus shops will take a couple of weeks to complete. Plus brands that leverage a checkout.liquid
customization are not eligible to use Functions at this point in time.
Learn more about Shopify Functions here.
December 06, 2022
Action required
Payment properties deprecation on the Admin API Order resource API
The following properties on the REST and GraphQL Admin API's Order resource, including webhooks, are deprecated:
gateway
payment_details
processing_method
These properties are available on the corresponding Transaction
resources.
These deprecated properties will be removed from unstable in January 2023. The change will be made official in the 2023-04 Admin API version.
December 06, 2022
Updates to the Shopify App Store Shopify App Store
On December 6, we released new designs that make it easier for developers to showcase the value of their apps and for merchants to discover the right apps for their businesses, including:
- Optimized app listing
- Personalized home page
- Educational category pages
- New story pages
We will continue to build in public, with new features rolling out over the upcoming weeks.
December 02, 2022
Action required
Add Due on fulfillment to payment terms type API
As of the Admin API 2023-01 release candidate, Due on Fulfillment is now a Payment Terms type available to all 3rd party apps.
With this change, apps can create and update orders and draft orders with payment terms whose due date will be set upon fulfillment of the order. The newly added FULFILLMENT
type value can be found on the PaymentTermsType ENUM object.
December 01, 2022
Updates to displaying accelerated checkout buttons Themes
Accelerated checkout buttons will now always appear in checkout even if customers have previously seen them in cart. This change will gradually roll out to eligible shops over the next two weeks.
To learn more, refer to accelerated checkout buttons.
December 01, 2022
The partner dashboard now includes clear steps to earn achievements that drive merchant installs Shopify App Store
This spring, we added app highlights to app store listings to help merchants find high quality apps and make better informed decisions. These highlights show tested indicators of merchant success, including its impact to storefront performance, how it works with other Shopify features, and integration with Admin.
Starting December 1, we’re providing visibility into how to achieve these highlights within the Distribution section of the Partner Dashboard. Initial data shows that app highlights are a major factor for merchant exploration and installation.
November 30, 2022
Rename authorV2 and enable author as nullable API
As of 2023-01, the authorV2
field is being removed from the Storefront API. It was previously used to reference nullable author scenarios. As a result, the following changes are being made:
-
authorV2
will now be deprecated. -
author
will be used instead, and will now be a nullable field.
These changes will help improve consistency of the API and avoid confusion when using these fields.
November 30, 2022
Governorates now available for Kuwait shipping zones Platform
Merchants based in Kuwait can now add governorates to their shipping zones.
As a result, merchants in this region can give their customers the opportunity to provide more accurate address information at checkout as well as set up more specific shipping zones for the governorates that they add.
November 18, 2022
We've updated how we calculate the 'Speed Tested' app highlight Shopify App Store
The 'Speed Tested' app highlight in the app store has been adjusted as of November 17th to better reflect your app's current performance, as well as impact on checkout experience.
We continue to measure how apps affect store performance using Google Lighthouse, but we now focus on your app's affect from recent installations, as opposed to all historical installations. This change gives merchants more accurate info about which apps perform quickly on their stores. As developers improve their app's performance, those improvements will be reflected more quickly in the app highlights.
For a shipping app to be eligible to receive the 'Speed Tested' app highlight, we will now consider its response time and error rate for shipping rate requests. Because there is some variability in performance between checkouts, we will only feature apps with a sufficient number of installs and requests in order to ensure a stable measurement.
November 09, 2022
Action required
CLI 2.0 to be sunset on May 31, 2023 Tools
With the latest addition of theme support to Shopify CLI 3.x, Shopify CLI 2.x has been scheduled to sunset on May 31, 2023. Learn more about how to migrate over to Shopify CLI 3.x here.
Note that app and extension creation will sunset a month earlier on April 28, 2023.
November 08, 2022
Shopify Scripts now available on Storefront API Cart API
You can now use Line Item Shopify Scripts with the Storefront API Cart to create discounts that are applied to a cart and reflected in the API response.
November 07, 2022
Recent updates to the App Design Guidelines Shopify App Store
The App Design Guidelines have been updated to improve clarity on high quality app experiences.
In the app navigation section, it is now mandatory to use App Bridge’s Navigation Menu to integrate with the Shopify admin navigation experience if your app has different sections.
The existing requirement in the responsive grid section that apps must have responsive layouts for all device sizes has been moved to a callout card to make it more noticeable.
The wording of one callout card in the single-column layout section has been updated to make it clear that tables should only use the full width page if they have enough columns to require the extra space. Otherwise, they should use normal width pages.
November 01, 2022
Developers can now choose their own app store categories Shopify App Store
Starting November 1, 2022, you can self-categorize your app once using the app submission form in the Partner Dashboard. Categories can be chosen by selecting up to two tags from our updated app categories that best describe the main function of your app. You can later appeal to change your app’s categorization if its capabilities change.
Learn more on Shopify.dev.
October 27, 2022
Shopify Functions begins rollout to developers and merchants API
Shopify Functions are available for developers to start customizing the backend logic of discounts. All non Shopify Plus merchants are able to install your apps today. Shopify Functions are not yet available to Shopify Plus merchants. We will provide an update when Functions become generally available to Plus brands.
Discount the entire cart with order discounts applying a fixed amount of percentage off.
Discount specific products with product discounts applying a fixed amount or percentage off.
Learn more about Shopify Functions on Shopify.dev
October 27, 2022
Subscription Shipping Rate Name to Use Actual Rate Name Platform
Merchants can create selling plan specific shipping rates (for subscriptions) and have those names from those rates surface in checkout.
We've added new functionality to replace the default subscription rate names (ie. "subscription shipping", "subscription pickup", "subscription local") to now expose the merchant defined rate names during checkout, admin order and in the email notification. If merchants do not create selling plan specific shipping rates then the general rate name will be surfaced in checkout.
October 26, 2022
Automatic GIF conversion to animated WebP Platform
We've implemented an automatic GIF to animated WebP conversion process in our image processing pipeline, which improves performance by reducing delivered bytes by up to 50%.
For more information, please visit Shopify Help Center .
October 26, 2022
Migrating theme commands over to CLI 3.0 Tools
Support for themes has been added to Shopify CLI 3.20. In addition to migrating over theme commands, Shopify CLI 3.20 now includes the ability to integrate Shopify CLI into your CI/CD pipeline to perform actions like pushing, pulling and publishing a theme. Most theme commands on Shopify CLI 3.20 will continue to work the same with the exception of a few differences outlined here. More information on using Shopify CLI in a CI/CD pipeline can be found here.
October 17, 2022
Action required
Subscriptions shippingOptions deprecated by deliveryOptions API
In the API version 2022-10
, we included the expanded support of new delivery options for Subscriptions: Local Delivery and Pickup.
As of API version 2023-01
, we are deprecating the old shippingOptions
field of SubscriptionDraft
in favor of the new deliveryOptions
field which supports Local Delivery and Pickup.
Learn more about deliveryOptions
on Shopify.dev - SubscriptionDraft.
October 14, 2022
Introducing the Video Setting Themes
We've added the video setting. You can use the video setting to surface videos uploaded to the Files Page in your theme.
October 14, 2022
Reconcile payments made using third party providers with Payment ID API
As of 2023-01 a unique ID is sent by Shopify to payment providers when a customer pays at checkout. Use this ID to match order information between Shopify and your payment provider. An order can have more than one Payment ID. It only includes successful or pending payments. It does not include captures and refunds.
Steps: 1. From your Shopify admin, go to Orders. 2. Search using the custom term payment_id: and the payment ID value. For example payment_id:xxx. 3. Alternatively, you can search using the payment_id directly, without any explicit filters. 4. Click the order.
October 12, 2022
Action required
Deprecating custom and standardized product type in favor of product category; will be used for sales tax purposes API
We’ve added a new productCategory
field to the Product
object. The product category specifies a category in the Shopify Product Taxonomy.
We’re deprecating several fields:
- The standardizedProductType
field is deprecated in favor of productCategory
.
- The customProductType
field is deprecated in favor of productType
.
Previously, the product category data was not powering any platform features. Now, the product category will be used to determine the rate at which a product is taxed in the US. In the future, it will apply to how products are taxed in other regions/markets.
For more information, refer to the Product
object or learn more about Product Tax Codes here
October 11, 2022
Action required
Cookie policy update and new Cookies added Shopify App Store
The Shopify cookies policy has been updated.
Breaking change
In addition to the policy update, we've added the following three required cookies to the Cookies Necessary for the Functioning of the Store cookie list:
identity-state
identity-state-<<token>>
identity_customer_account_number
These cookies are required to use the new customer account log-in, which some merchants have already enabled. Without them, customers won't be able to log into the store. All cookies management applications, including GDPR-related apps, must update their application as soon as possible and not block these cookies.
Please be noted:
- The difference between
-
and_
. The two identity state cookies names are:
identity-state
and identity-state-<<token>>
NOT
identity_state
and identity_state_<<token>>
- The
token
in the real name ofidentity-state-<<token>>
is a random string, likeidentity-state-fsdf25fxg34se69d
. The name does not contain<
or>
. It means, your app should not block cookies whose name is similar toidentity-state-fsdf25fxg34se69d
. This also applies tocheckout_session_token_<<token>>
. Your app should not block cookies whose name is similar tocheckout_session_token_fsdf25fxg34se69d
.
We've also added two cookies to the Reporting and Analytics cookie list:
customer_auth_provider
customer_auth_session_created_at
These cookies are used to provide additional data for Shopify analytics.
October 06, 2022
Storefront API allows for cross-origin resource sharing API
Requests made to Storefront API from SSL provisioned domains that are registered in the domains list on the Admin Panel will now return a two new headers:
Access-Control-Allow-Credentials: true
Access-Control-Allow-Origin: ${origin_domain}
With that mechanism in place, Storefront API securely shares resources such as cookies with the browser, allowing for cart events originated from API Clients other than Online Store to be accounted for in the conversion metrics out of the box, as long as the origin request complies with CORS policy.
October 03, 2022
Introducing the Web Pixel API API
As of GraphQL Admin API version 2022-10, you can use Web Pixel Extensions to connect your marketing and analytics pixels to a merchant's online store for collecting customer events.
Learn more about Web Pixels on Shopify.dev.
October 03, 2022
Checkout Extensibility begins rollout to developers and Shopify Plus Merchants API
Checkout extensibility capabilities are available for developers to start building apps for checkout customizations. We’re gradually rolling out checkout extensibility to Shopify Plus merchants so they can install and use your apps in production. Merchants will be able to discover apps with checkout UI extensions via the checkout editor.
Add new functionality with checkout UI extensions in various places in checkout and Shop Pay. Use these extensions to add in unique elements like product offers, custom fields, custom banners and more that are adaptable to various flows, creating a unified experience for buyers wherever they choose to checkout.
Track events using the new web pixel extension, to provide customer events that merchants can subscribe to. Apps will be able to hook into the events in the Pixels API, including checkout, to allow merchants access privacy-compliant customer behavior analytics.
Merchants are now able to use the new checkout branding API to customize the styling, to truly make checkout feel like their own, adapting the visual appearance such as the logo, font, and colors. Checkout UI extensions will inherit the brand settings from this API, so your app automatically reflects a brand’s style.
To learn more about building apps for checkout, please review our developer documentation.
October 03, 2022
Introducing the Checkout Profiles API API
As of GraphQL Admin API version 2022-10, you can query for a CheckoutProfile, or mulitple CheckoutProfiles, providing insights about existing checkout profiles on your shop.
Learn more about Checkout Profiles on Shopify.dev.
October 01, 2022
The title field has been deprecated for the translatable resource ProductVariant API
As of GraphQL Admin API version 2022-10 when you register any option
translations on a ProductVariant
resource, a title
translation will be automatically generated using the option
translations and surfaced for you.
You will no longer be able to register title
translations on the ProductVariant
resource.
Learn more about TranslatableResourceTypes.
October 01, 2022
Creating or updating an order risk with the REST Admin API now requires an order_id
API
The REST Admin API now disallows requests to either create or update order risks without specifying an order ID.
Previously, the REST Admin API allowed you to create OrderRisk models using order_id: null
. This could have been used to create checkout order risks that exist prior to creating the order and block checkout. External apps do not use this feature.
This change is not breaking.
October 01, 2022
Action required
REST Admin API - Retrieving a list of locations is now paginated API
Retrieving a list of locations is now paginated by default. If you are a consumer of this API and have more than 50 locations configured for your store, you might be affected. For more details on how pagination works, see here.
October 01, 2022
New references connection on metafields API
You can now access a references
connection on a metafield
in the GraphQL Admin and Storefront APIs.
Use the references
connection to resolve metafield values of a list reference type to their underlying resource. This new connection is paginated and works similarly to the existing reference
field, which is used for single references.
This new endpoint is available in unstable, and will be part of the 2022-10 release.
For more information, refer to the Admin API and Storefront API documentation.
October 01, 2022
New field deliveryAddressPreferences
added to cart buyer identity objects
API
You can now use the Storefront API to attach shipping address preferences to the carts of non-logged-in customers and the fetch cart delivery groups.
ThedeliveryAddressPreferences
field has been added to the Storefront API's CartBuyerIdentity
and CartBuyerIdentityInput
objects, for this purpose.
Refer to our documentation on cartCreate and cartBuyerIdentityUpdate to learn more about how to create a cart or update a cart's buyer identity to send delivery address preferences.
October 01, 2022
New field manualHoldsFulfillmentOrders
to get manually held fulfillment orders
API
As of GraphQL Admin API version 2022-10, you can use the new manualHoldsFulfillmentOrders
connection to fetch all the manually held fulfillment orders for a shop. Fulfillment orders can also be filtered based on order filters like -
* order_risk_level
- The fraud risk level of the order.
* order_financial_status
- The financial status of the order
* shipping_address_coordinates_validated
- Whether the shipping address was geolocated and it is a valid address.
October 01, 2022
New field transactional_sms_disabled
added to Shop object
API
As of Admin API version 2022-10, a new field transactional_sms_disabled
has been added to the Shop object in the GraphQL and REST Admin APIs.
The field is also present on the "shop/update" webhook, which now will trigger when the transactional_sms_disabled state
of a shop changes.
October 01, 2022
New Merchant of Record application field in order object API
As of GraphQL Admin API and REST Admin API version 2022-10, information on application acting as the Merchant of Record for the order would be available through the Order object. This information would only be populated with supported applications.
New merchantOfRecordApp
field in GraphQL Admin API returns OrderApp
object and merchant_of_record_app_id
field in REST Admin API returns the id of the application .
Learn more about the Order object on Shopify.dev.
October 01, 2022
Metafields support for Locations API
As of 2022-10, Location resources support metafields. Use metafields APIs to store additional information in metafield values, like store hours, and then reference them in Liquid.
To learn more about metafields, refer to the metafields documentation. To use location metafields in Liquid, refer to the store_availability Liquid reference.
October 01, 2022
Remove Cancelling a fulfillment for a specific order ID endpoint API
The Fulfillment API was deprecated in the Shopify 2022-07 release. However the cancel endpoint was missed and this change rectifies that mistake.
Apps will have until the 2023-04 release to migrate away from the deprecated API and use Fulfillment Orders instead. To help you seamlessly migrate, we’ve crafted a migration guide that walks you through the process of moving to Fulfillment Orders. To learn more, visit the migration guide on Shopify.dev.
October 01, 2022
New selected_delivery_option
field in cart
API
We have added the selected_delivery_option
as part of the CartDeliveryGroup
as well as the handle
field as part of the CartDeliveryOption
in the cart.
The selected_delivery_option
field represents the selected delivery option in a delivery group. The handle
field represents a unique identifier for the delivery option.
A default CartDeliveryOption
is saved as the selected_delivery_option
in each CartDeliveryGroup
available.
We also added the cartSelectedDeliveryOptionsUpdate
mutation, allowing you to update the selected_delivery_option
s of each of your delivery groups.
October 01, 2022
New mutations marketingActivityCreateExternal and marketingActivityUpdateExternal are available API
As of GraphQL Admin API version 2022-10, you can now use marketingActivityCreateExternal and marketingActivityUpdateExternal mutations to create and manage marketing activities, without the need to implement a marketing activity app extension.
These endpoints will allow our app partners to more easily link their marketing efforts, and accompanying tracking information to Shopify so our merchants can have a more complete picture of their marketing performance.
October 01, 2022
Full markets and multi-currency support for draft orders API
As of GraphQL Admin API version 2022-10, we’ve added full support for markets and multi-currency on draft orders.
You will now be able to specify the market region that should apply to a draft order, inheriting your configured market settings such as pricing. The selected market region’s attributes will be available on their respective objects.
Additionally, we have built out full support for multi-currency in draft orders. You will now be able to query a new set of fields that expose all monetary values relevant to a draft order in multi-currency. As part of these changes, you will now be able to use all draft order payment completion flows in multi-currency.
Learn more about these fields on DraftOrder, DraftOrderLineItem, DraftOrderAppliedDiscount, DraftOrderInput, CalculatedDraftOrder and CalculatedDraftOrderLineItem reference docs.
October 01, 2022
New mutation inventoryBulkToggleActivation now available API
As of GraphQL Admin API version 2022-10
, we are releasing a new mutation inventoryBulkToggleActivation
.
This new mutation will allow you to bulk activate or deactivate a single inventory item at many locations, with a maximum of 250 locations at a time.
Instead of having to call inventoryActivate or inventoryDeactivate for each location, you can now do that in bulk for a single inventory item.
Learn more about the inventoryBulkToggleActivation mutation on Shopify.dev.
October 01, 2022
Action required
Apps can now request access to necessary protected data API
As of the 2022-10 release, APIs will redact customer personal data by default and you will be able to request access to protected customer data and protected customer fields through your Partner Dashboard. You will need approval to access protected customer data on any store that isn't a development store.
Apps that require protected customer data (data that relates directly to a customer or prospective customer) must implement our data protection requirements, including informing merchants of your app’s data use and purpose, applying customer consent decisions, opt-out requests, and more.
Apps that require protected customer fields (individual configuration and approval) in addition to approval for protected customer data will need to abide by additional requirements, including encrypting your data back ups, keeping test and production data separate, and more.
For more information, please visit our developer documentation.
October 01, 2022
Introducing the Subscription Billing Cycles API API
As of GraphQL Admin API version 2022-10, we've introduced Subscription Billing Cycles to the existing Subscriptions Contract APIs so that you can make changes to an upcoming order without affecting the base subscription contract.
This includes: * The ability to skip a future order. * The ability to make changes to the line items of an upcoming order, including any additions, quantity changes, or removals. * The ability to combine the orders of one or more subscriptions contracts in order to save on shipping costs.
Please note that with the introduction of Subscriptions Billing Cycles API, SubscriptionBillingAttemptCreate
will create a billing attempt for the billing cycle at the origin_time
if specified. Otherwise, it will be created for the current billing cycle by default.
Alternatively, you can also use BillingCycleSelector
to select the billing cycle you wish to create billing attempt for.
Learn more about the API on Shopify.dev.
October 01, 2022
Action required
New field marketing_sms_consent_enabled_at_checkout
added to Shop object
API
As of Admin API version 2022-10, a new field marketing_sms_consent_enabled_at_checkout
has been added to the Shop object in the REST Admin APIs.
The field is also present on the "shop/update" webhook, which now will trigger when the marketing_sms_consent_enabled_at_checkout
state of a shop changes.
October 01, 2022
New mutations to manage Locations API
As of GraphQL Admin API version 2022-10
, we are adding mutations so you can manage your locations using GraphQL. This will allow you to add, edit, deactivate, re-activate and delete locations.
Learn more about Locations on Shopify.dev.
October 01, 2022
New Admin GraphQL APIs for B2B are available in 2022-10 API
As of GraphQL Admin API version 2022-10
, we are adding queries, objects, and mutations to introspect and manage B2B primitives notably Companies, Company Locations, and Company Contacts with associated Roles.
Learn more about B2B on Shopify.dev.
October 01, 2022
Create B2B Draft Orders via PurchasingEntityInput API
As of GraphQL Admin API version 2022-10
, you can use the purchasing entity input field to create and update B2B draft orders.
This will attach company, location and contact to the draft order.
The field can also be used to create and update a traditional D2C draft order, requiring only a customer ID.
Learn more about PurchasingEntityInput.
October 01, 2022
Duplicate and Create Inventory Reservations in Draft Orders API
As of GraphQL Admin API version 2022-10
, you will get access to new fields and mutations for draft orders.
In particular, you will now be able to: - Duplicate drafts - Creating drafts from orders - Execute bulk operations such as add/remove tags and deleting drafts - Create drafts with inventory reservations - Access previously hidden fields, such as metafields, on drafts and line items
Learn more about DraftOrderCreate.
October 01, 2022
Contextual pricing for company locations is now available for products in the GraphQL Admin API API
As of the 2022-10
version of the Admin GraphQL API, you can use the contextualPricing
field on Product and ProductVariant to fetch prices for a CompanyLocation by passing a companyLocationId
argument to the context
input.
Learn more about the Contextual Pricing API on Shopify.dev.
September 30, 2022
MarketWebPresence association can now be fully accessed through ShopLocale endpoints API
As of 2022-10
you can now add, remove and view MarketWebPresence
associated with a Locale
through the ShopLocale
GraphQL endpoints.
Learn more about ShopLocale and [MarketWebPresence].(https://shopify.dev/api/admin-graphql/2022-10/objects/MarketWebPresence).
September 30, 2022
Local Delivery & Pickup for Subscriptions API
As of 2022-10
, partners can manage the delivery methods of the subscriptions contracts with Shipping, Local Delivery, and Pickup.
SubscriptionContract.deliveryMethod
supports two new types: SubscriptionDeliveryMethodLocalDelivery
and SubscriptionDeliveryMethodPickup
.
A new SubscriptionDraft.deliveryOptions
provides a SubscriptionDeliveryOptionResultSuccess
type for all three delivery methods.
To edit or create contracts, an extended SubscriptionDeliveryMethodInput
for SubscriptionDraftInput
can receive localDelivery
and pickup
information.
Important to note:
- SubscriptionContract.deliveryMethod returns null for clients using API versions earlier than 2022-10 when the contract is created with Local Delivery or Pickup. If you have been inferring a subscription has only digital products because the delivery method is null, then adopt our new graphql changes.
- We also recommend taking a look at general delivery terms your app might be using, such as “delivers” or “ships”. Consider replacing them with broader terminology like “fulfills” or “recurs” that cover all modes of delivery.
Learn more about Delivery Methods for Subscription on Shopify.dev.
September 26, 2022
Introducing the Local Pickup API API
As of 2022-10 in GraphQL Admin API version unstable, you can use the new Local Pickup mutations to:
Enable Local Pickup for a location
Disable Local Pickup for a location
Additionally, you can access the current Local Pickup settings using the new Location.localPickupSettingsV2 field.
This enables you to fully manage Local Pickup settings for a location!
Learn more about Local Pickup on Shopify Help Center.
September 26, 2022
New metafield definition types in GraphQL - collection_reference / list.collection_reference API
As of GraphQL API 2022-10, two new metafield definition types are available:
-
collection_reference
: A reference to a collection on the online store. -
list.collection_reference
: A list of collection references on the online store.
Learn more about the new reference types in Shopify.dev, and see examples.
September 21, 2022
Preview theme app extensions using Shopify CLI Tools
As of Shopify CLI version 3.13.0, you can now preview theme app extensions by running the dev
command. Shopify CLI supports hot reloading for theme app extensions, so you can avoid refreshing the browser after making changes.
September 20, 2022
Performance Improvement on Product(s) Query API
We've added a new Rails association to Product
and use it in the Product
GraphQL, so that the database queries use an indexed access path, rather than doing a full table search as is being done now.
There's no change to the API.
September 20, 2022
Display both related and complementary product recommendations on storefronts API
The Product Recommendations API now supports an intent
parameter that allows theme developers to specify whether they want to show related or complementary products.
Complementary products are a new type of product recommendation intended for items that are often bought together or pair well. Complementary products can be set with the Search & Discovery app.
Learn more about the product recommendation intents on Shopify.dev
September 19, 2022
GraphQL Admin API now supports custom content by market that is not language based API
As of September 19, 2022, you can use a new set of endpoints in the GraphQL Admin API 2022-10 version to surface custom content to buyers in a specific market that is not language based.
The newly introduced endpoints are marketLocalizableResource
, marketLocalizableResources
and marketLocalizableResourcesByIds
queries, as well as marketLocalizationsRegister
and marketLocalizationsRemove
mutations.
An example of market localizable content that is not language based is the newly introduced money content type metafield
September 16, 2022
Use a server to build custom storefronts with authenticated access for the Storefront API API
You can now use authenticated access to make Storefront API requests from a server (for example, from a Hydrogen server).
Using authenticated access enables more throughput for your server than using a public token, and enables Shopify's bot protection features to work more effectively.
September 16, 2022
Action required
Updates required for embedded apps to work on the new Shopify admin domain API
The Shopify admin is moving to a new domain: admin.shopify.com
. Embedded apps should migrate to App Bridge 3.0 as soon as possible to ensure the best merchant experience in this new domain.
The following requirements must be met for embedded apps to load in admin.shopify.com
. Until these requirements are met, merchants will be forced to redirect to the old admin domain to use the app:
- The content security policy includes
admin.shopify.com
. - The app is on App Bridge 2.0.5 or higher, and has correctly implemented the
host
parameter. App Bridge 3.0 is recommended.
September 15, 2022
Action required
Update your app listing Shopify App Store
New fields have been added to the app listing in preperation for the updated app listing page. All developers must complete the updated form by November 1. For more information on the new form, click here
September 15, 2022
Updates to app categorization Shopify App Store
App categories are getting simplified for better merchant discovery. Starting in November, you’ll be able to categorize your own app. For more information, click here
September 14, 2022
Unpublished locales can now be added to a MarketWebPresence API
As of 2022-10
the marketWebPresenceUpdate
endpoint now supports adding unpublished locales as alternateLocales
.
Learn more about marketWebPresenceUpdate.
September 14, 2022
Destroy delegate access tokens through the GraphQL Admin API API API
As of ** 2023-01 ** version on the Admin GraphQL schema, you can use the DelegateAccessTokenDestroy mutation to delete the delegate tokens created by the API client.
For app architectures that use delegate tokens from multiple subsystems, this makes it easy to remove those delegate tokens that are unused or leaked for better application security.
September 13, 2022
Brand settings now available via Storefront API API
As of the 2022-10
release of the Storefront API, you can now query a shop's brand settings and assets via the new Shop.brand
field.
For more information on configuring your shop's brand settings, click here.
September 08, 2022
Action required
Critical changes to analytics and marketing measurement in Apps API
Starting October 3rd, Plus Merchants who customize their checkout via Checkout Extensibility will be required to use the new Web Pixel Extension instead of adding checkout.liquid code.
Ensure your app can support these merchants' measurement goals by building with the Web Pixel Extension. This will unlock additional locations for adding pixels, such as checkout, while increasing data accuracy, and providing tools for privacy compliance.
Visit the developer documentation to learn more and build with pixels.
August 30, 2022
Changes to the required app icon size in the Partner Dashboard Platform
Icons added to your app using the Partner Dashvoard App setup page now must be 1200 px by 1200 px in size. This change makes icon sizes consistent across the Partner Dashboard, the Shopify App Store, and other development surfaces.
August 29, 2022
Changes to GraphQL API MoneyV2-related fields API
As of 2022-10, the Money
scalar is being removed from the Storefront API. It was previously used for monetary fields that do not have a V2 suffix (<name>: Money
). As a result, the following changes are being made:
* Non-V2 fields will now use MoneyV2
objects for their type (<name>: MoneyV2
).
* Monetary fields that do have the V2
suffix (<name>V2: MoneyV2
) are being deprecated in favor of the <name>: MoneyV2
equivalent. These fields will be removed in subsequent releases.
These changes will help improve consistency of the API and avoid confusion when using these fields.
August 29, 2022
Automatic image delivery in AVIF Platform
Shopify now supports automatically optimizing storefront images using the AV1 Image File Format (AVIF) format, which improves performance by reducing delivered bytes. Optimization occurs on a per image basis, where Shopify will examine the request and determine the best compatible file format (e.g. AVIF, WebP or JPEG) based on image quality and compressed bytes.
You can learn more by visiting https://cdn.shopify.com/
August 18, 2022
Accelerated app creation and improved app insights Platform
Hey all! Coming back at you with improvements to creating an app from the Partner Dashboard! We’re removing the need for you to enter in any kind of URL when you’re manually creating an app from the UI. Instead, we’ll generate placeholders for you in the App setup area. You can update these URLs when you're ready to test or distribute your app.
We’ve also added a new Insights section to the app navigation, so you can discover everything from app history to API health without having to hunt around!
August 12, 2022
SellingPlan and SellingPlanGroup fields are supported by the Translations API API
SellingPlanGroup and SellingPlan fields will be supported by the Translations API as translatable resources. The following fields will be available in the unstable API until the 2022-10 API release:
- SellingPlanGroup.name - Public-Facing Name of the Selling Plan Group
- SellingPlan.description - Optional, more verbose description of the Selling Plan
- SeillingPlan.option1 - Delivery frequency
- SellingPlan.option2- Delivery frequency (optional)
- SellingPlan.option3 - Delivery frequency (optional)
More information about our translation API is available in our API documentation.
August 03, 2022
Action required
Updates to our Partner Program Agreement effective August 3, 2022 Platform
We've made changes to our Partner Program Agreement. This includes terms noting that all apps may only be installed or otherwise initiated directly on or through applicable Shopify surfaces allowing us to help provide merchants the trust signals they need to make informed choices, as well as other updates.
These changes come into effect as of today, August 03, 2022.
We encourage all developers on our platform to review and be familiar with the API License and Terms and the Partner Program Agreement, so that you understand how to build, run, and grow your app and development business on our platform.
For more information and frequently asked questions, please visit the Shopify Help Center.
July 28, 2022
Theme app extensions locale file size limit increase Platform
As of today, theme app extensions are be able to store translations up to 15 KB per locale file.
For more information about file and content size limits for theme app extensions, refer to the theme app extension framework documentation.
July 25, 2022
New customer payment method revocation reason types have been added API
You may now see new error values and descriptions if you encounter a Braintree payment method being revoked when associating Braintree payment methods with the customers that you import into Shopify.
Learn more about migrating existing subscription contracts to Shopify.
July 21, 2022
New Reference Type Deletion Error Message for Metafield Definitions API
As of the API version 2022-10, upon deleting a reference type metafield definition with delete_all_associated_metafields argument set to false, REFERENCE_TYPE_DELETION_ERROR will be returned with the following error message:
"Deleting a reference type metafield definition requires deletion of its associated metafields."
July 20, 2022
New tax exemption values API
As of 2022-10
, the following new tax exemption values will be added to the TaxExemption enum and are intended to help with B2B transactions:
* United States reseller exemptions, indicating that the merchant is exempt for taxes in a specific state as they are a reseller.
* European Union reverse charge exemption, indicating that VAT should not be included on the buyers invoice and that the buyer will be responsible for reporting the correct VAT on their purchase.
July 18, 2022
Adding write permissions for Actions to Shopify’s GitHub app Platform
Shopify’s GitHub app is requesting write permissions for GitHub Actions. This update will support improvements to the developer experience for Hydrogen custom storefronts hosted on Oxygen.
Today, deployments to the Oxygen hosting platform can only be triggered by committing and pushing a change to a Hydrogen code repository. These additional permissions will enable features such as on-demand re-deploys, automatic branch deployment when creating new Oxygen environments, and other enhancements.
Learn more about Shopify’s GitHub integration.
July 05, 2022
App proxy requests include new parameter for the logged in customer ID API
The customer ID for logged in customers is now included as a parameter in the forwarded query for app proxy requests. The customer ID is passed in the logged_in_customer_id
parameter. The parameter will be blank if no customer is currently logged in.
Tip:
Make sure that your application is verifying the signature
parameter of forwarded queries.
July 01, 2022
Updated contextualPricing to be nullable API
In the 2022-04 API version release, the Product.contextualPricing
and ProductVariant.contextualPricing
fields can now return null
.
This is in preparation for future argument changes. With the current arguments, there is no case where these fields can return null
. However, future arguments will introduce null
cases.
Learn more about contextualPricing
July 01, 2022
Read and write disputes and dispute evidence in the GraphQL and REST Admin API API
You can now read and write disputes and dispute evidence for Shopify Payments using the REST and GraphQL Admin APIs. The following new objects, mutations, and endpoints are available:
GraphQL Admin API
-
ShopifyPaymentsDisputeEvidence
object -
ShopifyPaymentsDisputeFileUploadUpdateInput
input object -
ShopifyPaymentsDisputeEvidenceFileType
enum -
ShopifyPaymentsDisputeFileUpload
object -
ShopifyPaymentsDisputeEvidenceUpdate
mutation
REST Admin API
POST /admin/api/2022-07/shopify_payments/disputes/{{dispute_id}}/dispute_file_uploads.json
DELETE /admin/api/{version}/shopify_payments/disputes/{{dispute_id}}/dispute_file_uploads/{{dispute_file_upload_id}}
PUT /admin/api/{version}/shopify_payments/disputes/{{dispute_id}}/dispute_evidences.json
For more information, refer to the Dispute resource developer documentation.
July 01, 2022
Locations now support metafields API
Location resources now support metafields. Use metafields APIs to store additional information in metafield values, like store hours, and then reference them in Liquid. Note: this is currently supported in our unstable API version only.
To learn more about metafields, refer to the metafields documentation. To use location metafields in Liquid, refer to the store_availability Liquid reference.
July 01, 2022
New totalQuantity field on the Storefront API Cart object API
As of GraphQL Storefront API version 2022-07, the Cart
object has a new field: totalQuantity
. This field returns an integer representing the total number of items in the cart.
Learn more about the Cart
object on Shopify.dev.
July 01, 2022
New fields amount and compareAtAmount on the Storefront API CartLineEstimatedCost object API
As of GraphQL Storefront API version 2022-07, the CartLineEstimatedCost
object has two new fields: amount
and compareAtAmount
. Both fields return an object of type MoneyV2
. These new fields allow the price of a product variant on a cart to be queried using buyerIdentity
as the context driver.
Learn more about these fields on Shopify.dev.
July 01, 2022
New Online Store URL redirect object for the Storefront API API
As of GraphQL Storefront API version 2022-07, a new urlRedirects
object has been added.
URL redirects can be used to redirect traffic from one web page to another. The new urlRedirects
object can be used to query the path
and target
URLs for URL redirects already set up on a shop.
Learn more about this object on Shopify.dev.
July 01, 2022
New reason and lineItems fields for rejecting fulfillment requests API
As of GraphQL Storefront API version 2022-07, the fulfillmentOrderRejectFulfillmentRequest
mutation has two new optional arguments:
-
reason
: Identify the reason the fulfillment request was declined. It can be used to filter, group, and provide workflows to help merchants solve rejection issues. -
lineItems
: Identify which line items in a fulfillment request are causing the rejection, and provide a detailed message for each one.
Also in this version, the FulfillmentOrderLineItem
object has a new generic warnings
field, which can be used to display rejection issues for the line item.
July 01, 2022
Action required
The behavior of HasMetafields.metafields has changed API
As of Storefront API version 2022-07, we're deprecating the HasMetafields.metafields
paginated connection in the Storefront API. This connection enabled you to paginate over all visible metafields in a given resource.
HasMetafields.metafields
now accepts a list of metafield namespaces and keys, and returns a list of associated metafields that match the given namespaces and keys.
The updated endpoint is available in unstable, and will be part of the 2022-07 release. The existing paginated behaivor is available in 2022-04 and prior supported stable versions.
For more information, refer to the HasMetafields
interface.
July 01, 2022
Enable Standard metafields by namespace and key API
You can now enable standard metafields on a shop using namespace and key with our GraphQL API.
Learn more about standard metafields.
July 01, 2022
Create delegate access tokens through the GraphQL Admin API API
Avoid sharing an access token across systems with the new delegateAccessTokenCreate
mutation. This mutation creates new tokens with a subset of the total permissions of an app.
For app architectures that require authenticated access from multiple subsystems, it's best to avoid sharing the same token across all systems. Instead, create a new token that has access to only the minimal scopes that are required for proper functioning.
July 01, 2022
Braintree is now available as a CustomerPaymentMethodRemoteInput API
As of API version 2022-07, an input field for Braintree has been added to the CustomerPaymentMethodRemoteInput
object, which is used by the customerPaymentMethodRemoteCreate
mutation. This field can be used to help you migrate Braintree subscription contracts to Shopify.
Learn more about migrating existing subscription contracts to Shopify.
July 01, 2022
Fulfillment service SKU sharing API
The fulfillment service SKU sharing feature gives fulfillment service apps the ability to stock and fulfill product variants together with merchant's locations.
Merchants will be able to stock and fulfill the same variant from multiple fulfillment services. This means that they can now have the same product/variant be stocked at their merchant managed locations as well as 3PL services at the same time.
This feature introduces the permits_sku_sharing
parameter when creating or updating a fulfillment service. Setting permits_sku_sharing
to true
allows the merchant to assign fulfillment orders to both the merchant's locations and compatible fulfillment services.
When a fulfillment service app sets permits_sku_sharing
to true
, some of the following behaviour will break. If you set a product variant's fulfillmentService
parameter (REST & GraphQL) to manual
, then it no longer means that the variant is stocked only at a merchant-managed location. Apps that use the fulfillmentService
parameter in this way should instead use the location
parameter on the Fulfillment Order resource to determine which location or fulfillment service fulfills a given product variant.
Learn about multi-managed inventory from merchant's perspective.
Learn more about the building a fulfillment service using the fulfillment orders API.
Learn more about managing fulfillment orders using the REST Admin API and GraphQL Admin API.
July 01, 2022
Action required
New WebHooks and App Events for App Usage Spending Limits and Changes to balanced_used
API
On July 31st 2022 we will be introducing App Usage Spending Limits to provide flexibility for merchants to control the usage charge limit per billing cycle from their Shopify admin. Developers no longer need to set a "one size fits all" app usage capped amount that is difficult to meet a variety of merchants' needs.
Merchants Can Self-Serve Increasing Their Subscription's cappedAmount
As of July 31st 2022 Merchants will be able to increase the cappedAmount
associated with a subscription that has usage pricing. Partners are advised to listen to the app_subscription/update
webhook to stay notified when Merchants update their capped amounts. For instructions on how Merchants will be able to update their cappedAmount
visit the help center
App Usage Webhook Notifications
As of GraphQL Admin API version 2022-07, app developers offering usage-based pricing should subscribe to new webhook updates in advance of the roll out of App Usage Spending Limits. Developers can receive notifications when merchants update their App Spending Limits, which is also the capped_amount
by creating a webhook subscription through the Admin Graphql API to the app_subscriptions/update topic.
Once merchants update their App Spending Limits, developers may need to make updates to their application to allow merchants to incur additional usage charges.
Learn more about Admin Graphql API webhooks here.
Important update about balance_used
endpoint for app usage charges
The balance_used
endpoint in the App Usage Pricing API now shows the running total usage charges for the entire billing cycle. Previously, there was an issue where the usage charge running total, presented on the balance_used
field, resets when a new recurring charge with usage-based pricing is accepted by the merchant. Note that the issue only applied to the value being presented in the balance_used
field and usage charges were not able to exceed the capped_amount
in a cycle.
Going forward, the balance_used
endpoint will always show the total usage charge balance for the billing cycle, which is reflective of what merchants see in the Shopify Admin about their current App Spending Limits.
July 01, 2022
New Cart.discountAllocations
field and change in CartLine.discountAllocations
API
As part of the GraphQL Storefront API 2022-07 API release, we are changing how discountAllocations
on Cart
and CartLine
are returned.
-
Cart.discountAllocations
returns discount allocations that are applied to the entireCart
.
CartLine.discountAllocations
now only returns discount allocations that are applied to the specific CartLine
.
CartLine.total
reflects the line total with only line-level discounts applied, not discounts applied to the entire Cart
.
Learn more about the Cart
object on Shopify.dev.
July 01, 2022
Property deprecations in the Admin API Order and LineItem resource API
The relationship between a ProductVariant and a FulfillmentService was changed in the 2022-07 API version. A ProductVariant
can be stocked by multiple fulfillment services. As a result, we recommended that you no longer use the following fields: ProductVariant.fulfillment_service
(REST)(GraphQL) and LineItem.fulfillment_service
(REST)(GraphQL). Instead, you should use inventory items and inventory levels if you need to find or manage where a product is stocked.
If you need to determine whether a product is a gift card, you should continue to use the ProductVariant.fulfillment_service
field until an alternative is available.
Learn more about managing inventory quantities and states.
Learn more about managing fulfillment orders using the REST Admin API and GraphQL Admin API.
Learn more about the building a fulfillment service using the fulfillment orders API.
The following other line item object properties on the REST Admin API's Order resource are deprecated:
origin_location
destination_location
The following object property on the REST Admin API's Order resource is deprecated:
total_price_usd
These deprecated properties will be removed from unstable. The change will be made official in the 2022-10 REST Admin API version.
For other recent deprecations on the Orders resource refer to this Change Log
July 01, 2022
Property deprecations in the Admin API ProductVariant resource API
The relationship between a ProductVariant and a FulfillmentService was changed in the 2022-07 API version. A ProductVariant
can be stocked by multiple fulfillment services. As a result, we recommended that you no longer use the following fields: ProductVariant.fulfillment_service
(REST)(GraphQL) and LineItem.fulfillment_service
(REST)(GraphQL). Instead, you should use inventory items and inventory levels if you need to find or manage where a product is stocked.
If you need to determine whether a product is a gift card, you should continue to use the ProductVariant.fulfillment_service
field until an alternative is available.
Learn more about managing inventory quantities and states.
Learn more about managing fulfillment orders using the REST Admin API and GraphQL Admin API.
Learn more about the building a fulfillment service using the fulfillment orders API.
Also the field presentment_prices
is being deprecated in REST and GraphQL. For more context refer to this change log.