Quick answer: WooCommerce wholesale pricing means showing different prices (and sometimes different catalogs) to approved trade customers than to retail shoppers. Typical setups use a wholesale customer role, role-based or tiered prices, optional minimum quantities, tax/shipping rules that match B2B norms, and a registration flow you approve manually. Plugins handle much of this; complex price lists and ERP sync may need custom work. Get the rules clear on paper before you install anything.
Retail WooCommerce vs wholesale needs
Standard WooCommerce shines at one price per product (plus variations). B2B buyers often need:
- Net prices or trade discounts by role
- Tier breaks (10 units at price A, 50 at price B)
- Hidden retail catalog or separate trade storefront
- Quote-like flows for large orders
- Purchase orders and delayed payment terms
- Tax handling that matches wholesale invoices
- Account approval before prices appear
Trying to fake this with coupon codes alone usually fails. Coupons leak, do not scale across SKUs and confuse reporting.
Core building blocks
Customer roles. A wholesale_customer role (name may vary by plugin) gates prices. Only approved users see trade pricing.
Wholesale price fields. Extra product meta for wholesale amounts, or percentage off regular price. Tier plugins add quantity breaks.
Registration and approval. Self-registration with “pending” status prevents the public from seeing trade rates. Verify business details before approval.
Catalog visibility. Some stores keep one site with dual pricing; others run a trade subdomain. Dual pricing on one catalog is simpler to maintain if your brand allows it.
Tax and shipping. Map tax classes carefully. Freight for pallets is not the same as retail flat rates; see how your shipping zones should differ for trade carts.
Plugin vs custom
For many catalogs, established wholesale plugins are enough: roles, prices, minimums, and simple tiering. Evaluate:
- Compatibility with your WooCommerce and PHP versions
- Variation support
- Tax behavior
- Import/export of wholesale prices
- Support quality
Custom development fits when:
- Prices live in an ERP and must sync often
- Each account has a unique price list
- You need bid/RFQ workflows
- Complex surcharges or contract pricing apply
That is the same build-vs-configure decision you face on other ERP integration work. Do not customize first if a maintained plugin covers 90% of the rules.
Pricing strategy details to decide up front
Write these down with sales leadership:
- Is wholesale a percentage off MSRP or absolute trade prices?
- Do tiers stack by line quantity or cart quantity?
- Are some SKUs retail-only or wholesale-only?
- What is the minimum order value or quantity?
- Do wholesale customers still earn retail coupons? (Usually no.)
- How do returns and damaged freight work?
Ambiguity here creates support tickets no theme can fix.
Checkout and accounts
B2B buyers hate friction that feels consumer-ish, but they still need clarity.
- Allow company name and VAT/tax IDs on accounts
- Support purchase order numbers at checkout if you offer terms
- Consider disabling guest checkout for wholesale
- Make reorder easy (order again from history)
- Keep mobile usable; trade buyers are often on phones in warehouses
Email design matters too. Packing and order emails should match trade language; customize WooCommerce emails so they do not read like a fashion boutique when you sell industrial parts.
Inventory and operations
Wholesale orders spike quantities. Align:
- Stock management and backorder rules (inventory settings)
- Pack sizes and sold-in-multiples
- Lead times shown on product pages
- Customer service macros for trade vs retail
If you also sell subscriptions or service plans, keep those products logically separated from bulk physical tiers so reporting stays clean (subscriptions are a different motion).
SEO and catalog UX notes
If retail and wholesale share URLs, avoid cloaking vibes: the page can mention that trade pricing is available after login without hiding the entire HTML in sneaky ways. Use clear calls to register for a trade account.
Category pages still need good navigation and filters. Wholesale buyers often know SKUs; add SKU search prominence.
Rollout plan
- Document price rules with sales
- Choose plugin or custom approach
- Build approval workflow on staging
- Import wholesale prices for a pilot category
- Test tax, shipping and discounts with a dummy wholesale user
- Train sales on how to request account approvals
- Go live with a small set of trade customers first
- Expand price lists after the first real invoices look correct
Reporting and accounting handoff
Wholesale muddies reports if you are not careful. Separate retail and wholesale orders with order statuses, coupons disabled for trade roles, or distinct product categories where needed. Finance will want clean net sales, tax and shipping on invoices. Confirm that your wholesale plugin’s tax display matches how you invoice offline.
If sales reps still email price lists from spreadsheets, set an end date for that habit after the store launches. Dual systems guarantee mismatched quotes.
Training the sales team
Give sales a one-page guide:
- How customers apply for trade accounts
- How long approval takes
- How to request a manual price exception
- What minimums apply
- Who fixes login issues
When sales trusts the storefront, they stop promising one-off prices the site cannot honor. That reduces cancelled orders and angry emails after checkout.
Handling negotiated account prices
Some trade customers negotiate SKU-level prices that no global role discount can represent. Options include per-customer price list plugins, custom tables synced from ERP, or manual quote orders for exceptions only. The more accounts that need unique lists, the faster you should plan an integration instead of hand-editing product meta.
Start with role-based pricing for most buyers and isolate true contract customers in a smaller cohort. That keeps the main catalog maintainable while you design the long-term sync.
Catalog photography and trust
Wholesale buyers still judge professionalism. Consistent product photography, clear pack-size labels and downloadable sell sheets (PDFs) reduce back-and-forth. Host sell sheets as downloadable files tracked with event tracking so you know which accounts grab them.
FAQ
Can I run wholesale on the same WooCommerce site as retail?
Yes, and many stores do, using roles and gated prices. Separate sites only when branding, domains or legal entities demand it.
Will wholesale prices show in Google?
Google sees the public page. Logged-in prices should not be the only place critical product facts appear if you want organic traffic to retail offers.
Do I need a custom payment gateway for invoices?
Not always. Offline payment methods or “request terms” can work while finance approves net-30 accounts manually.
How do I stop retail shoppers seeing trade prices?
Do not publish trade amounts in public HTML. Gate by role, and verify with a logged-out crawl of product pages.
Price for the buyer you approved
WooCommerce wholesale pricing works when rules are explicit, roles are enforced and operations can fulfill bulk orders. Start with a plugin if your price lists are simple; integrate deeper systems when each account has its own contract. If you want a storefront that handles retail and trade without constant manual quotes, see Turn visitors into customers.