Sometimes You Want to Discount Your Pricing Based on Team Size
I help people build eCommerce stores, online courses, and membership site solutions, all using WordPress. One of the most interesting projects is when you need all three together – a membership site that gives people access to protected courses that they have to purchase. And in that context, sometimes someone will ask how to discount membership prices based on the number of “seats” purchased – or team size.
If you look at the image below, you'll see what I'm talking about. Here you see a team membership that might cost anything from $50 – $100 per member (per year, if you want), depending on your team size.
So how do you do this? Is it a complicated automation with discounts based on team size? Sure, that's one way to do it. With an auto-application of a coupon, but you'll need to work on some fancy logic.
What if there was another way to do it? I am going to show you how I solve this problem.
You Can Do This With WooCommerce
The good news, and you likely knew this, is that you can do this with WooCommerce.
It has extensions for Memberships and Teams for WooCommerce Memberships. These, along with WooCommerce, are all you really need, but if you want to charge a recurring price (like annual memberships), then you'd also need the Subscriptions extension.
These extensions have a cost. No question about it. But they make it so easy to pull this off, that in my book it's totally worth it. I've used this specific recipe countless times since the SkyVerge team first came out with the Teams for WooCommerce Memberships extension.
Here's How You Do It
I wish I could make this a super complicated recipe that showed you how smart I am. But I can't. Because once you see it, you'll immediately realize how simple this is.
No need for complicated coupon logic. So let's get into it.
First, Install The Plugins
First, you need the extensions I listed above. Buy them from WooCommerce.com and get them installed. You'll see below that I have them, plus the Redis plugin we use at Nexcess (where we offer a dedicated WooCommerce hosting plan).
Then, Create a Variable Product
Step two takes you to the Products area to create a new product. In this case you'll choose a Variable Product, and click the check box to make it a Team Membership product.
The other thing it will ask, because it's tied to memberships is that you want to connect them to a membership plan that you create in WooCommerce > Memberships (the second tab for plans).
Next, Create Your Attributes
Any time you are going to create a variable product, you then have to go to the Attribute area to create a custom attribute.
Notice that I call my attribute, “Team Size” but you can call it anything you want. The point is that the values for this attribute are how you're going to define your price breaks.
Notice that I also name the variables with the price in it, so people can see the consequences of choosing the team size right away.
This is the “magic” part that isn't a lot of magic. What I'm telling people is that small teams pay $100 per person, medium teams pay less, at $75, and large teams get a bigger discount at $50. In other words, I'm discounting membership prices simply by creating pricing tiers.
To be clear, none of this is happening yet. It's just text in the title.
Also make sure you click the “used for variations,” check box. That will allow you to create a variation for each value on the right.
Now, Configure Your Variations
The real work where you apply those discounts is when you go to Variations and click the “create a variation for each attribute.” You'll end up with three if you copy the work I did above.
Now, for each one, you can define two key aspects of your membership. If you want to discount membership prices based on team size, you need to configure the per member price, and also the minimum and maximum number of members at that pricing tier.
Once you do it for the small team, you do the same thing two more times, changing the price and the team size.
Turns Out It's Not Nearly as Tough as You May Have Thought
Simple, right? When the user picks the size, they are given the option to pick the number of seats they want to buy. And by doing that, they shift to a different price tier. The nice thing is that the constraint (number of seats) is automatically adjusted as well.
I find this work normally takes me more time to define the pricing tiers and seat counts than it takes to implement it. I hope it helps you.
Sign up for free content. People still do that.
Thousands of folks (7000+) regularly get my posts in their inbox. For free.