Developer changelog
Subscribe to the changelog to stay up to date on recent changes to Shopify’s APIs and other developer products, as well as preview upcoming features and beta releases.
Filter by tag:
These are the most recent changes to Shopify’s developer platform.
There are no entries for your filter criteria.
December 06, 2023
InventoryQuantity
GraphQL object now has a globally-unique ID in Admin API
API
As of GraphQL Admin API version 2024-01 , you can use the ID
field to identify an InventoryQuantity object. This object now implements Node
interface.
December 06, 2023
Customer Accounts Extensibility is now available in Developer Preview Shopify App Store
We’ve unlocked the ability for partners to add unique and powerful functionality to the customer account experience by building extensions directly into new customer accounts.
Starting today, customer accounts extensibility is now available in developer preview, allowing partners to build extensions on new customer account pages (such as the order index, order status and customer profile pages), add highly visible order actions and create full-page extensions tailored to specific merchant needs.
Join us in creating better buying experiences, where customers navigate seamlessly across apps, with one single login.
Get started by reading our developer documentation and join us on Discord December 14, 2023 and January 11, 2023 at 1pm EST.
December 06, 2023
Action required
UI Extensions - Shipping method option list targets will be duplicated for possible types of delivery groups (One Time Purchases and Subscription) API
Breaking change: UI extensions on versions 2023-10
or older that use either the purchase.checkout.shipping-option-list.render-before
or the purchase.checkout.shipping-option-list.render-after
will no longer render if the checkout contains both a one time purchase and subscription item.
As of 2024-01
, purchase.checkout.shipping-option-list.render-before
and purchase.checkout.shipping-option-list.render-after
will be duplicated for possible types of delivery groups (One Time Purchase and Subscription). You can use the new ShippingOptionListApi
to target each delivery group in your extension.
The delivery group the extension is attached to will be passed as a target
. In React, you can also use the useDeliveryGroupTarget()
hook to retrieve the current delivery group. The target will be undefined
if the group is not available, for example when the buyer hasn’t entered an address on One-page checkout, or when shipping is unavailable for this address.
We’re also introducing a new unique id
on a DeliveryGroup
to identify each delivery group.
If your extension is capturing buyer inputs at Checkout and storing the information in a metafield, you can use checkout attributes with a namespaced key to capture information for multiple delivery groups rendered on Checkout. See examples.
These changes can be tested today using the Checkout Extensibility developer preview using the unstable
api version.
Learn more about these API changes on shopify.dev
December 06, 2023
Action required
Automatic Discount Functions now apply to B2B sessions API
As of December 6th, 2023, Automatic Discounts created using Shopify Functions will apply by default to B2B customers. Previously, it wasn't possible to target B2B customers with discounts. Discount codes created using Shopify Functions are also available, but gated behind a beta flag, so merchants will need to explicitly opt-in for their store.
App developers can use the BuyerIdentity.purchasingCompany attribute on the Cart input to detect a B2B customer, and use that to customize the discount behavior for a merchant’s B2B audience. Examples of this could include:
- a discount that applies to B2B customers only
- a discount that applies to a specific B2B company only
- a discount that applies to D2C customers only
Note: at this time, discounts are not compatible for B2B customers configured to Submit all orders as drafts for review.
December 05, 2023
Action required
Addition of LineItem current_quantity on Admin REST API API
Partners currently using refund line items to calculate a line item’s current quantity should migrate to using the new currentquantity field as it is a more reliable method. We recommend migrating to GraphQL as a general practice, however the currentquantity field has been added to indicate a line item’s current quantity after removals as of Admin REST API version 2024-01.
Learn more about the Order.line_items object on Shopify.dev.
December 04, 2023
Collaborator request code now required to initiate request for store access Tools
Partners must now obtain a unique code to initiate a collaborator request and access a merchant’s store.
Collaborator request codes, previously optional, are now enabled by default for all merchants. This change gives merchants more control over who can access their store as collaborators, by ensuring that only those with the unique code can send a collaborator request.
Learn more about collaborator requests in the Shopify Help Center.
December 04, 2023
Customer Account API schema improvements API
As of release candidate API version 2024-01, the schema for the Customer Account API has evolved significantly resulting in breaking changes. This update is necessary to ensure a more streamlined developer experience. Support has also been added to redirect buyers to a specific URI after logout with the post_logout_redirect_uri
query parameter, providing a solution for custom storefronts with multiple domains. Additionally, mutations for modifying marketing subscriptions have been added with customerEmailMarketingSubscribe
and customerEmailMarketingUnsubscribe
. The Customer Account API is available in Developer Preview and accessible via the Hydrogen and Headless channels. We encourage developers to provide feedback to help shape future iterations of this API.
Learn more about the schema updates and the new features in the developer documentation.
December 04, 2023
Introducing webhook topics for discount events API
We’ve introduced dedicated webhook topics that will be sent out whenever a discount has been created, updated or deleted, enabling developers to keep their discount apps in sync.
Learn more here
November 30, 2023
Introducing the new Customer Data Erasure API API
As of GraphQL Admin API version 2024-01, we are excited to introduce the Customer Data Erasure API. This API allows merchants to handle customer data erasure requests in compliance with GDPR, CCPA, and other data protection regulations. The API includes two new mutations:
- customerRequestDataErasure enqueues a request to erase customer's data.
- customerCancelDataErasure cancels a pending erasure of a customer's data.
To learn more about how data erasure is processed and the impact on customer data, please refer to the Shopify Help Center.
November 29, 2023
Shopify Functions run logs now include production store executions API
All Shopify Functions executions are now visible for production stores in your Partner Dashboard.
Run details are only available for failed runs that have been shared by users.
More information can be found on Shopify.dev:
November 28, 2023
Action required
AppSubscriptionDiscountInput.durationLimitInIntervals will no longer accept 0 API
As of Admin API 2024-01, AppSubscriptionDiscountInput.durationLimitInIntervals will no longer accept 0. To create a discount with an unlimited duration, durationLimitInIntervals should not be provided.
November 10, 2023
Action required
Breaking changes to returns API: Deprecate "reverseDeliveryDispose" mutation API
As of GraphQL Admin API version 2025-01, we're deprecating the reverseDeliveryDispose
mutation. Use the reverseFulfillmentOrderDispose
mutation instead.
Learn more about managing reverse fulfillment orders on Shopify.dev.
November 07, 2023
UI extensions on the Thank you and Order status pages have launched Platform
As of 2023-11-07, Checkout Extensibility on the Thank you and Order status pages is available to plus merchants. Merchants can now make code-free, app-based, upgrade-safe customizations throughout the buying journey to create holistic and consistent experiences.
Checkout Extensibility replaces checkout.liquid, apps with script tags and additional scripts on the Thank you and Order status pages.
Script tags, additional scripts and checkout.liquid on the Thank you and Order status pages are now deprecated. Merchants have been notified of the following turn off dates: * August 13, 2024 - the removal date of checkout.liquid for in-checkout pages * August 28, 2025 - the removal date of checkout.liquid, apps with script tags and additional scripts on the thank you and order status page
Shops that aren't upgraded during these dates will be upgraded to an un-customized out-of-the-box Shopify Checkout.
November 06, 2023
Storefront API Cart.checkoutUrl
now contains key param
API
The Storefront API Cart now returns a new key
param appended to CheckoutUrl
that is required to render buyer information in checkout. This behavior is applied retroactively to all versions of the Storefront API.
The param is validated and removed as the buyer is navigated into checkout. This change is transparent to the buyer and does not affect what they see in the browser or their ability to copy and share checkout URLs. When a checkout is loaded without the valid key, the cart is cloned, and buyer information is removed.
Example Format: https://example-shop.com/cart/c/c1-09av29f248bb6420de3842b051f6a1a3?key=824bdj25mhg1242bdb385
Action Required:
If your app is manually constructing checkout URLs from cart IDs, you need to switch and use cart.checkoutUrl
. If you’re augmenting the cart.checkoutUrl
with additional parameters, update and validate that your code does not override the parameter and returns a valid destination URL.
November 01, 2023
Theme Store Full-funnel Google Analytics attribution Themes
We’ve added visibility into the theme install event itself as part of our existing integration with Google Analytics.
In addition to having full visibility into the theme install event, you can also now tie the theme install event to a Shop ID, enabling richer insights on the type of merchants that are installing your theme.
Learn more on our blog and shopify.dev.
November 01, 2023
Introduce subscriptions contracts cleanup mechanism Shopify App Store
We've added a new cleanup process for Subscription Contracts.
This process involves automatically canceling any Subscription Contracts owned by the subscription app that have not been terminated. These contracts may be in the active
, paused
, or failed
status. The cancellation will occur 48 hours after a user uninstalls the app.
This is aligned with our purchase options cleanup process.
October 31, 2023
[Developer Preview] Cart Transform API - Updating lines in the cart API
Previously, the Cart Transform API enabled functions to expand
a single cart line item to form a bundle of components or add-on products, or merge
multiple cart lines into a single line that represents a bundle.
With this release, update
operations will also allow you to override the price, title, and/or image of a given line item. This gives you more more flexibility to make additional customizations to items in the cart.
More information can be found in the Cart Transform API developer preview documentation.
October 31, 2023
Hydrogen 2023.10 has been released Platform
Hydrogen v2023.10 is now available. This release includes a number of new features and breaking changes.
Remix 2.0 (breaking change)
- Hydrogen 2023.10 now uses Remix 2.
- Remix has also been made a peer dependency, so you can keep your Remix package updated independently of Hydrogen.
Other breaking changes
- Hydrogen's default caching strategy has been updated to have a longer
stale-while-revalidate
period. - A dependency bump for
@graphql-codegen/typescript
to v4 will require updates toScalar
types if you import them directly from Hydrogen or Hydrogen React.
Other changes
- All packages and examples now query
v2023-10
API versions. - Hydrogen now includes an API client for the Customer Account API.
- Custom cart methods are now stable.
- The GraphiQL client available through the local development server now includes the GraphiQL Explorer plugin, which makes it easier to browse GraphQL resources.
- Props and parameters that were deprecated in v2023-07 have been removed.
- Additional dependency bumps, patches, and fixes.
October 31, 2023
Action required
Changes to Point of Sales (POS) payment processing behavior API
We're changing how payments are processed on POS in order to bring order cancellations to POS. These changes will go into effect beginning October 31, 2023 for POS Pro and January 22, 2024 for Shopify Plus.
Payments may be authorized for up to 15 minutes before being captured automatically or voided by retail staff. As such, you may notice a few changes to the Admin and Storefront APIs.
On the Admin API, you may see:
-
AUTHORIZED
as theOrderDisplayFinancialStatus
for up to 15 minutes before transitioning toPAID
. The status will transition toVOIDED
if the order gets canceled within these 15 minutes. - Separate
OrderTransaction
objects withAUTHORIZATION
andCAPTURE
as theOrderTransactionKind
when the payment is authorized and captured, instead of a single transaction with theSALE
kind. - Separate
OrderTransaction
objects withAUTHORIZATION
andVOID
as theOrderTransactionKind
when the payment is authorized and voided. - An empty array for
SuggestedRefund.suggestedTransactions
until payments in the order have been captured.
On the Storefront API, the OrderFinancialStatus
will exhibit the same behavior as the OrderDisplayFinancialStatus
on the Admin API.
Learn more about canceling orders on POS here.
Learn more about OrderDisplayFinancialStatus, OrderTransactionKind, and SuggestedRefund on Shopify.dev.
October 24, 2023
Breaking changes to Products API: Deprecate "ProductInput.images" API
As of GraphQL Admin API version 2024-01, we're deprecating the images
field from the ProductInput
input object and replacing it with a media
argument in the productCreate
and productUpdate
mutations.
Learn more about the usage of the media
field on Shopify.dev
October 24, 2023
UI extensions - the order status page is getting a new look API
As of 2023-10-24, the order status page is getting a new look with updated visual treatment that is consistent with new customer accounts. This change will be rolling out progressively to all developer shops on checkout extensibility developer preview to ensure a smooth transition.
To view this change in developer shops on the checkout extensibility developer preview, navigate to Settings > Checkout > Customize and select Order Status from the page dropdown.
No action is required and there should be no changes to any UI extensions in development.
Learn more about UI extensions on the thank you and order status pages on Shopify.dev.
October 23, 2023
New fields on Country Liquid object API
We've added the available_languages
, continent
and popular?
properties on the country
object in Liquid.
You can now access the languages that have been added to the market that a country belongs to, the country's translated continent name, and whether the country is a popular one amongst those that the shop sells to.
These properties provide flexibility when building a localization switcher, allowing customers to switch country and language simultaneously and allowing for grouping or sorting countries in a theme's country selector
Learn more about these new fields in the dev docs.
October 19, 2023
[Developer Preview] Mobile Checkout SDK for iOS Tools
Shopify’s Mobile Checkout SDKs enables you to provide the world’s highest converting, customizable, one-page checkout directly within a mobile app. The presented experience is a fully-featured checkout that preserves all of the store customizations: Checkout UI extensions, Scripts, Functions, Web Pixels, and more. It also provides platform idiomatic defaults such as support for light and dark mode, and convenient APIs to embed, customize, and follow the lifecycle of the checkout experience.
Today we are launching Developer Preview of the Checkout SDK for iOS, with our Android SDK coming very soon. The SDKs are open-source and ready for you start building. During this developer preview, the APIs are subject to change as we adapt to feedback.
More information can be found in our blog post as well as in the Github repository and all feedback is welcome here.
October 13, 2023
[Developer Preview] Cart Transform API - Pricing bundles per component & additional customizations API
Previously, the Cart Transform API allowed percentage based adjustments to the cost of a bundle when using expand
operations. The (weight price algorithm) (http://shopify.dev/docs/api/functions/reference/cart-transform/developer-preview#/weight-
price-algorithm) would then allocate the bundle price to its component lines based on the weight of each component line (unit price * quantity).
With this release, expand
operations will also allow you to set fixed prices on each component of the bundle, resulting in a bundle price that is the sum of each component. Additionally, the expand
operation will now allow you to define a custom title and image for each parent line item.
This gives you more control over bundle pricing and enables bundles to be used for add-on products.
More information can be found in the Cart Transform API developer preview documentation.
October 11, 2023
Display Business Imprint on Shopify's App Store and Theme Store Shopify App Store
Starting October 11, 2023, Shopify's App Store and Theme Store will display the partner's geographical address and contact information in order to be in compliance with Business Imprint legal requirements. All partners should ensure their information is up to date.
Learn more about Business Imprint in the Shopify Help Center.
October 10, 2023
App Store listings are now automatically translated into 8 languages Shopify App Store
Now every English-language primary app listing is automatically translated into the 8 languages listed below, unless the partner provides their own translated listings for any of those languages.
- Brazilian Portuguese
- Danish
- Dutch
- French
- German
- Simplified Chinese
- Spanish
- Swedish
This will improve the experience of our international merchants, and significantly boost app installs in non-English speaking markets (by as much as 20%). To maximize the effect, complement translated listings with translating your app’s UI.
Learn more about automated listing translation on Shopify.dev.
October 04, 2023
Shopify Flow - Use dev command to preview tasks and use more complex data in triggers Platform
With this update, the dev
command is now supported for Flow extensions, you can use more complex data in your triggers, and Flow in the CLI is generally available.
Flow in the CLI
Flow in the Shopify CLI is now generally available. We still welcome feedback at flow-connectors-dev@shopify.com
Previously, Flow actions and triggers were defined in the partner dashboard. As Shopify CLI adoption has expanded, this meant that you needed to manage and deploy your Flow extensions separately from the rest of your app.
Going forward, you will now create your Flow tasks and actions through the CLI. You follow these guides for how to create both triggers and actions through the CLI. In addition, you can migrate your existing tasks to be CLI-managed, unifying your code. For more details on what is possible, you can also consult Flow’s reference guide for triggers and actions.
Dev command
You can now also use the dev
command to preview Flow tasks in your development store. See our docs for triggers and actions.
Complex data in triggers
Finally, like actions, Flow triggers now support more complex data structures, like lists and objects, making it easier than ever to build your triggers in Flow.
Requirements
To create Flow extensions using the CLI, version 3.48 or higher is required. To use dev
version 3.49 or higher is required.
October 02, 2023
Shopify Function configurations now use target identifiers API
As of API version 2023-10 and Shopify CLI 3.49.5, Shopify Functions configuration now uses targets to identify backend extensibility points in Shopify, so that configuring a function is now more like configuring other app extensions.
All Shopify Function APIs now support [targeting]
configuration, with an extension target mapping to a specific WebAssembly export.
[[extensions.targeting]]
target = "purchase.validation.run"
input_query = "src/run.graphql"
export = "run"
Existing functions without targeting
specified will continue to execute and deploy without any changes required. Use of targeting
requires upgrading Shopify CLI to 3.49.4 or higher.
For more information, you can reference:
October 02, 2023
New fields available for Shopify Functions input queries API
As of API version 2023-10, Shopify Functions APIs now include the following values in their input query GraphQL schema, so that you can do more with Functions!
- A
shop
field is now available on the input root (example), which includes:- A
localTime
field, which provides the current date and allows testing the current time and date relative to provided arguments. (example) - A
metafield
field, which provides access to shop-level metafields.
- A
- All Function APIs now include
localization
as part of their input root. (example) - All Function APIs now include
presentmentCurrencyRate
as part of their input root. (example)
For more information, refer to the Shopify Function API references.
October 02, 2023
Shopify Functions now support localization of their name and description API
Shopify Functions now supports localization of the function name and description. Function names and descriptions which are displayed in admin, such as the names of function discount types, can now be translated into the user’s native language.
Use of this localization requires upgrading Shopify CLI to 3.49.5 or higher.
Learn more about localization of functions on Shopify.dev.
October 02, 2023
Updates to GraphQL Admin API for bundles API
As of 2023-10, you can now query the productvariantid field of the LineItemGroup
to identify which variant was used to model the bundle after it was purchased.
In addition, apps can now render custom UI for the bundles card on the product details page by claiming bundle ownership of the product.
Learn more about the product configuration extension for bundles.
October 01, 2023
New webhook topic added for Publication delete events API
As of API version 2023-10, a new webhook topic PUBLICATIONS_DELETE
is added. This webhook occurs whenever a publication is deleted and requires the read_publications
scope.
October 01, 2023
Staff error as Order cancel reason API
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.
October 01, 2023
New compare-at price range field on Product API API
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.
October 01, 2023
Cart Line Items Now Ordered in Reverse Chronological Order Based on Time of Addition API
As of API version 2023-10, we've made changes to the ordering of line items in the cart. In the past, newly added items were placed at the end of the cart without explicit sorting. Now, line items will be sorted in reverse order by the time they were added to the cart, meaning the most recently added items will be positioned at the top.
Developers, be aware that this change could affect the ordering of cart items in your applications. If your app or store's functionality relies on the order of line items or an item's position in the cart, this update is especially relevant to you.
October 01, 2023
Action required
Apps can now change the name and address of their fulfillment service locations API
As of the 2023-10
API version, apps can change the name and address of their fulfillment service locations using the LocationEdit GraphQL mutation.
When a fulfillment service is created, Shopify also creates a new location and associates this with the new fulfillment service. This location inherits it's 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 will inherit the country of the shop. If the fulfillment service is located in a different country from the shop, apps can now update the location to accurately reflect the address of the fulfillment service.
API breaking changes
New user error when editing locations
The LocationEdit
mutation will return a new user error with the CANNOT_MODIFY_ONLINE_ORDER_FULFILLMENT_FOR_FS_LOCATION
code if attempting 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.
New authorization check when attempting to edit a fulfillment service location
From the 2023-10
API version, if you attempt to edit the location belonging to a fulfillment service without having the write_fulfillments
access scope, you will get 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 would return a user error with the NOT_FOUND
code.
October 01, 2023
Action required
Making the primary market more flexible API
As of 2023-10, you can customize the primary market in three new ways:
- The currency can be set to any currency independent of the merchant's shop currency.
- The country can be set independently of the primary market's currency, such that combinations like Canada and USD are now possible.
- Price lists can be created, allowing you to set fixed prices and percentage adjustments for the primary market.
October 01, 2023
Action required
Removal of Customer averageOrderAmount fields on Admin API API
As of GraphQL Admin API version 2023-10, the following Customer
fields have been deprecated: averageOrderAmount
, averageOrderAmountV2
.
Learn more about the Customer
object on Shopify.dev.
October 01, 2023
Manage Quantity Price Breaks for B2B Customers API
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.
October 01, 2023
Action required
Simplify Metafield interaction with default namespaces API
Starting from 2023-10, the Admin and Storefront GraphQL APIs have made the namespace field optional when creating, updating, or querying Metafields and Metafield Definitions. We have updated all relevant mutations and queries to accommodate this change. When working with Metafields from an App, the default namespace will be 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.
October 01, 2023
New field to query Order cancellation API
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.
Learn more about Order
on Shopify.dev.
October 01, 2023
Subscriptions Support for Automatic Discounts API
We've added a subscription options for automatic discounts so that you can create automatic discounts for all your products. See the subscription discounts page for more details.
One important observation is that starting from API versions prior to 2024-01, the DiscountType will classify any automatic discount as "MANUAL". However, from 2024-01 onwards, it will accurately represent automatic discounts as "AUTOMATIC_DISCOUNT".
October 01, 2023
Action required
Deprecation of metafield(id)
query
API
As of 2023-10, the metafield(id)
query is no longer supported. Metafields should be queried via the HasMetafields
connection of metafield owners. If necessary, metafields can be queried by ID via the Node
interface.
October 01, 2023
Action required
Removing Shop.shopifyPaymentsAccount
on Admin API
API
As of 2023-10
, we're removing the deprecated Shop.shopifyPaymentsAccount
field. Use the shopifyPaymentsAccount query instead.
October 01, 2023
Action required
Multiple domains on the primary market API
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:
- New
Market.webPresences
connection has been added - Pre-existing
Market.webPresence
field will return the primary domain web presence for a primary market with multiple web presences -
marketWebPresenceCreate
mutation will now allow adding additional web presences to the primary market - The required
marketId
argument has been removed from themarketWebPresenceUpdate
andmarketWebPresenceDelete
mutations. The new requiredwebPresenceId
argument should be used instead
October 01, 2023
More information about the Order added to the FulfillmentOrder API API
As of { 2023-10 }, we've added the following fields to the FulfillmentOrder
graphQL object: orderId
, orderName
, orderProcessedAt
, channelId
.
With this change, order information required to fulfill an order is accessible on the fulfillmentOrder
object with any of the fulfillmentorders access scopes. The same data is available via fulfillmentOrder.order
, but this requires readorders access scope.
Learn more about FulfillmentOrder
on Shopify.dev.
October 01, 2023
serviceCode is available on the DeliveryMethod API API
As of the { 2023-10 } API version, you can use { DeliveryMethod } 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 } on Shopify.dev.
October 01, 2023
Action required
Breaking change to metafieldDefinitionUpdate mutation: access input type changed API
Note: This change does not affect many apps and you likely aren't affected unless you are defining a variable of type MetafieldAccessInput
for the access property in your MetafieldDefinitionUpdate
mutation.
As of GraphQL Admin API version 2023-10, we are 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 (see Introducing explicit access grants for app-owned metafields for details), which will have a different input for updating the grants on existing definitions than for specifying grants on new definitions.
October 01, 2023
Introducing explicit access grants for app-owned metafields API
As of GraphQL Admin API version 2023-10, you can grant READ
or READ_WRITE
access to your metafields to explicitly specified apps, by using the new grants
property of the access
object in your metafieldDefinitionCreate
and metafieldDefinitionUpdate
mutations. You can pass a list of up to 16 grants per definition, specifying the grantee and the level of access to grant.
This could be useful if you need fine-grained control over access to your metafields, for example you could keep the admin access setting PRIVATE
but explicitly grant access to other app ids.
Learn more about metafield access controls on shopify.dev.
Note that the introduction of explicit grants required a breaking change to the metafieldDefinitionUpdate
mutation - see Breaking change to metafieldDefinitionUpdate mutation: access input type changed for details.
October 01, 2023
Action required
App Revenue Attribution Record API Depreciated Shopify App Store
As of October 2023, the App Revenue Attribution API has been removed.
What does this mean?
appRevenueAttributionRecordCreate
and appRevenueAttributionRecordDelete
are no longer supported in this and future API versions.
What are the alternatives?
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.
October 01, 2023
Checkout branding is moving to stable, with an update on color settings API
As of 2023-09-15, we've made updates to the color settings available in the Checkout Branding API, moving to the 2023-10 stable release.
These changes will give merchants more control over colors in checkout including defining and applying color schemes with more controls over borders, icons, form fields and button colors
Note: please reference the new CheckoutBrandingColorsInput
element and avoid the deprecated CheckoutBrandingColorPaletteInput when making changes to checkout branding via the API. Any previous API calls that set a colorPalette have been automatically updated to the new color system. Future API calls must use the new system in order for changes to be reflected.
Learn more about our color settings here or review the reference documentation.
October 01, 2023
payment_method_name
available in PaymentDetails GraphQL and REST APIs to check for Shop Pay Installments transactions
API
As of 2023-10, a new field payment_method_name
is available in the PaymentDetails
GraphQL API and the payment_details
property in the Transaction resource of the Admin REST API. This field provides information about the payment method used to process an order transaction.
This update is in preparation for changes releasing in January 2024 where new Shop Pay Installment transactions will have a gateway
value of shopify_payments
.
Once released, relying on the gateway value to determine if an order is a Shop Pay Installments transaction will no longer be feasible. Instead, it will be necessary to utilize the payment_method_name
value to identify the transaction type.
For example, you can identify Shop Pay Installments transactions by checking that payment_method_name
has a value of shop_pay_installments
. For historical orders prior to 2023-10, you still need to check the gateway
value to identify Shop Pay Installments orders.
Learn more about the change in the PaymentDetails GraphQL API doc and Admin REST API doc for Transactions.
October 01, 2023
New error code added for MetafieldDefinitionUpdate API
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
on https://shopify.dev/docs/api/admin-graphql/2023-07/enums/MetafieldDefinitionUpdateUserErrorCode
October 01, 2023
Action required
Changes to Subscription Billing Attempt creation behavior API
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 the Subscription Contracts API and Billing Attempts on Shopify.dev.
September 27, 2023
Storefront API now supports product bundles API
It’s now possible for merchants using Hydrogen or the Headless Channel in the admin to offer bundles with Shopify.
Headless merchants can choose from creating fixed bundles and multipacks with our free Shopify Bundles app, using one of these updated bundle apps for more bundle support or using our APIs (Shopify Plus and Shopify partners only) to create a custom bundle offering.
September 27, 2023
POS UI extensions 1.4.0 update: new API, props API
As of September 27, we added the following updates to POS UI Extensions:
- Introduced a
Connectivity API
which gives the UI extension access to the information about the device connectivity. - Added optional
BadgeStatus
prop to theBadge
component - Added optional
overrideNavigateBack
prop to theScreen
component - Added
isDevice
function to theDevice API
All of the changes are available for POS UI extensions version 1.4.0 and POS app version 8.18.0. See the version log for all version details.
September 22, 2023
Enhancements to range and select input settings Themes
New quality of life updates are here for the range and select input settings! Featuring enhancements to the design and functionality of these settings, these two changes will improve the theme editing experience.
We have introduced a new input box as part of the range setting updates. Merchants now have two ways to set their range value, either by using the existing slider or by typing in a value, which offers more flexibility and precision when setting values.
The select setting can now present itself in one of two ways, either as a dropdown list, or as a new segmented control. Depending on the options passed in, the setting will apply the ideal visual treatment accordingly.
Learn more about the range setting and select setting changes in our developer documentation.
September 22, 2023
New input setting text_alignment launched Themes
A new input setting of type text_alignment has been introduced, featuring an icon-based segmented control design.
The setting comes pre-built with default values left
, center
and right
, which cannot be changed.
Learn more about the text_alignment setting in our development documentation.
September 18, 2023
New Liquid section properties and default lazy loading for image tags Themes
We've added default lazy loading for the image_tag
when it occurs in sections further down the page.
We've also added new section properties so you can customize this behavior as well as fix other web performance issues dependent on layout position:
-
section.index
- the 1-based index of a section within its location -
section.index0
- the 0-based index of a section within its location -
section.location
- the location of the section (e.g., template, section group type, etc.)
You can now fix performance anti-patterns like lazy loading images above the fold and layout shifts due to async CSS loading without depending on section settings.
Learn more about the new image_tag
behavior and how to use the new section properties.
September 14, 2023
New GraphQL Admin API field CustomerAccountsV2 exposes shops' customer accounts settings API
As of Admin GraphQL 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 will let you adapt your app's behaviour to the merchant's customer accounts settings.
Learn more about CustomerAccountsV2 on Shopify.dev.
September 13, 2023
Updates to the Theme Store Requirements Themes
We've made updates to the Theme Store requirements, in relation to the prohibited use of externally hosted scripts, and code which interferes with native Shopify functionality. These requirements are contained within Section 7, Consistency and functionality and inform that:
- Scripts included in theme code must be hosted on Shopify's servers, with the exception of approved third-party libraries.
- Themes must not include any Javascript or code that interferes with, or augments, any native Shopify feature within the theme editor or Shopify admin.
These requirements are to ensure all themes in the Shopify Theme Store are secure, reliable, performant, and maintain a consistent user experience.
The new requirements can be viewed on Shopify.dev.
September 13, 2023
Cart validation errors on online store cart and Storefront API API
As of Storefront GraphQL API version 2023-10, we’ve added the VALIDATION_CUSTOM
error type to CartErrorCode
so that you can use validation errors in carts.
Learn more about cart validation errors on Shopify.dev.
September 13, 2023
Admin action extensions are now generally available Tools
Admin action extensions are now generally available and can be deployed to apps. These new extensions enable you to seamlessly integrate your app's functionality into the Shopify admin by embedding workflows and UX on core admin pages.
Once deployed, merchants can find actions in the “More actions” menus at the top of Products, Orders, and Customers pages in the admin. When a merchant launches the extension, it will appear as a modal over the current page. By giving merchants access to your app's functionality, without the need to navigate away from their current task, these extensions help increase efficiency and productivity.
Admin action extensions come with direct API access, enabling them to use the Admin GraphQL API without having to proxy the calls through their app's backend resulting in faster and more responsive apps.
Learn more about admin action extensions on Shopify.dev.
September 12, 2023
Introducing homepage ads on the Shopify App Store Shopify App Store
Developers can now generate more demand for your apps by showcasing them on the homepage of the Shopify App Store.
Learn more about homepage ads on our blog and shopify.dev.
September 12, 2023
Full-funnel Google Analytics attribution Shopify App Store
We’ve added visibility into the app install event itself as part of our existing integration with Google Analytics. This addition enables developers to more easily compare the performance of your Shopify App Store Ads with your other marketing activities on and off Shopify.
In addition to having full visibility into the app install event, you can also now tie the app install event to a Shop ID, enabling richer insights on the type of merchants that are installing your app.
Learn more on our blog and shopify.dev.
September 11, 2023
New APIs added to the latest version of App Bridge Tools
With the latest version of App Bridge, you can use the Print, Scanner and Share APIs.
Both Print and Share rely on web standards. Learn more about these APIs on Shopify.dev
September 11, 2023
Automatic free shipping discount now available on GraphQL Admin API API
It is now possible to offer automatic free shipping discounts using the GraphQL Admin API using discountAutomaticFreeshippingUpdate and discountAutomaticFreeshippingCreate.
Learn more on Shopify.dev.
September 07, 2023
Liquid Console: Test and evaluate Liquid snippets quickly using Shopify CLI Tools
Liquid Console is now available, a tool that enables Liquid testing and evaluation directly in your code editor through Shopify CLI. This feature accelerates your feedback loop, simplifies debugging, and assists developers learning Liquid.
Get started by running the command shopify theme console
in your terminal. This command opens up an efficient way to experiment with Liquid filters and explore Liquid object data structures.
Learn more about Liquid Console on Shopify.dev.
September 07, 2023
Action required
Removal of UsageCharge billing_on field on Admin REST API API
As of Admin REST API version 2023-10, the following UsageCharge
fields have been deprecated: billing_on
.
Learn more about the UsageCharge
object on Shopify.dev.
September 06, 2023
Action required
Breaking changes to ShopResourceLimits API: Deprecate "skuResourceLimits" API
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
on Shopify.dev
August 31, 2023
Removed minimum character requirement for reviews Shopify App Store
We’re simplifying feedback collection and reducing non-informative content. These ratings contribute to the overall score without impacting the recent review ranking updates.
August 28, 2023
Action required
Updates to our Terms of Use and Partner Program Agreement Shopify App Store
EFFECTIVE AUGUST 28, 2023 ACTION REQUIRED
We've made changes to our Partner Program Agreement and API License and Terms of Use. These updates include terms that clarify a partner's responsibility to sync back order data when any type of data is taken off of Shopify and facilitates an order, as well as other important updates.
These changes come into effect as of today, August 28, 2023.
We encourage all developers on our platform to review and be familiar with the API License and Terms and the Partner Program Agreement, so that you understand how to build, run, and grow your app and development business on our platform.
For more information and frequently asked questions, please visit the Shopify Help Center.
August 28, 2023
New inventory states: Safety Stock, Damaged and Quality Control API
You can now use the GraphQL Admin API to adjust new inventory states: safety_stock
, damaged
, and quality_control
.
By moving inventory units to one of these states, they are tracked as part of a merchant's on_hand
inventory, but are unavailable for sale. Inventory quantities in one of these states display as Unavailable to merchants that are tracking inventory in the Shopify admin.
Learn more about the the new states on Shopify.dev.
August 24, 2023
New App Store Requirement App Store requirements
Starting Monday September 18th, languages listed under the Languages section of your App Store listing must be fully available within the app. Any language listed that is not accessible within the app must be removed until translations can be completed.
To learn more, please see the App Store Requirements on Shopify.dev.
August 22, 2023
Search filters for Built for Shopify apps Shopify App Store
We've added a filter for apps that have achieved Built for Shopify status, which can be used in combination with category and feature filters. Learn more on shopify.dev.
August 22, 2023
Cart and Checkout Validation Functions now run in online store cart API
Cart and Checkout Validation Functions now run on the online store cart (they previously only ran on the storefront cart API). You can now apply custom validation logic to buyers on the online store as well as custom storefronts.
Learn more about Cart and Checkout Validation Functions on Shopify.dev.
August 17, 2023
checkout_started now triggers on every checkout visit in checkout extensibility. API
As of August 17, 2023 4:30 pm EDT, checkout_started now triggers on every checkout visit in checkout extensibility.
The customer event, checkout_started, will now trigger for all checkout visits if you upgraded to checkout extensibility. Previously, it only triggered the first time you entered the checkout.
Additional event data will provide additional insights into the customer journey. The customer event reference can be found here.
August 16, 2023
POS UI extensions update: new components, fixes API
As of August 16, we added the following components to POS UI extensions:
DatePicker
TimePicker
DateField
TimeField
EmailField
NumberField
TextField
TextArea
The Tile
component's props have been updated:
enabled
is now optional
onPress
is now optional
badgeValue
added
All of the changes are available for POS UI extensions version 1.3.0 and POS app version 8.15.0. See the version log for all version details.
August 14, 2023
Renderable and Online Store capabilities for metaobjects API
As of 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
August 10, 2023
Server Pixels now has order_id as part of the checkout_completed event API
For Server Pixels, we've added order_id to the checkout_completed event payload so that you can track it server-side.
August 03, 2023
Improvements to app review ranking Shopify App Store
We’ve shipped refinements to our app review ranking system and will continue to further invest in it. If you have any feedback, please submit it to this form.
August 01, 2023
Coming soon: simplified extension versioning and deployment Tools
Soon, you'll be able to release all your extensions at the same time, directly from Shopify CLI. New app-level extension versioning will help you to keep better track of your app's iterations, and allow you to easily revert to previous versions, if needed. You’ll also be able to preview Functions using the dev command, and delete any extension.
This functionality will be included in a future release of Shopify CLI. You'll be able to opt in for each app that you develop.
July 28, 2023
[Developer Preview] Shopify Flow - Use the CLI to manage your tasks Tools
Flow in the Shopify CLI is available in developer preview. We welcome feedback at flow-connectors-dev@shopify.com
Previously, Flow actions and triggers were defined in the partner dashboard. As Shopify CLI adoption has expanded, this meant that you needed to manage and deploy your Flow extensions separately from the rest of your app.
Going forward, you will now create your Flow tasks and actions through the CLI. You can follow these guides for how to create both triggers and actions through the CLI. In addition, you can migrate your existing tasks to be CLI-managed, unifying your code. For more details on what is possible, you can also consult Flow’s reference guide for triggers and actions.
To create Flow extensions using the CLI, version 3.48 or higher is required. Please note that Flow does not currently support the app dev
command.
July 28, 2023
[Developer Preview] Shopify Flow - Use return data in your actions Tools
Your Flow actions can now return data into the Flow environment, allowing your merchants to build new types of automations making use of your app and data.
Several Flow actions make use of return data, allowing merchants to use data from other services. For example the OpenAI connector returns AI-generated text from OpenAI's completion API. Flow's "Get data" actions, including Get order data, return a list of objects that can be used in the workflow.
To use return data, your action must be defined through the Shopify CLI. You must use CLI version 3.48 or higher.
July 27, 2023
Install custom apps on multiple Shopify Plus stores Platform
Starting today partner accounts can distribute a single custom app to all stores within a Shopify Plus organization. As a result, it's now much simpler to manage and maintains apps for multi-store organizations.
Learn more about custom app distribution in the Shopify developer docs.
July 27, 2023
Extension-only apps Platform
You can now create custom apps that contain only extensions without the need to build and host an external web application, or implement OAuth. Custom apps without a requirement for embedded admin pages can now be created from the CLI and installed on merchant stores.
July 27, 2023
Checkout UI Extensions - API Versioning API
We have released API versioning for checkout UI extensions. As part of this release, we are also moving checkout UI extensions over to the new ui extension packages.
- For information on how to adopt API versions for existing extensions, visit our versioning page
- For more details on the what and why, see our post on github
July 27, 2023
[Developer Preview] Admin action and block extensions Tools
Developers can now create and test Admin action and block extensions in their dev stores. These new extensions enable you to seamlessly integrate your app's functionality into the Shopify admin by embedding workflows and UX on core admin pages. By giving merchants access to your app's functionality, without the need to navigate away from their current task, these extensions help merchants be more efficient and productive.
Admin actions and blocks can use direct API access, enabling them to use the Admin GraphQL API without having to proxy the calls through their app's backend resulting in faster and more responsive apps.
Learn more about Admin action and block extensions on Shopify.dev.
July 26, 2023
Built for Shopify badging now live in the Shopify App Store Shopify App Store
Apps that have achieved Built for Shopify status now have special badging and promotional placements in the Shopify App Store, helping them get in front of the right businesses at the right time.
July 26, 2023
Cart and Checkout Validation Function are now available for custom apps API
The Shopify Functions API for cart and checkout validations is now available on production stores for custom apps.
Learn more about building cart and checkout validations in our dev docs: Cart and Checkout validations
July 26, 2023
Introducing the new Customer Account API in developer preview API
The Developer Preview of the Customer Account API is now available for exploration and experimentation. This API can be accessed through the Hydrogen and Headless channels, providing developers with early access to its powerful features. The Customer Account API offers enhanced security, authentication, and personalization capabilities for headless storefronts. It enables passwordless single sign-on across all of the Shopify platform, from Liquid to Hydrogen and non-Hydrogen custom storefronts, all the way through to checkout. The Customer Account API also empowers effortless customer-scoped management for DTC–accounts, orders, drafts, payments, fulfillment, discounts, refunds, and metafields (shop, order, customer).
This version of the Customer Account API is marked as unstable as there will be changes and updates to refine and improve its functionality. We encourage developers to provide feedback and share their experiences to help shape the future iterations of this API.
Read the developer documentation to learn more.
July 26, 2023
App review summaries Shopify App Store
We’ve added app review summaries (powered by Shopify Magic) to the Shopify App Store, helping merchants see your app’s value based on other merchants' experiences. To start, review summaries will appear for apps with at least 100 reviews and a 4.0 rating.
Merchants can leave feedback when viewing the summary. We ask that developers share feedback using this form, which will be shared with the product team.
July 26, 2023
Oxygen Log Drains now available to Shopify Plus Tools
Oxygen has now added support for log drains, which allows developers to forward their Hydrogen storefront’s application logs to third-party log management platforms, including DataDog, Splunk, and New Relic.
Log drains can be easily set up and configured through the Shopify admin, with no code required. Merchants with complex monitoring needs now have full control of log monitoring, analysis, and retention–in your observability service of choice.
This feature is available today for all merchants on the Shopify Plus plan. Read the developer documentation to learn more.
July 26, 2023
Hydrogen updates: New CLI improvements and Remix-optimized components Tools
Building headless stores with Hydrogen is now even faster with our latest release.
Starting a new Hydrogen project with the Shopify CLI now gives you more options. You can scaffold a full purchase journey with standard app routes, add your favorite styling library, and configure language and currency settings, and connect your live product inventory to your Hydrogen app with a single command.
Hydrogen also features pre-built components optimized for Remix for better performance, SEO, and DX – from cart, image, product form, to pagination. And enhanced type safety support with built-in GraphQL codegen ensures your build is least error-prone.
Learn more about our latest release in detail and what’s coming next.
July 26, 2023
Remove rate limits on the Storefront API API
Storefront API now serves all legitimate requests from both private and public clients without rate limits. Headless stores will stay protected against bot activity and never hit a throttle, no matter the size of traffic they receive. All included for free in your plan.
Read the developer documentation to learn more.
July 26, 2023
Updates to the App Design Guidelines Tools
We've updated the App Design Guidelines for better clarity and coverage of the trickiest parts of app design. “Mandatory” and “Unacceptable” directives are now “Must Do” and “Do Not”, to clarify that all these directives must be met to qualify for Built for Shopify status. We have also added new guidelines for Forms, Marketing, and Admin UI extensions.
All Built for Shopify applicants will be evaluated against the updated App Design Guidelines starting September 1, 2023.
See the new guidelines on Shopify.dev.
July 26, 2023
The Summer ’23 Edition is live! Tools
There are now more ways than ever to customize and extend Shopify, from storefront to checkout to admin.
Explore the latest updates to our suite of APIs, SDKs, and developer tools.
- Create the best checkout experience with 17 new APIs and updates for Shopify Checkout
- Build Hydrogen storefronts faster with Remix-optimized workflows and CLI improvements like enhanced type safety support, and scale effortlessly without rate limits on the Storefront API
- Develop apps faster and more easily with our new Remix app template, extension-only apps, and config as code
- Extend the Shopify admin in entirely new ways with admin UI extensions
- Stand out from the crowd—Built for Shopify badging and promotional placements are now live in the Shopify App Store
- Customize Shopify’s backend logic with new Function APIs, support for JavaScript now generally available, and faster development and iteration with the
shopify app dev
command
Visit the Editions website to see all the developer announcements.
July 26, 2023
Cart Transform Function API API
You can now use the Cart Transform Function API to expand or merge cart line items. The Cart Transform API is used to build customized bundles.
For more information on the Cart Transform Function API click here.
For an overview on building a custom bundle offering click here.
July 26, 2023
New and updated APIs to build product bundles API
The ProductVariantComponent API has recently been added to the GraphQL Admin API allowing for the implementation of fixed bundles.
To build customized bundles, use the newly launched Cart Transform Function API.
For more information on creating bundles click here.
July 26, 2023
Checkout UI Extensions - New APIs for Summer Editions API
- Shipping address write API - Extensions can use the applyShippingAddressChange API to modify address values on behalf of a buyer.
- B2B context APIs - Extensions can now read details about a purchasingCompany as well as checkout settings that apply to the current buyer
- Support for new metafield types - Extensions can now read metafields on carts, companies, or companyLocations. They can also write to cart metafields
July 26, 2023
Polaris v12 beta now available Platform
The beta release of Polaris v12 is now available, providing developers with early access to resources for updating the look and feel of your apps to fit seamlessly within the newly redesigned Shopify admin.
Learn more about Polaris v12-beta on polaris.shopify.com.
July 26, 2023
App Bridge via tag Tools
We have released a new version of App Bridge. You can add the <script>
tag to the <head>
of your app pages and get the benefits immediately.
App Bridge has been written from the ground up to be more familiar to web standards.
App Bridge will keep itself up to date automatically, so you don't have to worry about version updates.
Learn more about App Bridge in the documentation
July 26, 2023
Simplified extension versioning and deployment Platform
As of today, extensions are packaged and deployed at the same time, directly from Shopify CLI. New app-level extension versioning will help you to keep better track of your app's iterations, and allow you to easily revert to previous versions.
Until September 5th, you can opt in to get access to simplified deployment. Simplified deployment is available in Shopify CLI 3.48.
On September 5th, all apps will automatically be opted in to simplified deployment.
July 26, 2023
Config as Code Platform
Starting today, you can configure and manage your apps directly in your codebase without having to visit the Partner Dashboard. Using Shopify CLI, you can link your shopify.app.toml
file to an app, modify the configuration, and push the configuration live.
July 20, 2023
Smart Grid management for Point of Sale now available API
As of the latest unstable GraphQL API version, we have introduced the ability to utilize the Admin API for managing Smart Grid for Point of Sale. This enhancement enables the creation and naming of Smart Grid layouts that are not yet linked to any location. Once prepared, the API facilitates the assignment of a layout to single or multiple locations. Any subsequent modifications to this layout will be reflected across all assigned locations, eliminating the necessity for individual manual adjustments.
Just request the appropriate access scope(s) be added to your app.
Learn more about Smart Grid management on Shopify.dev.
July 19, 2023
Introduce Fulfillment Constraints built on Shopify Function API
- As of
2023-10
version of the Shopify Functions API, you can use the Fulfillment Constraints API to have a higher degree of customization when defining 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 on Shopify.dev.
July 18, 2023
Storefront API Cart BXGY discount line folding API
As of today, the way cart lines are folded when a BXGY discount is applied to the cart is changing in the Storefront API. The lines will now be grouped by applied discount and discounted amount. This change ensures that the Storefront API behaviour matches the existing line folding functionality of the Online Store/Ajax API Cart.
For example, if you have a buy one get one free discount for a product variant and you add 3 of that variant to a cart. The cart lines will be; * Item with quantity of 1, no discount applied * Item with quantity of 1, BXGY discount code applied, adjusted discounted price of 0 * Item with quantity of 1, BXGY discount code applied, full price of product variant
This change reflects the existing line folding functionality of the Online Store/Ajax API Cart.
July 17, 2023
Action required
Changes to Ajax API Cart token format API
Ajax API cart tokens will now be returned with a new format. The new format will include a prefix c1-
however the API features and functionality remain unchanged. Apps and themes should be designed to handle cart tokens in any format and of any length. Treat the cart token as a random identifier that will change in the future.
Action Required: Ensure that any app and theme code is free from hard-coded assumptions (ex. Using regex to identify a cart token) on the format and structure of the cart token.
July 14, 2023
url
available on MediaImage.originalSource
GraphQL field
API
As of API version 2023-10
, url
field is available on the GraphQL MediaImage
's originalSource
field https://shopify.dev/docs/api/admin-graphql/2023-07/objects/mediaimage#field-mediaimage-originalsource.
This will be a signed URL that is valid only for a short period of time. It provides access to the originally uploaded uncompressed image.
July 14, 2023
Shopify Protect protection status on Admin API API
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 asynchronous 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.
July 12, 2023
Updated integrations field for app listing Shopify App Store
We’ve combined the “Fit seamlessly” and “Integrates with” fields on our app listing pages into one place. Apps that are built using the Checkout and Point of Sale extensions will have them automatically noted in the “Works with” field on the app listing.
Log into your Partner Dashboard and click on Apps > Manage Listing to view the “Integrations” field for your app to ensure the content is up to date.
July 12, 2023
Updated merchant notification system for apps Shopify App Store
We’ve updated the app settings page with a new notification system to inform merchants of notable insights on their installed apps. Merchants will be able to quickly identify apps that are unsupported, incompatible, require action, on free trial, paid (including the cost), or least used.
July 12, 2023
Update on admin performance for Built for Shopify Shopify App Store
As of July 12, we're temporarily removing the Cumulative Layout Shift (CLS) metric from our admin performance standard for Built for Shopify.
In order to meet our admin performance standard for Built for Shopify, apps will still need to meet performance targets for Largest Contentful Paint (LCP) and First Input Delay (FID).
We are making this change to improve the measurement of this metric. We expect CLS to become a part of our admin performance standard again by the end of 2023.
Learn more about admin performance on Shopify.dev
July 01, 2023
Search and predictive search are now available on Storefront API API
You can now use search
and predictiveSearch
queries in the GraphQL Storefront API to enable natural language search on your custom storefronts.
The search API returns the most releavant search results among product, page and article resource types. Merchants can use the Shopify Search & Discovery app to change the default value of the resource types and customize search results.
The predictiveSearch API helps you implement a predictive search dropdown interface where suggested results are displayed immediately as buyers type into the search bar.
Learn more about new search APIs on Shopify.dev.
July 01, 2023
Introduce new stale
status to Subscription Contracts
API
As of API version 2023-07, you can use the new Subscription Contract stale
status to express a contract that has been marked as stale due to inactivity.
We're deprecating the SubscriptionDraftErrorCode STALE_CONTRACT
and replace it by CONCURRENT_CONTRACT_UPDATE
for a better description of the error.
We're introducing the new error code CONTRACT_STALE_STATUS
to SubscriptionBillingCycleErrorCode and SubscriptionDraftErrorCode to indicate whenever we attempt to update or bill a contract that hasn't been used for 1 year.
July 01, 2023
trackingParameters
is available on Product
, Collection
, Article
, Post
and SearchQuerySuggestion
GraphQL types
API
We've added trackingParameters
on Product
, Collection
, Article
, Post
and SearchQuerySuggestion
when it is a part of results coming from search
and predictiveSearch
as adding this to a page URL when it is linked from a search result allows for tracking the origin of the traffic.
Learn more about trackingParameters
on Shopify.dev.
July 01, 2023
Exposing ONLINE_STORE_POST_PURCHASE_CROSS_SELL fulfillment hold reason on Admin API API
As of 2023-07 partners will be able to determine whether fulfillment has been on hold for a post-purchase with the reason ONLINE_STORE_POST_PURCHASE_CROSS_SELL
.
Learn more about this new feature here
July 01, 2023
Release of Shop Promise details presented to buyer at checkout API
The DeliveryMethod object now has a brandedPromise field that can be used to determine if an order was branded with "Shop Promise" at checkout.
Additionally, the MailingAddress object now includes the timeZone field, which can be used with the DeliveryMethod's maxDeliveryDateTime field, to determine the date and time according to the time zone of the destination address.
The new field on the GraphQL DeliveryMethod object is:
- brandedPromise
Learn more about this new field in the GraphQL reference docs.
The new field on the GraphQL MailingAddress object is:
- timeZone
Learn more about this new field in the GraphQL reference docs.
Learn more about Shop Promise eligibility.
July 01, 2023
New error code added to inventory quantity mutations API
As of API version 2023-07
, a new error code item_not_stocked_at_location
will be added to the the inventorySetOnHandQuantities
, inventoryAdjustQuantities
, and inventoryMoveQuantities
mutations. This error code is returned when you attempt to change inventory quantities for an item that is not stocked at the specified location.
Learn more about managing inventory quantities on Shopify.dev.
July 01, 2023
Action required
Function parameter values can be queried in the Segmentation API API
As of GraphQL Admin API Version 2023-07
, you can use the new functionParameterQueryName
argument on segmentValueSuggestions
to query for function parameter value suggestions for Customer Segmentation.
For example, the products_purchased
filter has the function parameter id
: products_purchased(id: '2012162031638') = true
. To retrieve a list of possible Product IDs to use for the id
function parameter, provide filterQueryName: 'products_purchased', functionParameterQueryName: 'id'
as arguments to the segmentValueSuggestions
endpoint.
July 01, 2023
PUBLIC_READ Access Setting for App Owned Metafields API
As of the 2023-07 Admin API release, you can now apply a PUBLIC_READ
access setting to your metafield definitions. If your metafield definition is PUBLIC_READ
, this means:
- The merchant can read the metafields on the definition.
- All installed applications with proper access scopes can read the metafields on the definition.
- Only the owner of the definition can write metafields.
This new setting builds upon the PRIVATE
, MERCHANT_READ
, and MERCHANT_READ_WRITE
access settings released in January 2023.
Note that the access
field can only be set when the definition is in your own reserved namespace.
Learn more about access controls.
July 01, 2023
Webhooks for B2B Customers Flow Primitives API
As of the Admin API 2023-07
Release, we are providing additional webhook notifications for changes to the major entities within the B2B Customers product. These hooks are provided to enable better integration with Flow. The following webhooks are provided:
company_contact_roles/assign
company_contact_roles/revoke
Learn more about these webhooks on Shopify.dev
July 01, 2023
New mutations fulfillmentOrderSplit
and fulfillmentOrderMerge
that enables to split and merge Fulfillment Orders
API
As of API version 2023-07 partners will be able to split and merge fulfillment orders. Patners can split a single fulfillment order into multiple fulfillment order dividing the line line items across multiple fulfillment orders. Partners can also merge fulfillment orders together into a single fulfillment order
Learn more about fulfillmentOrderSplit
here and fulfillmentOrderMerge
here
July 01, 2023
New error codes added to fileUpdate
mutation
API
As of API version 2023-07 new error codes FILENAME_ALREADY_EXISTS
and INVALID_FILENAME
will be added to the fileUpdate
mutation.
These error codes are returned when you attempt to update the filename (URL Handle) and the input either matches an existing filename (URL Handle) or it is invalid.
July 01, 2023
Moving total_count field from SegmentStatistics to CustomerSegmentMemberConnection API
As of 2023-07, you can use total_count on CustomerSegmentMemberConnection endpoint, which will provide you with the total count of your specified customer segment. Also, as of 2023-07, we're removing total_count field on SegmentStatistics. Using the total_count functionality will make it easier to know the count of members of your specified segment.
July 01, 2023
Action required
Creating a single-country market will no longer automatically create a subfolder web presence for this market API
As of API version 2023-07, we are no longer automatically creating a subfolder web presence for a single-country market. To maintain existing behaviour, you can follow up creating a market with the marketWebPresenceCreate
mutation. Passing in the country code of the market region as the subfolderSuffix
would create the corresponding web presence.
July 01, 2023
Action required
Deprecation of Unity Buy SDK Tools
Today we are announcing the deprecation and end-of-life for our Unity Buy SDK. Effective July 1, 2023 the library’s repository will be placed into read-only mode and will no longer receive any updates. The repository will remain accessible as a reference to those who are still utilizing it today.
This does not mean, however, that the ability to build commerce experiences in Unity powered by Shopify will no longer exist. The Unity engine provides robust APIs for performing HTTP requests which can be used with our Storefront GraphQL API. Additionally, there are several open-source projects available which provide varying levels of GraphQL functionality within the Unity engine.
For more information, please see our Unity Buy SDK documentation. We look forward to watching our merchants continue to build and push the boundaries of commerce in the constantly changing digital world.
July 01, 2023
Allows updating the filename of a file in the fileUpdate mutation. API
As of API version 2023-07 we have added a new field called filename
to the fileUpdate
mutation. This new field allows you to update the filename
of both generic files and images.
To learn more about the fileUpdate
mutation, visit the GraphQL reference in our developer documentation.
July 01, 2023
Allows specifying a custom filename when using fileCreate mutation. API
As of API version 2023-07 , you can now specify a custom filename
when using the fileCreate
mutation to create files that will appear in the Admin.
To learn more about the fileCreate
mutation, visit our developer documentation.
July 01, 2023
Added new field type
to TranslatableContent
API
As of 2023-07
, you can use the new field type
on TranslatableContent
to get the type of the translatable content.
The new type
field gives more information about the underlying translatable content which enables the ability to conditionally render UI elements such as input fields.
Learn more about the LocalizableContentType
object on Shopify.dev
July 01, 2023
Contextual Product Feeds are Generally Available API
As of Admin API version 2023-07, all partners have access to Contextual Product Feeds. Partners will be able to receive contextual product data for any contexts they want that are supported by the merchant. To get started, the partner will need to create product feeds and subscribe to productfeeds/incrementalsync and productfeeds/fullsync webhooks.
For more information on how to query for product feeds, visit our developer documentation.
July 01, 2023
Expose the discount class for applied_discounts and discount_allocations on a line item for the Checkout Admin REST API API
The 2023-07
API version of the Checkout Admin REST API will expose the discount_class
attribute in the line_items[n].applied_discounts
and line_items[n].discount_allocations
.
The discount_class
identifies the type of discount applied to a line_item:
PRODUCT
- denotes a Product class discount that applies to specific products only.
ORDER
- denotes an Order class discount that applies across all line items.
The following example shows the "discount_class": "ORDER"
present for the line item when an order class discount was applied to a checkout.
"line_items": [
{
"id": "a93dfd7540730e5d9812a92fac5a640e",
"key": "a93dfd7540730e5d9812a92fac5a640e",
"product_id": 6,
"variant_id": 10,
"sku": "jeans1",
"vendor": "",
"title": "Jeans",
"variant_title": "Black",
"image_url": "",
"taxable": true,
"requires_shipping": true,
"gift_card": false,
"price": "50.00",
"compare_at_price": "30.00",
"line_price": "50.00",
"properties": {},
"quantity": 1,
"grams": 0,
"fulfillment_service": "manual",
"applied_discounts": [],
"discount_allocations": [
{
"id": null,
"amount": "20.00",
"description": "ORDER$20",
"created_at": null,
"application_type": "discount_code",
"discount_class": "ORDER"
}
],
"tax_lines": []
}
],
July 01, 2023
Subfolders can now exist on ccTLD domains API
As of 2023-07, you can now create region-specific subfolders on country-code top-level domains (ccTLDs), such as shop.ca or shop.fr. Previously, subfolders could only be created on generic top-level domains (gTLDs).
July 01, 2023
Action required
Update credit card payment method payload in Payments Apps API 2023-07 release API
As of 2023-07
Payments Apps API version for credit card payments app extensions, we're changing the structure of the decrypted message of payment_method.data.encrypted_message
sent in the HTTP request body from Shopify to your payments app. This change aims to consolidate the API design that we follow, as demonstrated in the payment_method object.
Learn more about the decryption of the encrypted_message
on Shopify.dev.
July 01, 2023
Adding metafield attributes to the Admin API CustomerSegmentMember
object
API
As of GraphQL Admin API version 2023-07, the CustomerSegmentMember
object now has the attributes and connections to access the metafields associated to the customer.
Learn more about the CustomerSegmentMember
object on Shopify.dev.
July 01, 2023
Adding acceptsMultipleValues
attribute to SegmentEventFilterParameter
object
API
As of GraphQL Admin API version 2023-07, the SegmentEventFilterParameter
object now has the attribute acceptsMultipleValues
to denote if the parameter can handle multiple values. For example, the id
parameter for the products_purchased
function can accept multiple values: products_purchased(id: (2012162031638, 1012132033639) = false
.
Learn more about the Segment query language
on Shopify.dev.
July 01, 2023
New mutation for removing a CompanyContact from a Company. API
As of the 2023-07
release, you can use the companyContactRemoveFromCompany
mutation in GraphQL to remove a company contact from a company even if they have placed orders on behalf of the company.
For more information on this new mutation, visit our developer documentation
July 01, 2023
Added new field isMarketplace
on ChannelDefinition
API
As of 2023-07
, you can use the new field isMarketplace
on ChannelDefinition
to check if a channel definition represents a marketplace such as Shops on Facebook and Instagram or Buy on Google.
The new isMarketplace
field gives the ability to know if any object that references ChannelDefinition
is related to a marketplace channel. For example, you can know if an order was placed on a channel that is a marketplace or if the store has available channels that are marketplaces.
Learn more about the isMarketplace
field on Shopify.dev.
July 01, 2023
Added new field taxExempt
on Order
API
As of GraphQL Admin API 2023-07
, we've added the taxExempt
field to the Order
object. You can use this field to determine whether or not an order was exempt from taxes.
Orders can be exempt from taxes if the "Charge taxes" option was disabled during the creation of a Draft Order, or if the order was created for a customer with the "Collect tax" option disabled.
Note that any products that are tax exempt in an order are not considered when calculating the taxExempt
field .
Learn more about the taxExempt
field on Shopify.dev.
July 01, 2023
Deprecation of productDuplicateAsync
and introduction of productDuplicateAsyncV2
and productDuplicateJob
API
In the Admin API 2023-07
Release, we are deprecating the productDuplicateAsync
mutation and introducing the productDuplicateAsyncV2
mutation and the productDuplicateJob
query.
The new mutation brings several improvements over productDuplicateAsync
, enhancing the overall user experience and performance of the endpoint.
- productDuplicateAsync has been deprecated.
- productDuplicateAsyncV2 has been introduced.
- productDuplicateJob query has been introduced to fetch the status of an existing product duplication job.
Learn more about these changes at productDuplicateAsyncV2 and productDuplicateJob.
July 01, 2023
Adding the ability to sort orders by total item quantity API
As of Admin API 2023-07
release we've added TOTAL_ITEM_QUANTITY
to OrderSortKeys
so that you can sort orders by the total quantity of items.
For more information on all of the other order sort keys that are available, visit our developer documentation.
July 01, 2023
New fields on Shopify Function APIs API
New fields have been added to all Shopify Functions APIs.
- The
sellingPlanAllocation
field is now available onCartLine
. - The
title
field is now available onProduct
,CustomProduct
, andProductVariant
. - The
inCollections
field onProduct
allows for checking membership in individual product collections. - The
hasTags
field onProduct
andCustomer
allows for checking the presence of individual tags. - The
isAuthenticated
field onBuyerIdentity
identifies whether the customer is logged in.
For details on these fields, see the API Reference documentation for Shopify Functions.
July 01, 2023
Partner Exclusive Mutations to Support the Transfer of Subscriptions Between Shops API
As of Admin API version 2023-07, selected partners can use the new customerPaymentMethodGetDuplicationData and customerPaymentMethodCreateFromDuplicationData to migrate subscription contracts and its vaulted payment method between shops within the same organization.
This is currently limited to specific partners, and to subscriptions checked out through Shop Pay.
No action is needed from developers at this moment.
July 01, 2023
Determining local pickup inventory availability in the Storefront API API
As of version 2023-07 of the Storefront GraphQL API, you can now use the StoreAvailability.quantityAvailable
field to determine the inventory available for a product variant at a particular local pickup location.
July 01, 2023
Added new field tax_exempt
on the Order
resource for the REST Admin API
API
As of REST Admin API 2023-07
, we've added the tax_exempt
field to the Order
resource. You can use this field to determine whether or not an order was exempt from taxes.
Orders can be exempt from taxes if the "Charge taxes" option was disabled during the creation of a Draft Order, or if the order was created for a customer with the "Collect tax" option disabled.
Note that any products that are tax exempt in an order are not considered when calculating the tax_exempt
field .
Learn more about the tax_exempt
field on Shopify.dev.
July 01, 2023
Action required
Translate filter settings API
As of 2023-07 we're introducing a new capability to translate filters.
When enabled, all filter labels will be eligible for translations through the Translations API as well as the Translate and Adapt app.
July 01, 2023
Tax partners can now configure the state of an tax app configuration API
We’ve added the taxAppConfigure mutation, which now enables selected tax partners to configure the state of an existing integrated tax service. This extended control provides partners with more flexibility and adaptability in managing tax services, ensuring a smoother, more efficient operation for their application.
For more information, visit shopify.dev
July 01, 2023
Unknown sale type API
As of 2023-07
, we are introducing sales type UnknownSale
with line type UNKNOWN
that represents new types of sales that may be added in the future and do not exist on older versions.
This is a complimentatry object type for the SalesLineType UNKNOWN and implements the Sale interface.
July 01, 2023
Action required
Breaking changes to Product Feeds API API
As of Product Feeds API version 2023-07, we're introducing two breaking changes to the productfeeds webhook topics:
- Deprecated use of bulk in favour of full for the
product_feeds
/full_sync
webhook topic. - Corrected spelling of occurred_at field in metadata for product_feeds notifications metadata.
Partners who wish to continue receiving full sync notifications should start using the productFullSync mutation instead of productBulkSync
.
July 01, 2023
Added new tax_partner/update
webhook
API
As of the Admin API 2023-07
Release the tax_partners/update
webhook will be available.
The tax_partners/update
webhook will be called whenever a tax partner is added or updated. Partners can use this webhook to determine when a merchant has made changes to the partner's tax app.
Learn more about these webhooks on Shopify.dev
July 01, 2023
Additional fees as a sale line type API
Sales records can now be of type AdditonalFeeSale
as of 2023-07
, which represents a sale associated with an additional fee charge.
For more information on this new type implementation, visit the documentation for the sale interface.
July 01, 2023
Purchase order numbers added to Orders/DraftOrders object API
As of API version 2023-07 we have added a new field called poNumber
to the Order
and DraftOrder
object.
The OrderInput
and DraftOrderInput
input objects now accept a poNumber
. This will set the purchase order number during an orderUpdate
, draftOrderUpdate
and draftOrderCreate
mutation.
June 30, 2023
Manage quantity rules for B2B customers API
As of the 2023-07
version of the Admin GraphQL API, you can use the quantityRulesAdd
and quantityRulesDelete
mutations to manage product variant minimums, maximums and increments for B2B customers. Use the quantityRules
field on ProductVariantContextualPricing to view the quantity rules applied for the companyLocationId
input.
Learn more about the Quantity Rules API on Shopify.dev.
June 28, 2023
POS UI extensions update: new components, APIs, fixes API
As of June 26, we added a PinPad component, a Product Search API and a Device API.
POS UI extensions Navigator component now supports a new prop called initialScreenName
. It can be used to set the name of the Screen
to initialize to. The List component was updated to support badge
property for leftSide
image, and toggleSwitch
property for rightSide
.
We also made the amount
field in the applyCartDiscount
function of the Cart API optional to allow for code discounts.
All of the changes are available for POS UI extensions version 1.2.0 and POS app version 8.12.0.
June 28, 2023
Order confirmation number API
As of GraphQL Admin API version 2023-07, you can filter orders by their confirmation number.
The confirmation_number filter is available on the orders connection. This number corresponds to the order confirmation number that customers see after checkout.
June 27, 2023
One page checkout in the checkout editor Platform
Developers can now customize and preview one page checkout from the checkout editor. With this new developer preview, one page checkout is automatically compatible with existing checkout extensions and customizations. Preview and prepare for one page checkout today.
Learn more about one page support in the checkout editor in the Shopify developer docs.
June 27, 2023
Checkout UI Extension limits are raised to 50 Platform
We heard you love extensions. We heard you want more per app. So we shipped 10x the goodness so apps now have a limit of 50 extensions.
June 27, 2023
Updates to order status page UI extensions API
We’ve made it easier than ever to build checkout UI extensions on the order status page! More specifically, we’ve added new getting started tutorials to help you build extensions that target all, or specific pages in the customer journey. We’ve also launched a new testing experience in the checkout editor, so you can preview what merchants will see when customizing their post-checkout extensions. Learn more.
June 26, 2023
Resource url handles are now translatable API
Using the TranslationsRegister GraphQL API, you can now register translations for resource handles in order to create localized online store urls for merchants. For example, merchants may want their product URLs to be example.com/products/en-us/red-shoes
for English-speaking customers and example.com/products/es-us/zapatos-rojos
for Spanish-speaking customers.
The resource types that support translatable url handles are Products, Collections, Articles, Blogs, and Pages. This change is supported across all api versions.
June 22, 2023
App review ranking changes Shopify App Store
On June 22nd we introduced a new ranking system for app reviews that factors in the quality of a review to determine which reviews are surfaced first. Reviews with helpful, meaningful content that were submitted recently by merchants who have used the app for an extended period will appear first.
All reviews are continuously monitored by Shopify and non-compliant reviews will be automatically removed.
June 19, 2023
Action required
New chargebackLiability field for onsite credit card payments apps with 3-D Secure API
As of version 2023-07
of the GraphQL Payments Apps API
, you must provide the chargebackLiability field in the 3-D Secure PaymentSessionThreeDSecureAuthenticationData input object. Merchants will benefit from this information to better manage their orders.
Learn more about the GraphQL Payments Apps API
and 3-D Secure on Shopify.dev.
June 16, 2023
Additional webhook subscription topics for customer tags API
As of the Admin API 2023-07
release for GraphQL, we're providing additional webhook subscription topics for customer tags:
CUSTOMER_TAGS_ADDED
CUSTOMER_TAGS_REMOVED
Learn more about these webhooks on Shopify.dev.
June 15, 2023
Release an API to update marketing activity delivery status on abandonment objects into a stable version API
As of 2023-07, you can use the abandonmentUpdateActivitiesDeliveryStatuses
to update the delivery status of marketing activities created via Flow action extension. We are deprecating the abandonmentEmailStateUpdate
mutation since it's being replaced by the new API.
June 15, 2023
Deprecation of image-related fields in product and product variants mutations API
As of GraphQL Admin API version 2023-07, we're deprecating a set of fields used for associating images with products and variants. Please, have a look at the list of upcoming changes:
- On
ProductInput
: we're deprecating theimages
field. Use the newly introducedmedia
field instead. - On
ProductVariantInput
: we're deprecatingimageId
andimageSrc
fields. UsemediaId
andmediaSrc
instead. - On
ProductVariantsBulkInput
: we're deprecating theimageSrc
field. UsemediaSrc
instead.
Learn more about ProductInput
, ProductVariantInput
and ProductVariantsBulkInput
on Shopify.dev
June 07, 2023
Increased Admin API rate limits for the Advanced plan API
Shopify increased Admin API rate limits for the Advanced plan by 2x over standard limits. Apps installed on Advanced plan stores will now get 100 points/second on the GraphQL Admin API and 4 requests/second on the REST Admin API.
June 06, 2023
Action required
Removal of the delivery_category field on order shipping lines. API
As of 2023-07, we're deprecating the order shipping line delivery_category
property. The property has not been in use since 2020-06-12
and will no longer be present.
June 05, 2023
App Store search filters by extension for checkout and Point of Sale Shopify App Store
On June 5 we released a new filter for App Store search results pages that will allow merchants to easily identify apps with extensions for Shopify Checkout and Shopify Point of Sale.
May 31, 2023
Action required
CLI 2.x is deprecated Tools
As of May 31, 2023, Shopify CLI 2.x is deprecated for app and theme development, and is no longer supported. You should use Shopify CLI 3.x for all development tasks moving forward.
Shopify will block app and extension commmands for all CLI 2.x users in the coming weeks.
Theme commands will continue to function in the near term.
Learn how to migrate to Shopify CLI 3.x using the following guides:
May 25, 2023
Storefront API is now available to non-channel apps API
Apps no longer need to be a channel in order to access the Storefront APIs. Just request the appropriate unauthenticated access scope(s) to your app.
Take advantage of the Storefront API’s powerful contextualization features to build rich customer-facing experiences for your merchants.
Learn more about authenticating with the Storefront API on Shopify.dev
May 24, 2023
Transition of application credit creation to the Partner API API
As of Admin API version 2023-07, we are deprecating creating application credits through the Admin API. Both the REST resource, and the GraphQL mutation will have their ability to create application credits deprecated. Going forward, create application credits using our new appCreditCreate mutation in the Partner API.
This change will allow us to implement new features for application credit creation, such as allowing Partners to issue credits to Shops that have uninstalled their app.
May 19, 2023
Add color schemes to themes Themes
Theme developers can now add color schemes
to themes. This update adds clarity and flexibility to the theme editing experience by allowing theme-defined and merchant-defined color schemes, adding a visual preview that enables merchants to more easily and predictably update theme colors, and allowing merchants to implement theme changes at the global, section, and block level within their theme.
A solution which will enable theme developers to specify how to migrate merchants’ theme data during the update process when introducing architecture changes (ex: changing scope of settings, modifying schema structure in other ways etc.) will be available later this summer.
Learn more about color schemes
in the dev docs
May 17, 2023
duplicateResolutionMode added to fileCreate API
As of 2023-07, you can use the new duplicateResolutionMode on the fileCreate mutation to control how duplicate filenames are handled.
Learn more about duplicateResolutionMode on Shopify.dev.
May 15, 2023
Action required
Partner email verification Platform
Starting May 15, we will begin enforcing partner email verification to keep the Shopify App Store safe and secure and to better serve our partner community.
Account owners, please use the banner in the partner dashboard to verify your email as soon as possible avoid restrictions to your dashboard access.
May 15, 2023
metafieldsSet support for MediaImage API
As of 2023-07, you can use the metafieldsSet mutation to set metafields on images via MediaImage GIDs.
Learn more about metafieldsSet on Shopify.dev.
May 15, 2023
Add scanner support to POS UI Extensions API
As of May 15, camera and hardware scanning is supported for POS UI Extensions. Available for POS UI Extensions version 1.1.2 and POS app version 8.9.0.
CameraScanner This new component utilizes the device's camera for scanning. The CameraScanner provides a live feed with guidance markers to help users align the camera with barcodes.
Scanner API This new API allows UI extensions to access scanner data and available scanning sources. The API also introduces support for hardware scanners that have external or embeddeed scanning capabilities.
May 12, 2023
Adding read and write permissions for Dependabot secrets to Shopify’s GitHub app Tools
Shopify’s GitHub app now requests read and write permissions for Dependabot secrets. This update supports improvements to the developer experience for Hydrogen headless storefronts hosted on Oxygen.
Currently, deployments to Oxygen are triggered by pushes or merges to a GitHub repo. However, Dependabot, GitHub’s dependency management service, doesn’t have access to the API tokens required to create a deployment. By adding these new permissions, Dependabot will be able to trigger preview deployments on Oxygen when creating pull requests that bump package versions. This change will let developers more quickly validate that automated updates can be safely merged.
Learn more about Shopify’s GitHub integration.
May 10, 2023
Improve your themes with theme check in the code editor Themes
As of today, you can prevent Liquid errors and improve the quality of your themes with theme check in the code editor. This new feature identifies and warns you about potential issues in your code, so you can fix them before they affect the performance of your store.
Learn more about the code editor on Shopify.dev.
May 09, 2023
Increased number of dynamic sources available within templates Themes
Based on your feedback, we've updated the number of dynamic sources you can add within an online store template. You can now add up to 100 dynamic sources per template, and 50 per static section.
Specifically, we now support:
- 100 Dynamic sources in a JSON template
- 100 Dynamic sources in general theme settings
- 100 Dynamic sources in a section group
- 50 Dynamic sources in a single setting
- 50 Dynamic sources in a static section
Updated values and more info can be found in Shopify dev docs
May 09, 2023
Action required
Changes to Merchant Asset URLs API
Update: In the coming weeks we'll start serving some store assets (e.g. images, JS or CSS) from a shop’s store domain rather than a Shopify CDN domain. Certain assets will continue to use the old URL format cdn.shopify.com/…
, while the rest will be converted to a new URL format: shop.example.com/cdn/…
. The new URL format can be seen in action on the demo store www.snowdevil.ca. The old cdn.shopify.com/…
URL format will continue to work indefinitely.
The new format will be returned by liquid tags and will be present in Shopify-rendered storefront HTML, but the old format will continue to be used in all API responses. This new asset delivery approach is not used on headless shops, which will continue to use cdn.shopify.com/…
.
The domain used in the new URL format is dependent on the request context: it may be the store’s permanent myshopify.com
domain or a custom domain depending on which one a buyer visits. Code that depends on the old URL format may need to be updated to support both formats.
In addition, new images associated with products now use the /files
path format rather than the previous /products
. Previously uploaded product images will continue to use the /products
path.
These changes are being made to provide a variety of benefits to merchants:
- Improved page load times on storefronts to provide a better buyer experience and improve conversion rate. Improvements to page load speed are potentially on the order of hundreds of milliseconds.
- Improved security: because we don't need to allow for cross-origin assets from our CDN, we can use more restrictive content security policies (CSP) and cross-origin resource sharing (CORS) policies.
- Less Shopify branding on merchant domains.
Learn more about the Shopify CDN and liquid filters on Shopify.dev
Action Required:
- Ensure that any app and theme code is free from hard-coded assumptions on the old URL format
May 08, 2023
Shopify Functions input limit updates API
As of May 8, you can access metafield values up to 10,000 bytes in Shopify Functions input queries, so that you can store more merchant configuration for your function.
The overall input JSON size for Shopify Functions is constrained to 64,000 bytes.
Learn more about execution limitations for Shopify Functions on Shopify.dev.
May 08, 2023
Introducing POS UI extensions API
New POS UI extensions available to app developers
POS UI extensions are available for developers to start building apps for Shopify POS. Improve the efficiency of a current extension or build custom functionality in the POS smart grid. POS UI extensions provide developers with access to numerous components and API's required to develop extensions that feel native to Shopify POS with faster performance. This technology will transform POS extensions for an improved merchant experience.
Extension Points Two extension points are available that allow for the rendering of different components. The Tile which can customize the functionality of the app's smart grid tile and the Modal a full-screen modal that presents on top of the smart grid.
Components Build extensions using the UI Extensions library that utilize interface elements and behaviors that mirror the look at feel of the POS experience. These elements are rendered natively, providing the performance and accessibility inherent to a native app.
To learn more about building apps for POS, please review our developer documentation.
May 02, 2023
Product media and files unification API
As of this week, we've brought product media together with the broader file management system. You can access the file management system from Shopify admin by going to Content>Files
This means that product media is now available within the files section within content in admin. As part of the new update, we’re introducing a reference feature that enables merchants to trace the usage of files in their storefronts. This feature also allows merchants to use references as search parameters, for example a search that only lists files used in product media. Additionally, we’re also launching a new file selector in the online store editor that allows merchants to save views, filter within the selector, and toggle between different types of media as required, all through a new modal design.
Learn more about product media at Shopify.dev. You can also learn more about the Files API at Shopify.dev
May 01, 2023
Changes to support requests for app charge refunds Platform
As of May 3, 2023, merchants will be required to contact partners directly if they want to discuss or request a refund for an app. When a merchant contacts Shopify to request a refund for an app charge, Shopify Support will no longer reach out to partners on behalf of the merchant to facilitate their request.
This change will streamline the refund process, as refunds are at the partners’ discretion and partners have the ability to issue most refunds themselves. The exception is still reversals to pending charges. In this case, Shopify highly encourages partners to issue application credits, which Shopify Support can then apply to the invoice.
What’s not changing?
- Other types of facilitated third party requests
- Processing of reversals for pending charges once approved by the partner
- Follow-ups on unresolved inquires from merchants
- Assistance with bulk refunds, refunds over $1,000, and refunds older than 12 months
Please contact partner support with any questions about these changes.
April 28, 2023
Update bytes in-place using fileUpdate API
As of 2023-07, you can use the fileUpdateInput
to provide an originalSource which will be used to update the bytes of a file. Passing originalSource when updating is supported media images and generic files.
Using this functionality makes it easy to do an in-place update of an existing file.
April 26, 2023
New updates to checkout extensibility API
New Checkout UI Components
DatePicker will help you build customizations to select specific delivery dates in checkout.
Disclosure will help with UX patterns that progressively disclose information, like the long list of line items in a bundle.
Checkout Branding Update
Checkout branding now supports custom fonts. Checkout, accounts, and UI extensions inherit these fonts making experiences consistent across surfaces.
April 26, 2023
Increasing search relevance with behavioral data in the Shopify App Store Shopify App Store
As of April 26, Shopify App Store’s search algorithm folds in even more data on how merchants interact with results after they search.
In other words, apps that merchants find most relevant, given what they’re searching for, will rank higher overall. While term matching will still inform results, this update will reduce the impact of keyword stuffing.
Learn more about search on our blog.
April 20, 2023
Sale attribution edits now can be subscribed via Orders/updated webhook API
As of API version 2023-07, you can now subscribe to the orders/updated webhook to be notified of any sale attribution edits to an order. When a staff attribution edit is made on POS, the orders/updated webhook will fire. The payload will include a new attributed_staffs field under line_items. This new field will reflect the new attributions on the order after the edit.
"lineitems": [ { "id":111, "attributedstaffs": [ { "id": "gid://shopify/StaffMember/123", "quantity": 1 } ] } ]
A user can edit the staff attributions on multiple line items at once on POS. In this case, the webhook payload could include multiple updated line items with different attributions applied to them.
Note that the payload in the orders/create webhook will also be updated to include attributed_staffs.
Learn more about webhook on Shopify.dev.
April 18, 2023
Update on the speed test app listing highlight Shopify App Store
As of April 18, we're temporarily suspending Speed tested as an app listing highlight. We will still measure an app’s impact on store speed once it has applied for Built for Shopify status.
We are making this change while we invest in better tooling and will keep app developers posted on plans to resume incentives in this area, as impact on store speed remains incredibly important to merchants.
Learn more about storefront performance on Shopify.dev
April 17, 2023
Action required
Deprecating mutations inventoryAdjustQuantity and inventoryBulkAdjustQuantityAtLocation API
In the GraphQL Admin API, we're deprecating the inventoryAdjustQuantity
and inventoryBulkAdjustQuantityAtLocation
mutations.
Instead, you can use the new inventoryAdjustQuantities
or inventoryMoveQuantities
mutations instead.
The inventoryAdjustQuantities
mutation supports more inventory quantity names as well as setting a reason. The mutations we're deprecating only supported setting available quantities and didn't allow you to set a reason for the adjustment.
Learn more about inventoryAdjustQuantities
on Shopify.dev or on inventory states on Shopify.dev.
April 17, 2023
Action required
Deprecating available, incoming and deactivationAlertHtml fields on InventoryLevel API
In the GraphQL Admin API, we're deprecating some fields on the InventoryLevel
.
The following fields are deprecated:
-
available
: you can usequantities
instead -
incoming
: you can usequantities
instead -
deactivationAlertHtml
: you can usedeactivationAlert
instead
The quantities
field supports all the new inventory quantity names. You can still get available
and incoming
from quantities
by specifying those as the names.
Learn more about inventoryLevel
on Shopify.dev as well as inventory states on Shopify.dev.
April 14, 2023
Theme app extension app block deep linking Tools
As of April 14, we have enabled deep linking to theme app blocks so that merchants can easily preview app functionality in their theme.
Learn more about deep links to app blocks.
April 13, 2023
New commerce primitives for development stores test data Tools
We've added new commerce primitives such as gift cards, selling plans, and metafields to development stores populated with test data.
To speed up the development and testing process, you can create a development store that's populated with test data generated by Shopify.
Review all of the objects, configurations, and relationships that are included in the development store test data set on Shopify.dev
April 10, 2023
Write Shopify Functions in JavaScript API
Shopify Functions written in JavaScript can now be deployed in production. Going forward Rust and JavaScript will be our first-class languages for Shopify Functions. However, you can still write Shopify Functions in any WebAssembly-supported language that meets our requirements.
Learn more about JavaScript Shopify Functions here
April 01, 2023
New billingAddress field on the Storefront API Order object API
As of GraphQL Storefront API version 2023-04, the Order
object has a new field: billingAddress
. This field returns a mailingAddress
object for the address associated with the payment method.
Learn more about the Order
object on Shopify.dev.
April 01, 2023
Server Pixels Limited Release API
As of 2023-04, select partners can use Server Pixels to consume customer events on the server-side. These new mutations are available to those partners:
April 01, 2023
Set Metafield values for Locations API
As of GraphQL Admin API Version 2023-04
you can use the mutations locationAdd
and locationEdit
to set Metafield values for locations.
As of Storefront API Version 2023-04
, you can query metafields belonging to a location using the Location query object.
You can use Metafields to store aditional information for Locations.
Learn more about { Metafields } on Shopify.dev.
April 01, 2023
Action required
Removal of deprecated status
field in Payments Apps API 2023-04 release
API
As of 2023-04
GraphQL Payments Apps API version, we are removing the status
field as it was deprecated since 2022-04
version in favour of the state
field of the following objects returned by our GraphQL mutations:
To get up to date, make sure you no longer query the status
field on these objects and use state
instead.
Learn more about payments apps on Shopify.dev.
April 01, 2023
Release of the subscriptionContractAtomicCreate and subscriptionContractProductUpdate mutations API
As of the 2023-04 release of the GraphQL Admin API, you can create a subscription contract in a single operation with the subscriptionContractAtomicCreate
mutation.
You can also replace a retired product by a new one, or update the price of a product in a subscription contract in one GraphQL call to the subscriptonContractProductUpdate
mutation.
More information on Bulk Operations can be found here
April 01, 2023
Generate targeted product recommendations with the new ProductRecommendationIntent
type
API
As of the 2023-04 API version of the Storefront API, the ProductRecommendations query will accept an optional intent
argument. Additionally, a new ProductRecommendationIntent
will be introduced as a GraphQL Enum Type, defining the supported product recommendation intents. By default, the API will return RELATED
recommendations for backward compatibility.
April 01, 2023
New selected_delivery_option
error codes in cart
API
We've added the error codes INVALID_DELIVERY_GROUP
and INVALID_DELIVERY_OPTION
for cartSelectedDeliveryOptionsUpdate
mutation , allowing you to get descriptive error codes when GraphQL returns invalid delivery group id or invalid delivery options input.
April 01, 2023
Introduce onsite credit card support for payments apps API
As of version 2023-04
, payments apps will have support for onsite credit card payments through new types introduced to the GraphQL Payments Apps API.
Changes to support on-site credit card processing are as follows:
-
New rejection codes are now available in the
paymentSessionReject
GraphQL mutation for credit card payments apps -
A new error code is introduced in the
paymentSessionPending
GraphQL mutation
April 01, 2023
Introducing the new Customer Merge API API
As of GraphQL Admin API version 2023-04, you can now use the Customer Merge API to combine two separate customer profiles with certain non-blocking criteria. You can use the new mutations and queries to:
Additionally, you can check whether a customer can be merged with another customer using the new Customer.mergeable field. This field is also available on the CustomerSegmentMember API CustomerSegmentMember. mergeable.
You can learn more about merging customer profiles on Shopify Help Center.
April 01, 2023
Update Access Scope for Publishing and Unpublishing Mutations to Current Channel API
As of version 2023-04, we're deprecating the requirement of writeproductslistings
access scope for the mutations publishableUnpublishToCurrentChannel
and publishablePublishToCurrentChannel
. Use the access scope writepublications
instead.
You can provide this new access scope to your third party app or any stuff member through the admin as it is regularly being done for any other access scope. This change will provide a more restricted access to call these mutations.
April 01, 2023
Filter orders by return status API
You can now filter orders by their return status.
The return_status
filter is available on the orders connection. This status corresponds to the return status merchants see in the orders page.
Learn more about the order's return status on Shopify.dev.
Learn more about return statuses on the help center.
April 01, 2023
Action required
ChangingCartLine
from an Object
to an Interface
API
As part of the GraphQL Storefront API 2023-04 API release, we are creating BaseCartLine
as an interface to CartLine
and we are updating CartLineConnection
to BaseCartLineConnection
.
Learn more about the Cart
object on Shopify.dev.
April 01, 2023
Action required
Deprecating PublishedTranslation
GraphQL type
API
As of 2023-04
, we are deprecating the PublishedTranslation
graphQL type in the admin API. Use the Translation
graphQL type instead.
The Translation
graphQL type contains more fields; outdated
, updatedAt
and market
.
To get up to date, make sure you no longer query the marketId
field on these objects and query using the market
field instead.
Learn more about Translation
on Shopify.dev.
April 01, 2023
Added source_location
field to FulfillmentOrdersMove
webhook payload
API
As of API version 2023-04, FulfillmentOrdersMove
webhook payload is extended source_location
field.
The assignedLocation of the original_fulfillment_order
may be changed by the move operation. Therefore, if you need to determine the originally assigned location, you should refer to the source_location
field.
Learn more about fulfillment order move in the FulfillmentOrdersMove webhook, FulfillmentOrdersMove GraphQL mutation and Moves a fulfillment order to a new location REST endpoint documentation pages.
April 01, 2023
productVariantsBulkUpdate mutation returns data along with errors API
In the Admin GraphQL API version 2023-04, the productVariantsBulkUpdate
mutation will return product
and productVariants
data even when errors are present. Previously, the mutation would always return null
for the product
and productVariants
data.
Learn more about the mutation here.
April 01, 2023
Releasing new Catalogs APIs to manage pricing and product publishing for different customers API
As of API version 2023-04, you can use the Catalogs API to create a set of rules that determine the available products and their prices in different customer contexts. The Catalogs API lets you link Shopify Markets and B2B primitives to Publications and PriceLists to customize product offerings for different audiences. The same APIs also allow you to manage product publishing for sales channels.
To learn more about Catalogs API, read B2B Catalogs and Catalogs for Markets.
April 01, 2023
Adds comparedTo
field to ShopifyQL query response
API
As of 2023-04, you can now use comparedTo
on comparison columns from ShopifyqlResponse
to indicate the column to compare to.
Learn more about COMPARE TO
ShopifyQL queries on Shopify.dev
April 01, 2023
Update ShopifyQL parse error codes API
As of 2023-04, parse error codes enum has been updated to remove stale codes as well as add new ones.
Added
ParseErrorCode.INVALID_DATE_RANGE
ParseErrorCode.EXCESS_BACKFILL_DIMENSIONS
ParseErrorCode.BACKFILL_DATE_RANGE_NOT_FOUND
ParseErrorCode.COMPARE_TO_MISSING_PERIOD
ParseErrorCode.EXCESS_DIMENSIONS
ParseErrorCode.SYNTAX_FAILED_PREDICATE
Removed
ParseErrorCode.VISUALIZE_TYPE_NOT_FOUND
ParseErrorCode.FUNCTION_MODIFIER_INVALID
ParseErrorCode.VISUALIZE_BY_OR_OVER_NOT_FOUND
ParseErrorCode.VISUALIZE_CONTAINS_BY_AND_OVER
ParseErrorCode.BINARY_EXPRESSION_INCOMPATIBLE_TYPES
ParseErrorCode.VISUALIZE_EXCESS_PROJECTIONS_ALPHA
ParseErrorCode.EXCESS_GROUP_BY_ALL
ParseErrorCode.GROUP_BY_ALL_DATE_RANGE_NOT_FOUND
ParseErrorCode.COMPARE_TO_WITHOUT_DURING
ParseErrorCode.GROUP_BY_EXCESS_PROJECTIONS
See the full list of parse error codes on Shopify.dev
April 01, 2023
Action required
Updates to FulfillmentOrderLineItemsPreparedForPickupUserErrorCode resource API
As of the 2023-04 API version of the Admin API, the FulfillmentOrderLineItemsPreparedForPickupUserErrorCode GraphQL object will have the following breaking changes:
- The FULFILLMENT_ORDER_CHANGED
error code will be removed
- The UNABLE_TO_PREPARE_QUANTITY
error code will be added
April 01, 2023
Adding additional filtering to /assigned_fulfillment_orders
REST endpoint
API
As of API version 2023-04
, you can retrieve a subset of fulfillment orders which are assigned to locations owned by the app performing the request but have not been requested for fulfillment so far.
The assignment_status
query parameter in the [/assignedfulfillmentorders.json]((https://shopify.dev/docs/api/admin-rest/latest/resources/assignedfulfillmentorder#get-assigned-fulfillment-orders) endpoint can now accept a value of fulfillment_unsubmitted
for filtering in addition to the existing fulfillment_requested
, fulfillment_accepted
, and cancellation_requested
filter values.
Learn more about retrieving assigned fulfillment orders as a fulfillment service on shopify.dev.
April 01, 2023
Update validations of a metafield definition API
As of GraphQL Admin API Version 2023-04
you can use the field MetafieldDefintionInput.validations
to change the validations of a metafield definition.
Also, as of GraphQL Admin API Version 2023-04
, you can query the field
MetafieldDefinitionUpdatePayload.validationJob
to get the details of the job running to validate existing metafields for the metafield definition.
Learn more about { Metafields } on Shopify.dev.
April 01, 2023
Web Pixels can be queried without specifying an ID API
In the Admin API version 2023-04, you can now query your web pixels installed on an online store without having to provide a Web Pixel ID.
API: https://shopify.dev/docs/api/admin-graphql/2023-04/queries/webPixel
Learn more about web pixels.
April 01, 2023
Accept customer address id as input for delivery address preferences in SFAPI Cart API
As of 2023-04, you can pass Customer address id as an input for CartBuyerIdentity.deliveryAddressPreferences when creating or updating carts for authenticated customers.
You can learn more about the Cart API references in here.
April 01, 2023
Add Metafields to Cart API API
As of GraphQL Storefront API Version 2023-04
you can use Metafields with Carts! Metafields can be added during Cart creation, they can be queried, updated, and deleted.
Learn more: * Create Cart Metafields * Query Cart Metafields * Update Cart Metafields * Delete Cart Metafields
March 31, 2023
GraphQL Admin API now supports creating app charges using the merchant's billing currency API
As of the 2023-04 release of the GraphQL Admin API, the Billing API will allow creating app charges using currencies that match the merchant's local billing currency.
Previously, app charges could only be created using USD and were converted to the merchant's local currency using the exchange rate at the time the invoice is issued. By creating app charges in the merchant's billing currency, app developers will allow merchants to better budget their app spend without being exposed to currency exchange rate fluctuations.
You can use the shopBillingPreferences query to retrieve the merchant's local billing currency, then pass in the currency value as input to the existing GraphQL Billing APIs.
March 30, 2023
ExchangeV2s field is available behind beta flag on order graphql API
As of 2023-07 version, you can use the Order APIs exchangeV2
field to get a better exchange (an exchangeV2
object value).
This will help ERP partners to properly integrate optimal exchange values.
Learn more about it on this doc
March 28, 2023
Update to Google Analytics 4 before July 2023 Shopify App Store
Google is sunsetting Universal Analytics in July 2023, and replacing it with Google Analytics 4 (GA4) which is Google's next-generation measurement solution. Universal Analytics will continue to collect data until its sunset in July 2023, and data will remain accessible for at least 6 months afterwards.
Visit Shopify.dev for next steps to migrate your app listing tracking from Universal Analytics to the new Google Analytics 4 or to set up tracking for the first time.
March 24, 2023
Dynamic sources for blogs and articles now live Themes
You can now use dynamic sources on blogs and articles. This means that merchants can now connect theme files to their metafields and metaobjects when working with the blog and article resources. Previously, this was only possible when working with product, collection, and page resources.
Learn more about datasources on Shopify.dev
March 20, 2023
Additional fees fields for Orders API
The Order object now has fields representing additional fees as of API version 2023-04. Additional fees are extra costs associated with an international package that aren't duties or taxes.
The new fields on the GraphQL Order object are:
- additionalFees
- currentTotalAdditionalFeesSet
- originalTotalAdditionalFeesSet
The new fields on the REST Order resource are:
- currenttotaladditionalfeesset
- originaltotaladditionalfeesset
Learn more about these new fields in the GraphQL reference docs or REST reference docs.
March 20, 2023
Policies for leaving a review on the Shopify App Store Shopify App Store
We’re continuously improving our systems to effectively and efficiently identify and remove fake reviews to ensure a safe, fair, and useful ecosystem for both merchants and developers.
As part of these efforts, you may receive an email notifying you that a review for your app has been removed because it doesn’t comply with our policies.
Learn more about our policies for leaving a review in the Shopify App Store in the Shopify Help Center.
March 19, 2023
Action required
Support For API Version 2022-04 Extended To June 30, 2023 API
Shopify is extending support for API version 2022-04 to June 30, 2023 (previously March 31, 2023). All public, custom, and private apps using API resources that are no longer supported in API version 2022-10 will stop working as intended after this date.
Action Required Existing apps must migrate to API version 2022-10 or later by June 30, 2023 to avoid any interruptions.
Below are a few important breaking changes, please make sure to review the full list:
- The following customer object properties on the REST Admin API’s order resources have been deprecated: lastorderid, lastordername, orderscount , totalspent (see details here)
- Some Fulfillment API endpoints and mutations relating to managing fulfillments via an order have been deprecated (see details here)
To see a full list of apps that may be impacted, please log into your Partner Dashboard and click on Apps > Insights > API Health.
Please note that this extended timeline for supporting API version 2022-04 does not impact deprecation timelines for any subsequent API releases. If you have any questions, reach out to your Shopify account manager or post here, in the Shopify Community.
March 17, 2023
Action required
[Action Required] Support for API version 2022-04 extended to June 30, 2023 API
Shopify is extending support for API version 2022-04 to June 30, 2023 (previously March 31, 2023). All public and custom apps using API resources which support end with the API verions 2022-04 and 2022-07 will stop working as intended after this date.
Action Required: Existing apps must migrate to API version 2022-10 or later by June 30, 2023 to avoid any interruptions.
Below are a few important breaking changes, please make sure to review the full list:
- The following
customer
object properties on the REST Admin API’sorder
resources have been deprecated:last_order_id
,last_order_name
,orders_count
,total_spent
(see details here) - Some Fulfillment API endpoints and mutations relating to managing fulfillments via an order have been deprecated (see details here)
To see a full list of apps that may be impacted, please log into your Partner Dashboard and click on Apps > Insights > API Health.
Please note that this extended timeline for supporting API version 2022-04 does not impact deprecation timelines for any subsequent API releases. If you have any questions, reach out to your Shopify account manager or post in our community forums.
March 16, 2023
Access image Focal Point from the Storefront API API
As of 2023-04
, we're introducing the ability to access the Focal Point
setting value for Media Presentation in the asJson field using the Storefront API.
Focal Points
can be set from the shop admin when editing your image files.
Learn more about Focal Points
on Shopify Help
March 16, 2023
Read 3D model configuration settings from the Storefront API API
As of 2023-04
we're introducing the ability to read presentation attributes for 3D models in the storefront api.
When a 3D model is customized via the no code 3D viewer configuration the properties associated with lighting, zoom, camera angle and background color are available in the Storefront API.
Learn more about this feature on Shopify Help
March 15, 2023
Action required
Removal of contextRule
on PriceList
API
Starting in API version 2023-04
, the PriceList.contextRule
field will be removed and deprecated in previous API versions. If you have an existing app that uses the contextRule
field, then you should migrate to catalogs.
Learn more about migrating to catalogs on Shopify.dev.
March 15, 2023
Geotargeting for Shopify App Store ads Shopify App Store
As of March 15, you can geotarget Shopify App Store advertising campaigns, giving greater control over how you market your apps and grow your business. Create effective and relevant regional campaigns with country-specific attribution, metrics, and even recommended bids.
Learn more about creating geotargeted ads on Shopify.dev.
March 15, 2023
The templates
schema attribute is now deprecated for the apps.liquid
section
Themes
As of March 15, the templates
schema attribute is no longer supported in the apps.liquid
section.
- The
templates
schema attribute cannot be specified in theapps.liquid
section. - The
enabled_on/disabled_on
schema attribute cannot containtemplates
attribute in theapps.liquid
section.
March 15, 2023
Webhooks for B2B Customers Primitives API
As of the Admin API 2023-04
Release, we are providing webhook notifications for changes to the major entities within the B2B Customers product. The following webhooks are provided:
companies/create
companies/update
companies/delete
company_locations/create
company_locations/update
company_locations/delete
company_contacts/create
company_contacts/update
company_contacts/delete
Learn more about these webhooks on Shopify.dev
March 15, 2023
SVGs returned as MediaImage in Admin API API
As of 2023-04, SVGs are treated as MediaImages by the Admin API.
This makes it easier to use SVGs in your online storefront.
March 14, 2023
Consistent presence of null values on the order object API
As of 2023-04, we're no longer filtering out null
values on certain fields of the Order
object. Previously, some keys with null
values would not be present on the REST API and webhook payloads.
This change removes unecessary and inconsistent handling of null
.
March 13, 2023
Action required
Google Analytics 4 in the Google channel app Shopify App Store
New release: Google Analytics 4 is now available through the Google channel app on Shopify, enabling you to upgrade and take advantage of its enhanced real-time, multi-channel measurement and privacy controls.
Google Analytics 4 is replacing Universal Analytics, which will continue to process data until July 1, 2023 (July 1, 2024 for Analytics 360 properties).
Learn more about Google Analytics 4 and what this means for you here.
March 13, 2023
Added wallet_preferences
to the Cart
object
API
As part of the GraphQL Storefront API 2023-04 API release, we are adding wallet_preferences
to the Cart
object. The wallet preferences from the cart will allow to pass through a buyer's wallet preference to the checkout.
Learn more about the Cart
object on Shopify.dev.
March 10, 2023
JavaScript support for Shopify Functions developer preview API
The JavaScript support developer preview enables you to write functions in JavaScript or TypeScript, compile them to WebAssembly with Shopify CLI, deploy them to Shopify, and execute them on development stores.
Learn more about the developer preview on Shopify.dev.
March 10, 2023
Idempotent creation of AppUsageRecord API
In the Admin GraphQL API version 2023-04, appUsageRecordCreate
now supports an optional parameter idempotencyKey
which ensures the merchant will not be charged twice. When idempotencyKey
is provided, the mutation will return the same response as any previous appUsageRecordCreate
mutations with identical idempotencyKey
for the intended shop and requesting app, rather than creating a new record and charging the merchant again.
This means that an idempotencyKey
could be reused by an app to create appUsageRecord
s on different shops to charge the merchant. Different apps can also use the same idempotencyKey
on the same shop and still charge the shop. But we recommend a UUID.
The appUsageRecordCreate
will behave like past API versions when idempotencyKey
is not provided and create a new record on every mutation.
March 06, 2023
Translate Metaobjects with Translatable Capability API
As of 2023-04 we're introducing a new capability to translate metaobjects.
Similar to the publishable capability, the translatable capability can be enabled when creating and updating a metaobject definition. When enabled all metaobjects belonging to the definition will be eligible for translations through the Translations API as well as the Translate and Adapt app.
Learn more about the Translatable Capability on Shopify.dev
March 02, 2023
New rich text setting functionality in online store editor Themes
We've added headings as well as ordered lists to the rich text setting within online store editor. This means that themes can now take advantage of this new semantic styling within the editor to allow merchants to configure multiple headings of different semantic sizing and craft lists (now both ordered and unordered) right in the theme.
Learn more about the rich text input setting on Shopify.dev.
February 28, 2023
Partial updates for bulk product variants mutation API
In the Admin GraphQL API version 2023-04, you can use the productVariantsBulkUpdate
mutation to update valid variants even if some variants are invalid. The new allowPartialUpdates
parameter is optional and defaults to false
for backwards compatibility, but by enabling it, the mutation will modify valid variants, instead of not updating any variants due to invalid variants.
Learn more about the mutation here.
February 27, 2023
Increasing search relevance with behavioral data Shopify App Store
As of February 27, Shopify App Store’s search algorithm folds in more data on how merchants interact with results after they search.
In other words, apps that merchants find most relevant, given what they’re searching for, will rank higher overall. While term matching will still inform results, this update will reduce the impact of keyword stuffing.
Learn more about search on our blog.
February 27, 2023
Shopify Functions now support app-owned metafields and reserved prefixes API
You can now use the $app:
metafield namespace prefix in Shopify Functions input queries to ensure your app's ownership of metafields used in your function.
We recommend use of reserved prefixes by default for all functions, so that you can control access to metafields used by your function. By default, they will be private to your app.
Learn more about metafield ownership and using metafields with input queries on Shopify.dev.
February 26, 2023
Action required
Introducing new enabled_on
/ disabled_on
app blocks schema attributes (deprecating templates
)
Themes
You can now use the new enabled_on
/ disabled_on
app block schema attributes to specify where an app block can be used. These new attributes replace the existing templates
attribute and work for both templates and section groups.
- Use the
enabled_on
attribute to limit an app block to specific templates and section groups. - Use the
disabled_on
attribute to prevent an app block from being used in specific templates and section groups. - These new attributes work for both app blocks and app block embeds.
Please keep in mind that you can use only one of enabled_on
or disabled_on
.
February 23, 2023
Action required
Deprecating Price Rules GraphQL API API
We are deprecating Price Rule GraphQL queries & mutations. Use Discounts GraphQL queries & mutations instead.
You will need to migrate to the new endpoints by April of 2024 when we will remove access to these resources.
Certain features, such as Automatic Discounts, and Shopify Functions-backed Discounts, are not supported by these Price Rule endpoints. This migration will allow you to access all the latest features, including ones coming in the future.
Affected queries:
Affected mutations:
priceRuleActivate
priceRuleCreate
priceRuleDeactivate
priceRuleDelete
priceRuleDiscountCodeCreate
priceRuleDiscountCodeUpdate
priceRuleUpdate
To get up to date, make sure you no longer use the affected queries & mutations listed above. To replace them, use the Discounts queries & mutations found on Shopify.dev below:
February 21, 2023
Action required
Upcoming changes to Asset API approval scope API
Over a year ago, we introduced Theme App Extensions as the recommended way for public apps to integrate into themes. The use of Theme App Extensions is a more streamlined and secure method for merchants to customize their Online Store themes, replacing the need for the Asset API.
As of today, when requesting the unstable 2023-04 release candidate, or future versions of the Admin API, the Asset API access to create, update and delete assets is no longer accessible for public apps. Refer to this guide for more details on the change, exemptions and how to migrate your apps.
February 15, 2023
CompanyAddress name field changes API
The CompanyAddress is no longer supporting the use of firstName/lastName fields, preferring instead to use a single recipient field. English-based UI elements may call this new field Attention. This is due to requests from merchants who are not dispatching orders to named individuals, but rather to locations, departments, or roles.
The field recipient has been added to the liquid API for CompanyAddress to display this field. However, there are a large number of existing templates that use the firstName/lastName fields. In order to minimize the impact on these templates, we populate the lastName field with the recipient, and leave the firstName field blank (specifically, it is null
).
The previous paragraph is true for those CompanyAddresses where the recipient field has been populated. Where the address is still using firstName/lastName, the firstName/lastName fields will be populated as before, with the recipient field being the concatenation of these fields in a locale aware manner (in the same way as the name field). We are in the process of porting all CompanyAddresses to use the recipient field only.
February 13, 2023
Certificate Update On Myshopify.Com Domains API
Shopify will be making changes to the certificate used to secure subdomains of myshopify.com (eg: https://test.myshopify.com/) effective February 13, 2023. The current certificate which is being used is issued by Cloudflare via DigiCert. We will be adding in additional certificates signed by Lets Encrypt and Google Trust Services.
Note: This will not affect the certificate used for mTLS connections.
For more information refer to the community notice.
February 13, 2023
Action required
Checkout.liquid will no longer work for in-checkout pages starting August 13, 2024 Tools
Shopify Plus merchants can now customize their in-checkout pages, which include their Information, Shipping, and Payment Pages, using checkout extensibility. Checkout extensibility is a faster way to customize Shopify Checkout in a way that’s app-based, upgrade-safe, higher-converting, and integrated with Shop Pay. It has the power and flexibility for merchants to build the experiences they want.
Checkout extensibility replaces checkout.liquid. As a result, checkout.liquid will no longer work for in-checkout pages on August 13, 2024. Any merchants that currently customize their in-checkout pages with checkout.liquid need to upgrade to checkout extensibility before this date.
Shopify Plus merchants can continue customizing their post-checkout pages, which includes their Thank You Page and Order Status Page, with checkout.liquid. However, we’ll soon support customization on these pages with checkout extensibility as well.
February 13, 2023
Action required
Support for Shopify Scripts will end on August 13, 2024 API
Update: In October 2023, the end of life date for Shopify Scripts was extended from August 13, 2024 to August 28, 2025.
Shopify Functions replace the need for Shopify Scripts, as a result Shopify Scripts will no longer be supported as of August 28, 2025. Merchants that leverage Shopify Scripts will need to migrate to Shopify Functions before this date.
You can now build unique discount, payment, and delivery customizations with Shopify Functions. Functions are deployed through apps and configured alongside native features directly in the Shopify Admin. This means that merchant end users never have to touch a line of code when modifying their customizations.
Please note that Functions and Scripts can work together, so if a use case isn't yet supported by Functions, merchants can continue to leverage their existing Shopify Scripts. Over the next year, we'll continue to release additional Functions APIs to cover existing Scripts use-cases, and more.
Help merchants migrate by building apps powered by Functions.
February 09, 2023
JavaScript support in Shopify Functions local developer preview API
JavaScript support for Shopify Functions is now available in a local developer preview. This means you can try Shopify Functions with JavaScript locally, on your own development machine, but you can't deploy functions to production yet. We are releasing this preview now to get your feedback on our JavaScript development experience.
Learn more about JavaScript support for functions on Shopify.dev.