I built this plugin to solve a common WooCommerce problem: wholesale logic usually lives in spreadsheets, email threads, and manual exceptions instead of the store itself.
With NEXU B2B Wholesale for WooCommerce, I wanted WordPress to enforce B2B rules automatically. The core idea is simple: assign a buyer role, then let pricing, product visibility, order minimums, and payment flow react to that role.
Under the hood, the plugin extends WooCommerce product and cart logic with role-aware conditions. On the product side, I attach wholesale pricing tiers and visibility rules to specific roles, so approved buyers see different prices and quantity discounts than retail visitors. For mixed catalogs, I also added per-product controls to hide price or disable add to cart for non-wholesale users.
For onboarding, I built a registration and approval workflow that keeps wholesale pricing private until an admin approves the account. That means the role assignment is not just a label, it is the switch that unlocks the correct storefront behavior.
I also focused on cart validation because pricing alone does not protect margins. The plugin checks minimum quantity, minimum order value, and pack-multiple rules before checkout completes. Instead of relying on store managers to catch bad orders manually, the cart enforces the same standards every time.
Another piece was payment handling for B2B orders. I added a bank transfer flow with receipt upload and admin review inside the WooCommerce order screen, so payment proof stays attached to the order instead of getting lost in inboxes or chat messages.
The technical goal was consistency. Once a buyer is approved, WordPress applies the right role-based prices, shows the right tier table, validates the right quantity rules, and exposes the right payment options. That turns wholesale from a manual process into a repeatable system inside WooCommerce.
If you run a store where retail and B2B customers need different rules, this was my attempt to make WordPress handle that complexity without custom code on every project.
Top comments (0)