How to solve for complex subscription models and recurring payments with composable commerce.
Back in 2021, Harry’s raised $155 million in venture capital at a $1.7 Billion valuation. Investors bet that Harry's digital sales and marketing systems would pay off amid a hyper-competitive market for quality grooming products. It’s a risk because consumers have never had more options for affordable shaving gear. Low-priced, high-quality gear has led to razor-thin margins where every dollar of revenue counts. While Harry’s is using that tranche of capital to grow through acquisitions, they rely heavily on one aspect of their core strategy: digital razor blade subscriptions that drive repeatable orders and predictable profits. Thirty-plus million razors sold later, they continue their march forward.
Harry’s is one recognizable example amid thousands. Successful direct-to-consumer brands are building digital experiences with hyper-optimized checkouts that rely on subscriptions. We even wrote about a brand most don’t associate with digital subscriptions and how they use them to lock-in loyal customers. In that article, we named a few complexities that brands face when building subscriptions. Let’s review the list:
- How to build a checkout optimized for subscriptions
- How a fast page load time and overall site speed affects conversion rates
- Why connecting CRM and fulfillment backend systems is a must have
- How to fix any errors during recurring billing and payment capture
- How customer support is critical to maintaining subscriptions
In this article, we will dive into each issue and how you might address them when building your subscription business. Where applicable, we’ll reference how an API like Commerce Layer provides the tools required to address each challenge.
Issue #1 — How should you optimize checkout for subscriptions?
Checkout is the most important point in a customer journey to capture new subscriptions. During the moment when a customer purchases your product, you can offer a “buy and subscribe” option that locks in a customer for future purchases. And depending on the product, it is a powerful tool that solves a future refill without the customer having to think about it. Take a look at this Harry’s buy and subscribe moment. They call it “auto-refill":
At the point of purchase, you can switch your order from a one-time purchase to a monthly subscription, including a 6% savings to entice enrollment.
Everything in this experience can be powered by a composable commerce API like Commerce Layer. For example, Harry’s could manage this experience with Commerce Layer using the following resources:
- Subscription → Use the Commerce Layer Order Subscriptions API
- Placing an Add To Cart button on page → “Add to Cart” Micro frontend
- Offering different quantities → SKU list resource
What does our Subscriptions API offer?
- Repeat an order according to a specified frequency: hourly, daily, monthly, etc.
- Specify a subscription’s start time, either at the time of the placed order or at a unique time specified by you
- Suspend or cancel a subscription
- Renew orders automatically or manually
- Track any renewal order failures and attach webhooks to act in case something unexpected happens
We recently updated our Subscriptions API with a bunch of new features. You can read all about it in the article below.
After that, your best bet is to read through the docs we’ve assembled that make it clear how to use Commerce Layer’s API to address these issues.
- Start with the Subscriptions data model to learn how to set up your subscriptions model
- Read this Subscriptions how-to guide with steps to setup things like frequencies, automations, and other strategies
- Make your way to the Subscription API Resource documentation for more granular information.
Issue #2 — Fast site speed
The question is not if slow site speed can negatively impact your business. We all know that speed impacts abandonment rates. The real question is how big is that impact. A quick Google search like “how do page load speeds affect cart abandonment” reveals tons of reference articles.
But that’s common knowledge at this point. Fast checkout speeds will lead to more subscriptions. It’s that simple.
An effective way to improve your page load times (by making them faster!) is to use a checkout solution that makes use of a “client-side API”. For example, at Commerce Layer, we are able to offer a fast checkout experience by caching as much data as possible with our CDN. This results in fast response times when a client application like a web browser makes a request for data. For any data we cannot cache, like the order information captured at checkout, we have optimized our core API service to respond and update very quickly. We interviewed our CTO to get a deeper dive into exactly how we have tuned Fastly (our CDN) to deliver API response times in milliseconds. You can read it to get a better understanding of how we are optimized for speed.
Issue #3 — Connections to backend systems like a CRM or fulfillment provider
Successful subscription offerings rely on services like CRMs or fulfillment providers to ensure proper customer service. Let’s look again at the Harry’s Razor Blades example below. If a customer is signed out at the point of checkout, they ask the visitor to sign in or sign up so they can capture key information to build the subscription. And while some might think it’s a risky move, in Harry’s case, they require the customer to do one or the other.
Because it is so critical to their revenue model, Harry's tightly couples the checkout with the backend CRM and fulfillment systems. They can’t afford any customers to slip away and can't accept any limitations. Brands should select a commerce engine that can connect to their CRM and can be extended to work with any and all third-party end endpoints.
With Commerce Layer, our checkout API offers webhooks that you can use to listen for events. When those events fire (e.g. a user clicks the buy button), your frontend can POST a request to the CRM endpoint that is specified in the webhook's
callback_url field. The same webhook functionality can be used to send a successful order to your fulfillment system, but you can also use any of our pre-built integrations with our fulfillment partners: Asendia, EasyPost, or Qaplà.
Read our helpful webhook documentation for how to get started. The article below is an additional guide that provides even more details.
Issue #4 — Recurring billing and payment capture
Recurring billing and payment capture can be a thorny issue for subscription products. Things can go wrong as failures can take place at any step along the way. A customer’s payment method may have expired, or they may have changed their details at the last moment, or any one of several reasons why payments aren’t properly captured. You never know until it happens. But you do know that you need a reliable system that can capture payments from your recurring orders.
The basic questions to ask:
- How do you set up regularly recurring billing?
- How do you know if the payment has been successfully captured?
- What happens if a failure occurs throughout the process?
The success of a recurring subscription order depends on whether the original order's payment source is saved in something like a customer wallet. Subscription options are available for payment gateways that support reusable payment sources. For example Adyen, Braintree, Checkout.com, Klarna, and Stripe have APIs that can throw an alert if any errors occur. You can use those to trigger what needs to be done in your commerce backend.
Commerce Layer’s subscription API can manage recurring subscriptions and monitor any errors in the process. Our error counter increments when a subscription order fails, but the customer’s subscription remains active so you can investigate what is going on. You can check the associated order’s error log, fix any missing or wrong data, and manually place the order. The process resolves an affected subscription and allows it to continue working as planned. As a best practice, we recommend attaching webhooks on order subscriptions and order copies events to react promptly in case something unexpected happens.
Issue #5 — Integrating with customer support
Customer support represents one of the most important parts of any subscription service. Customers might get caught off guard by a recurring charge. As a result, they might want to return the product and cancel the subscription. This can’t be done easily without an integrated customer service channel.
How does Commerce Layer help? A few ways:
Commerce Layer captures a lot of information at the time an order is placed. We pass that information along to any connected service. If you have a dedicated support system, you can use Commerce Layer webhooks to pass order information for each customer to that system.
We also offer a powerful My Account application, and will soon release a hosted My Account micro frontend. (← Checkout our Micro Frontends documentation to learn all about them.)
With our My Account app, customers can:
- Get a summary of all of the their orders
- Get an order summary with line items and total amounts
- Create and update billing and shipping addresses
- See shipments associated with the order and track parcels in transit
- Review payment method associated with the order
Harry’s is well on its way from being a disruptor brand to a multi-brand personal care conglomerate. As they continue to invest in their DTC channel, they’re also selling in traditional retail channels like Target and Walmart. From a Forbes article, Harry’s co-founder Andy Katz-Mayfield nods to future M&A opportunities: "There's a ton of consumer brands out there that are high growth and disrupting existing categories," says Katz-Mayfield. "M&A will be a pretty important part of the strategy." Undoubtedly, they will continue to invest in their core DTC subscription strategy as they bring on more disruptor brands.
Look to Harry’s if you’re considering a digital subscription business. Better yet, if you’re looking to improve your underlying commerce engine, give us a shout. Commerce Layer can help you solve pretty much anything associated with your digital commerce experience. We believe that headless commerce doesn't have to be hard, but it doesn’t mean you have to do it alone.