When I pitch Commerce Layer to prospective clients, agencies and investors, they have a lot of great questions but one of the most frequently asked is:
How does Commerce Layer compare with Shopify?
I know Shopify very well, having followed their evolution through the years. In this article, I will answer this question. Specifically, I will compare Commerce Layer with Shopify Plus — their enterprise offering.
I will address several key aspects such as development workflow, content management, global commerce and total cost of ownership. At the end of the article, I will summarize my conclusion, hoping you find it useful in understanding the best option for your specific environment and use case.
If you want to learn about Commerce Layer and Shopify more deeply, you landed on the right page. It’s a committed read, so please make yourself comfortable, grab your doppio espresso, and let’s get started.
With more than one million merchants, Shopify is the most popular ecommerce platform on the market. It's an all-inclusive SaaS product that makes it easy to start selling online with "no coding required" and with a relatively low budget. The Plus version offers better performance in terms of site speed and some additional capabilities, but it's not very different from the standard offering in terms of online shopping features. For this reason, when making the comparison, I will refer to "Shopify" or "Shopify Plus" interchangeably.
Commerce Layer is a headless commerce platform for developers. Like Shopify, it is a fully-managed SaaS product, but instead of providing an all-in-one solution, it promotes a best-of-breed approach that encourages you to integrate the tools of your choice. The core philosophy is that all businesses have some distinct requirements and instead of trying to cover them all with a standardized "no coding required" solution, it provides a flexible commerce API to build custom-tailored frontends and applications where desired.
This developer-first approach makes it easier to build ecommerce on the Jamstack, a revolutionary new architecture designed to make the web faster and more secure. Jamstack brings many benefits to websites: unparalleled page speed, easier scalability, higher security, and better developer experience. When applied to ecommerce, these benefits become even more important. Faster page load times have a direct, positive impact on your conversion rate. A 0.1s faster load time can increase conversion by 8%. Having a consistently fast website — whether off-peak or during seasonal spikes and BFCM — will boost your revenue instead of hurting your servers. And security is paramount for any ecommerce site.
Web development workflow
Shopify frontend development uses the Liquid language to display data within a template. It is a web-centric language similar to PHP but intentionally more restrictive. It supports variables, loops, conditional logic, and operators. But it doesn't allow you to maintain a state or access platform data beyond what's available on a specific template. The primary purpose of these limitations is to give developers some measure of control over page layouts without compromising the platform’s security and speed.
Building a website on Shopify means developing a Shopify theme, which is a set of Liquid templates with a predefined structure. For example, every Shopify theme includes a product template to manage the product detail page (with access to the product object) and a collection template for the product listing page (with access to the collection object). In this approach, you are designing your brand’s website as a Shopify theme using the Liquid language, and, as a developer, you are adapting your workflow to the platform’s templating system. The platform dictates your flow.
Shopify also provides an official Theme Store where you can purchase additional themes and customize them to better align with your branding.
If you want to customize your online store design even further, you can leverage the Storefront GraphQL API and try to deploy Shopify in a headless manner. This approach can work in simple use cases but because headless commerce is not native to Shopify, it has many limitations that we will delve into later, in the Content Management section.
The platform also provides an Admin REST API to extend the core functionality of the platform. Shopify developers use the Admin API to build apps that brands can purchase from the official Shopify App Store.
Commerce Layer is a native headless commerce solution that decouples the front end of your website’s design from the backend logic. This foundational separation allows you to start your development workflow from a branding, business and creative perspective, in terms of design and technology. It allows you to continue using your current CMS or choose one that achieves your brand goals and creative flexibility. Developers are able to use the programming languages and tools of their choice. Since you are not required to work within a pre-defined templating system, coding is required from day one. Instead, you have the flexibility to create any site structure, use your preferred programming language, and adopt a Jamstack development workflow.
Given its headless nature, Commerce Layer doesn't provide a theme store. One of the main benefits of headless commerce is that you can design any customer experience and overcome the limitations of monolithic solutions, so starting from a theme is not the most effective way to work within this architecture.
Shopify comes with a built-in catalog and a content management system with nice drag-and-drop support. The level of customization on your site pages depends on how your theme has been developed. Shopify’s goal is to let merchants with no design or coding experience create their website without the need for developers. This WYSIWYG approach is prevalent among monolithic platforms where the front end is coupled with the backend application. A templated approach can result in faster set-up and ease of implementation but trades off on design flexibility and future enhancements.
When you make changes with the Shopify store builder, you're changing your online store pages, but the content you create is not accessible outside your website. The Storefront API, for example, only gives you access to products and collections, but not to your editorial content pages. The preview functionality represents another limitation; you can only preview changes to the website layout but not to its content such as product descriptions and visual merchandising.
Commerce Layer’s approach is to provide an ecommerce transactional platform that lets you integrate with the ideal CMS of your choice, whether currently in place or new. With an API-first architecture, it readily integrates with the leading headless CMSs such as Contentful, DatoCMS, Sanity, GraphCMS, and others for both product catalog and editorial content management. Traditional CMSs like Wordpress, Drupal, or Adobe Experience Manager are also supported.
Besides being headless, all those content management platforms are also schemaless, which means that you can define any content model and support any custom design. The product SKU codes represent the (only) integration between content and commerce. Any content associated with an SKU code can be made shoppable through Commerce Layer's API, providing the maximum flexibility.
Moreover, the content you create is accessible from any channel via API, powering any customer touchpoint with a consistent storytelling.
Having a CMS and a transactional platform results in two backend systems that users will need to log into: one for content management and one for order fulfillment. In larger organizations, this is not a concern since they are managed by different team members: content editor, content publisher, merchandiser, and operations. But if your team is small and the content editor is the same person as the fulfillment manager, you should keep in mind that they will need to access two different applications to manage their day-to-day operations. To mitigate this, we're working with our partner CMSs to enable single sign-on solutions and let users access different backends with the same credentials. We should release the first SSO integrations at the beginning of next year.
Shopify Plus supports a single price list in a single base currency on an account basis. The multi-currency feature only lets you manually define exchange rates and rounding rules for all other currencies. When an international customer visits your store, Shopify converts your product’s base currency price (applying conversion rates/fees) and authorizes the customer payment in their local currency. When you capture the payment, the actual amount that credits your bank account is calculated using the FX rate, which is not in your control and generally different, due to timing, from the exchange rate that you had previously configured.
For example, let's say your base currency is in US dollars, and you want European customers to shop for your products in Euros. You define a USD/EUR 0.85 exchange rate based on the current FX rate. Without considering the rounding rules and conversion fees, the converted price of a $100.00 product would be €85.00. So when the European customer purchases your product, the authorization amount is for €85.00. Now, let's say that after a couple of days, your order is ready to ship, and you capture the authorized credit card. In this time, the Euro became stronger against the US Dollar, and the USD/EUR FX rate has gone down to 0.80. So your actual payout is €80.00 instead of €85.00.
If you sell in different, local currencies with this solution, there will always be currency risks. During the time gap between authorizing and capturing a payment upon shipment, the FX rate is very likely to change, to your benefit or detriment. The same happens in the case of refunds and chargebacks.
The workaround is to adopt a multi-store architecture, one for each currency. Essentially, you create one Shopify account for each of your markets, and you keep them synchronized — theme, content, inventory — with a third party application.
This solution has become commonplace such that Shopify Plus includes up to ten store instances for the same commercial account relationship. Keep in mind that this is only a commercial consideration, not functional. There are no technical connections between the ten stores in your Shopify Plus commercial agreement. If you make modifications to one site, you need to carry these changes to the remaining nine sites to keep them all in sync. Such a workaround may be manageable for 2-3 instances, but becomes a challenge beyond that.
Commerce Layer has been designed for global brands from the ground up. Within the same account, you can configure as many markets you want, each with a localized price list, in the local currency. This is especially important if you have a physical store presence in that market and must ensure that the online and store pricing is identical. In this context, you can think of a Commerce Layer market as a Shopify instance. There's no need to duplicate and synchronize different stores, as they all belong to the same account.
A common practice among our clients is to connect one or more countries to a specific market through the CMS. When customers select their shipping country — which typically happens when they land on the website for the first time — they are redirected to the country-specific store, which is connected to a market, based on the configuration.
In international markets, communicating in your customer’s native language builds trust, creates continuity with localized marketing campaigns and increases your conversion rate. For this reason, multi-language support is paramount for any global brand.
Shopify is a single-language platform. To enable multiple languages on your site, you have to add a third-party app to your store and manage translations within the app interface.
Since it is not a natively supported feature, there are some limitations that keep this solution far from being ideal. For example, the search function works only in the shop's primary language. Moreover, translation apps generally make your theme's code less clean and readable to developers.
As in the case of multi-currency, the commonly accepted workaround is to create different stores for different languages. The problem is that if your brand needs multi-currency and multi-language support, the matrix of required stores grows exponentially. And so do the complexity of your infrastructure and costs.
When building ecommerce with Commerce Layer, multi-language capabilities (and translations) are delegated to the headless CMS. All our partner have native content localization support. This is core to their product.
For each ship-to country, Commerce Layer can support multiple languages which are independent of the designated currency. The language selection determines the content localization on the site. As a result, customers can browse and search for any content in any language, whether it's product information or editorial content. The search function also supports multiple languages. The resulting architecture is much more lightweight than Shopify’s and lets you scale your business with confidence; the cost of your infrastructure will grow as a linear curve instead of an exponential one as new markets are added.
All Shopify stores come with a hosted checkout solution that lets you accept orders and take payments in no time. The level of customization allowed for the checkout function is very low, and even though this is one of the requested areas of improvement by Shopify merchants, there's a valid reason for that. It’s called "PCI compliance," and it is one of the most undervalued benefits you get by adopting a cloud solution like Shopify.
The Payment Card Industry Data Security Standard (PCI DSS) is a set of requirements intended to ensure that all companies that process, store, or transmit credit card information maintain a secure environment. Shopify is certified Level 1 PCI DSS compliant. This compliance extends by default to all stores powered by Shopify. Should Shopify allow developers to customize the checkout flow more, they would open a security hole and lose their — and their merchants’ — compliance protection.
So, even if all Shopify checkouts end up looking the same, the trade-off makes a lot of sense, especially for small retailers that couldn't afford the time and cost of securing the same level of PCI compliance.
Shopify Plus gives merchants a higher level of flexibility in terms of checkout customization. From a functional perspective, this is the only relevant difference between Shopify and Shopify Plus. Developers have access to an additional checkout template in their store theme.
The real challenge with Shopify checkout is still related to selling in global markets. The lack of native multi-currency and multi-language support forces some of the most international Shopify Plus customers to rely on a third-party solution for checkout, which negates the value of a turnkey solution.
Commerce Layer takes an entirely different approach. Each checkout is linked to a market which enables local, market-specific configurations such as currency, payment methods, delivery options, special promotions and more. It also delivers the highest PCI compliance coverage possible while leaving merchants the freedom to design any checkout experience for their customers and utilize the most current best practices.
Instead of providing a hosted checkout with low level of customization, it exposes a flexible checkout API to build your custom flow and experience on the front-end while providing full backend functionality. This approach allows you to continually enhance the checkout funnel to improve sales conversion. It's the headless way of taking care of 80% of the business logic and security, leaving the frontend developer full control — and responsibility — over the remaining 20%.
Commerce Layer also provides the option for an open-source hosted solution. This can be used by smaller merchants looking to accelerate their time to market or for any brand as a proof of concept or project Phase 1. With this solution, developers can configure a checkout with a handful of environment variables and deploy it with one click.
This application consumes the very same checkout APIs that are available to the public and you can always switch to a custom version when you are ready.
Total cost of ownership
Shopify Plus starts at $24,000/year. The total cost of ownership can increase significantly if Shopify Payments is not supported in your country or you can't use it for other restrictions (such as the type of products you sell). In that case, you have to choose one of the third-party supported gateways (Stripe, Braintree, etc.) and Shopify Plus applies a 0.25% transaction fee on each order. The impact of those transaction fees depends on your business volume — the higher the revenue, the higher the costs. For example, the transaction fees for a $10M business would be $25,000/year, taking the total platform cost to ~$50,000.
Additionally, there's the cost of the third-party apps to consider. On average, $5,000/year for all the apps is a reasonable assumption for a Shopify Plus instance. If you need multi-currency and multi-language support and you do it by creating multiple stores, you need to install (and pay) all the required apps for each of your stores. For example, if you create five different stores to manage five different markets, your apps add another $25,000/year to the final billing. This can be up to ~$75,000, excluding site design, payment gateway fees, BAU development costs, and other services.
Commerce Layer starts at ~$10,000/year with ~35,000 orders included, regardless of their value. There are no transaction fees. This fixed-price model makes Commerce Layer more convenient for brands that have a higher average order value. For example, if your average order value is $10.00, the value of 35,000 orders is $350,000. In this scenario, the impact of the platform cost on your total revenue is $10,000 / $350,000 = ~2.8%. If instead, your average order value is $500.00, the cost impact goes down to ~0.057%, which is a dramatic difference from the Shopify scenario.
The native multi-market support within Commerce Layer keeps the cost of infrastructure constant if you sell in multiple countries, and there are no apps to install and pay. Instead, you need to consider some custom development to integrate the other tools of your stack, plus the cost of the CMS and the CDN of your choice that can be around $5,000-10,000/year for large volume websites. As with the Shopify example, design, payment gateway fees, BAU development costs, and other services are also excluded.
Shopify is a great platform for merchants getting started on ecommerce and/or looking for an alternative to the Amazon Marketplace. It’s fast, reliable and easy to use with its templated theme approach. Its core limitations lie in creating unique content experiences and customer journeys and selling in multiple international markets.
A headless commerce solution is for those merchants who believe that storytelling and content experiences distinguish their brand and therefore, don’t want to limit their creativity or their online execution. They want to use a robust, best of breed CMS solution and make this content completely shoppable across all touchpoints and devices — whether its PC, mobile, app, or IoT. In addition, through the power of social media, brands have an international audience that can be converted to sales. Being able to deliver a localized experience creates a positive customer engagement and builds trust. Building ecommerce on the Jamstack is orders of magnitude more effective, and it's not just a developer benefit. It's an architectural choice that can significantly boost your sales on its own, and can further boost your profitability.
So which is the right solution for you?
If you are a small business with simple requirements and a single market presence, then Shopify might be your best option to start with.
If you want to implement a more unique design and have content flexibility, you can try a Shopify headless solution by integrating a headless CMS and using Shopify to manage the transactions. As mentioned, this setup is not native to Shopify, and there are many limitations to consider. Still, if you are already selling on Shopify, it could be a first, cost-effective step towards a full-featured headless commerce stack.
If you are a growing brand and want to expand your business internationally, chances are you already reaching the limitations of using Shopify for headless commerce. In that case, consider migrating to a global solution provided by Commerce Layer.
More and more brands are making this switch as their business grows. In the past few months, we created many tools just to help developers export products, prices, orders, customers, gift cards, and all other data from Shopify to Commerce Layer. If needed, we can also manage the entire migration for you, further reducing switching barriers.
If you want to learn more, get in touch with us. We would be happy to understand the digital evolution of your ecommerce business, your current resources and technical environment and answer all your questions to help you take your ecommerce to the next level.