E-commerce

WooCommerce Wholesale and Dealer Pricing: How to Set It Up

Set up wholesale and dealer pricing in WooCommerce: user roles, price tiers, minimum quantities, hiding trade prices from the public and GST invoices.

WooCommerce Wholesale and Dealer Pricing: How to Set It Up
On this page
  1. Write down your pricing rules first
  2. User roles and dealer registration
  3. Setting up price tiers
  4. Minimum quantities, pack sizes and order values
  5. Hiding prices from the public
  6. GST, invoices and payment terms
  7. Plugin or custom code, and testing
Key takeaways
  • Agree your customer groups, price rules and approval process on paper before configuring anything.
  • Dealer roles, role-based or quantity-based prices and minimum quantities handle most wholesale needs.
  • Test logged out and as each role so trade prices never leak through caching, feeds or invoices.

Selling to dealers, retailers and bulk buyers from the same WooCommerce store as your retail customers is very doable, but the setup needs care. Get it wrong and the public sees your dealer rates, or dealers get charged retail prices. This guide covers the technical side: roles, price tiers, minimum quantities, hidden prices and GST invoices. If you're still planning what a wholesale website should contain, start with the wholesalers and distributors website guide.

Write down your pricing rules first

Before touching any settings, agree the rules on paper. Most problems come from rules that were never clearly defined.

Customer groupWho they areTypical price ruleTypical payment
RetailThe publicStandard priceUPI, cards, COD
DealerApproved shops and resellersFixed dealer price or a set discountPrepaid or bank transfer
DistributorRegional partnersLower tier with larger minimumsCredit terms by agreement

Also decide who approves new dealers, whether sale prices and coupons apply to dealers, and what happens when a dealer orders less than the minimum.

User roles and dealer registration

WooCommerce gives every shopper the standard Customer role. Wholesale pricing works by adding roles such as "Dealer" or "Distributor" and attaching prices and rules to them. Wholesale plugins usually create these roles for you, or a developer can add them in code. See WordPress user roles explained for how roles and permissions work.

  • A separate dealer registration form: business name, GSTIN, address, phone, business type and anything else you need to verify
  • Manual approval: new applicants start as normal customers or pending accounts; you check their details, then assign the dealer role
  • Approval emails: tell the dealer when their account is active and how to log in
  • Never self-selected: nobody should be able to pick the dealer role themselves at sign-up

Setting up price tiers

There are four common ways to structure trade prices, and many stores combine two of them.

  • Fixed price per role: a dealer price field on each product and each variation. The most precise option, but more data entry; use CSV import and export for large catalogues.
  • Percentage discount by role or category: for example, dealers get a set discount on one category. Less work, but check margins on low-margin items and exclude them where needed.
  • Quantity breaks: the price drops at higher quantities or per carton. Show the tier table on the product page so dealers can see what they're working towards.
  • Customer-specific price lists: negotiated rates for key accounts. These are the most complex and often need custom work, especially if the prices come from your accounting or ERP software.

Remember variations: if a product comes in sizes or pack quantities, each variation usually needs its own dealer price.

Minimum quantities, pack sizes and order values

  • Minimum quantity per product for dealers only, so retail shoppers can still buy one
  • Quantity steps: force multiples of a carton or pack size, so nobody orders a quantity you can't pack
  • Minimum order value per role, with a cart message showing how much more is needed
  • A quick order form: a table of products with quantity boxes and SKU search, plus easy reordering of past orders, saves repeat buyers a lot of clicking

Make every rule visible before the cart. A dealer who only discovers the minimum at checkout will simply phone you instead.

Hiding prices from the public

You have three broad options:

  1. Public retail prices, dealer prices after login: the usual choice for stores that sell to both
  2. No prices for logged-out visitors: products stay visible, with "Log in for trade prices" or "Request a quote" in place of the price
  3. A fully private B2B shop: everything behind a login. Your products won't appear in Google, so keep public category or brand pages for search.

Then check the places trade prices can leak:

  • Page caching: a cached page viewed by a dealer must never be served to the public. Most caching setups skip logged-in users, but verify it, especially with server-level or CDN caching. See WordPress caching explained.
  • Structured data and product feeds: schema markup and shopping feeds should only carry your public price, if any
  • Other price displays: search results, related products, the mini cart and quick-view pop-ups

GST, invoices and payment terms

  • Tax display: dealers usually think in prices excluding GST, while retail shoppers expect prices including it. WooCommerce's display setting applies store-wide, so showing each group its preferred format needs a plugin or custom code.
  • B2B invoices: business buyers need their business name, GSTIN and correct place of supply on the invoice to claim input tax credit. Collect the GSTIN at registration and pass it through to the invoice. See WooCommerce GST setup and invoices, and confirm the format with your CA.
  • E-invoicing: businesses above certain turnover thresholds have extra e-invoicing requirements; ask your CA whether they apply to you
  • Payment methods by role: for example, COD for retail only, and bank transfer or pay-later only for approved dealers. Credit limits and outstanding balances are usually better managed in your accounting software.
  • A purchase order number field at checkout, which many business buyers need for their own records

Plugin or custom code, and testing

A good wholesale plugin covers most stores: roles, role-based prices, minimums, hidden prices and dealer registration. Before choosing, check it is actively maintained and works with your variations, theme and invoice plugin. Custom code makes sense for unusual rules, such as price lists synced from accounting software like Tally or pricing that depends on region.

Test on a staging copy before going live. Log in as a retail customer, a dealer and a distributor, and also browse logged out. For each, check the product page, category listing, search, cart, checkout, order emails and invoice. Prices should be right everywhere, every time.

Need dealer pricing set up properly on your store? See WooCommerce development, or websites for manufacturers and B2B companies.

Need help with your website?

I'm Sameer, a freelance WordPress developer building fast, SEO-friendly websites since 2020. Tell me what you need and I'll reply with a plan and a fixed quote within 24 hours.

Found this useful? Share it:
Contact

Let's build your next website

Available for freelance projects, agency white-label work and long-term maintenance. Feel free to pass this along to your team or company.

Your details are emailed to me, then WhatsApp opens so we can chat right away.

Chat now