Managing Variable Membership Rates

I’m looking to migrate a site to Ghost - it’s a site for a community group that charges monthly dues. So far, they’ve been doing cash and check only, but would like to move to being able to accept online payments. I thought Ghost with Stripe integration would be a good fit, but I’m not sure.

Membership dues change from year to year - generally going up every year for new members. Membership rates do not change for active members. So a member who has been a part of the group for a few years will pay less monthly than a member who just joined this year.

I’ve been working on a test site on localhost, and have Mailgun set up correctly and am now working on Stripe integration (using the test API keys). I saw that a Product was created in Stripe when I enabled Membership. However, as has been pointed out in other threads, variable rates (or tiers) are not currently supported through the Ghost Admin.

How do I integrate this? Is it possible?

I created a test customer in Stripe, added a test Product and a Pricing Plan for that product, and then subscribed my test customer to that product. But on the Members page, looking at the test customer (same email address as the customer in Stripe) - there is no Subscription information.

Any help would be greatly appreciated!

Have you tried signing up for a member plan in on your Ghost site instead of creating the customer directly in Stripe?

Members is marked as ‘beta’, as shown in Ghost admin, and is still in active development at this stage.

I did just now. I enabled free member signup and subscribed using the Subscribe feature from the site. The test email account received the subscription email and confirmed, and that account now shows up under the Members tab.

But the test member shows as having no subscription. Even though I have set up Subscription Pricing, which in turn created a Product in Stripe with two Pricing Plans (the Monthly and Yearly plans).

Did I miss something in the configuration or in the process of subscribing to my site?


EDIT: I should mention that all of the data in Stripe is test data, and I’m using the test API keys, in case that makes a difference. Also, the new member email did not show up in Stripe as a customer.

Have you checked out our Members documentation? To sign up for a paid subscription on your site you’ll need a member to follow the paid plans flow with a checkout button, more info can be found here:


Thank you. I found a part of the issue - I was using a slightly modified version of Casper, which apparently is not Membership-enabled. I switched over to Lyra, which includes pages for membership flow and checkout, and I got things mostly working:

  1. I was able to self-subscribe
  2. I logged in as my test user, and select a subscription plan
  3. Using Stripe’s test APIs and a test card, I successfully processed a “payment”
  4. My test user showed up in Stripe with the correct product (Monthly) and at the initial pricepoint
  5. The member does NOT show as having a subscription in the Members page of Ghost Admin.

The really GREAT part is that, as far as I can tell, when I change the subscription price in Ghost Admin it created new pricing plans in Stripe and did NOT change my first subscriber’s rate!

I realize troubleshooting my local installation of Ghost is next to impossible, but any ideas why the Member page doesn’t show the Stripe information for that user? Neither of the two test users I’ve set up have any Stripe info on their page.

Thanks again!

That’s good to hear! I’m not entirely sure what you mean by “their page”? Do you mean when the member is logged in there isn’t much information about their own subscription? If so then there are ways to expose that information in the theme, check out our Members documentation on exposing member subscription data in themes:

Sorry, should have been more clear - I mean the member detail page under the Members section of Ghost Admin.

Right, however I’m still confused on what you’re not seeing? Are you able to share some screenshots? As you said, it’s hard to debug something running locally on your machine :sweat_smile:

Absolutely - and thank you again for the help.

I subscribed to my site successfully using an email address - and I was able to successfully add a paid membership to the Stripe account (test data) using one of Stripe’s test cards to process a payment. Here’s the Customer record in Stripe:

It shows that the customer is Subscribed to a product and had a successful payment.

But in Ghost Admin, this is what I see:

Same member, based on the email address, but the Stripe Info section is empty.

I’m reasonable confident it’s not my integration with Stripe - subscribing to my site using that email address created the Customer and processed the payment correctly in Stripe. And it created the Member record that I can see in Ghost Admin. But the Stripe Info is missing, which makes me concerned that some part of the integration is broken.

Thanks again!

I wonder if it’s not showing an active subscription because it’s in test mode? Hopefully someone from Ghost can help.

As far as the variable membership rates as you mention, Ghost should just be using the Stripe API to create a subscription. If someone joins for $9/month now that subscription rate shouldn’t change. If you change it in Ghost then only new subscriptions would charge the new rate.

If you need more complex subscription scenarios then you’d probably have to use a third-party cart tool but it doesn’t sound like you need anything complex right now.

1 Like

I spoke with a member of the team here and it’s due to you using a local instance of Ghost. To get Ghost working properly with your Stripe account you either need to be using a production site that can communicate with Stripe, or use this guide to setup Stripe with your local instance:

Hopefully that should sort things out for you :+1:

I was successful with those instructions up to the point where I start Ghost with the WEBHOOK_SECRET. Trying to start Ghost with the command:

WEBHOOK_SECRET=whsec_1234567890abcdefg ghost start

Where I use the secret that the Stripe-CLI gave me (not the one above) gives the following message:

'WEBHOOK_SECRET' is not recognized as an internal or external command,
operable program or batch file.


If you’re using windows, you need to use the set command:

set WEBHOOK_SECRET=whsec_1234567890abcdefg & ghost start


Thank you! That got Ghost started again!

But it didn’t resolve the issue in Ghost Admin. I signed up a brand new user with a new email address, and went through the entire subscription process including processing a payment successfully. I can see in the Stripe-CLI that all of the activity went through successfully:


But the Members detail page for the new user still shows no Subscription information:

Anything I might have missed? The signup and payment processing in test mode did work before I installed the CLI.