Documentation B2B Pricing for WooCommerce

B2B Pricing for WooCommerce

Version 1.0.0 · Updated April 2026

Requirements

Before installing B2B Pricing for WooCommerce, confirm your environment meets these requirements:

B2B Pricing is fully tested with the latest WordPress and WooCommerce releases and is compatible with HPOS (High Performance Order Storage).

Installation

Method 1 — Upload via WordPress Admin (Recommended)

  1. Download the plugin .zip file from your My Account downloads page.
  2. In your WordPress admin, go to Plugins → Add New Plugin.
  3. Click Upload Plugin at the top of the page.
  4. Click Choose File, select the b2b-pricing.zip file, and click Install Now.
  5. Once installed, click Activate Plugin.

Method 2 — FTP Upload

  1. Unzip the b2b-pricing.zip file on your computer.
  2. Using an FTP client (FileZilla, Cyberduck), connect to your server.
  3. Upload the extracted b2b-pricing folder to /wp-content/plugins/.
  4. In WordPress admin, go to Plugins → Installed Plugins and activate B2B Pricing for WooCommerce.

Licence Activation

After activating the plugin, a notice will appear at the top of the admin screen prompting you to enter your licence key.

  1. Go to WooCommerce → B2B Pricing → Licence.
  2. Enter the licence key from your purchase confirmation email. Keys begin with CA-.
  3. Click Activate Licence.

Your licence key was emailed to you at the time of purchase. You can also retrieve it from My Account → Orders.

Role-Based Pricing

Role pricing lets you display different prices to different user roles — for example, showing wholesale prices to your Wholesale Customer role while retail customers see the standard price.

To configure role pricing for a product:

  1. Open the product in the WordPress editor.
  2. Scroll to the Product Data panel and click the B2B Pricing tab.
  3. Under Role Prices, click Add Price Row.
  4. Select the user role from the dropdown (e.g., Wholesale Customer, Reseller).
  5. Enter either a fixed price (e.g., 14.99) or a percentage discount off the regular price (e.g., 20%).
  6. Repeat for each role that needs a different price.
  7. Click Update to save the product.

Role prices override the regular product price. If a customer belongs to multiple roles, the lowest applicable price is applied by default. You can change this behaviour in WooCommerce → B2B Pricing → Settings → Role Priority.

You can also set global role discounts that apply across all products. Go to WooCommerce → B2B Pricing → Role Discounts, add a role, and enter a sitewide discount percentage. Product-level prices always take priority over global role discounts.

Quantity Break Discounts

Quantity breaks reward customers who buy in bulk by automatically reducing the price per unit as quantity increases. A pricing table is displayed on the product page so customers can see the tiers at a glance.

Setting Up a Quantity Break Table

  1. Open the product editor and go to the B2B Pricing tab in Product Data.
  2. Under Quantity Breaks, click Add Tier.
  3. For each tier, enter:
    • Min Qty — the minimum quantity required to unlock this tier.
    • Discount — either a percentage off (e.g., 10%) or a fixed price per unit (e.g., 12.50).
  4. Add as many tiers as needed. Example: Buy 5 = 10% off, Buy 10 = 15% off, Buy 25 = 25% off.
  5. Click Update to save.

Pricing Table Display

A pricing table is automatically inserted on the product page below the Add to Cart button, showing each tier and its discount. You can customise the table heading and column labels in WooCommerce → B2B Pricing → Settings → Display.

Quantity breaks and role prices can be combined. When both apply to a customer, the plugin calculates the lowest final price from either rule. Ensure your tier prices are intentionally lower than role prices to avoid unintended stacking.

To apply the same quantity break schedule to all products in a category, go to WooCommerce → B2B Pricing → Category Rules and create a rule scoped to that category. Product-level tiers take precedence over category-level tiers.

Customer-Specific Price Overrides

For key accounts that negotiate individual pricing, you can set per-customer prices that override all other rules.

  1. Go to Users → [Customer Name] → Edit User.
  2. Scroll to the B2B Pricing — Custom Prices section.
  3. Click Add Price Override.
  4. Search for and select the product.
  5. Enter the custom price for this customer.
  6. Click Update User to save.

Alternatively, go to the product editor, open the B2B Pricing tab, and click Customer Overrides to assign individual prices directly from the product.

Customer override prices are the highest priority in the pricing hierarchy: they beat role prices, global discounts, and quantity break tiers.

Minimum Order Quantity & Value Rules

Minimum order rules prevent customers from placing orders that are too small to be profitable for your business. Rules can be set globally, per role, or per product.

Global Minimum Order Value

Go to WooCommerce → B2B Pricing → Settings → Minimum Orders. Enter a Minimum Order Value (e.g., 50.00). Customers who attempt to check out below this amount will see a notice and cannot proceed until the threshold is met.

