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 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 usingpageUpdate
, and delete pages usingpageDelete
. - Pages can be queried using the new
page
orpages
queries.
Articles:
- You can now create new articles using
articleCreate
, modify existing articles usingarticleUpdate
, and delete articles usingarticleDelete
. - Articles can be queried using the new
article
orarticles
queries.
Blogs:
- You can now create new blogs using
blogCreate
, modify existing blogs usingblogUpdate
, and delete blogs usingblogDelete
. - Blogs can be queried using the new
blog
orblogs
queries.
Comments:
- You can now modify existing comments using
commentApprove
,commentSpam
, orcommentNotSpam
. Comments can be deleted withcommentDelete
. - Comments can be queried using the new
comment
orcomments
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
September 25, 2024
Changing the default value of permitsSkuSharing argument in fulfillmentServiceCreate API
As of 2025-01
, the default value for the permitsSkuSharing
argument in the fulfillmentServiceCreate
mutation has been updated to true.
Please be aware that this argument is deprecated and will be removed in the version 2025-04
. Consequently, all fulfillment services will be required to permit SKU sharing by default.
September 20, 2024
Introducing metafield definition capabilities in the admin API API
As of API version 2024-10, we're launching an API to manage metafield definition capabilities. This new feature provides a flexible and extensible way to define and manage behaviors for metafield definitions across various Shopify features.
What's new?
Metafield definition capabilities can be easily enabled, disabled, and queried through the Admin API
What's next?
In future API versions, we'll be introducing new capabilities to enhance metafield functionality across various Shopify features. Stay tuned for announcements about specific capabilities and how they can benefit your app or integration.
Learn more about metafield capabilities at Shopify.dev
September 20, 2024
Action required
Metafield Definition Capability Framework and Deprecation of use_as_collection_condition
API
As of API version 2024-10, we're introducing the Metafield Definition Capability Framework and deprecating the use_as_collection_condition
field on the Metafield Definition object. The new smart_collection_condition
capability will replace the deprecated field, providing a more flexible and extensible way to manage metafield behaviors in smart collections.
What's changing?
- The
use_as_collection_condition
field on Metafield Definitions is being deprecated. - A new
smart_collection_condition
capability is being introduced as part of the Metafield Definition Capability Framework.
Why it matters
The new Capability Framework offers several benefits:
- Improved flexibility: Capabilities can be easily added, removed, or modified without changing the core Metafield Definition structure.
- Better extensibility: New capabilities can be introduced in the future without affecting existing implementations.
- Clearer semantics: Capabilities provide a more explicit way to define metafield behaviors.
How to update
To prepare for this change, update your API calls and app logic as follows:
Instead of setting
use_as_collection_condition: true
, use:graphql capabilities: { smartCollectionCondition: { enabled: true } }
When querying metafield definitions, check the
smart_collection_condition
capability instead of theuse_as_collection_condition
field:graphql query { metafieldDefinition(id: "gid://shopify/MetafieldDefinition/1234") { capabilities { smartCollectionCondition { enabled } } } }
Timeline
- API version 2024-10: The new capability is available, and
use_as_collection_condition
is deprecated but still functional. - Future version: The
use_as_collection_condition
field will be removed entirely.
We recommend updating your integrations to use the new capability as soon as possible to ensure a smooth transition.
Learn more about metafield capabilities at Shopify.dev Learn more about the Metafield Definition Capability Framework at Shopify.dev.
September 19, 2024
New inventory input fields in productSet mutation in version 2024-10 API
As of GraphQL API version 2024-10
, we are adding new inventory capabilities in the productSet mutation, in the form of a new field type ProductSetInventoryInput
, which allows setting available
or on_hand
quantities for new and existing product variants on locations specified.
This type can be used in the following contexts:
ProductSetInput.inventoryQuantities
field to specify inventory quantities for products with no custom variants.ProductSetVariantInput.inventoryQuantities
field to specify inventory quantities for individual custom variants.
For more detailed information and examples, visit our productSet documentation on Shopify.dev.
September 18, 2024
Shopify CLI is now easier to install and faster for Liquid theme development Themes
Today, a new version of Shopify CLI is available, bringing with it a better development experience that streamlines your setup for building Shopify themes.
The update includes the following improvements:
- Instant development server startup, so there's no need to wait for synchronization before opening a browser.
- No dependency on Ruby and unified commands implementation on TypeScript, which streamlines your development cycle with easier install & setup.
- A headless Liquid console, so you can run
shopify theme console
without opening a browser for authentication.
Learn more about Shopify CLI for themes. Happy coding!
September 18, 2024
New Full-Funnel Theme Install Parameters and Now Firing E-Commerce Events on the Theme Listing Page Themes
Two new paremeters have been added to the full-funnel theme install event for the Shopify Theme Store - shop_name
and shop_url
. These enhancements provide more insights on which merchant is installing a theme.
Learn more about the new parameters and full-funnel attribution in the Shopify Theme Store docs.
On the theme listing pages, Google e-commerce events have also been implemented to enhance tracking capabilities. The events view_item and addtocart will now be sent to Google Analytics, allowing for more precise data analysis.
For further details, check out the section on Google e-commerce events in the Shopify Theme Store docs.
September 18, 2024
JavaScript Shopify Functions are now ~40% faster Tools
As of Shopify CLI 3.67 and Javy 3.1, Shopify Functions built in JavaScript can see improved performance by as much as 40% when combined with @shopify/shopify_function 1.0
Learn more about JavaScript for Shopify Functions on Shopify.dev.
September 18, 2024
New Full-Funnel App Install Parameters and Now Firing E-Commerce Events on the App Listing Page Shopify App Store
Two new paremeters have been added to the full-funnel app install event for the Shopify App Store - shop_name
and shop_url
. These enhancements provide more insights on which merchant is installing an app.
Learn more about the new parameters and full-funnel attribution in the Shopify App Store docs.
On the app listing pages, Google e-commerce events have also been implemented to enhance tracking capabilities. The events view_item and addtocart will now be sent to Google Analytics, allowing for more precise data analysis.
For further details, check out the section on Google e-commerce events in the Shopify App Store docs.
September 18, 2024
Product Feed webhooks now support per-market inventory API
The quantityAvailable
and availableForSale
fields will now reflect country-specific inventory availability, scoped to the specified market country of the Product Feed. The Fulfillable Inventory feature must be enabled on the shop.
Learn more about Fulfillable Inventory on the Shopify help docs.
September 17, 2024
Post-purchase offers limit is increased Platform
The number of post-purchase upsell offers that customers can accept has been increased from two to three. With this change, merchants can increase their order value even more through post-purchase upsell offers.
We highly recommend that you review any custom code that pertains to post-purchase offers to ensure an optimal buyer experience.
Learn more about post purchase offers on shopify.dev
September 17, 2024
Action required
Improvements in the GiftCard GraphQL endpoints and introducing GiftCardTransaction types API
As of the GraphQL Admin API version 2024-10, we're improving the GiftCard
endpoints and introducing GiftCardTransaction
types. The gift card endpoints are now open to all apps and shops, with no additional approval scopes or flags required.
We have added the following mutations:
giftCardDeactivate
renamed fromgiftCardDisable
(deprecated).giftCardCredit
to apply credit to a gift card returning aGiftCardCreditTransaction
.giftCardDebit
to apply debit to a gift card returning aGiftCardDebitTransaction
.giftCardSendNotificationToCustomer
to send the notification to the customer.giftCardSendNotificationToRecipient
to send the notification to the recipient.
We have updated the following mutations:
giftCardCreate
to addrecipientAttributes
.giftCardUpdate
to addrecipientAttributes
.
We have added and modified fields in the GiftCard
object:
- Added
updatedAt
. - Added
recipientAttributes
. - Added
transactions
returning all transactions created by credits and debits. - Renamed
disabledAt
todeactivatedAt
(deprecated).
Developer action required
Developers using the existing giftCardDisable
mutation will need to replace it with giftCardDeactivate
Developers using the disableAt
property on the GiftCard
object will need to replace it with deactivatedAt
To learn more about gift cards, refer to the gift cards documentation. To learn more about gift card recipient functionality, refer to the help center documentation for recipient fields
September 16, 2024
Action required
The fulfillmentOrdersReleaseHolds Mutation Is Deprecated API
As of the Admin API version 2024-10, the fulfillmentOrdersReleaseHolds mutation has been deprecated.
Apps using this mutation should migrate to using the fulfillmentOrderReleaseHold mutation instead.
September 16, 2024
Admin API includes urlRedirectsCount
API
As of Admin GraphQL API version 2024-10
, you can access QueryRoot.urlRedirectsCount
field to retrieve the count of redirects.
Learn more about urlRedirectsCount
on Shopify.dev.
September 16, 2024
New query attributes on products query API
As of the 2024-10 version of the GraphQL Admin API, the products
query filter has been expanded to allow filtering on additional attributes: publication_ids
, variant_id
and variant_title
.
Check out all products query attributes at shopify.dev for more details.
September 13, 2024
Action required
Field deprecations on the abandoned checkout REST API API
The following fields have been deprecated from the Abandoned Checkout REST API: cart_token
, closed_at
, currency
, gateway
, landing_site
, fulfillment_service
, grams
, presentment_currency
, referring_site
, shipping_lines
, token
and total_weight
fields
As of 2024-10, the endpoint is available via the newly published GraphQL abandoned checkout API.
September 13, 2024
Fulfillment Holds Now Able To Be Released by ID API
As of the GraphQL Admin API version 2024-10, a id
field is being added to the FulfillmentHold
GraphQL object.
As of the GraphQL Admin API version 2024-10, an optional holdIds
argument is being added to the fulfillmentOrderReleaseHold mutation. This will give apps the ability to release a hold by ID, ensuring that only the intended hold is released. It is highly recommended that apps supply the ids of any holds when releasing them. Releasing all holds on a fulfillment order will result in the fulfillment order being released prematurely and items being incorrectly fulfilled.
September 13, 2024
Admin API includes statusPageUrl
field on Order
API
As of Admin GraphQL API version 2024-10
, you can access Order.statusPageUrl
field to retrieve the URL where the customer can check the order's current status.
Learn more about Order
on Shopify.dev.
September 12, 2024
Built for Shopify criteria removal - Optimized loading on mobile devices Shopify App Store
As of today, the Mobile performance: Uses App Bridge optimized loading on mobile devices
standard that exists as part of admin performance is no longer required to apply for and maintain Built for Shopify status.
All apps now have this enabled by default.
September 12, 2024
Customer SMS Consent Collected From now returns Shopify when the buyer consents to SMS marketing in Shopify Checkout API
As of September 12, 2024, the CustomerConsentCollectedFrom
field will return SHOPIFY
whenever SMS consent is captured in Shopify Checkout. Previously, it would return OTHER
if the buyer consented to SMS marketing in checkout, but the sales channel of the checkout was not one owned by Shopify (Example, online store checkouts would return SHOPIFY
while custom storefronts would return OTHER
).
This applies to both the 1st party SMS consent UI, as well as any checkout UI extensions using the ConsentCheckbox
or ConsentPhoneField
UI components.
Other SMS consent capture flows are unaffected.
September 12, 2024
Hydrogen September 2024 release Platform
Hydrogen v2024.7.5 is out today. The September 2024 Hydrogen release contains several optimizations and bug fixes, including:
- Improved sitemaps (unstable) (#2478)
- Skeleton template search enhancements (#2363)
- Cart gift card support (#2298)
- Consent localization (#2457)
- Improved content security policy implementation (#2500)
- Infinite redirect fix for with URLs with
//
(#2449) - Improved
useOptimisticCart
to optimistically calculate totals (#2459) - Skeleton template mobile device link fix (#2450)
- Utilities
privacyBanner
andcustomerPrivacy
have been added touseAnalytics
anduseCustomerPrivacy
(#2457)
Check out our full Hydrogen September 2024 release blog post for more details. And please drop your comments, feedback, and suggestions in GitHub Discussions!
September 11, 2024
Action required
Introducing PRODUCT_CATEGORY_ID in CollectionRuleColumn and Deprecating PRODUCT_TAXONOMY_NODE_ID for automated collection creation API
As of API version 2024-10, we're adding the new PRODUCTCATEGORYID as a column for the CollectionRuleColumn
which is used to create automated collections. This field maps directly to the newly added Product Category as defined in the updated standard product taxonomy and will allow for the creation of smart collections based on this new category tree.
What's new?
- Introduction of
PRODUCT_CATEGORY_ID
Column: We are introducing a new column,PRODUCT_CATEGORY_ID
, in theCollectionRuleColumn
. This column will directly map to the category ID of a product, allowing for more precise and efficient collection rule creation based on product categories as defined in the updated standard product taxonomy.
What's deprecated?
- Deprecation of
PRODUCT_TAXONOMY_NODE_ID
Column: ThePRODUCT_TAXONOMY_NODE_ID
column is being deprecated. This column previously used the now-deprecatedproductCategory
field on products, the previous method for categorising products before the updated standard product taxonomy was introduced this year. Developers should transition to using the newPRODUCT_CATEGORY_ID
column to ensure newly created products that necessarily use the updated product taxonomy are included in automated collections as expected.
Developer action required
Developers are encouraged to update their implementations to use the new PRODUCT_CATEGORY_ID
column when specifying product attributes for populating smart collections. The deprecated PRODUCT_TAXONOMY_NODE_ID
will remain functional but is scheduled for removal in a future API version. Transitioning early will ensure smoother operations and access to the enhanced functionality provided by the new schema.
Example of updated usage
To create a smart collection using the new PRODUCT_CATEGORY_ID
, modify the collection creation mutation as follows:
mutation CollectionCreate($input: CollectionInput!) {
collectionCreate(input: $input) {
userErrors {
field
message
}
collection {
id
title
descriptionHtml
handle
sortOrder
ruleSet {
appliedDisjunctively
rules {
column
relation
condition
}
}
}
}
}
{
"input": {
"title": "Our entire shoe collection",
"descriptionHtml": "View <b>every</b> shoe available in our store.",
"ruleSet": {
"appliedDisjunctively": false,
"rules": {
"column": "PRODUCT_CATEGORY_ID",
"relation": "EQUALS",
"condition": "gid://shopify/TaxonomyCategory/aa-5"
}
}
}
}
Learn more about collection creation at [Shopify.dev](https://shopify.dev/docs/api/admin-graphql/latest/mutations/collectionCreate)
September 10, 2024
Updates to webhook retry mechanism API
Webhooks will now be retried a total of 8 times over 4 hours using an exponential backoff schedule. This should allow sufficient time for transient errors to be resolved.
When webhooks are retried, they will be delivered with the original payload from the time they were triggered. Partners should utilize the X-Shopify-Triggered-At
timestamp in the header, or a timestamp from the payload to determine if the payload is stale.
Retried webhooks will be delivered to the subscription's address that was configured when the webhook was triggered. Updating the subscription's address during a retry cycle will not result in the webhook being delivered to the new address. When migrating webhooks to a new endpoint, it is recommended to keep both endpoints active for a short period of time to ensure a smooth transition.
These changes aim to improve the consistency, efficiency and reliability of webhook delivery while minimizing the impact on partners.
September 09, 2024
Static app navigation for admin apps is no longer supported Tools
Static app navigation for admin apps is no longer supported. Creation and editing of static navigation are no longer available on the the Partners dashboard. You can delete existing menus using the Partners dashboard until December 2024. After December 2026, static navigation items will be automatically removed from apps.
To configure app navigation, use the App Bridge navigation menu web component or React component to add navigation to your app and delete the existing navigation items from the Partners dashboard.
September 09, 2024
Action required
Removing V2 suffix from fulfillmentCreateV2 and fulfillmentTrackingInfoUpdateV2 API
As of 2024-10
, we're deprecating fulfillmentCreateV2
and fulfillmentTrackingInfoUpdateV2
. Instead, please use fulfillmentCreate
and fulfillmentTrackingInfoUpdate
.
Note that the behavior of the new mutations remains the same as the previous ones; the only change is the removal of V2 to ensure consistent naming across all mutations.
September 09, 2024
Action required
The REST location resource requires locations
scope
API
As of the 2024-10 release of the Admin REST API, the location resource will be gated by the locations
scope.
Attempting to access the location resource without the read_locations
scope will return a 403 Forbidden
error.
If your app gets the location resource, then you will need to request the correct read_locations
scope before migrating to the 2024-10 API version.
September 06, 2024
Fresh theme rows for Theme Store homepage Shopify Theme Store
To help merchants discover the freshest and most well-integrated themes for their store, we've shipped an update to the Theme Store homepage to highlight Top and New themes (published in the last 60 days).