Over the last ~12-18 months, I’ve been spending a lot of time looking at headless frameworks and which eCommerce platforms are suitable and best suited, to a headless approach. Most platforms are currently building out APIs to allow for headless builds and a number of platforms (such as ElasticPath and Commerce Tools) build their offering around being API-first / headless-first. This article is designed to provide an introduction into how Shopify can be used in a headless manner, as well as answer some top-level questions around the impact and good use cases.
What is headless?
Headless, in the context of eCommerce, essentially describes the principle of separating the front-end of your store from the eCommerce platform, with a view to driving improvements around flexibility, performance or operations, generally. A headless eCommerce site would use a different front-end framework (such as a custom react framework or something like VueStorefront for example) or CMS (e.g. Contentful or Prismic) and would then pull in content and components via APIs. Shopify supports this approach via the storefront API.
What is the Storefront API?
What’s a good use case for headless Shopify?
To be honest, this approach is getting more and more common and there’s a much bigger argument for it than there used to be. Headless is still a new approach (especially with Shopify) and there are a lot of cons (generally around loss of functionality, agency lock-in, on-going maintenance etc), but it’s getting a lot more mainstream and there’s a lot more knowledge around it than there was a few months ago. Before, I would’ve said a use case would be a really small retailer (with a small catalog) looking to create an exceptional, rapid front-end experience – but now, I think it’s become a lot more relevant to bigger and more complex retailers.
The headless approach can also solve a lot of limitations with Shopify – such as the URL structure (as you have complete control) and visual merchandising (as you can integrate with solutions that can’t be integrated directly into Shopify Plus. There are also some pretty big brands / stores doing this with Shopify now. Overall though – I’d say this approach is probably best suited to brands or retailers that are hyper-focused on user experience and are willing to compromise in other areas where needed.
What are the cons of headless?
The main cons with headless, as far as I am concerned, are:
- Need to maintain two technologies / platforms
- More complexity around integrations with third parties etc
- Some third parties aren’t compatible
- Loss of functionality within a platform (e.g. content staging, version control in places etc)
- Loss of lots of apps that don’t have APIs available (in the case of Shopify)
- Tied into an agency
These are quite top-level, but you can read this article I wrote which covers these areas in more detail.
Shopify isn’t the obvious choice when it comes to complex headless implementations as the tooling hasn’t been developed in the same way as other platforms (such as API-first platforms like Commerce Tools), but if you have relatively straightforward requirements (in terms of what needs to be extracted from Shopify) and are happy returning the user to the native Shopify checkout, it can be done and it can work well. The approach that all of the following examples sites are based on (and what Shopify is allowing for currently) is pulling components via Shopify’s various API endpoints and the user then being brought back to the Shopify checkout once they progress from the cart page.
Shopify doesn’t currently have the same focus on de-coupling the front-end and operating in this manner as platforms like BigCommerce, CommerceTools,
A lot of the existing headless Shopify builds use a content management (CMS) platform, most frequently Contentful, which is a very popular headless CMS solution. Other examples include Prismic and ContentStack.
Although these sites are relatively simple, here are some examples of stores that use Shopify alongside a custom front-end or a CMS. One thing that I’ve historically found interesting is that it’s really hard to find examples of headless Shopify and Shopify Plus stores, despite a capability to do this via the storefront API and some good examples that I’ve seen through clients. So here are some of my favourite headless Shopify Plus stores.
Staples Canada – Contentful CMS + Shopify
The Staples Canada site is well known for being a really good example of an enterprise retailer using Shopify in a headless manner to allow for more complexity on the front-end. Staples use Shopify alongside Contentful and Akeneo to achieve a number of complex requirements around product and the front-end.
JB HI-FI -Contentful CMS + Shopify
JB Hi-Fi is said to be one of the largest Shopify Plus stores in the world, with them being one of Australia’s leading retailers. Again, JB Hi-fi use Shopify’s storefront API to give them more freedom on the front-end and also improve performance etc. This is one of, if not the, biggest headless Shopify implementations out there.
Clare – Contentful CMS + Shopify
Rachio’s Shopify + GatsbyJS store is a great implementation that features very clean content-based landing pages, content-rich product detail pages and Yotpo product reviews. The site doesn’t follow a conventional eCommerce design approach and the nature of the product and
Yoga Girl – Contentful CMS + Shopify
The Yoga Girl site is really, really fast and the whole site is really clean and functional. The front-end is built using Contentful (which seems to be a
One thing that I really like about this implementation is how they’ve created really specific templates for the different pages (e.g. the studio pages) and then they’ve met the (relatively basic) commerce requirements through Shopify and their APIs.
Seedlip Drinks – Custom Vue.js front-end + Shopify
The Seedlip Drinks site is very content-led and the front-end is built on a what likes like a custom Vue.JS / Nuxt.js setup. The page templates are all very nicely designed and the cart loads as an overlay and then takes you to the Shopify checkout once an item is added to the basket.
The product detail pages are really nice and are very focused on showcasing the bottle image.
All of the templates are very custom (they don’t follow a standard convention at all) and the website and all key functions are really fast again.
This example is extremely simple, but it’s a good example of how it can be approach and it’s Gatsby’s own store.
The single page store simply sells GatsbyJS merchandise and displays products details along with an add to cart. Once you’ve added an item to cart you then progress through to the Shopify checkout.
Koala – Custom + Shopify Plus
Impossible Foods – Shopify Plus + Contentful CMS
Grassroots Coop – Shopify Plus + Contentful CMS
Verishop – Shopify Plus + Contentful CMS
Kinsley Armelle – Shopify Plus + Contentful CMS
Chilly’s – Shopify Plus + custom front-end
Victoria Beckham Beauty – Shopify Plus + Contentful CMS
These are just a few nice examples I found, if you have any others, please feel free to email me ([email protected]) or add them in the comments!