---
title: "Recurring billing &amp; subscriptions"
url: "https://zendra.com/docs/recurring-billing-subscriptions/"
description: "Automatically bill your membership as a subscription or a subscribe & save model."
published: "2026-03-11T21:01:37+00:00"
modified: "2026-10-09T15:17:06+00:00"
---

Zendra supports several subscription billing models for your membership, from a recurring access fee to subscribe & save deliveries. Subscriptions create **more predictable cash flow**, raise customer lifetime value, and make more from the customers you already have. Subscribers are also more likely to buy from your store again, with higher average order values and stronger brand affinity.

The one decision that shapes everything else is what your Shopify product price *represents*: a one-time access fee, the price of each delivery, or the price of one billing cycle. This page walks through the three models and how each billing plan gets its price.

## When you’d use this

- Sell memberships as recurring subscriptions.
- Offer subscribe & save for physical products on a schedule.
- Set billing intervals and options for paid plans.
- Understand why a billing option shows the price it does, and how to change it.

For a subscription contract with several membership lines, Zendra creates a separate membership for each membership line. Renewal, billing-failure, and cancellation handling follows the relevant membership.

## Offer subscriptions for digital access

If your membership is for perks or digital content access, you’ll choose **An access fee** or **A billing cycle** for what the product price represents.

- Choose **An access fee** if you want to offer a lifetime or one-time purchase *for a single variant product*. You can also offer subscriptions alongside the one-time purchase; each subscription billing plan then needs its own price override, since the product price is the one-time fee.
- Choose **A billing cycle** if you *only* want to offer subscriptions, or if your membership product has variants that **do not** affect access or digital perks (e.g. different physical welcome gifts the member can choose). The product price is the price of one cycle of your default billing plan, and other intervals are priced from it.

If you want to offer tiered perks, create a new membership plan for *each* tier. Trigger each plan by the tier’s **variant**, not the parent product, so the correct perks apply for that tier when purchased.

Bear in mind that price overrides on the billing plans override the product price for **every** variant. That’s usually fine for a simple product or a single variant, but it gets complicated once variants carry different prices. See [Choose the right product structure for your membership](/docs/choose-membership-product-structure/) for how to line up products, variants, and plans.

Check out our recipes for similar membership setups: you can sell a [single premium membership like Barnes & Noble](/docs/recipe-premium-membership-with-perks/), or a tiered premium membership like [Best Buy](/docs/recipe-premium-membership-with-tiers/).

## Offer subscribe & save for regular deliveries

If you want to sell a subscription to the product itself, with a physical item shipped each cycle, choose **An item purchase**. The product or variant price is the price of each delivery, and every billing plan inherits it. You can optionally offer a *discount* on a billing plan, as a percentage or amount off the variant price, for example to reward more frequent deliveries.

We recommend you **avoid price overrides** if your product has variants. With discounts instead, Zendra inherits the selected variant’s price for the billing cycle and calculates the discounted amount from it.

For example, if you sell coffee bags in 0.25 kg and 1.0 kg sizes (variants), you can still set up multiple billing plans (e.g. every month, every 2 weeks). Without a price override, Zendra charges the selected variant price on your schedule. To encourage more frequent deliveries, **apply a discount** to the more frequent billing plan; it adjusts the variant price whenever that interval is selected.

Check out our recipe for a similar setup: sell a coffee subscription like [Counter Culture](/docs/recipe-subscribe-save-product/).

## How billing plan prices are calculated

Every billing plan gets its price from the product price, and the **product price represents** setting decides how.

| Product price represents | The Shopify variant price is… | Other billing plans are priced by… |
|---|---|---|
| **An access fee** | A one-time fee | A **price override** on every subscription billing plan (required) |
| **An item purchase** (subscribe & save) | The price of one delivery | Inheriting the variant price, minus any **discount** you add |
| **A billing cycle** (recurring membership fee) | The price of one cycle of the **default** billing plan | An **automatic calculation** scaled by interval length, unless you set a price override |

### The default billing plan

When the product price represents a billing cycle, one billing plan is the **default**: the option shown first in the purchase widget. The variant price *is* that plan’s price. If your default is monthly and the variant is $5, the monthly option costs $5.

