B2B sales platform with groups, tiered pricing, net terms and quotes
Wholesale Customers For Woo Pro is the premium add-on for Wholesale Customers For WooCommerce. The free plugin handles the foundation — global discounts, per-product prices, customer assignment. Pro handles everything on top of that: multiple customer tiers, volume pricing, a wholesale registration form with admin approval, net terms payments, store credit, quote requests, and a full wholesale reports dashboard.
Your wholesale business has outgrown a single flat discount and needs customer groups, tiered pricing, and proper account management.
You offer invoice-based payment to trade customers and need credit limits, payment terms tracking, and order approval workflows.
You build custom WooCommerce B2B solutions for clients who need registration approvals, quote workflows, and tiered pricing per customer group.
On this page
Create multiple customer tiers, each with its own discount rate, minimum order value, and pricing rules. Assign customers to groups and manage everything from a dedicated admin screen.
Set volume discount tiers per product — e.g. 10% off for 10+, 20% off for 50+. Customers see their applicable tier price on the product page and in the cart automatically.
Add a wholesale application form to your site with configurable custom fields. Applications go into a pending queue; approve or reject from the admin with optional email notifications.
Accept wholesale orders on account with a dedicated WooCommerce payment gateway. Set per-customer credit limits, payment terms, and track outstanding balances from the order screen.
Issue wallet credit to wholesale customers, redeemable at checkout. Full transaction history is available in the WooCommerce admin and in the customer's My Account page.
Customers submit quote requests from the storefront. Approve and convert to a real WooCommerce order with one click — prices, quantities, and customer details all carried over.
A fast, searchable bulk ordering table via the [wcsp_order_form] shortcode. Customers can browse, filter by category, and add multiple products to cart without visiting individual pages.
Set a flat or percentage wholesale discount per product category, per group. Overrides the global group discount for targeted categories — useful for margin-sensitive lines.
Hide products, prices, or the Add to Cart button from non-wholesale visitors, specific groups, or guests. Rules stack with WooCommerce's own visibility settings.
Set minimum and maximum order quantities and require ordering in multiples per product. Rules are enforced at cart and checkout with clear customer-facing messages.
Apply tax exemption per user, per group, or globally. Integrates directly with WooCommerce's tax system — no custom checkout hacks, no compatibility issues.
A dedicated reports dashboard showing wholesale revenue, order count, average order value, top customers by spend, and a revenue breakdown by group over any date range.
After purchase, your license key and a download link are emailed to you instantly. You can also download from your account page at any time.
In your WordPress admin go to Plugins → Add New Plugin → Upload Plugin. Choose the wholesale-customers-for-woo-pro.zip file and click Install Now.
Click Activate Plugin after upload, or activate it from the Plugins list. Pro automatically creates the required database tables on first activation — no manual steps needed.
Open the plugin settings and paste your license key into the License Key field. Click Save — the key will be verified and your site activated automatically. Updates are then delivered via the standard WordPress updates screen.
Go to Wholesale → Settings to complete setup. See the Configuration section below for a full walkthrough.
Wholesale → Groups
Each group is a reusable pricing and rule profile. Customers assigned to a group inherit all of its settings. Create as many groups as you need — Gold, Silver, Reseller, etc.
| Field | Description |
|---|---|
| Group Name | Internal label (required). Shown in the user profile dropdown and admin order views. |
| Discount (%) | Flat percentage discount applied to regular prices for all members of this group. |
| Minimum Cart Total | Minimum order value required before checkout proceeds. Leave 0 for no minimum. |
| Credit Limit | Maximum outstanding balance allowed when Net Terms is enabled. Overrides the global Commerce setting for this group. |
| Tax Exempt | Three-way: Use global setting / Yes / No. Overrides the global tax exemption setting for all customers in this group. |
| Internal Notes | Admin-only notes field — not visible to customers. |
Users → Edit User → Wholesale Group Pro
| Field | Description |
|---|---|
| Wholesale Group | Assigns the user to a Wholesale Group. The group's discount, minimum cart total, and credit limit apply to this user. |
| Credit Limit (override) | Per-user credit limit that overrides the group-level credit limit when set. |
| Net Days (override) | Per-user payment terms (e.g. 30 for Net 30) that overrides the global Net Days setting when set. |
| Tax Exempt | Per-user tax exempt override — takes precedence over the group setting. |
Product Data → Wholesale Tiers tab
Appears on simple products and per-variation for variable products. Allows quantity-break pricing for wholesale customers.
| Column | Description |
|---|---|
| Min Qty | Quantity at which this tier activates. |
| Max Qty | Upper bound for this tier. Enter 0 to mean "and above" (no upper limit). |
| Price | Fixed wholesale price per unit at this quantity range. |
Add as many tiers as needed. The correct tier is applied based on cart quantity at checkout. On the product page, a pricing table is shown to logged-in wholesale customers with the active tier highlighted as they adjust quantity.
Min 1 / Max 11 / $20.00 ← 1–11 units
Min 12 / Max 23 / $17.50 ← 12–23 units
Min 24 / Max 0 / $15.00 ← 24+ units
Product Data → General tab
| Field | Options | Description |
|---|---|---|
| Wholesale Visibility | Use global setting / Always visible / Wholesale only | Controls whether retail customers can see this product. Defers to the global setting, forces visibility for all, or restricts to wholesale customers only. |
| Min Quantity (Wholesale) | Number | Minimum purchase quantity for wholesale customers. Enforced at add-to-cart and checkout. Leave 0 for no minimum. |
| Max Quantity (Wholesale) | Number | Maximum purchase quantity for wholesale customers. Leave 0 for no limit. |
Quantity rules only apply to logged-in wholesale users — retail customers see standard WooCommerce quantity behaviour.
Wholesale → Order Form
A standalone page listing all wholesale-visible products in a streamlined table (SKU, name, price, quantity input) that allows bulk add-to-cart in a single action. Configure which page it renders on via the Registration settings tab.
Wholesale → Quotes
Customers can submit quote requests from the cart or product pages. Each quote appears here with a status of Pending / Accepted / Declined / Converted. Accepting a quote converts it into a draft order. Pricing, quantities, and notes can be edited before sending to the customer.
Wholesale → Reports
| Report | Shows |
|---|---|
| Revenue by Group | Total sales broken down by wholesale group for a selected date range. |
| Top Customers | Ranked list of wholesale customers by spend. |
| Net Terms Balances | Outstanding invoice balances per customer, aged by due date. |
Wholesale → Settings → Registration
| Setting | Default | Notes |
|---|---|---|
| Auto-approve applications | No | Yes = wholesale status granted immediately on form submission. No = admin must review and approve each application (recommended). |
| Registration page | — | Shows the current page status with Edit/View links. If no page exists, a "Create registration page" button creates one automatically with the [wcsp_registration_form] shortcode. |
| Setting | Default | Notes |
|---|---|---|
| Notify admin on new application | Yes | Sends the admin an email when a new wholesale registration is submitted. |
| Notify customer on approval | Yes | Sends the customer an email when their application is approved. |
| Notify customer on rejection | Yes | Sends the customer an email when their application is rejected. |
| Notify customer on manual status change | No | Sends the customer an email when an admin manually enables or disables their wholesale status from the user profile. |
Email templates for all of the above can be customised under WooCommerce → Settings → Emails.
Add extra fields to the registration form using the custom fields manager. Fields added here appear on the [wcsp_registration_form] shortcode. Supported types: text, textarea, select, checkbox, file upload. Each field has a label, field key, placeholder/options, and a required toggle.
Wholesale → Settings → Product Control
| Setting | Default | Notes |
|---|---|---|
| Hide wholesale-only products | No | When enabled, products marked as "Wholesale only" are hidden from shop listings for non-wholesale visitors. Individual product overrides are set per-product. |
| Setting | Default | Notes |
|---|---|---|
| Allowed payment methods | All | Restrict wholesale customers to specific payment gateways. Leave empty to allow all. |
| Allowed shipping methods | All | Restrict wholesale customers to specific shipping methods. Leave empty to allow all. Options are pulled from your configured shipping zones. |
| Setting | Default | Notes |
|---|---|---|
| Auto-assign wholesale role | Yes | Automatically assigns/removes the "Wholesale Customer" WordPress role when a customer's wholesale status changes. Disable if you prefer to manage roles manually. |
Wholesale → Settings → Commerce
| Setting | Default | Notes |
|---|---|---|
| Enable quote requests | Yes | Shows a "Request a Quote" button on product pages for wholesale customers instead of (or alongside) the standard Add to Cart. |
| Setting | Default | Notes |
|---|---|---|
| Tax-exempt by default | No | When enabled, all wholesale customers are exempt from tax globally. Can be overridden per-group or per-user. Priority: per-user > per-group > global. |
| Setting | Default | Notes |
|---|---|---|
| Show PO number field | Yes | Adds a PO number field at checkout for wholesale customers. |
| PO number required | No | Makes the PO number field mandatory before a wholesale order can be placed. |
| PO number field label | Purchase Order Number | The label shown next to the field at checkout. |
| Setting | Default | Notes |
|---|---|---|
| Default credit limit | 0 (no limit) | Maximum outstanding unpaid balance before the Pay by Invoice gateway is hidden for that customer. Set per-user or per-group to override. 0 = no limit. |
Once you've created groups (WooCommerce → Wholesale Groups), assign customers to them:
Customers in a group still need the wholesale customer checkbox enabled on their profile (set by the free plugin). The group then overrides the global discount with the group's own rate.
Set volume discount tiers directly on each product:
0 = no upper limit), and Price.The tier table is shown on the product page for logged-in wholesale customers. Tiers take full precedence over per-product and global wholesale prices on that product.
Use the Create registration page button in settings to generate the page automatically, or add the shortcode to any existing page:
[wcsp_registration_form]
New applicants appear in WooCommerce → Registrations with a Pending status. Approve or reject in bulk or individually - the customer receives an email on either outcome. On approval, wholesale status is enabled automatically.
Place a fast bulk ordering table on any page:
[wcsp_order_form]
Available attributes:
columns - Comma-separated list (default: image,name,sku,price,stock,qty).per_page - Products per page (default: 20).category - Filter to a specific category slug.show_search - yes / no (default: yes).show_filters - yes / no (default: yes).Variable products show inline variation selects. The Add all to cart button submits all rows with a quantity greater than 0 in a single AJAX request.
Customer flow: Wholesale customers see a Request a Quote button on product pages. They set a quantity and an optional note, then submit. Their quote history is available under My Account → Quotes.
Admin flow: Open the quote from WooCommerce → Quotes. Review line items, adjust quoted prices inline if needed, then:
The gateway is only visible at checkout to wholesale customers within their credit limit. Orders placed with Net Terms are set to On Hold. The due date is shown on the admin order screen - orders past their due date show an OVERDUE flag. The outstanding balance (sum of On Hold + Processing Net Terms orders) is checked live at checkout against the customer's credit limit.
Per-user net terms override: set a specific net-days value on the user profile to override the gateway default for that customer.
Issue credit from the customer's user profile (amount + internal note). At checkout, customers with a positive balance see an Apply store credit checkbox. Credit is deducted from the balance when the order reaches Processing or Completed status. Refunds automatically restore the credit balance.
Customers can view their balance and transaction history under My Account → Store Credit.
Go to WooCommerce → Wholesale Reports. Select a period (Last 7 / 30 / 90 days, or This year). The dashboard shows:
14-day money-back guarantee.
Also from Pacific Plugins
Free wholesale pricing, discounts and customer management for B2B