WP Manifestindependent plugin directory
manifest / ecommerce / wholesalegate-light

WholesaleGate — Wholesale Prices, B2B Pricing & Bulk Order for WooCommerce

Lightweight B2B and wholesale toolkit for WooCommerce with free role pricing, quantity tiers, MOQ, catalog gating, a bulk order form and CSV price import.

★ 0stars

Install

Download source zip No release zip yet

This is the repository archive. It installs, but the folder name will carry the branch suffix and updates will not flow.

Install straight from GitHub with WP-CLI:

wp plugin install https://github.com/xodesignworks/wholesalegate-light/archive/refs/heads/main.zip
No built-in updater. New versions won't appear under Dashboard → Updates. Install new releases yourself, or let Git Updater track the repository.

WC requires at least: 8.2 WC tested up to: 11.1 Stable tag: 1.0.0 License: GPLv2 or later License URI: https://www.gnu.org/licenses/gpl-2.0.html

Wholesale prices by user role, quantity discounts, MOQ, hidden prices and a bulk order form. Every B2B basic, free, in one fast plugin.

Description

Sell wholesale from the shop you already have. Pick a role, set a price, done — no add-on stack, no developer, no yearly fee for features that should have been standard.

WholesaleGate turns WooCommerce into a wholesale store. Give trade customers their own prices, quantity discounts and minimum orders, hide retail prices from the public, and let buyers order fifty SKUs in one go — all from a single settings screen, and all in the free plugin.

Most wholesale plugins split this across three to five paid add-ons: one for role pricing, another for quantity breaks, another for minimum orders, another for the order form. WholesaleGate ships the lot.

Why shops choose it

  • Wholesale pricing that fits any catalogue. A percentage off, a fixed wholesale price, or a flat amount off — applied across the whole shop, one category, a single product or an individual variation. The most specific rule wins, so exceptions take seconds instead of spreadsheets.
  • Quantity discounts that lift order value. Build "from 10 units −15%" tables per product. The tier table sits on the product page so buyers see the next break before they decide, and the discount applies itself in the cart — per line, or across every variation of a product.
  • A trade-only shop, a retail shop, or both at once. Hide prices from logged-out visitors, hide whole categories from anyone without a wholesale account, or run B2C completely untouched beside it.
  • Minimum orders that actually hold. Minimum units or order value per role, minimum quantity and case multiples per product — enforced in the cart, the classic checkout and the block checkout, with a message that tells the buyer exactly what is missing.
  • Fifty lines in one submit. The bulk order form finds products by SKU or name, handles variations, shows live line totals, and adds everything to the cart at once. Keyboard-driven, because trade buyers do not want a mouse.
  • Price lists by CSV, without the timeout. Import per-role prices and quantity tiers keyed by SKU. A thousand rows go through in batches with a real progress bar, every bad row is reported with its line number, and there is a one-click undo.
  • Approve wholesale customers your way. Company, VAT and phone fields on the normal registration form, automatic or manual approval, and email both ways. Pending applicants keep seeing retail prices until you say otherwise.
  • A different checkout for trade. Show or hide individual payment gateways and shipping methods per role — invoice for wholesale, cards for retail — without breaking B2C checkout.
  • A block that answers "what am I paying?" The B2B status block shows a logged-in customer their account type, discount and minimum order. Server rendered, so it works in block themes.

It will not slow your shop down

  • 3.7 KB of CSS and JavaScript on the product page, gzipped, loaded only where it is needed.
  • Zero jQuery. No jQuery UI, no select2, no framework on the front end.
  • Not one custom database table. Everything lives in postmeta, termmeta, usermeta, roles and a single option row.
  • At most two extra database queries to price a product card — twelve consecutive renders measured zero, because the result is memoised per request and cached in the object cache.
  • Activation writes nothing at all. The wholesale role lives in memory until you first use it, and uninstalling removes every option and every meta row the plugin ever created.

Built for the WooCommerce you are running now

HPOS, the cart and checkout blocks, and block themes are supported from the first release. Gated products stay out of the shop, search, the sitemap and the Store API that block themes read — not just out of the catalogue grid.

Perfect for

  • Trade-only distributors and cash-and-carry
  • Shops selling retail and wholesale side by side
  • Dealer, reseller and partner networks
  • Manufacturers taking repeat SKU orders
  • Catalogues that must stay hidden from the public
  • Anyone tired of paying for four wholesale add-ons

How it compares

Role-based wholesale prices, quantity and tiered discounts, minimum order rules, the bulk order form, hidden prices, the gated catalogue and CSV price import are all free here. A typical wholesale suite sells the last five of those as separate paid add-ons, each with its own settings screen and its own renewal date. Setup here is one screen and a four-step wizard, against several plugins to install and configure.

For developers

  • One documented filter decides every price: xodw_wg_calculate_price.
  • Every write goes through a public REST namespace, /wp-json/xodw-wg/v1/, which the plugin's own admin uses — never admin-ajax.
  • Templates override from your theme, in yourtheme/wholesalegate/.
  • Logging through WC_Logger, and a POT file in the package.

Installation

  1. Install and activate WooCommerce.
  2. Install and activate WholesaleGate.
  3. Open WooCommerce → WholesaleGate and run the setup wizard — four short steps.
  4. Assign the wholesale role to a customer under Users, or wait for the first application.

Frequently Asked Questions

Does it work with variable products?

Yes. Role rules and quantity tiers apply to variations, and WooCommerce's variation price cache is scoped per role, so one visitor never sees another visitor's prices.

Can I run a wholesale shop and a retail shop on the same site?

That is the normal case. Retail checkout, retail prices and retail visibility are untouched unless you configure a rule for a role, so B2C keeps working exactly as it did.

Can I hide prices until someone logs in?

Yes — from logged-out visitors, or from everyone without a wholesale account. You choose the replacement text, and the add-to-cart button can be hidden with it.

Do hidden products leak through the REST API or the sitemap?

No. Gating is applied at the query level, so it covers the shop, search, the core sitemap, wp/v2, wc/v3 and the Store API that block themes use.

How do I set a wholesale price for one product only?

On the product's Wholesale tab. A rule on the product beats a rule on its category, which beats the catalogue-wide rule for that role.

Can I import a price list?

Yes. A CSV keyed by SKU, with columns for role, price, type and optional quantity tiers. It imports in batches with a progress bar, so a thousand rows do not hit a timeout, and a one-click undo clears a role's imported prices.

Does it create database tables?

No. Not one.

Will it slow my site down?

The product-page bundle is 3.7 KB gzipped and loads only where it is needed. Pricing is memoised per request and cached, so repeat reads inside one page cost nothing.

What happens when I uninstall it?

Every option, every meta row and the wholesale role are removed. Your products, customers and orders are left alone.

Screenshots

  1. The settings screen — every module in one place.
  2. Wholesale pricing and quantity tiers on the product edit screen.
  3. The bulk order form on the storefront.
  4. CSV price import with a live progress bar.
  5. The wholesale application queue.

Changelog

1.0.0

  • First release: wholesale role, registration with approval, role pricing, quantity tiers, price visibility, catalog gating, minimum order rules, per-role payment and shipping methods, bulk order form, CSV price import and the B2B status block.

Upgrade Notice

1.0.0

First release.