Per-Product Minimum Quantity

  1. Open the product editor and go to the B2B Pricing tab.
  2. Under Minimum Quantity, enter the minimum number of units required per order.
  3. Optionally enter a Maximum Quantity and a Quantity Step (e.g., must order in multiples of 6).
  4. Click Update.

Per-Role Minimum Order Value

Go to WooCommerce → B2B Pricing → Role Minimums. Add a row for each role and set the minimum cart value that role must reach before checkout is allowed. This is useful for enforcing higher minimums on wholesale accounts.

Tax-Exempt Customer Groups

B2B Pricing lets you mark specific user roles as tax-exempt so that WooCommerce does not add tax to their orders.

  1. Go to WooCommerce → B2B Pricing → Settings → Tax.
  2. Under Tax-Exempt Roles, check the box next to each role that should not be charged tax (e.g., Reseller, Export Customer).
  3. Save settings.

When a user belonging to a tax-exempt role is logged in, WooCommerce tax calculations are bypassed entirely for their session. Tax totals show as £0.00 at checkout and on their order confirmation.

Tax exemption removes tax at the WooCommerce level only. Ensure your accounting and invoicing processes comply with local tax regulations for your exempt customers.

Hide Prices from Guests

If your store is wholesale-only or you want to prevent public price browsing, you can hide prices and the Add to Cart button from visitors who are not logged in.

  1. Go to WooCommerce → B2B Pricing → Settings → Guest Access.
  2. Enable Hide prices from guests.
  3. Set the Replacement message — the text shown where the price would appear, for example: "Log in to see prices" or "Register for a trade account to view pricing."
  4. Optionally enable Hide Add to Cart button to prevent guests from adding any products to their basket.
  5. Optionally enter a Login/Register URL so the message links directly to your registration or login page.
  6. Save settings.

You can choose to hide prices globally or only for specific product categories. Go to Guest Access → Category Restrictions to configure category-level hiding.

CSV Bulk Price Import

If you have a large catalogue, setting role prices one product at a time is impractical. The CSV import tool lets you upload prices for hundreds of products at once.

CSV Format

Your CSV file must include the following columns:

product_id, role, price
42, wholesale_customer, 14.99
42, reseller, 11.00
67, wholesale_customer, 8.50

Accepted values for role are the WordPress role slugs (e.g., wholesale_customer, reseller). The price column should be a numeric value without currency symbols.

Running an Import

  1. Go to WooCommerce → B2B Pricing → CSV Import.
  2. Click Choose File and select your prepared CSV file.
  3. Choose whether to overwrite existing prices or only add new rows (leaving existing prices unchanged).
  4. Click Run Import. A summary will show how many rows were imported and whether any rows were skipped due to errors.

Download the Sample CSV template from the import page before preparing your file. Incorrect column headers will cause the import to fail.

You can also export existing role prices to CSV from the same screen — useful for making bulk edits and re-importing.

Compatibility

B2B Pricing for WooCommerce is compatible with the following plugins:

If you use another pricing plugin alongside B2B Pricing, conflicts may occur. Only one pricing plugin should control prices at a time. Contact support@coreaddons.com if you need guidance on compatibility.

Troubleshooting

Role price not showing for a logged-in user

First confirm the user actually has the role you've configured by going to Users → [User Name] and checking the Role field. Next, verify the product has a price set for that role under the B2B Pricing product tab. If you recently changed roles, ask the user to log out and log back in to refresh their session.

Quantity break price not applying at checkout

Ensure the quantity in the cart meets or exceeds the minimum threshold for the tier. Also go to WooCommerce → Status → Tools → Clear Transients to clear any cached prices. Caching plugins (WP Rocket, LiteSpeed Cache) can also serve stale prices — clear their caches after updating tier settings.

CSV import failing

Check that your CSV uses the exact column headers: product_id, role, price. The file must be UTF-8 encoded without a BOM. Open the file in a plain text editor to verify there are no hidden characters. Ensure product_id values match existing products in WooCommerce.

Guest price hiding not working

If prices still show to guests, check whether a caching layer is serving a logged-in user's session to non-logged-in visitors. Exclude the shop and product pages from full-page caching, or enable user-role-aware caching in your caching plugin. Also confirm the setting is saved in WooCommerce → B2B Pricing → Settings → Guest Access.

Tax not being removed for exempt roles

Verify WooCommerce tax settings are enabled (WooCommerce → Settings → Tax → Enable tax rates and calculations). The exemption only works when WooCommerce taxes are active. Also confirm the user's role is exactly as listed in the tax-exempt roles list — role slugs are case-sensitive.

Changelog

Version 1.0.0 — April 2026

Still need help?

Our support team responds within 24 hours on business days. Include your site URL and a description of the issue for the fastest response.

Contact Support