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.
October 04, 2024
Add accountOpenerName
to shopifyPaymentsAccount
API
As of GraphQL Admin API version 2025-01, the accountOpenerName
field will be added to shopifyPaymentsAccount
October 01, 2024
Shopify Payments Balance Transaction GraphQL type supports advance and advance funding type API
As of GraphQL Admin API version 2024-10, ShopifyPaymentsTransactionType now includes ADVANCE
and ADVANCE_FUNDING
type.
Learn more about ShopifyPaymentsTransactionType
on Shopify.dev.
October 01, 2024
Exposing Business Entity fields on Admin API API
As of GraphQL Admin API version 2024-10, Business Entity attributes will be available for use as a GraphQL object and across relevant types.
You will now be able to query for properties related to the Business Entities that are enabled on your shop and request for these fields on objects that can be associated to a Business Entity.
Business Entity identifiers will also be available on the Order REST Admin API version 2024-10 as well as on webhook payloads.
October 01, 2024
Shopify Payments GraphQL Admin API supports querying a list of disputes API
As of GraphQL Admin API version 2024-10, querying for all disputes for a given shop will be available for use as a GraphQL connection.
Learn more about ShopifyPaymentsDispute
on Shopify.dev
October 01, 2024
Added variant_strategy
for productOptionsCreate
API
In the version 2024-10 release of the Admin GraphQL API, the productOptionsCreate
mutation will include a variantStrategy
parameter, enhancing control over variant management when adding new product options. This new parameter allows for two strategies:
LEAVE_AS_IS
: Maintains existing variants, updating them to include new option values without creating new variants as necessary.CREATE
: Generates new variants for all possible combinations of option values. This enhancement allows for more precise control over product variant configuration and inventory management.
For more detailed information and examples, visit our productOptionsCreate documentation on Shopify.dev.
October 01, 2024
New CollectionsCount
query in the GraphQL Admin API
API
As of 2024-10
version, we are adding CollectionsCount
query to the Admin GraphQL API.
Learn more about CollectionsCount on Shopify.dev.
October 01, 2024
Action required
Starting April 2025, new public apps submitted to Shopify app store must use GraphQL Tools
GraphQL is now the primary API to interact with the Shopify admin. REST Admin API will be marked as legacy, and new feature development and improvements will be focused on GraphQL.
April 1 2025: All new apps will default to GraphQL
- Organizations created after this date will only be permitted to use GraphQL for their custom apps
- All new public apps submitted to the App Store after this date must only use GraphQL
Migration timelines for existing apps (outside of the required migration to the new GraphQL product APIs that have already been announced), will be announced in 2025. We will make sure ample time is provided for a smooth transition.
Learn more about Shopify’s API strategy and direction into GraphQL.
October 01, 2024
ShopifyPaymentsBankAccount GraphQL Admin API unused fields removed API
As of GraphQL Admin API version 2025-01, we're cleaning up the shopifyPaymentsBankAccount
endpoint and removing several unused fields.
October 01, 2024
Storefront API support for Combined Listings API
Merchants using the Storefront API can now offer Combined Listings with Shopify. The Shopify Combined Listings app is available to merchants on Plus plans, helping merchants better merchandise products that come in multiple variations such as colors, materials or lengths, all from the same product listing.
Learn more about the Shopify Combined Listings app in the Shopify Help Center.
October 01, 2024
Added new field recurring_cycle_limit
and applies_on_subscription
to DiscountAutomaticApp and DiscountAutomaticAppInput
API
As of 2024-10
, you can use the recurring_cycle_limit
and applies_on_subscription
field on the DiscountAutomaticApp object type so that subscriptions can use function based discounts for a specified number of occurrences
Learn more about DiscountAutomaticApp
on Shopify.dev.
October 01, 2024
New has_variants_that_requires_components
field on Product Webhooks
API
As of 2024-10, the product create and update webhook payloads contain information indicating if the product has a variant that is a product bundle.
The new boolean field, has_variants_that_requires_components
, mirrors what is already available on the Product GraphQL response.
To receive has_variants_that_requires_components
in the webhook payload, specify 2024-10 or greater as the webhook API version in your App Partner Dashboard.
Learn more about Product Bundles.
October 01, 2024
New field and queries for the StaffMember
object in the GraphQL Admin API
API
The 2024-10
version of the GraphQL Admin API brings improvements to the StaffMember
object:
- New
accountType
field. - You can retrieve the staff member making the API request with the
currentStaffMember
query. - You can list all staff members with the
staffMembers
connection query. Shop.staffMembers
was deprecated in favor of thestaffMembers
query.
This allows apps using the User
REST Admin API resource to migrate to GraphQL's StaffMember
object.
October 01, 2024
Action required
Removal fulfillment service shipping method API
As of 2024-10, you can no longer use the deprecated shippingMethods
field on the fulfillmentService
query or include it as an argument in the fulfillmentOrderSubmitFulfillmentRequest mutation
.
The shipping method associated with the fulfillment service provider applied only to Fulfill By Amazon fulfillment service. The Fulfillment by Amazon feature is not supported as of March 30, 2023. To continue using Amazon fulfillment, merchants need to set up a Multi-Channel Fulfillment solution recommended by Amazon.
To learn more see https://help.shopify.com/manual/shipping/fulfillment-services/amazon#activate-fulfillment-by-amazon
October 01, 2024
New mutation to create an order API
As of GraphQL Admin API 2024-10 version, you can make use of a new mutation to create an order.
Learn more about orderCreate
on Shopify.dev.
October 01, 2024
POS UI Extensions 2024-10 Update API
As of October 1, we added the following updates to POS UI Extensions:
- Added support for iOS debugging with the Safari dev tools.
- Added support for the
pos.product-details.block.render
target. - Added support for the
pos.purchase.post.block.render
target. - Added support for the
pos.order-details.block.render
target. - Added support for the
pos.customer-details.block.render
target. - Introduced a
POSBlock
component. It's the required parent component for block extension targets. - Introduced a
POSBlockRow
component. It's the required child component forPOSBlock
, and can be used to wrap other components. - Deprecated the
ActionItem
component. Please use theButton
component instead. - Added support for windowed modals.
All of the changes are available for POS UI extensions version 2024-10 and POS app version 9.19.0. See the version log for all version details.
October 01, 2024
Action required
Fulfillment Constraints can now be associated with one or multiple delivery methods API
You can now associate a Fulfillment Constraint function with one or multiple delivery method types. The function will only run within the context of those specific delivery methods.
As of Admin GraphQL API version 2024-10
and unstable
, you can
- Use the FulfillmentConstraintRuleCreate mutation to register your new Fulfillment Constraint function and associate it with one or multiple delivery methods. A new required input field
delivery_method_types
will be added. - Use the FulfillmentConstraintRuleUpdate mutation to update delivery method(s) for an existing registered function.
Existing fulfillment constraint functions will continue to run for SHIPPING
, LOCAL
and PICKUP_POINT
.
October 01, 2024
Fulfillment Constraints now support Local Pickup API
As of Admin GraphQL API version 2024-10
and unstable
, you can setup your Fulfillment Constraint function to run for Local Pickup delivery method.
Use the FulfillmentConstraintRuleCreate mutation to register your new Fulfillment Constraint function with the PICK_UP
delivery method.
Or, use the FulfillmentConstraintRuleUpdate mutation to update your existing registered function to include PICK_UP
.
October 01, 2024
Admin API update on fulfillmentOrder.destination
and FulfillmentOrderDestination
object
API
Breaking Changes
As of the Admin API version 2024-10 and unstable release, fulfillmentOrder.destination
will return a FulfillmentOrderDestination
object instead of null
for fulfillment orders lacking an associated shipping address. In such cases, the address related fields within the FulfillmentOrderDestination
object will be set to null.
Non Breaking Changes
As of GQL Admin API version 2024-10 and unstable release, you can use new field fulfillmentOrder.destination.location
to retrieve the pickup location for the fulfillment order.
You can learn more about fulfillmentOrder.destination
here and fulfillmentOrderDestination
here
October 01, 2024
New CompanyLocationStaffMemberAssignments API endpoints for managing staff member assignments on a Company Location API
As of 2024-10, we've added a CompanyLocationStaffMemberAssignment
to the CompanyLocation
object for viewing the staff members assigned to the company location.
You can assign and remove staff members for a company location using the CompanyLocationAssignStaffMembers
and CompanyLocationRemoveStaffMembers
mutations.
October 01, 2024
Action required
Removal of the priceRule
resource from GraphQL Admin API
API
As of 2024-10
, the priceRule
resource is being removed. The queries and mutations have been deprecated since 2023-03
.
The discount resource can be used to achieve the same operations.
October 01, 2024
Action required
Breaking changes to returns API: Deprecate reverseDeliveryDispose
mutation
API
As of GraphQL Admin API version 2024-10, the reverseDeliveryDispose
mutation will be deprecated. Use the reverseFulfillmentOrderDispose
mutation instead.
Learn more about managing reverse fulfillment orders on Shopify.dev.
October 01, 2024
Notify customers when their return requests are approved or declined API
As of the 2024-10 API version, you can notify customers that their return request was approved or declined.
You can submit a notifyCustomer
argument when approving a return request using the returnApproveRequest
mutation.
You can also submit a notifyCustomer
argument when declining a return request using the returnDeclineRequest
mutation. To include a custom message to the buyer in the email notification, use the declineNote
argument.
When notifyCustomer
is true
, an email notification is sent to the Order.email
. If this field is null, the notification is not sent.
October 01, 2024
Action required
Exposing the order adjustments connection on a Refund API
As of the 2024-10 Admin GraphQL API, you can use the Refund.orderAdjustments
connection to query for the difference between calculated and actual refund amounts. The REFUNDS_CREATE
webhook topic will include order adjustments too. As of 2024-10, the webhook payload for REFUNDS_CREATE
will not include the kind
field.
Please note that the OrderAdjustment.kind
field is now deprecated in the Admin GraphQL API. It is also deprecated in the legacy refund.order_adjustments
resource in the Admin REST API.
For this reason, refunded shipping costs will not be included in the Refund.orderAdjustments
connection. To query for refunded shipping costs, use the Refund.refundShippingLines
connection instead. This connection has been updated as of July 18, 2024 to include refunded shipping costs; more info here. Refunded shipping costs will not be present in the webhook payload for REFUNDS_CREATE
as of 2024-10 for the same reason.
The OrderAdjustment.kind
field will be present on the unstable
API version for 6 months to allow apps to migrate to the 2024-10 API version.
October 01, 2024
Introducing Payment Groups and Sessions to SubscriptionBillingAttempts API
As of GraphQL Admin API version 2024-10, the SubscriptionBillingAttempt object will have two new fields: paymentgroupid and paymentsessionid.
This will allow your subscription apps to have better insights into how billing attempts correlate for merchant-facing statistics.
The payment group is defined as: - Attempts belonged to the same subscription contract identity. - The attempts were all failures, or ended in a success. If two sequential successes occur with all the same attributes, then they're treated as separate groups. It can be used for correlated retried billing attempts together.
The payment session for subscriptions is defined as: - Attempts used the same payment group - Attempts used the same payment method - Attempts used the same currency - Attempts were for the same amount We expect any merchant facing statistics regarding payment success rates to only show a single success or failure per paymentsessionid.
October 01, 2024
Introducing Session ID to StartPaymentSession API
As of Payments Apps API version 2024-10, the StartPaymentSession payload for all payment extension types will have one new field: session_id.
This identifier is shared across payment sessions that belong to the same payment group, buyer session, and share payment details. It can be used to power auth rate calculations.
October 01, 2024
Admin API includes discountNodesCount
API
As of Admin GraphQL API version 2024-10
, you can access the QueryRoot.discountNodesCount
field to retrieve the total count of discounts in the shop.
Learn more about discountNodesCount
on Shopify.dev.
October 01, 2024
Localized fulfillment hold reason on FulfillmentHold
API
We've added a new localized string field displayReason
to FulfillmentHold
so that you can query for a human-readable reason when a fulfillment is on hold.
October 01, 2024
Add new theme-related fields to TranslatableResourceType
enum
API
As of API version 2024-10
, you can use these new fields to TranslatableResourceType
that are related to the online store theme: ONLINE_STORE_THEME_JSON_TEMPLATE
, ONLINE_STORE_THEME_SECTION_GROUP
, ONLINE_STORE_THEME_APP_EMBED
, ONLINE_STORE_THEME_LOCALE_CONTENT
, ONLINE_STORE_THEME_SETTINGS_CATEGORY
and ONLINE_STORE_THEME_SETTINGS_DATA_SECTIONS
Together, these new types will cover the translatable content and translations within the existing ONLINESTORETHEME enum type and offer more granularity with respect to the returned data. They are introduced with the intent of reducing the use of ONLINE_STORE_THEME
type in the future, so that we do not return the entirety of a theme's content when it is not needed.
We are also introducing a nestedTranslatableResources
connection under TranslatableResource
object. When used with a ONLINE_STORE_THEME
type TranslatableResource
, the theme resources that belong to this particular theme are exposed.
-->
October 01, 2024
Translatable content that is specific to a market context is now exposed API
As of API version 2024-10
, you can use the marketId
argument to retrieve translatable content that is specific to a market. Concretely, combined with ONLINE_STORE_THEME_JSON_TEMPLATE
and ONLINE_STORE_THEME_SECTION_GROUP
translatable resource types, you can retrieve translatable content within the added sections and blocks in a contextualized theme template or theme section group for a specfic market. More details can be found here about customizing a theme for specific markets.
October 01, 2024
GraphQL support to send customer account invite API
As of GraphQL Admin API version 2024-10, you can use the customerSendAccountInviteEmail
mutation to send an email invite to create a classic customer account.
October 01, 2024
Action required
Adding pagination arguments to Customer addresses API
As of GraphQL Admin API version 2024-10, the addressesV2
field is introduced on the Customer
object to support paginating through a customer's addresses.
Learn more about the Customer
fields on Shopify.dev.
October 01, 2024
New abandoned checkouts listing endpoint on the admin GraphQL API API
As of 2024-10, you can use the abandonedCheckouts
endpoint to get the list of abandoned checkouts of a shop. This will replace the current REST endpoint.
October 01, 2024
New customer account pages now available in menus via Admin API API
As of API version 2024-10, you can add links to the Orders, Profile, and Settings pages to navigation menus.
To learn more, refer to menuCreate, menuUpdate and menu
October 01, 2024
Subscription Contract fields now fully available on the Customer API API
As of the 2024-10 release of the GraphQL Customer API, you can now query the following fields for a customer's subscription contracts using the subscriptionContracts
or subscriptionContract
fields:
* linesCount
* billingPolicy
* deliveryPolicy
* deliveryMethod
* deliveryPrice
* updatedAt
* currencyCode
We’ve also added support for the following connections: * lines * orders
The customer_read_own_subscription_contracts
permission is now required to query subscription contracts and the customer_write_own_subscription_contracts
permission is now required for subscription contract mutations.
Learn more about subscription contracts on the Customer API at Shopify.dev.
October 01, 2024
Action required
New field and permission update to fulfillment hold resource API
As of the GraphQL Admin API version 2024-10, a heldByRequestingApp
field is being added to the FulfillmentHold
GraphQL resource.
As of the GraphQL Admin API version 2024-10, you will only be able to read the heldBy
field on the FulfillmentHold
GraphQL resource if you have read_apps
scope enabled on your application. Use the heldByRequestingApp
boolean field instead if you need to see if your application created the fulfillment hold.
Learn more about FulfillmentHolds.
October 01, 2024
fulfillmentOrderHold
mutation updated to return a fulfillment hold resource
API
As of the GraphQL Admin API version 2024-10, the fulfillmentOrderHold
mutation will return the fulfillment hold that was created in a new fulfillmentHold
return field.
Learn more about the fulfillmentOrderHold mutation.
October 01, 2024
New parameter on fulfillmentServiceDelete
to control inventory behaviour on location removal
API
As of GraphQL API version 2024-10
we will introduce a new enum field for the fulfillmentServiceDelete
mutation. The inventoryAction
field will allow partners to specifiy the behaviour regarding the inventory when deleting a fulfillment service. The options are:
KEEP
- this option will convert a Fulfillment Service's locations to be owned by the merchant and therefore the inventory at those locations becomes the responsiblity of the merchant.DELETE
- this option, when there are no outstanding fulfillments, will delete the inventory at the location and then the location itself.TRANSFER
- this is the existing behaviour, where adestinationLocationId
is provided as the destination to relocate the inventory to, before the location is deleted.
If either KEEP
or DELETE
are provided, it is not possible to also specify a destinationLocationId
.
If KEEP
is provided, then the merchant must have a sufficient remaining quota of locations on their plan for this operation to succeed, an error will be returned if they do not.
October 01, 2024
Action required
Order Management apps can no longer fulfill orders that are assigned to a different fulfillment service API
As of 2024-10
, the write_third_party_fulfillment_orders
access scope permission will change for fulfillment creation. This access scope will no longer allow order management apps to fulfill fulfillment orders assigned to locations owned by other fulfillment service apps. Order management apps will still be able to access and manage these orders, only fulfillment creation will be prohibited.
The write_assigned_fulfillment_orders
and write_merchant_managed_fulfillment_orders
access scopes will remain unchanged. Fulfillment service apps will continue to be able to fulfill orders assigned to them as long as they have the write_assigned_fulfillment_orders
access scope. Fulfillment orders assigned to merchant managed locations will continue to be fulfillable by order management apps as long as they have the write_merchant_managed_fulfillment_orders
access scope.
Apps can confirm whether or not fulfillment creation is possible by querying the available supportedActions
through either the GraphQL or REST APIs. If the fulfillment order is assigned to a merchant managed location or to the fulfillment service performing the query and it is in a fulfillable state, CREATE_FULFILLMENT
will be returned as a possible option.
October 01, 2024
Added FAILED_TO_RETRIEVE_BILLING_ADDRESS to CustomerPaymentMethodRevocationReason Enum API
As of GraphQL Admin API version 2024-10, the CustomerPaymentMethodRevocationReason object has a new enum value: FAILED_TO_RETRIEVE_BILLING_ADDRESS
. This value is assigned when a customer payment method is missing the billing address field.
October 01, 2024
Action required
Removal of deprecated product image mutations from the GraphQL Admin API API
As of 2024-10, we're removing the deprecated productAppendImages
, productDeleteImages
, productImageUpdate
and productReorderImages
mutations from public GraphQL API.
Use the productCreateMedia, productDeleteMedia, productUpdateMedia and productReorderMedia mutation instead.
October 01, 2024
New created_fulfillment_hold
field on fulfillment_orders/placed_on_hold
webhook
API
As of Admin API version 2024-10, you can use the created_fulfillment_hold
field on fulfillment_orders/placed_on_hold
webhook to see the fulfillment hold that was created.
Why was this field added
A fulfillment hold gets deleted when a hold is released. It is possible that the FulfillmentOrder.FulfillmentHolds
field will be empty by the time the subscriber receives the webhook. The new field created_fulfillment_hold
will always show hold that was created regardless of whether it has already been released/deleted.
Learn more about fulfillment_orders/placed_on_hold
webhook on Shopify.dev.
October 01, 2024
New webhook topic app/scopes_update
API
As of Webhook API version 2024-10
and unstable
, apps can subscribe to the app/scopes_update
webhook topic.
This webhook is triggered when the granted access scopes for the installed app on a shop have been modified. It allows apps to keep track of the granted access scopes of their installations.
For example, an app that has enabled Shopify managed install is released with a new configuration that increased the requested scopes from "read_customers"
to "read_customers,read_discounts"
. Once a merchant opens the app and approves the read_discounts
access scope this webhook will be emitted with payload:
{
"id": 1234,
"previous": [
"read_customers"
],
"current": [
"read_customers",
"read_discounts"
],
"updated_at": "2024-10-01T00:00:00.000Z"
}
Learn more about this webhook on Shopify.dev
October 01, 2024
Action required
Cart Warnings in Storefront API Cart API
As of API version 2024-10, inventory errors about stock levels will no longer be included in the userErrors
of cart mutations. Inventory errors will now be available in a new return field, warnings
and will contain explicit code
values of MERCHANDISE_NOT_ENOUGH_STOCK
or MERCHANDISE_OUT_OF_STOCK
.
Warnings will be available on all cart mutations to show automatic changes that occurred during the mutation. You can use warnings to manage items in your cart or display information to a buyer. For example, out of stock lines can be easily removed from a cart by using the target
field included in the warning as the input to a call to CartLineRemove
.
Learn more about cart warnings on Shopify.dev.
October 01, 2024
Action required
Querying events through the events
connection and CommentEvent.subject
becomes nullable
API
As of 2024-10, you can query events by means of eventsCount
, event
and events
.
There has been the addition of an events
connection on several types as well, allowing you to query the related events:
There has been one breaking change on the CommentEvent.subject
field where we transitioned it to be nullable, null will be returned when the subject
's underlying data has been deleted, in the process we also deprected deletionEvents
as these are now returned as an Event
. When the subject
is deleted, the REST API, will also return null
for the subject
property.
October 01, 2024
Add subscription status updates to bulkOperationRunMutation API
Subscription Status updates can now be run with the bulkOperationRunMutation.
The following mutations have been added:
* subscriptionContractActivate
* subscriptionContractCancel
* subscriptionContractExpire
* subscriptionContractFail
* subscriptionContractPause
See https://shopify.dev/docs/api/usage/bulk-operations/imports for more information.
October 01, 2024
ProductInput
split into ProductCreateInput
and ProductUpdateInput
in 2024-10
API
As of 2024-10
version of the Admin GraphQL API, the ProductInput
object has been split into ProductCreateInput
and ProductUpdateInput
. The productCreate
and productUpdate
mutations now accept a new product
argument using these types.
The existing input
field has been marked deprecated.
Learn more about ProductCreateInput and ProductUpdateInput on Shopify.dev.
October 01, 2024
Admin GraphQL API: new APIs for Pages, Articles, Blogs, and Comments now available in 2024-10 API
As of version 2024-10 of the Admin GraphQL API, you can now read and modify Pages, Articles, Blogs, Comments. Page
, Article
, and Blog
types have replaced the OnlineStorePage
, OnlineStoreArticle
, and OnlineStoreBlog
types in the API.
Pages:
- You can now create new pages using pageCreate
, modify existing pages using pageUpdate
, and delete pages using pageDelete
.
- Pages can be queried using the new page
or pages
queries.
Articles:
- You can now create new articles using articleCreate
, modify existing articles using articleUpdate
, and delete articles using articleDelete
.
- Articles can be queried using the new article
or articles
queries.
Blogs:
- You can now create new blogs using blogCreate
, modify existing blogs using blogUpdate
, and delete blogs using blogDelete
.
- Blogs can be queried using the new blog
or blogs
queries.
Comments:
- You can now modify existing comments using commentApprove
, commentSpam
, or commentNotSpam
. Comments can be deleted with commentDelete
.
- Comments can be queried using the new comment
or comments
queries
September 30, 2024
Create App Store Ads on Tag-Level Category Pages Shopify App Store
App Store ads on the Shopify App Store now support targeting tag-level category pages, in addition to main and sub-category pages. For more information on App Store category page types, see here.
September 30, 2024
Action required
Deprecating explicit access grants for app-owned metafields API
Specifying grants for specific apps on app-owned metafields is now deprecated. New apps will not be able to use this feature effective immediately. Existing apps will continue to have access.
September 30, 2024
Introducing theme and theme file management in the Admin GraphQL API API
As of API version 2024-10, you can use the admin API to manage Online Store Themes. This feature provides parity with our REST API for managing themes and theme files.
What's New
New queries:
theme
to query an individual theme by IDthemes
to query many themes by role or name
OnlineStoreTheme
objects expose a files
query which can be used to fetch the metadata and content of files in a theme. Multiple files can be requested at once, speeding up operations that need to fetch many files.
New mutations for themes:
themeCreate
- upload a new themethemeDelete
- delete an unpublished themethemePublish
- publish a themethemeUpdate
- update the name of a theme
New mutations for theme files:
themeFilesCopy
- copy files from one location to anotherthemeFilesDelete
- delete files in a themethemeFilesUpsert
- write data to files in a theme
Learn more about these changes on Shopify.dev