Clicks & Carts

Building a subscription store on Shopify

Selling plans and the Subscription APIs make recurring revenue native. The difficulty is entirely in the edge cases.

8 min read · Store setup ·

Subscriptions on Shopify are native in the sense that the platform provides the machinery — selling plans and the Subscription APIs — but you reach them through an app rather than a settings page. The build is straightforward. The edge cases are where recurring revenue either works or turns into a support queue.

How the model works

A selling plan describes a recurring purchase: what's delivered, how often, at what price, with what discount. A product can have several — weekly, monthly, quarterly — alongside a one-off purchase option.

When a customer subscribes, Shopify creates a subscription contract holding the schedule, the payment method and the line items. Billing attempts create orders on schedule, and each one behaves like a normal Shopify order for fulfilment and reporting.

App or custom

Start with an app. The subscription apps handle selling plans, the customer portal, billing retries and dunning — a substantial amount of unglamorous work you'd otherwise rebuild.

Custom becomes worthwhile when:

  • Your box contents change per cycle in a way the app can't express.
  • Pricing depends on customer-specific rules — Functions territory.
  • You need subscription data flowing into an ERP or fulfilment system with your own logic.
  • The customer portal needs to do things the app's version won't.

The usual answer is an app plus a small amount of custom work — the same shape as most build-versus-buy decisions. Subscription development covers the technical detail.

The edge cases that decide everything

This is the real content of any subscription project. Decide each one deliberately:

Failed payments. How many retries, over how many days, and what does the customer see? Dunning is the single largest lever on involuntary churn — more than pricing, more than product.

Expired cards. Prompt before expiry, not after the failure.

Skipping a cycle. Customers who can skip stay subscribed. Customers who can only cancel, cancel.

Pausing. Same logic, longer horizon.

Changing the address or the payment method mid-subscription.

Out of stock at billing time. Substitute, skip, or delay — pick one and make it consistent.

Prorating a plan change. Upgrades mid-cycle need a rule.

Refunding one cycle without cancelling the contract.

What happens on the final cycle of a fixed-term subscription.

Stores that skip this list discover each item individually, in production, through an angry email.

Customer self-service is the churn control

Every action a customer can't perform themselves becomes an email to you, and a meaningful proportion of those emails become cancellations because emailing is more effort than clicking cancel.

At minimum, let them: skip a cycle, change the next delivery date, change quantity or products, update the payment method and address, pause, and yes — cancel. Making cancellation hard doesn't retain people; it produces chargebacks and bad reviews.

Fulfilment

Subscription fulfilment is different from one-off fulfilment in one important way: it's predictable. You know what's shipping next month, which is a genuine operational advantage — if the data reaches your warehouse in a useful form.

That usually means a scheduled export or an integration that produces the upcoming cycle's picking list in advance rather than order by order.

The numbers to watch

  • Involuntary churn — subscriptions lost to failed payments. Usually fixable with better dunning, and usually larger than people expect.
  • Voluntary churn, and at which cycle. A spike at cycle two means the product didn't meet the promise; a spike at cycle six is normal fatigue.
  • Skip rate. High skipping is a good sign, not a bad one — those customers are still subscribers.
  • Cohort revenue rather than monthly totals, which mask what's happening.

What the product page needs

  • The price per delivery and the total commitment, unambiguously.
  • How to cancel, stated plainly on the page. Counterintuitively this raises sign-ups.
  • What arrives and when, for the first delivery specifically.
  • A one-off purchase option alongside the subscription for people who won't commit yet.
Building the subscription takes a fortnight. Deciding what happens on a failed payment, a skipped cycle and an out-of-stock item is the actual project, and it's a conversation with the business rather than a technical task.

Is this the problem you’re looking at?

Send me the link to your store and a line about what is going wrong. You get a straight answer within one business day — no pitch, no obligation.

[email protected]

Or see what I do around Shopify: services, work beyond the theme, selected work.

Keep reading

← All articles