
WooCommerce customer-specific pricing means giving one named account a different rate from everyone else in the same group. You set it on that customer’s user profile rather than on the product, so nobody else sees the change.
Most store owners arrive here the same way. One long-standing buyer negotiates a better rate, and the only obvious way to honor it is to build a whole new wholesale role for a single person. Do that a few times, and you have eleven roles, nine of which contain one customer each.
There is a cleaner way to handle WooCommerce customer-specific pricing, and there is one setting that trips up almost everyone the first time they try it. Both are covered below.
Role-Based Pricing Vs Customer-Specific Pricing
Role-based pricing sets one price level for a whole group of buyers. WooCommerce customer-specific pricing overrides that price for a single account inside the group.
The distinction sounds small. It changes how you build your entire pricing structure.
With role-based pricing, you create tiers such as Silver, Gold, and Distributor. Every buyer assigned to Gold sees the same Gold price. That scales to hundreds of accounts, because adding a customer means assigning a role and nothing more.
Customer-specific pricing is the exception layer that sits on top. Your Gold tier gets 20% off, but one account negotiated 25% three years ago and you want to keep that promise without moving the whole tier.
Here is the practical rule worth applying when you are deciding which one you need:
- Use roles for structure. Anything that describes a type of buyer belongs in a role.
- Use customer-specific pricing for exceptions. Anything that describes one relationship belongs on that user’s profile.
- If you are creating a role that will only ever contain one person, you wanted customer-specific pricing.
Most stores that ask for per-customer rates actually need two or three well-built roles instead. It is worth checking before you go any further.
It is also worth knowing how little room a discount has to move in. According to NYU Stern’s margins by sector dataset, food wholesalers average a 15.44% gross margin and just 1.17% net, while retail distributors average 30.57% gross and 6.05% net. An extra five points handed to one account is a large share of what was left.
Why the distinction matters later
Roles carry information that overrides do not. When a buyer sits in your Gold tier, anyone looking at the Users list can see it, your reports can group by it, and a new team member can work out the pricing logic without asking you.
An override is invisible by comparison. It lives on one profile; it does not appear in a list of tiers, and the reason it exists is usually in somebody’s memory or an old email thread. That is fine for three accounts. It becomes a real problem when the person who negotiated the deal leaves.
So the question is not only whether you can give this buyer their own price. It is also whether anyone else will be able to tell why this buyer has their own price in two years. Build roles wherever the answer to the second question matters, and save WooCommerce customer-specific pricing for the genuine one-offs.
What WooCommerce Does On Its Own
WooCommerce gives every product one price, plus an optional sale price. It has no concept of a buyer who should see something different.
That is not a flaw. WooCommerce was built for retail, where every shopper pays the same. B2B is the exception case, and it needs a layer on top.
It is a large exception. According to the U.S. Census Bureau’s Annual Wholesale Trade Survey, U.S. merchant wholesalers recorded $11.38 trillion in sales in 2022, a 17.4% increase over the $9.69 trillion recorded the year before.
You can code that layer yourself with a price filter. Plenty of stores do, and it works right up until someone needs quantity breaks, or tax exemption, or a report of what each tier actually paid. Then the snippet grows, and you are maintaining custom pricing logic instead of running a business.
The other thing a hand-rolled filter tends to miss is everywhere else a price appears. A product page is the obvious one. Category listings, search results, the cart, the checkout total, order confirmation emails, and the admin order screen all display prices too, and each of them can pull the value through a different path. A filter that only catches the product page produces the worst possible outcome, which is a customer who sees their negotiated rate while browsing and their standard rate at checkout.
This is not a hypothetical. It is one of the most common bug reports on hand-built wholesale pricing, and it is usually discovered by the customer rather than the store owner.
How To Set Up WooCommerce Customer-Specific Pricing
You set WooCommerce customer-specific pricing on the user’s profile in WordPress, not on the product. Wholesale Prices Premium adds a set of wholesale fields to each user account, and one of them turns on the per-user override.
One thing to know before you start: this is a discount override, not an absolute price field. You are telling the store that this buyer gets 25% off, rather than that this buyer pays $14.50. For most negotiated wholesale relationships that is exactly how the deal was struck anyway, but it is worth knowing before you promise a customer a flat figure.
Setting the override
Open the customer’s profile under Users in your WordPress dashboard and scroll to the wholesale settings.
- Find the Override Wholesale General Discount setting and set it to Yes.
- Enter the percentage in the Percent Discount field.
- Save the profile.
That customer now sees their own price. Everyone else in their wholesale role is untouched.
Checking it worked
Log in as that customer, or use a browser profile where you are not signed in as an administrator. Check a product page, then the cart, then the checkout total. Prices can be filtered correctly on the product page and still fall back at checkout if something else is intercepting them, so WooCommerce customer-specific pricing is always worth testing end to end rather than at a glance.
The Setting That Breaks Most First Attempts
The per-user override depends on a general wholesale discount already existing in your store settings. If no general discount is configured, the override has nothing to sit on top of, and switching it on changes nothing at all.
This is the single most common reason WooCommerce customer-specific pricing appears to do nothing. You set the field to Yes, enter the percentage, log in as the customer, and the price has not moved. Nothing is broken. The layer underneath it is simply missing.
The fix is to set a general discount under Wholesale Prices first, even a small one, and then apply the per-user override on top of it.
What we’ve seen: Store owners configure the per-user override, see no change on the front end, and conclude the feature does not work. In almost every case the store has no general wholesale discount set, so there is nothing for the override to override. Check that before you check anything else.
There is a second detail worth knowing alongside it. The percentage you set on the profile applies to products that do not already carry a fixed wholesale price of their own. Where you have typed an explicit wholesale price on a product, that figure keeps winning, because a fixed price always takes precedence over a percentage. Our wholesale pricing guide walks through how the four pricing methods stack against each other.
Per-Customer Quantity Tiers
The same override gate also unlocks a quantity discount mapping for that individual customer. You can give one buyer better break points than the rest of their tier.
This matters when a single distributor moves far more volume than their peers but you do not want to create a new tier for them. Their role might get 10% at 50 units, while that one account gets 10% at 25 units.
Set it in the same place, on the user’s profile, once the override is enabled. Change Override General Quantity Based Discounts to Define Alternate Quantity Based Discounts For This User, build your break points, then click Add Mapping and save. The mapping works the same way as the store-level version, so anything you already know about building bulk pricing tiers applies here too.
One option in that panel is easy to skim past. Apply Discounts Based On Individual Product Quantities decides whether break points are measured per product or across the whole cart. Set to yes, a cart holding 10 of one product and 11 of another treats each line separately. Set to no, the same cart counts as 21 units and can reach a higher tier. That single toggle changes what your buyer pays, so pick it deliberately.
The Other Per-User Overrides Worth Knowing
Pricing is the override most people come looking for, but it is one of five. The same profile screen lets you vary tax, shipping, payment methods, and order minimums for a single account, which means WooCommerce customer-specific pricing is really one part of a wider per-customer settings layer. The full list is documented in the guide to overriding wholesale settings per user.
Tax exemption
Tax exemption is available per user, separate from the role-level mapping. Switching it on for one account overrides your WooCommerce and Wholesale Prices tax settings and exempts that buyer from tax entirely.
That is useful when a single customer has provided the paperwork and the others have not, which is common when you are onboarding a tier gradually. Treat this one carefully, though. Tax treatment is a compliance question rather than a pricing preference, so set it on evidence rather than on request. When a whole group qualifies, mapping the role is tidier, and our guide to tax exempting a wholesale customer in WooCommerce covers that workflow.
Shipping and payment gateways
Shipping can be overridden for one account, so you can force free shipping for a single buyer or expose a shipping method that stays hidden from everyone else. Payment gateways work the same way, down to restricting one customer to a specific gateway with its own surcharge or no surcharge at all.
Both are genuinely useful for the account that agreed to unusual terms. Both are also invisible to anyone reviewing your store settings, which is the recurring cost of every per-user exception.
Minimum order requirements
Order minimums can be relaxed or tightened for one buyer, either as a minimum quantity, a minimum subtotal, or both. A new account you are courting might get a lower threshold than the rest of their tier while they build up volume.
When Role-Based Pricing Is The Better Answer
Per-customer overrides do not scale. Every one you create is a manual record that exists on a single user profile, and nobody will remember it in two years.
Use them for genuine exceptions. Once you are managing more than a handful, you are describing a pattern, and patterns belong in roles.
The size of the market is a reason to get the structure right rather than improvise. Digital Commerce 360 reports U.S. manufacturing and wholesale distribution sales reached $15.12 trillion in 2025, drawing on U.S. Department of Commerce data.
There are three signs you have crossed the line from exception to pattern:
- You are editing several profiles whenever supplier costs move. A role-level change would have covered all of them at once.
- Two or three customers share the same override percentage. That is a tier wearing a disguise.
- You cannot say who has an override without checking. Roles are visible in the Users list. Overrides are not.
If any of those sound familiar, build the tier. Our guide to setting prices by user role walks through the options, and role automation can move buyers between tiers based on their spend so you stop doing it by hand.
Milton & King reached this conclusion while serving designers, architects, and trade buyers alongside retail customers on the same store. Rather than managing each relationship by hand, the team leaned on tiered pricing and automatic order minimums, and their case study is worth reading if you are weighing tiers against exceptions.
Getting WooCommerce Customer-Specific Pricing Right
The stores that handle this well tend to treat WooCommerce customer-specific pricing as a record of a relationship rather than a pricing feature. Every override is a promise you made to somebody, and the setting itself remembers the number without remembering the reason. Writing that reason down somewhere other than the user profile costs a minute now and saves an awkward conversation later.
Beyond that, the practical advice is short. Set the override on the profile rather than the product, confirm a general discount exists underneath it, test the result on the front end while logged in as that buyer, and watch for the moment your exceptions start looking like a tier. Roles carry their own explanation, which is why they age better than a list of one-off arrangements. Reach for an exception when the relationship is genuinely unique, and reach for a role when it is not.
Here’s what we covered in this article:
- Role-based pricing vs customer-specific pricing
- What WooCommerce does on its own
- How to set up WooCommerce customer-specific pricing
- The setting that breaks most first attempts
- Per-customer quantity tiers
- The other per-user overrides worth knowing
- When role-based pricing is the better answer
If you are ready to set up WooCommerce customer-specific pricing properly, Wholesale Prices Premium gives you the role structure and the per-customer exception layer in one place, so your best accounts keep the rates you promised them.
Frequently Asked Questions
Can I set an exact price for one customer?
The per-user setting applies a percentage discount rather than a fixed figure. If you need a specific amount for one buyer, you can work backwards to the percentage that produces it, though you will need to revisit that number whenever the base price changes. For genuinely bespoke pricing on large orders, a quote is usually the better fit.
Do customer-specific prices carry through to checkout?
Yes. The discount applies wherever the product price is displayed, including the cart and checkout. Always confirm this on the front end while logged in as that customer, because other plugins that filter prices can interfere.
How many customers can have their own override?
There is no fixed limit. The practical limit is how many you can keep track of. Once you pass roughly a dozen, most stores are better served by adding another role.
Will WooCommerce customer-specific pricing change what retail customers see?
No. Wholesale pricing only applies to users in a wholesale role, and a per-user override narrows that further to one account. Retail shoppers and logged-out visitors continue to see your normal prices.
Can I give one customer different shipping as well?
Yes. Alongside pricing, you can override tax exemption, shipping, payment gateways, and minimum order requirements on a per-user basis, so one profile can carry a pricing exception and a shipping exception together.
Why has my per-user discount not changed anything?
The most likely cause is that no general wholesale discount is configured in your store settings, which leaves the per-user override with nothing to override. Set a general discount first, then reapply the override. Also check whether the product carries a fixed wholesale price, because a fixed price takes precedence over any percentage.

