Quarterly Review of Shopify Updates - January Edition
Even as an ecommerce development company with over 22 years experience, it’s still exciting when Shopify publishes release notes for the quarterly API version update and on-going shopify updates for new features they add on.
We normally review the updates to see if there’s any breaking changes we need to change for our clients. There could also be a new feature that can simplify, replace, or enhance existing integrations with clients.
We put together a list of recent changes since our last internal review and thought we’d share them here, along with our insights, in hopes that it may benefit other shopify developers and store owners.
Jump to Section:
Shopify Store & Admin Updates
Collections can now be automatic based on metafields. They’re a core part of Shopify stores and having more abilities to associate products to them is a nice benefit. This feature will allow us to remove some code that was handling this aspect and still be automatic from the merchant’s perspective – Official release notes
Users can use metafields to edit product recommendations and product boats via Product-level “Related products”, “Search product boosts”, and “Complementary products” metafields. Users can edit them in bulk as well.
Shopify Metafields & Metaobjects
Metaobjects are like metafields going meta: structured objects of other metafields for merchants to edit. One thing to watch out for is that they have “PUBLIC_READ_WRITE” access by default if one isn’t set and a special reserved namespace convention isn’t used. Active Metaobjects with a category of “CONTENT” can also be queried by the 2023-01 Storefront API.
Metafield definitions now have an “access” field in Admin API 2023-01 to control access to the metafields. This is helpful to keep other apps from seeing and editing metafields they don’t need access while still allowing the merchant to edit them in the admin interface.
metafieldsSet mutation in 2023-01 is atomic. This means that if there are any errors, none of the changes will persist. This change will help eliminate code that checks to verify all the changes were made successfully. Atomicity is our friend!
Simplified Metafield Querying : This will slightly reduce some of the graphql queries, which is normally, always a good thing.
GraphQL Admin API metafieldsSet mutation doesn’t require the “type” to be specified. Thusly, code that updates metafields can be simplified so it doesn’t have to look up and specify the same type it already has. If it sounds like less work, it is.
See our previous article on metafields for more information.
Shopify Storefront API
You can now filter products by tags, if tags are enabled as a filter setting on the shop, using the Storefront API. Much easier than having to create collections for the tags (or now metafields as above) now you can directly filter on the server.
You can now use the near parameter to search StoreAvailability by proximity, via Storefront API. With this update, you don’t need to code & host your own store proximity search code, as long as the merchant’s number of actual locations fits within their Shopify plan. Otherwise you still need to host the proximity search or pay for an app.
Storefront Cart API now allows using a Line Item Shopify Script to create & apply discounts to a cart. This can simplify or remove custom frontend code that would handle displaying the correct discount. Furthermore, merchants can now change the discount logic without a frontend dev having to also update the logic. Nice!
Shopify Flow, Scripts & Functions
Shopify Flow for Advanced & Plus plans has added time-based triggers and new actions: Now you can run reports or other tasks at a certain time, and get/loop over data from within Shopify such as collections, customers, orders, and products to do things like build automatic reports or update products.
Updates to Shopify Functions (different than Shopify Scripts) include Delivery, Payment, Shipping Discount customizations which are in development preview to be experimented with. This functionality allows Shopify’s servers to directly run pieces of code that currently allow making more advanced customizations to delivery options, payment options, and apply shipping discounts.
Read our previous article on functions in Shopify for more insight.
In Admin API 2023-01 Payment Terms type “Due on Fulfillment” is now available. No more customer confusion with an invoice that doesn’t align with previously agreed terms!
GraphQL OrderTransaction includes a new payment_details property and has fields like avsResultCode and cvvResultCode that could be applicable to sync with other systems like a client’s ERP. More OrderTransaction developer details listed here
Inventory & Fulfillment
New inventory mutations in 2023-01 API for handling reserved and on_hand quantities along with queries for all of the states on_hand, available, reserved, and committed. Being able to reserve inventory is helpful for items that shouldn’t be available if the product isn’t set to be oversold, such as damaged or order handling outside of Shopify like an existing B2B platform.
API 2023-01 has a new “externalId” field for Fulfillment Order Holds that allows better syncing and tracking with fulfillment services. We’d like to implement this new feature with existing integrations when something like insufficient inventory or a bad customer shipping address holds up a fulfillment request. Additionally, users can also use fulfillmentOrdersReleaseHolds mutation to specify multiple fulfillment orders
Read our article on the benefits of inventory and fulfillment management being part of your business’s complete Shopify ERP system
Ability to use static unordered lists for rich text fields and connect them to text-based Metafield lists. Previously when building themes, if you wanted a merchant to be able to easily update a featured product carousel on the homepage using the theme settings, you had to provide multiple setting fields for each product. Now you can have one field and allow a list of products. Or, connect it to a Metafield list of featured products.
Section groups in liquid themes! Merchants can add, remove, and change the order of sections. Additionally, along with enabled/disabled conditionals for where the section goes, users can enable/disable groups such as the header, footer, or custom types. Footers shouldn’t have large slideshows, right? Sections & blocks can be duplicated too.
Read our article explaining Shopify themes for more information.
Miscellaneous Shopify Developments
Carrier Service API entirely removed from new Starter and Basic plans. However, the “Shopify” plan can still request access, Advanced & Plus still have access, and old plans with access are grandfathered in. Previously, we’ve written about building a Shopify Carrier Service if you have custom needs and built-in features aren’t sufficient.
Webhook topics specifically for activating and deactivating locations. This makes it easier to tell when it’s activated/deactivated, which makes it quick to update store proximity searching, custom store inventory tracking, etc. However, the previous way wasn’t that bad: just check the “active” field and handle accordingly.
Webhook topic for auditing the store admin that sends all Admin API activity from all the store’s apps to Google Cloud’s Pub/Sub or AWS’ EventBridge. This allows auditing of all the other apps that are using the Shopify Admin API for a store. Eg, why is this app accessing orders from more than 30 days ago that it doesn’t need? Has someone hacked it? It’ll be interesting to see what security products are released taking advantage of this new feature.
Your Shopify Integration Here
Wondering if your existing integration could benefit from any recent Shopify updates? If you’re looking to improve the customer experience using some of these updates, contact us for a free consultation!