3 developer highlights from Shopify’s Summer ‘24 Editions
It was great to be back in person for this year’s Shopify Editions.dev conference! Meeting so many Shopify devs in person was a blast, and I hope Shopify brings back annual in-person conferences going forward.
The theme of Shopify’s Summer ‘24 Editions was “Unified”. (No, this doesn’t mean there is now a single Admin API. But we are getting closer to parity!). This round brings a ton of new features and functionality to Hydrogen and headless storefronts, customer accounts, and extensions (extensions, extensions, extensions!).
Let’s dive into 3 highlights from Shopify Summer ‘24 Editions.
1. Custom payment extensions
I have had a “custom gift card app” on my to-do list for a long time. Thankfully, my procrastination paid off and Shopify announced extensions for custom payments. With this, developers have the option to add custom fields in the checkout before initializing a payment.
Payment extensions cover a wide range of custom payment use cases, including using an external or offsite payment provider, custom credit card payments, or other alternative payment methods such as gift cards.
Because these extensions are so powerful, and extend such a critical part of the ecommerce ecosystem (the “commerce” part), there are many caveats and requirements when building custom payment functionality. Thankfully, Shopify has plenty of tutorials for building different types of payment extensions, like an extension for a third-party gift card provider, which makes it easy to get started.
If you have any interest in a gift card app tutorial using Gadget and a payment extension, let me know in Gadget’s developer Discord!
2. Extensions, extensions, extensions, extensions! (and Functions debugging)
If you take away anything from the latest Summer Editions, it should be that, the future of Shopify app development is focused around app extensions. Shopify announced a ton of changes to existing extension types, including new extension targets, additional APIs that can be called from extensions, new pages that are extensible, and completely new extension types!
This also includes new tooling for working with Shopify Functions - including shareable Functions logs and an improved debugging experience. At Editions.dev, I attended the Functions workshop with Shopify PM, Nick Wesselman, and had the chance to try out log streaming and the replay command while debugging a discount Function. replay allows developers to pick a previous Function run and re-run it with the same inputs. The `replay` command will also re-build and rerun your Function when changes are made.
When Functions were first introduced 2 years ago, the debugging experience was interesting. It has come a looooong way since then and is getting to the point where building and debugging is a delightful experience. I’m happy to see the Functions team is putting so much love into tooling and DevEx.
Also stressed by Nick: write some darn unit tests for your Functions! The sandboxed, deterministic nature makes unit testing extremely powerful for checking various outputs when given an input. If you aren’t regularly writing tests for your apps, this can be a great place to dip your toes in the unit testing pool.
3. GraphQL Admin API enhancements + docs snippets
Q: “When is the REST API going away?”
A: Nobody knows.
That said, it was mentioned on the main stage that the GraphQL Admin API should reach parity with the Admin REST API by the end of the year. That means that there is nothing that you can do in the REST API that cannot be done in GraphQL. This was certainly one of the more frustrating aspects of working with the Admin API, and it is nice to hear that soon you will be able to build all apps using the GraphQL API without having to sprinkle in the occasional REST request.
Possibly my favorite addition to the Shopify dev docs: An AI-powered tool has been added that auto-generates GraphQL queries and mutations based on a natural language input.
For example, the input “I want to create a new product metafield” gives me the following mutation:
And I get an explanation of all the inputs and returned fields!
Finding things in Shopify’s documentation can be a frustrating task (I had a long, long discussion with other Shopify app devs at Editions.dev where we compared our extensive collection of bookmarked Shopify docs pages that would otherwise be impossible to find again), and I think this query generator will really help improve the Admin (and Storefront, and Customer) GraphQL API docs experience.
I want to build something similar for Gadget, so keep an eye out for that!
Bonus: in-person events
Between Editions.dev, Pre/ditions, and all the meetups throughout the week, I have to give a nod to the Shopify community. It was great to chat with so many of you and talk through your ideas and technical problems. We had an amazing time connecting with everyone, and we’re all looking forward to next time.
That wraps up my highlights from Shopify’s Summer ‘24 Editions! If you have any questions or want to chat about any of the other new features announced, send me a message in Gadget’s developer Discord! I’m always happy to help and take recommendations for future app builds!