### How the other intervals are calculated

Every non-default billing plan gets an automatically calculated price, scaled by the ratio of the two intervals in days: a week counts as 7 days, a month as 30, and a year as 365.

- Variant price **$5**, default **monthly**: the annual option calculates to $5 × 365 ÷ 30 = **$60.83**.
- Variant price **$49**, default **yearly**: the monthly option calculates to $49 × 30 ÷ 365 = **$4.03**.

The calculation is proportional, so it never gives a “discount” for committing longer, and it rarely lands on a number you’d put on a pricing page. That’s what price overrides are for.

### Overrides versus discounts

A billing plan can have a **price override** *or* a **discount**, never both, and the two are tools for different models:

- **Price overrides** are the recurring membership fee tool. Set one on a non-default billing plan to replace the calculated price with a clean number: $49 per year on a $5 per month plan, for instance, or $50 per year to give “two months free.”
- **Discounts** are the subscribe & save tool. They take a percentage or fixed amount off the inherited delivery price, so a more frequent schedule can cost a little less per box.

When the product price represents a billing cycle, a discount on a non-default billing plan is **ignored** while a calculated price exists. If you want an annual option to cost less than the calculated figure, use an override, not a discount.

### Our recommendation for a recurring membership fee

Put the price of the interval you want customers to see first, usually monthly, on the Shopify variant, and make that billing plan the default. Then price every other interval with an explicit override so the widget shows numbers you chose.

Before you set the annual override, decide whether annual should carry a discount at all. Twelve times monthly is no discount ($60 per year on a $5 per month plan); ten times monthly is two months free ($50 per year). Either is a fine choice, but neither is the $60.83 the calculation produces, so you’ll want an override in both cases.

## Configure billing plans

Each billing plan has a few settings. Some options are forced or disabled depending on the others in use.

- **Price override**: forces a specific price for this billing interval, for every variant of the product. Required on every subscription billing plan when the product price is an access fee; optional (and usually the right move for non-default intervals) when it’s a billing cycle; best avoided when it’s an item purchase on a product with variants.
- **Discount**: takes a percentage or fixed amount off the inherited product price when this billing plan is selected. Useful to reward more frequent deliveries on a subscribe & save plan. A billing plan can have a discount or a price override, not both.
- **Trials & signup fees**: choose what happens at signup. Offer a free trial for a set number of days, or charge a signup fee immediately when the customer subscribes. A billing plan can have a trial or a signup fee, not both. Available on the Growth and Plus plans.
- **Minimum orders**: the minimum number of orders / cycles before the member can self-cancel (e.g. they must complete 3 cycles before they can cancel the subscription). Available on Growth and up.
- **Maximum orders**: a maximum number of cycles to charge, helpful when a subscription has a natural end (e.g. 12 boxes are shipped). Available on Growth and up.

Trial length is its own setting, independent of the billing plan’s interval: a 10-day trial works the same whether the plan bills weekly, monthly, or annually.

## Common issues

- **An annual option shows an odd price like $60.83.** That’s the automatic calculation (monthly price × 365 ÷ 30). Set a price override on the annual billing plan to show the price you want.
- **A discount on a billing plan isn’t applying.** If the product price represents a billing cycle, discounts on non-default billing plans are ignored while a calculated price exists. Use a price override instead. Discounts apply when the product price represents an item purchase.
- **Variant prices are ignored at subscription checkout.** A price override applies to every variant. Remove it if the billing plan should inherit the selected variant’s price.
- **Customers can only buy once.** Add a billing plan to the product so a recurring option appears.
- **A renewal didn’t charge.** See [Membership lifecycle & billing recovery](/docs/membership-lifecycle/) for retries and recovery.

## Keep learning

- [Choose the right product structure for your membership](/docs/choose-membership-product-structure/) — products, variants, and billing plans, and which decision each one owns.
- [Membership plan types](/docs/membership-plan-triggers/) — how customers get into a plan.
- [Membership lifecycle & billing recovery](/docs/membership-lifecycle/) — renewals, failed payments, and cancellations.
- [Plan merchandising](/docs/plan-merchandising/) — how billing options appear in the purchase widget.
