Running a wholesale operation on WooCommerce requires more than just bulk pricing. B2B buyers expect role-based catalogs, tiered quantity discounts, minimum order quantities, custom registration flows, tax-exempt accounts, and quote request workflows — all within a seamless purchasing experience. This guide walks through how to configure each of these components to build a production-ready WooCommerce wholesale store.
Why WooCommerce Works for B2B Wholesale
WooCommerce powers a significant share of B2B wholesale stores precisely because of its flexibility. Unlike rigid SaaS platforms, WooCommerce lets you configure pricing rules, user roles, checkout flows, and tax behavior exactly as your business requires — without paying per-seat fees or hitting plan-level restrictions.
The core challenge is that WooCommerce is built with retail (B2C) defaults. Wholesale B2B operation demands several layers of custom configuration: who can see what products, at what price, under what order conditions, with what tax status. Getting these layers right is the difference between a wholesale store that scales and one that causes constant support overhead.
B2B buyers make decisions based on price certainty, order reliability, and account management — not product discovery. Your WooCommerce configuration needs to serve those priorities first.
Step 1: Set Up Wholesale User Roles
The foundation of any B2B WooCommerce setup is role-based access. Without distinct user roles, you cannot segment pricing, restrict catalog visibility, or enforce order rules by customer type.
Custom Roles via Plugin or Code
The most common approach is creating a wholesale_customer role (and optionally a wholesale_manager role for key accounts). Plugins like WooCommerce Wholesale Suite or B2BKing create these roles automatically. If you prefer a leaner stack, you can register roles programmatically using WordPress’s add_role() function.
Key capabilities to assign to your wholesale role:
- Access to wholesale-only product categories
- Ability to see wholesale pricing on product pages
- Access to bulk order forms and quote request pages
- Ability to check out without retail markup applied
Role Assignment Workflow
Roles should be assigned after a B2B registration application is approved — not automatically on sign-up. This is covered in the registration section below. Once approved, update the user’s role in WooCommerce via the Users admin screen or programmatically via wp_update_user().
Step 2: Configure Role-Based Pricing
Role-based pricing means that a wholesale customer sees a different price than a retail customer for the same product — without creating duplicate product listings. WooCommerce does not support this out of the box, so you need either a plugin or custom code.
Plugin Options for Role-Based Pricing
Three plugins handle this well at scale:
- WooCommerce Wholesale Suite (Wholesale Prices Premium) — adds a wholesale price field directly on each product, supports variable products, and handles tax display by role
- B2BKing — includes role-based pricing plus group-based pricing, dynamic pricing rules, and catalog restrictions in one plugin
- Dynamic Pricing & Discounts by RightPress — powerful rule engine for percentage and fixed discounts by role, category, or product, with quantity tiers built in
Price Display Rules
For B2B stores, it is common to hide retail prices entirely from wholesale customers and vice versa. Configure your pricing plugin to:
- Show wholesale prices only to logged-in users with the wholesale role
- Hide prices entirely from guest users (requiring login to view pricing)
- Display “contact for pricing” for certain product categories where pricing is negotiated
Step 3: Set Up Tiered Quantity Discounts
Tiered pricing rewards larger order volumes with progressively better unit prices. This is standard in wholesale — a customer buying 50 units pays less per unit than one buying 10. WooCommerce supports tiered pricing via quantity-based discount rules.
Defining Your Pricing Tiers
A typical B2B tiered pricing structure looks like this:
| Quantity Range | Discount Type | Example Unit Price |
|---|---|---|
| 1 – 9 | No discount (list price) | $20.00 |
| 10 – 24 | 10% off list | $18.00 |
| 25 – 49 | 20% off list | $16.00 |
| 50 – 99 | 25% off list | $15.00 |
| 100+ | 30% off list or negotiated | $14.00 |
Plugins like Dynamic Pricing & Discounts or WooCommerce Wholesale Prices let you define these tiers per product, per category, or globally per role. The tier breakpoints and discount percentages should match your actual margin structure — not just round numbers.
Displaying Tiers to Buyers
Make the pricing tiers visible on the product page. A pricing table showing each quantity range and the corresponding unit price reduces buyer uncertainty and encourages larger orders. Most pricing plugins include a pricing table template for this — enable it and style it to match your store.
Step 4: Enforce Minimum Order Quantities
Minimum order quantities (MOQ) are essential for wholesale profitability. A B2B customer ordering 2 units at wholesale price erodes your margins and creates fulfillment overhead. WooCommerce does not enforce MOQs by default.
MOQ by Product vs. by Cart Total
You may need to enforce minimums at two levels:
- Per-product MOQ — minimum quantity for a specific SKU (e.g., must buy at least 12 of this item)
- Cart-level minimum — minimum total order value or total item count across all products in cart (e.g., orders must be $500+ to qualify for wholesale pricing)
The WooCommerce Minimum Maximum Quantity & Order plugin handles both scenarios. It lets you set minimum and maximum quantities per product, and minimum cart values per user role. Combine this with your pricing plugin so that wholesale customers see MOQ information on the product page itself.
Handling MOQ Violations at Checkout
When a buyer tries to proceed to checkout with quantities below the minimum, WooCommerce should block the checkout and display a clear error message explaining the requirement. Vague error messages are a common source of customer support tickets in wholesale stores — be explicit about the minimum quantity needed and which products triggered the warning.
Step 5: B2B Registration and Account Approval
Wholesale accounts should not be self-serve. Unlike retail where any visitor can register and buy, B2B accounts require vetting — business verification, credit checks, or simply confirming the buyer is a legitimate business entity.
Custom Registration Form Fields
Your B2B registration form should capture fields that retail sign-up does not need:
- Company name and registered address
- Business type (retailer, distributor, contractor)
- Tax ID or VAT number
- Estimated monthly order volume
- Trade references (optional but useful for credit terms)
Plugins like WooCommerce Registration Fields or B2BKing let you add these fields to the standard WooCommerce registration form and store them in user meta. Custom fields can also be built using WPForms or Gravity Forms with WooCommerce integration if you need a more complex application flow.
Approval Workflow
After a business registers, the account should be placed in a “pending approval” state. The store admin receives an email notification with the application details. Upon approval, a single action updates the user’s role to wholesale_customer and triggers a welcome email with login instructions and catalog access.
During the pending period, the user can log in but should see a holding page explaining that their account is under review. Do not let pending users access wholesale pricing or the catalog — this prevents abuse of the approval system.
Step 6: Tax-Exempt Account Handling
Many B2B buyers are tax-exempt — resellers, non-profits, government agencies. If you are in the US, this is especially important: charging sales tax to a tax-exempt buyer creates compliance issues for both parties.
The Standard WooCommerce Tax Exemption Approach
WooCommerce allows you to set a user’s tax class to “zero rate” via user meta. The relevant meta key is is_vat_exempt. When this is set to yes, WooCommerce skips tax calculation for that customer on all orders.
The workflow typically works like this:
- During B2B registration, the buyer uploads their resale certificate or tax exemption certificate
- Admin reviews and verifies the certificate
- Upon verification, admin sets the buyer’s account as tax-exempt (via a meta update or a dedicated tax-exempt plugin)
- The buyer sees $0.00 tax at checkout from that point forward
Plugins for Tax Exemption Management
WooCommerce Tax Exempt and WooCommerce B2B Tax Exemption add UI to manage exemption status per account. They also handle certificate storage and expiry reminders — important for compliance in states that require periodic certificate renewal.
Tax exemption management is one of the most underestimated complexity points in B2B WooCommerce. Get it wrong and you will have compliance exposure or unhappy key accounts.
Step 7: Bulk Order Forms
Retail product pages with individual add-to-cart buttons are inefficient for wholesale buyers who need to order dozens of SKUs in a single session. Bulk order forms solve this by presenting multiple products or variations in a table format where buyers can enter quantities for multiple items at once and add them all to cart with a single click.
What a Bulk Order Form Should Include
- Product search or filter by category
- SKU and product name columns
- Current stock level (for inventory visibility)
- Quantity input per SKU
- Unit price at current tier (updating dynamically as quantity changes)
- Line total calculation
- Single “Add All to Cart” button
Plugin Options
WooCommerce Wholesale Order Form (by Wholesale Suite) integrates directly with wholesale pricing rules and displays only products accessible to the current user’s role. YITH WooCommerce Order Bulk is another option with good variation support. For custom-built stores, a bespoke bulk order form built with React or Vue and the WooCommerce REST API gives the most control over UX.
Step 8: Quote Request Workflow
Not all B2B transactions close at a fixed price. Large orders, custom configurations, or first-time buyers often go through a quote process before an order is placed. WooCommerce’s default checkout does not support this, but it can be configured with the right tooling.
Replace Add to Cart with Request a Quote
For products or user roles where quoting is required, replace the standard “Add to Cart” button with a “Request a Quote” button. The buyer adds items to a quote cart (instead of a purchase cart), fills in their requirements, and submits the quote request. The sales team receives the request, negotiates if needed, and converts it to an order at the agreed price.
Quote Management Plugins
YITH WooCommerce Request a Quote is the most widely deployed option — it replaces add-to-cart with a quote button by role or product, stores quote requests in the WooCommerce admin, and lets you accept or negotiate quotes with a custom price before converting to an order. WooCommerce B2B by BizSwoop also includes quote management as part of a broader B2B suite.
For high-volume quote operations, consider integrating WooCommerce with a CRM like HubSpot or Salesforce so quote requests automatically create deals in your sales pipeline.
B2B WooCommerce Feature Comparison: Plugin Suites vs. Individual Plugins
The key architectural decision in any WooCommerce B2B build is whether to use an all-in-one B2B suite or compose functionality from individual specialized plugins. Each approach has trade-offs.
| Feature | Wholesale Suite | B2BKing | Individual Plugins |
|---|---|---|---|
| Role-based pricing | Yes | Yes | Yes (Dynamic Pricing) |
| Tiered quantity discounts | Yes | Yes | Yes (Dynamic Pricing) |
| Minimum order quantities | Limited (add-on) | Yes | Yes (Min/Max Quantities) |
| B2B registration/approval | Yes | Yes | Partial (Registration Fields) |
| Tax exemption management | Limited | Yes | Yes (Tax Exempt plugin) |
| Bulk order form | Yes (separate plugin) | Yes | Yes (Order Bulk) |
| Quote requests | No | Yes | Yes (YITH Request a Quote) |
| Catalog restrictions by role | Yes | Yes | Limited |
| Price hiding from guests | Yes | Yes | Partial |
| Payment terms (net 30/60) | No | Yes (add-on) | Yes (WooCommerce Purchase Order) |
| Single plugin overhead | Low | Medium | High (many plugins) |
| Customization flexibility | Medium | Medium | High |
| Annual cost (approx.) | $149–$299 | $149 | $200–$500+ (stacked) |
For most stores, B2BKing provides the best coverage in a single plugin. Wholesale Suite is the right choice if you are already in their ecosystem and need tight integration between their pricing, order form, and lead capture tools. The individual plugin approach gives maximum flexibility but creates a more complex stack to maintain and debug.
Additional Configuration: Payment Terms and Net Invoicing
Many B2B buyers expect net payment terms — net 30, net 60, or even net 90. This means they receive an invoice and pay within a specified period rather than paying at checkout. WooCommerce’s default checkout is pay-now, but this can be extended.
The WooCommerce Purchase Order Gateway plugin adds a payment method at checkout that generates a purchase order instead of requiring immediate payment. You can configure which user roles have access to net terms, what the credit limit is per account, and when overdue reminders are triggered.
For larger B2B operations, integrating with an accounts receivable system (QuickBooks, Xero) via WooCommerce’s REST API is the cleanest solution — orders flow directly into your accounting system with the appropriate payment terms attached.
Catalog Restrictions and Private Storefronts
Some wholesale operations require hiding the entire catalog from non-authenticated users — or showing a different catalog to retail vs. wholesale customers. WooCommerce supports this through a combination of role-based visibility rules and password-protected or restricted pages.
Options for Catalog Restriction
- Hide prices and add-to-cart for guests — show products but require login to see pricing (common for hybrid retail/wholesale stores)
- Hide entire product categories from non-wholesale users — use role-based category visibility via B2BKing or Wholesale Suite
- Require login to view any product — use a “Force Login” plugin combined with a custom landing page for account applications
The right approach depends on whether you run a pure wholesale operation (everything is B2B) or a hybrid store serving both retail and wholesale customers from the same WooCommerce instance.
Performance Considerations for Wholesale Stores
Wholesale stores have different performance characteristics than retail stores. Large order quantities, complex pricing rule evaluation, and bulk order forms with hundreds of SKUs all create server load that a standard WooCommerce configuration is not optimized for.
- Object caching — run Redis or Memcached to cache pricing rule evaluations. Without caching, each page load recalculates prices from scratch for every product in view.
- Database indexes — wholesale pricing plugins often store tier data in custom tables or postmeta. Verify that the critical columns are indexed, especially if you have thousands of products and complex tier rules.
- Session handling — B2B buyers often maintain large carts with dozens of line items across multiple sessions. Database-backed sessions (not PHP file sessions) are essential at scale.
- Pagination on bulk order forms — if your catalog has thousands of SKUs, the bulk order form must paginate or use infinite scroll with AJAX loading rather than rendering all products at once.
Testing Your B2B Configuration Before Go-Live
B2B configuration errors are high-stakes — a pricing rule bug that gives wholesale prices to retail customers, or a tax exemption that applies to the wrong accounts, can create financial exposure. Test thoroughly before launching.
Test Accounts to Create
- A guest user (no account)
- A pending wholesale applicant
- An approved wholesale customer
- A tax-exempt wholesale customer
- A retail customer
- An admin user
Scenarios to Validate
- Guest sees no pricing (if configured) or retail pricing
- Pending applicant cannot access wholesale catalog
- Approved wholesale customer sees correct tiered prices at each quantity break
- MOQ enforcement blocks checkout when quantities are below minimum
- Tax-exempt customer sees $0 tax on all order types
- Quote request flow creates a quote record in admin and triggers notification email
- Bulk order form loads correctly and adds multiple items to cart in a single action
Building a Custom WooCommerce B2B Solution
Off-the-shelf B2B plugins cover the majority of wholesale use cases — but not all of them. Manufacturers with highly complex pricing structures (matrix pricing, contract-specific pricing, customer-specific catalogs, ERP-synced inventory), distributors with thousands of SKUs and live stock feeds, or businesses with custom approval workflows often need a bespoke solution built on top of WooCommerce’s core.
Custom B2B WooCommerce development typically involves building custom pricing engines that hook into woocommerce_product_get_price and woocommerce_get_price_html, custom user registration and approval flows with email notifications, integration with ERP or CRM systems via the WooCommerce REST API, and custom checkout experiences that support purchase orders, net terms, and split shipping.
The advantage of building custom over stacking plugins is a leaner, more maintainable codebase where each business rule is an explicit function rather than a configuration option buried in a third-party admin panel. The trade-off is higher initial development cost and the need for ongoing developer support.
Ready to Build Your WooCommerce Wholesale Store?
Configuring WooCommerce for wholesale B2B is a multi-layer process — user roles, pricing tiers, order minimums, registration and approval, tax exemptions, bulk ordering, and quote workflows each require deliberate configuration and testing. The right plugin stack or custom solution depends on your catalog size, pricing complexity, and integration requirements.
If you are building a WooCommerce wholesale store and want it done right the first time — without the trial and error of stacking plugins until something breaks — our team at WooCustomDev builds B2B WooCommerce stores as a core specialization. Before diving into B2B configuration, make sure your store fundamentals are solid with our complete guide to building a modern WooCommerce store. From role-based pricing engines to ERP-integrated catalog feeds, we handle the full stack.

