Developer changelog
Subscribe to the changelog to stay up to date on recent changes to Shopify’s APIs and other developer products, as well as preview upcoming features and beta releases.
RSS updatesThere are no entries for your filter criteria.
July 01, 2024
Action required
shippingLine.discountedPriceSet now includes cart level discounts API
As of version 2024-07 in the GraphQL Admin API, the discountedPriceSet
and discountedPrice
fields of the object ShippingLine
will include cart level discounts applied to an order, including the free shipping discount, when calculating the discounted price.
Previously, you would have had to subtract the discountAllocations
from discountedPriceSet
or discountedPrice
to get an accurate value, but doing so now will subtract the same discount twice.
Learn more about Shipping Lines on Shopify.dev.
July 01, 2024
[Checkout Branding API] Divider style and visibility customizations API
As of version 2024-07 of the Admin API, you can use the checkoutBrandingUpsert
mutation to configure styling and visibility of dividers.
With this change, the dividers below the header, above the footer, between the main and order summary columns, and between sections in the main column can now be customized with visibility, style and width controls.
You can learn more about these customizable dividers in the GraphQL Admin API docs: Global divider style, Footer divided
property, Header divided
property, Order Summary divider
property, Main divider
property, and Content divider
property
July 01, 2024
Added new field trackingSupport
to FulfillmentService
API
As of version 2024-07
of the Admin GraphQL API, you can use the new trackingSupport
field in FulfillmentService
to check whether the fulfillment service implements the /fetch_tracking_numbers
endpoint.
Learn more about FulfillmentService
on Shopify.dev.
July 01, 2024
Added new field createdAt
to FulfillmentEvent
API
As of version 2024-07
of the Admin GraphQL API, you can use the new createdAt
field in FulfillmentEvent
to check the date and time when the fulfillment event was created.
Learn more about FulfillmentEvent
on Shopify.dev.
July 01, 2024
Added new field fulfillmentsCount
to Order
API
As of version 2024-07
of the Admin GraphQL API, you can use the new fulfillmentsCount
field in Order
to count the number of fulfillments including the cancelled fulfillments that belong to an order.
Learn more about Fulfillment
on Shopify.dev.
July 01, 2024
[Checkout Branding API] Deprecation of transparent background API
We're deprecating the TRANSPARENT
value on the CheckoutBrandingBackground
enum of the Admin GraphQL API checkoutBranding
query and checkoutBrandingUpsert
mutation. Use BASE
or SUBDUED
instead.
We will remove this value from the mutation input and the GraphQL API in the subsequent API version (2024-07
). To prepare for the 2024-07
API version release, stop using the TRANSPARENT
value.
July 01, 2024
Action required
Writing Metafield values available on the Customer Account API API
As of the 2024-07 version of the Customer Account API, you will be able to use the metafieldsSet mutation to assign metafield values on Customer, Order, Company, and CompanyLocation resources.
As part of this change, the Customer Account API will need to be granted explicit read or read/write access to metafield definitions in order to have access. This represents a breaking change because as of this version, metafield definitions without access permissions will not be available to the Customer Account API.
The 2024-07 version of the Admin API will allow you to set access controls as part of the metafieldDefinitionCreate and metafieldDefinitionUpdate mutations.
These changes can be tested today on the unstable versions of the Customer Account and Admin APIs.
July 01, 2024
New delivery promise provider API object API
As of GraphQL Admin API version 2024-07
, we're adding the DeliveryPromiseProvider
object, which represents an entity (such as a third-party service) that can provide delivery estimates on behalf of a shop. Currently, this is available only to select approved delivery promise partners.
Each DeliveryPromiseProvider
object is associated with a shop Location
.
A DeliveryPromiseProvider
object can be created or updated using the deliveryPromiseProviderUpsert
mutation, and retrieved using the deliveryPromiseProvider
query.
Learn more about the DeliveryPromiseProvider
object, the deliveryPromiseProviderUpsert
mutation, and the deliveryPromiseProvider
query.
July 01, 2024
New metafield definition types: link
and list.link
API
As of 2024-07, you can use the following metafields to save link related content:
* link
: A link consisting of an anchor text and URL.
* list.link
: A list of link metafields.
Learn more about metafields on Shopify.dev.
July 01, 2024
New validation against duplicate variant IDs in productSet mutation input API
As of the 2024-07 version of the Admin GraphQL API, the id
field in the ProductVariantSetInput will have validation to prevent duplicate values.
This enhancement ensures that there are no collisions when updating variants.
Learn more about productSet on Shopify.dev.
July 01, 2024
Store Credit functionality available on the Admin and Customer API API
As of 2024-07 StoreCreditAccount queries and mutations are available to merchants globally in the GraphQL Admin API. A new transactions
connection has been added to the StoreCreditAccount, displaying the full transaction history of the account.
A customer who is authenticated with new customer accounts will be able to see and spend their store credit at checkout.
It's now possible to view the logged in customers StoreCreditAccount when using the GraphQL Customer Account API.
July 01, 2024
Action required
Product Variant Field Cleanup API
As of GraphQL Admin API version 2024-07, various fields on Product Variants that are duplicates of the linked Inventory Item will be removed from the Product Variant model, input types, and webhooks, as well as restrictions to
GraphQL Fields
In general the fields removed (and their replacement) are:
fulfillmentService
: The fulfillment service is now defined by where the item is stocked, and the fulfillment services that own those locations.harmonizedSystemCode
: This is replaced by theharmonizedSystemCode
field of the inventory item.inventoryManagement
: This is replaced by thetracked
field from the inventory item. Inventory management information is more clearly defined with both thetracked
andfulfillmentService
fields on the inventory item.requiresShipping
: This is replaced by therequiresShipping
field of the inventory item.sku
: This field will continue to be returned on the Product Variant model, but is not directly editable. Rather the field will just proxy thesku
field from the inventory item.weight
andweightUnit
: These fields are replaced by the weight type inInventoryItem.measurement.weight
.
More specifically, these fields are kept or removed:
- From
ProductVariantInput
:fulfillmentServiceId
,harmonizedSystemCode
,inventoryManagement
,requiresShipping
,sku
,weight
, andweightUnit
are all removed. - From
ProductVariantsBulkInput
:fulfillmentServiceId
,harmonizedSystemCode
,requiresShipping
,sku
,weight
, andweightUnit
are all removed. - From
ProductVariantSetInput
:harmonizedSystemCode
,requiresShipping
,weight
, andweightUnit
are all removed.sku
is kept. - From
ProductVariant
return type:fulfillmentService
,harmonizedSystemCode
,inventoryManagement
,requiresShipping
,weight
, andweightUnit
are all removed.sku
is kept.
Metafields
As part of this work, you'll no longer be able to set the harmonized_system_code
metafield under the global
namespace for Product Variants. This was an alternative way of updating the harmonized_system_code
of a variant, but since variants are no longer going to have the harmonized_system_code
field, the metafield is being removed.
Webhooks
The Product Variant webhooks are also seeing some fields removed, namely:
fulfillment_service
inventory_management
grams
weight
weight_unit
requires_shipping
July 01, 2024
New Subscription BillingCycles mutations API
As of admin API 2024-07, we will have new mutations and queries: * mutation subscriptionBillingCycleBulkCharge * mutation subscriptionBillingCycleBulkSearch * query subscriptionBillingCycleBulkResults * mutation subscriptionBillingCycleCharge
Learn more about those on * Shopify.dev - Manage billing cycle contract - Create an order. * Shopify.dev - Manage billing cycles in bulk
July 01, 2024
New metafield jsonValue
field
API
As of API version 2024-07
, the Metafield
and MetaobjectField
objects now have a jsonValue
field returning the stored value as a JSON
scalar. This is particularly helpful for metafield values that are stored as JSON
strings to avoid having to parse client-side. This field is set for all metafield types and is also available in all Function APIs. It can be used in Function input queries to improve function performance and reduce the instructions needed to parse JSON metafield values, which are commonly used for function configuration.
July 01, 2024
New field on CheckoutProfile: typOspPagesActive API
As of GraphQL Admin API version 2024-07, you can query the field typOspPagesActive. This field returns the status of the Thank You Page (TYP) and Order Status Page (OSP) on a CheckoutProfile, providing insight as to whether or not these pages have adopted extensibility or not.
When true, both Thank You Page and Order Status Page are using extensibility, and will render the appropriate UI extensions, while also making use of pixels, and functions. When false, the pages still use additional scripts and other deprecated features.
Learn more about CheckoutProfiles on Shopify.dev.
July 01, 2024
Action required
Removal of Customer search filters on Admin API API
As of GraphQL Admin API version 2024-07, the following Customer filters in the search syntax have been deprecated: total_spent
, orders_count
, accepts_marketing
, customer_date
, last_abandoned_order_date
, order_date
, tag
, tag_not
, city
, province
, state
, territory_code
, country
, company
, email_marketing_state
, sms_marketing_state
. Filtering customers by these attributes is available when querying customers using segments.
Learn more about customer segmentation on Shopify.dev.
June 30, 2024
Storefront API Cart discountAllocations
field now includes delivery discounts
API
As part of the 2024-07 release, delivery-related discounts into the Storefront API's Cart discountAllocations
field and a new targetType
field have been added to differentiate the type of discount. The merchandise and delivery discounts are reflected in the totalAmount
of the Cart.
Learn more about the Cart
object on Shopify.dev.
June 28, 2024
Compare-and-swap (CAS) for the Metafields API API
As of GraphQL Admin and Customer Account APIs version 2024-07
, you can now set metafields using compare-and-swap (CAS) through the new compareDigest
field for the metafieldsSet
mutation.
Using CAS will add support to properly handle concurrency requests.
June 25, 2024
Storefront API Cart now supports one-time use delivery addresses API
As of version 2024-07 of the GraphQL Storefront API, Cart supports one-time use delivery addresses with the new oneTimeUse property of the DeliveryAddressInput. Use this new property to pass an address that should not be saved to the account of the customer after checkout. A typical use case is when a store specializes in gifting scenarios.
API Reference - DeliveryAddressInput
June 24, 2024
Webhook subscriptions now support filters API
As of 2024-07, when creating, updating or querying a webhook subscription you can now include a filter parameter. This parameter, which is specified using Shopify Search Syntax, allows you to specify conditions as to when webhooks should be emitted for a subscription.
Learn more about webhook filters on Shopify.dev.
June 24, 2024
Webhook subscriptions subTopic has been removed API
As of 2024-07, the subTopic argument has been removed for creating webhook subscriptions. For creating subscriptions that previously required a subTopic the filter argument should be used instead.
Learn more about webhook filters on Shopify.dev.
June 23, 2024
More data in web pixels API
We've added more data fields to Web pixels so that you can capture richer data and improve the performance of your integrations.
Standard API -> init -> shop object including: * Country code * myShopify url * Payment settings
Standard Events -> checkout object including: * Discount amounts * Email marketing consent * Final line item price * Line item properties * Line item selling plan * Localization * Payment method * Selected delivery options * SMS marketing consent
June 21, 2024
Easily find all of Shopify's webhook topics, and their sample payloads, in new Webhooks reference docs Tools
Shopify webhoks are first-class citizens with our APIs, and we now finally have a reference experience too! Now, all of Shopify's webhook topics are discoverable in a single-source-of-truth place. The reference docs include sample payloads, which topics are available for subscription based on the method you use, and key information like required access or approval scopes.
June 21, 2024
Subscribe to webhook topics using the app configuration file Tools
Webhooks are now managed by Shopify! Configure app-specific subscriptions as opposed to per shop. Using Shopify CLI v3.63.0 or later, add, modify and deploy app-specific subscriptions in your app configuration file (shopify.app.toml
), then view the latest version in your Partners dashboard.
To get started, use the new tutorial for Shopify webhook subscriptions.
June 21, 2024
Action required
Cart token in Ajax API response now includes key param API
The token
value in the JSON of the cart response now includes a key param as of 2024-06-21. This response is returned when the cart is manipulated or queried using Shopify's Ajax API for Cart.
Example Format: ** * Before: token:c1-7a2abe82733a34e84aa472d57fb5c3c1 * After: token:c1-7a2abe82733a34e84aa472d57fb5c3c1?key=824bdj25mhg1242bdb385**
*Action Required: * Ensure that your code is free from hard-coded assumptions (e.g. Using regex to identify a cart token) about the format and structure of the cart JSON response. If this value is stored as a key in an external database, ensure this change does not break the existing functionality. If storage of the cart token is required, we recommend using the complete value including the key param.
June 21, 2024
Create extensions for the pre-authenticated Order Status Page Shopify App Store
Build extensions on the pre-authenticated Order Status Page as a part of the Customer Account Extensibility Developer Preview to create a consistent experience for customers, regardless of their login or authentication state.
Customer account extensibility, currently available in developer preview, enables partners to add unique and powerful customizations by building extensions directly into new customer accounts.
Learn more about the pre-authenticated Order Status Page in our developer documentation.
June 21, 2024
Preview and configure customer account UI extensions in the Checkout and Accounts Editor Shopify App Store
As a part of the Customer Account Extensibility Developer Preview, you can now add, remove, preview, and reposition customer account UI extensions in new customer account pages, to better understand how merchants configure apps in the checkout and accounts editor.
Included in this update, you can also:
- Group extensions into collections: Extension collections guide merchants on which extensions work well together by creating collections that help merchants confidently enable your recommended customer experience.
- Set default placements: Default placements automatically add an extension to a specified UI block.
Customer account extensibility, currently available in developer preview, enables partners to add unique and powerful customizations by building extensions directly into new customer accounts.
Get started by reading our developer documentation.
June 21, 2024
Write data to metafields with the Customer Account API API
Store and access customer information by writing data to metafields with the Customer Account API, and build experiences for merchants that enable logged-in customers to update information about themselves.
Custom customer data previously stored exclusively outside of Shopify can now be accessed and added directly to the customer record via using the Customer Account API. With the 2024-07 release of the Customer Account API, use the metafieldsSet mutation to assign metafield values on Customer, Order, Company, and CompanyLocation resources.
Learn more about writing data to metafields with the Customer Account API by reading our developer documentation.
June 21, 2024
Shopify Functions log streaming and replay is available in beta Tools
As of Shopify CLI 3.63, log streaming and replay for Shopify Functions is available in beta.
Log streaming for Shopify Functions enables faster development, testing, and debugging of functions by bringing function execution logs to Shopify CLI. You can also replay function executions locally using input from these logs.
Learn more about enabling and using log streaming on Shopify.dev.
June 21, 2024
Integrate with Shopify Flow by creating a workflow template app extension Tools
You can now contribute your own templates to Flow’s template library using the Shopify CLI. Templates show merchants how to automate something in their store and typically accelerate adoption of new tasks.
Once you have a workflow to share as a template, you can use the Shopify CLI to generate a new template app extension, configure all of its metadata including localizations, preview the extension, and deploy it. Once approved by the Flow team, it will appear in Flow’s template library.
View the Create a workflow template documentation to learn more about the process of creating and deploying template app extensions.
June 21, 2024
Revised the App Design Guidelines (Summer 2024) Shopify App Store
We've introduced the following changes to improve and update the App Design Guidelines:
- FullscreenBar usage within a max modal is now a "Do Not". The FullscreenBar section of the App Design Guidelines has been removed as it is no longer supported.
- Proper grammar is now included as a "Must Do".
- Using the App Bridge Contextual Save Bar API (where applicable) is now a "Must Do".
- Added a new section to the App Design Guidelines that includes specific requirements for subscription apps.
June 20, 2024
Introducing easier app billing with managed pricing Shopify App Store
Managed pricing makes it easier to set up app pricing plans through your Partner Dashboard. Define recurring monthly/annual and free plans in your app listing page, then embed the URL in your app. Shopify handles creating and hosting your plan selection page, and automates most common billing tasks, such as recurring charges, free trials, proration, test charges, and price updates.
Managed pricing also allows you to easily issue app discounts and trial extensions through the Partner Dashboard. Merchants get an automated confirmation email when discounts and trial extensions are applied to their accounts.
Learn more about getting started with managed pricing.
June 20, 2024
Add seamless printing to your app with admin print action extensions Platform
Developers can now add admin print actions to their apps. These extensions let your apps create seamless workflows for printing documents - such as packing slips, invoices, and product information - direcly from the Order and Product pages in the Shopify admin.
Get started today by learning how to develop and deploy a print extension!
June 20, 2024
Real-time Metrics for Shopify App Store Ads Shopify App Store
Shopify App Store Ads’ metrics now update in real-time. Partners will get immediate feedback when they refresh their ad report on their ads’ performance as auctions, impressions, clicks, and installs are happening live. To learn more about these metrics visit Shopify.dev.
June 18, 2024
GraphQL Admin API: new APIs for Menus are now available in 2024-07 API
As of version 2024-07 of the GraphQL Admin API, you can now read and modify Menus.
June 18, 2024
Structured app category details now available for 30 more categories Shopify App Store
Structured app category details are now available for 30 more categories. You can fill out the fields from your app listing pages. This new information will help us match your apps to the right merchants more accurately, optimize ads bidding, and improve the overall discovery.
The 30 categories that now supports structured app category details are:
- Abandoned cart
- Ads
- Affiliate programs
- Analytics
- Badges and icons
- Banners
- Bulk editor
- Cart customization
- Chat
- Cookie consent
- Currency and translation
- Digital products
- Image editor
- Invoices and receipts
- Inventory sync
- Marketplaces
- Order tracking
- Payments
- Print on demand (POD)
- Product feeds
- Product variants
- Retail
- Search and filters
- Shipping
- Shipping rates
- SMS marketing
- Social proof
- Store data importer
- Upsell and cross-sell
- Workflow automation
For more information, please refer to our dev documentation.
June 18, 2024
JSON is better on Liquid themes now Themes
Writing JSON for Liquid themes is already easy with intelligent code completion and inline documentation, but now it's also easier to refactor as we move objects in your schema tags and your settings_schema.json
files with support for trailing commas and comments.
Note: Apps that parse JSON definitions from themes can still use pure JSON, but they should introduce support for reading (parsing) comments and trailing commas to handle eventual changes made directly on theme files.
Learn more about the JSON editing experience and JSON with comments at Shopify.dev - VS Code extension and Shopify.dev - Theme architecture. Happy coding!
June 17, 2024
Merchant Plan-Based Targeting Now Available for Built for Shopify Apps for Shopify App Store Ads Shopify App Store
Partners with apps that qualify for Built with Shopify status are now able to target their search ads on the Shopify App Store to specific merchant plans.
Learn more at Shopify.dev.
June 17, 2024
Action required
OptionValue in Storefront API API
A new type called ProductOptionValue
has been added to the new storefront API and is nested as a new field optionValues
on the ProductOption
type.
As of 2024-07, you can use the optionValues
field to fetch the option values associated with an option. This field deprecates the existing values
and provides richer option value information including swatches.
June 17, 2024
Action required
OrderDisplayFulfillmentStatus
now returns REQUEST_DECLINED
when appropriate
API
As of 2024-10
, OrderDisplayFulfillmentStatus will now return REQUEST_DECLINED
for an order that has had its fulfillment request rejected by a third-party Fulfillment Service. Previously, orders in this state would return an UNFULFILLED
status.
June 15, 2024
Add a new error code for handling missing payment method for subscription draft commits API
As of 2024-07, you will receive a detailed error message when missing payment information for subscriptionDraftCommit mutation.
June 14, 2024
draftOrderLineItemInput now accepts bundleComponents and the CartTransform function runs on all draft orders API
As of version 2024-07 of the GraphQL Admin API, draftOrderLineItemInput now accepts bundleComponents. Apps can view a bundle item's components on a draft using the bundleComponents field and can add a bundle item to a draft order by including this field in the draftOrderLineItemInput.
Additionally, the CartTransform function will automatically run on all draft orders.
Learn more about bundleComponents on shopify.dev.
June 14, 2024
Action required
Category on ProductInput API
In 2024-04 we released a new Taxonomy API for products. This included introducing a new TaxonomyCategory type and updating the product type to return a new category field.
As of 2024-07 the ProductInput type will also accept a category field that accepts the GID of a category.
We've also deprecated shop.allProductCategories
in favor of shop.allProductCategoriesList
June 13, 2024
Action required
UI Extensions - Support for split shipping in Shipping method option list and item targets API
Breaking change: UI Extensions on version 2024-07
can use new API capabilities to integrate with split shipping capabilities.
Split shipping in checkout allows buyers to select different shipping options for items arriving in multiple shipments. In split shipping scenarios, Checkout will include UI changes to offer more transparency and options for buyers in the shipping section, while making the selection process easy with split shipping options (“Lowest price”, “Fastest” or “Custom”).
API updates
As of 2024-07
, purchase.checkout.shipping-option-list.render-before
and purchase.checkout.shipping-option-list.render-after
will receive a new DeliveryGroupList
target representing the list of delivery groups for One Time Purchase or Subscription delivery groups. These targets continue to be duplicated for the possible types of delivery groups. We’re also introducing deliverySelectionGroups
which represents the list of predefined choices for the “Lowest price”, “Fastest” or “Custom” shipping options that are presented to the buyer. You can view these changes on the ShippingOptionListApi.
Note that useDeliveryGroupTarget() is deprecated in favor of useDeliveryGroupListTarget(). Extensions on 2024-01
and 2024-04
are compatible with split shipping but will only receive the first delivery group of each type (One Time Purchase or Subscription).
UI extension target updates
purchase.checkout.shipping-option-item.render-after
and purchase.checkout.shipping-option-item.details.render
targets can now be rendered in different contexts: inline as part of the split shipping options, or in an overlay for the “More shipping options” modal.
As a result:
- ShippingOptionItemApi has been updated to include a
renderMode
indicating in which context the target is rendered. - Only
purchase.checkout.shipping-option-item.render-after
can be rendered in both contexts. purchase.checkout.shipping-option-item.details.render
will also be duplicated for the selected shipping option of each delivery group.
If your extension is capturing buyer inputs at Checkout (for example using an app metafield), you will need to update your logic to account that this information should be scoped to a specific delivery group, instead of the entire order.
You can learn more about the new placement of targets and see examples.
These changes can be previewed today on the unstable
api version and will be available on the stable branch with version 2024-07
.
Learn more about these api changes on shopify.dev
June 13, 2024
We have refreshed app taxonomy for better discoverability Shopify App Store
We have refreshed our app taxonomy for better app discoverability. Designed to streamline categories and reduce complexity, this update will help merchants more easily find the best apps for their needs.
We encourage you to:
- Review the new taxonomy: See new categories and how it affects your app’s placement. All apps will continue to be discoverable and we’ll do our best to choose a suitable alternative for those impacted.
- Update your app’s category: Select the most suitable category for your app from your partner dashboard. All apps can make a one-time category change. Any subsequent changes will require an appeal.
- Impact on ads: Your category ads campaigns may be impacted if they are in these categories. You may need to relaunch your campaign.
June 13, 2024
GraphQL Admin API: RefundLineItem.id
field added
API
As of 2024-07
, you can use the RefundLineItem.id
to return the id of specified RefundLineItem
object.
Learn more about working with RefundLineItem
on Shopify.dev.
June 13, 2024
Preserve line properties in CartLinesUpdate mutation API
The CartLinesUpdate mutation behavior has been updated to preserve existing line properties when the attributes parameter is either omitted or explicitly set to null.
Previously, omitting the attributes parameter would reset the line properties. Passing an empty hash { }
to reset line properties is an existing capability and remains unchanged.
June 13, 2024
Updated default sort order for discount queries API
As of 2023-04, the default sort key for discountNodes
, codeDiscountNodes
, and automaticDiscountNodes
queries has changed to ID
. Previously the default sort key was CREATED_AT
. This change improves performance.
June 11, 2024
Action required
Deprecation of buyerIdentityInput.walletPreferences
in favour of buyerIdentityInput.preferences.wallet
API
As of 2024-07
, we're deprecating buyerIdentityInput.walletPreferences
. Use buyerIdentityInput.preferences.wallet
instead.
Learn more about these changes on Shopify.dev.
June 10, 2024
Automatic Discount Functions now apply to B2B checkouts for review API
Discount Functions are now compatible with B2B companies that are required to submit orders as drafts for review.
Previously, Discount Functions weren’t applicable when B2B buyers submitted orders as drafts for review. This restriction has now been lifted, and buyers will have discounts applied at checkout.