Shopify’s 2024 Winter Editions release focused on improving the Foundations of the Shopify platform. Like previous Editions releases, Shopify announced a ton of new features and extended functionality for merchants, app developers, and everyone in between.
Before I dive into my highlights, I’ll get the big item out of the way: Shopify has increased the default variant limit from 100 to 2,000. This is currently in developer preview and will be rolled out to select merchants in 2024, but promises to be a major change to how developers manage and interact with product data. RIP variant management apps. This has been a long time coming, so keep an eye out for some tutorials on how to work with the increased limits.
Here are some of my other favorite highlights from the Winter ‘24 Editions release.
Shopify’s Summer ‘23 Editions (and their last in-person Unite, also RIP) started to place more focus on B2B sales, and customer account extensibility doubles down on this push.
Developers can now build custom applications for B2B and B2C buyers using customer account UI extensions. The extension targets include the option to add inline sections on the Orders page, and a full-page target that gives you a blank canvas in the customer accounts portal on which you can build your app. The extension API includes built-in access to a slice of customer data, including a customer’s B2B status which empowers you to build B2B-only functionality into your customer account apps.
Some examples of apps you could build with customer account UI extensions include loyalty point trackers, wishlists, and order customizers. If you’re already familiar with checkout UI extensions, you’ll feel right at home building for customer accounts - they share the same components with only some minor differences. More good news, additional checkout UI components, including a <inline-code>Map<inline-code>, were also included in the Editions announcement.
When Shopify launched its first Editions in the Summer of 2022, Functions was the first thing I dove into. I was playing with product discounts while building a product bundle tutorial and ran into an issue: I could not create multiple discounts using the same Product Discount Function.
Others ran into this issue as well. In fact, it was the top-rated issue on Shopify’s Function discussion board.
It’s great to see that completed tag.
Shopify announced support for the <inline-code>ALL<inline-code> option for the <inline-code>DiscountApplicationStrategy<inline-code> on the returned <inline-code>FunctionRunResult<inline-code>, which means that we can apply all of the discounts included in our Function response at once. This enables developers to apply multiple discount effects into a single Function, and makes it easier to enable volume or tiered pricing discounts.
Function output schema could look like this:
Also of note, Shopify introduced a Discounts Allocator Function. I haven’t had a chance to play with it yet, but I’m excited at the prospect of adding another layer of customization and fine-grained control to discounts. To try out the Discounts Allocator Function, you need to create a new development store with the Discount Allocator developer preview enabled.
And in case you missed it - Shopify’s 2024-01 API version also included support for discount webhooks, making it much easier to build custom discount applications.
The last thing I want to highlight from the Winter ‘24 Editions is reusable theme blocks. Developers working in the Liquid storefront can now define reusable atomic blocks and include them in multiple theme sections. They have their own schema that supports the application of HTML tags, classes, and merchant settings, among other things, and can even be nested inside other theme blocks!
Theme blocks make a ton of sense to me. Building small, reusable blocks is a foundational part of developing software and it’s great to see Shopify extend those principles to the storefront.
Theme blocks are in developer preview right now, which means you need to create a new development store in the Partner dashboard with the Theme block preview enabled to try them out. If you want to learn more, check out Coding with Jan’s video which covers theme blocks and the latest in section building.
Shopify’s 2024-01 API also introduced metaobject webhooks. Because metaobjects are dynamically defined, the concept of webhook sub-topics has been introduced. These allow you to subscribe to a subset of all metaobject webhooks, defined by the sub-topic.
If you want to learn more, Shopify has a great diagram explaining sub-topics that I encourage you to check out.
Metaobject webhooks make it easy to trigger custom code or actions when a metaobject record changes, enabling developers to use Shopify’s platform to do more of the heavy lifting involved in building custom apps.
This was just a quick glance at some of the things included in ‘24 Winter Editions. Additional features around product and variant grouping, monitoring web performance, and Shopify Flow are also exciting and worth investing some time into.
I also think Gadget is the fastest way to start exploring some of these new features (We’ve already made a customer account UI extension that you can watch me build). Instantly start building your next Shopify app at gadget.new and join our developer Discord — we’d love to hear how it goes!