Skip to content

One subscription per customer

Keep it one-plan-per-person — block a customer from buying a second subscription while they already hold a live one.

  • One live sub per customer
  • Blocks the second purchase
  • Free core
No credit card required
FreeAdmin & operations

Some businesses are strictly one-plan-per-person — a single membership, one seat, one account. With One Subscription Per Customer on, a customer who already has an active, trial, on-hold, or pending subscription is blocked from buying another. This recipe enforces the single-subscription model.

What you get
  • A customer can hold only one live subscription at a time.
  • A second purchase is blocked while one is active/trial/on-hold/pending.
  • Enforced at add-to-cart and again at checkout.
  • Pairs with auto-migrate to replace instead of block.
Copy these settings

The exact configuration

Enter these values and you have the setup live. Every field maps to a real ArraySubs setting.

SettingValue
One Subscription Per CustomerSettings → General → Multiple SubscriptionsOn
Blocks when existing status isBehaviourActive · Trial · On-Hold · Pending
Auto Migrate to New SubscriptionSettings → General → Multiple SubscriptionsOff (hard block) — On = replace instead
Check runs atBehaviourAdd-to-cart (logged in) + checkout (guests/returning)
Best for

When to use this setup

Single-membership communities and apps
One-seat-per-account products
Anywhere a second concurrent plan makes no sense
Set up

Set it up in 3 steps

A step-by-step guide drawn from the ArraySubs user manual. Open the linked page for the full walkthrough and screenshots.

  1. Enable the limit

    In ArraySubs → Settings → General → Multiple Subscriptions, turn on One Subscription Per Customer.

    General Settings
  2. Decide block vs replace

    Leave Auto Migrate off for a hard block, or turn it on to replace the existing plan on checkout (see the auto-migrate recipe).

    General Settings
  3. Verify the customer experience

    A blocked customer is told they already have a subscription; the check fires at add-to-cart for logged-in users and at checkout for guests/returning emails.

    General Settings
From the manual

This recipe is built from these ArraySubs user-manual guides:

Good to know

Notes & edge cases

The block considers active, trial, on-hold, and pending statuses as ‘live’.
Cancelled or expired subscriptions don’t block a new purchase.
To let the new plan replace the old automatically, enable Auto Migrate.
Built with

Modules behind this recipe

The ArraySubs modules this setup relies on.

Free + Pro

Manage Subscriptions

The central admin hub for viewing, creating, editing, exporting, and managing every subscription record.

Free + Pro

Subscription Products

Create and manage simple or variable subscription products with trials, signup fees, plan logic, and lifecycle behavior.

FAQ

Questions, answered

Any subscription in active, trial, on-hold, or pending status blocks a new purchase. Cancelled and expired ones do not.

Yes. Turn on Auto Migrate to New Subscription so checkout replaces the existing plan via plan-switching proration.
Paid Pro plans

Unlock the complete Pro stack

Start on the free-forever core today, then choose a paid Pro plan when you need the advanced Pro feature set.

No credit card required · Annual and lifetime options available