> Note: > We're no longer publishing API release notes. Instead, you can find the latest updates on Shopify APIs in our [developer changelog](https://shopify.dev/changelog). You can filter updates by area. For example, you can filter API updates by the API name and version, such as GraphQL Admin API changes in version 2025-04.
Release date | Date version is no longer supported |
---|---|
October 1, 2023 | October 1, 2024 |
As of API version 2023-10, we've added the METAOBJECT_DEFINITION_CHANGED
error code to the MetafieldDefinitionUpdateUserErrorCode
enum. This new error code is returned if you attempt to update a metaobject_reference
metafield definition so that it references a different metaobject definition. Previously, this action would result in an INTERNAL_SERVER_ERROR
.
Learn more about METAOBJECT_DEFINITION_CHANGED
.
As of API version 2023-10, we've added the following fields to the FulfillmentOrder
object:
- orderId
- orderName
- orderProcessedAt
- channelId
With this change, the order information that's required to fulfill an order is accessible on the fulfillmentOrder
object with any of the fulfillment_orders
access scopes. The same data is available using fulfillmentOrder.order
, but this requires the read_orders
access scope.
Learn more about FulfillmentOrder
.
As of the API version 2023-10, you can use the DeliveryMethod
object to get the value of the serviceCode
chosen for the related FulfillmentOrder
. The DeliveryMethod
object is now accessible through any of the fulfillment order scopes.
Learn more about DeliveryMethod
.
As of API version 2023-10, you can customize the primary market in three new ways:
You can now offer automatic free shipping discounts using the discountAutomaticFreeshippingUpdate
and discountAutomaticFreeshippingCreate
mutations.
As of API version 2023-10, a new webhook topic PUBLICATIONS_DELETE
is added. This webhook fires whenever a publication is deleted and requires the read_publications
scope.
As of API version 2023-10, you can query the CustomerAccountsV2
field on the Shop
object to get information about the shop's customer accounts settings. CustomerAccountsV2
enables you to adapt your app's behaviour to a merchant's customer accounts settings.
Learn more about CustomerAccountsV2
.
As of API version 2023-10, the following Customer
fields have been deprecated:
- averageOrderAmount
- averageOrderAmountV2
.
Learn more about the Customer
object.
As of API version 2023-10, the url
field is available on the MediaImage
object's originalSource
field.
This will be a signed URL that's valid only for a short period of time. The URL provides access to the uncompressed image that was originally uploaded.
As of API version 2023-10, you can use the Fulfillment Constraints API for a higher degree of customization when you defined fulfillment and delivery strategies. With this API, checkout won’t return any shipping rates if the configured constraints can’t be met.
For example, you can specify that certain products must be fulfilled from a specific location, based on buyer information, cart information, or metafields.
Learn more about Fulfillment constraints.
As of API version 2023-10, apps can change the name and address of their fulfillment service locations using the LocationEdit
mutation.
When a fulfillment service is created, Shopify also creates a new location and associates this with the new fulfillment service. The location inherits its name from the fulfillment service.
Apps can now update the name and address of this location. For example, when a fulfillment service is created, it inherits the country of the shop. If the fulfillment service is located in a different country from the shop, then apps can update the location to accurately reflect the fulfillment service's address.
The LocationEdit
mutation will return a new user error with the CANNOT_MODIFY_ONLINE_ORDER_FULFILLMENT_FOR_FS_LOCATION
code when you try to update the fulfillsOnlineOrders
field for a fulfillment service location. This field can only be modified on manual locations. Fulfillment service locations are always enabled to fulfill online orders.
In API version 2023-10, attempting to edit the location belonging to a fulfillment service without having the write_fulfillments
access scope returns the following access denied error:
Access denied for locationEdit field. Required access:
write_fulfillments
access scope is required to edit the location associated with a fulfillment service.
Earlier API versions returned a user error with the NOT_FOUND
code.
As of GraphQL Admin API version 2023-10, we're deprecating the "skuResourceLimits" field from the ShopResourceLimits
query object. We're no longer enforcing a limit of SKUs at a shop level. Instead, please use "maxProductVariants" to determine the limit of variants at a product level.
Learn more about ShopResourceLimits
.
As of API version 2023-10, we're changing the input field type of MetafieldDefinitionUpdateInput.access
from MetafieldAccessInput
to MetafieldAccessUpdateInput
. This change is part of a broader API change to introduce support for explicit access grants.
As of API version 2023-10, the GraphQL Admin and Storefront APIs have made the namespace field optional when creating, updating, or querying metafields and metafield definitions. We've updated all relevant mutations and queries to accommodate this change.
Learn more about the GraphQL Admin API and Storefront API documentation for Metafields.
As of API version 2023-10, the metafield(id)
query is no longer supported. Metafields should be queried using the HasMetafields
connection of metafield owners. If necessary, metafields can be queried by ID using the Node
interface.
As of API version 2023-10, we're introducing new metaobject capabilities to enable SEO attributes and make entries renderable in the online store. These capabilities make it possible to render landing pages from metaobject entries.
Both capabilities can be enabled and configured independently when creating and updating a metaobject definition.
As of API version 2023-10, you can have multiple domains on the primary market. The following changes have been introduced to the Markets API:
Market.webPresences
connection has been addedMarket.webPresence
field will return the primary domain web presence for a primary market with multiple web presencesmarketWebPresenceCreate
mutation will now allow adding additional web presences to the primary marketmarketId
argument has been removed from the marketWebPresenceUpdate
and marketWebPresenceDelete
mutations. The new required webPresenceId
argument should be used insteadAs of 2023-10, we have added STAFF
to the OrderCancelReason
GraphQL type to serve as a reason for canceling orders due to staff errors.
As of 2023-10, we've added a new field cancellation
to Order
graphQL object. This field can provide additional details about the order cancellation, such as staff provided notes on why the order was cancelled. This data is currently available for some orders cancelled on Point of Sale app.
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.
As of version 2023-10 of the GrapqhQL Admin API, we've added the compareAtPriceRange
field to Product
which will return the minimum and maximum compare-at prices across a product's variants.
As of the 2023-10
version of the Admin GraphQL API, you can view the quantityPriceBreaks
for a product variant on priceListPrice
and productVariantContextualPricing
. Additionally, you will be able to use the quantityPricingByVariantUpdate
mutation to manage quantity price breaks, quantity rules, and fixed prices for multiple variants.
As of October 2023, the App Revenue Attribution API has been removed.
appRevenueAttributionRecordCreate
and appRevenueAttributionRecordDelete
are no longer supported in this and future API versions.
This change removes tracking for external app revenue attributions that occur outside of the Billing API. Partners can now use Google Analytics to track Shopify App Store Ads installs - which can be linked to external app revenue to calculate ad related return on ad spend and other ads related metrics.
As of 2023-10
, we're removing the deprecated Shop.shopifyPaymentsAccount
field. Use the shopifyPaymentsAccount query instead.
As of the latest unstable
version and upcoming 2023-10
version of the Admin GraphQL API, you can use the shopifyProtect
field of Order
to view the protection status of Shop Pay orders. The protection status is established asynchronously from the orders/create
webhook so you can also listen to the orders/shopify_protect_eligibility_changed
webhook to know when the protection status is created or updated.
By providing a clear view of an order’s protection status, we're empowering developers to make more informed decisions. For instance, fraud protection apps can avoid redundant costs for merchants when a Shop Pay order is already protected.
Learn more about Shopify Protect’s protection status on Shopify.dev.
The SubscriptionBillingAttemptCreate
mutation now limits the creation of billing attempts based on the fraud analysis result on the subscription contract’s origin order.
As of API version 2023-10, we've added the CONTRACT_UNDER_REVIEW
error code to the BillingAttemptUserErrorCode
enum. This new error code is returned in the case where Billing Attempt creation is prevented. In previous API versions, this action will return the INVALID
error code.
Learn more about subscription contracts and billing attempts.
As of API version 2023-10, the GraphQL Admin and Storefront APIs have made the namespace field optional when creating, updating, or querying metafields and metafield definitions. We've updated all relevant mutations and queries to accommodate this change. When an app interacts with metafields, the default namespace is the app-reserved namespace.
This update does not affect API calls that explicitly specify a namespace. However, it simplifies the process of interacting with namespaces by removing the need to provide a namespace field when the default is suitable. As a result, Apps can now create and query Metafields without the requirement of specifying a namespace.
Learn more in the Admin API and Storefront API documentation for Metafields.
As of API version 2023-10, we're introducing new metaobject capabilities to enable SEO attributes and make entries renderable in the online store. These capabilities make it possible to render landing pages from metaobject entries.
The renderable capability enables setting SEO metadata attributes on your metaobjects. These attributes are accessible in Liquid and via the Storefront API.
The Online Store capability makes your metaobjects render as web pages in the Online Store by assigning a theme template and defining a URL.
Both capabilities can be enabled and configured independently when creating and updating a metaobject definition.
Learn more about the renderable
and onlineStore
capabilities on Shopify.dev
As of 2023-10, we have added STAFF
to the OrderCancelReason
GraphQL type to serve as a reason for canceling orders due to staff errors.
Learn more about OrderCancelReason
on Shopify.dev.
As of API version 2023-10, the UsageCharge
resource's billing_on
property is deprecated.
Learn more about the UsageCharge
resource.
As of API version 2023-10, we've added STAFF
to the OrderCancelReason
GraphQL type to serve as a reason for canceling orders due to staff errors.
Learn more about OrderCancelReason
.