Descriere
CodeAtoZ B2B Suite for WooCommerce turns your WooCommerce store into a full-featured B2B commerce platform. Six powerful free modules cover the essentials, and a Pro add-on unlocks 16 additional advanced modules.
Whether you run a wholesale operation, a distributor network, or a trade-only store, this plugin gives you everything needed to serve business customers professionally — from gated pricing and quote requests to custom registration forms with approval workflows.
Free Modules
Access Control
Hide prices, remove Add-to-Cart buttons, and restrict your catalogue for guest users or specific customer roles. Set a custom replacement action — show a Login button, Request a Quote modal, or a contact inquiry form instead.
Wholesale Pricing
Create role-based and user-based pricing rules with percentage discounts, flat discounts, or fixed prices. Full support for quantity tier pricing (volume discounts) with a volume-pricing table shown right on the product page, per-product minimum order quantities (MOQ), and store-wide minimum order requirements (minimum cart total and/or item count). Includes a Quick Order by SKU form so buyers can add many products to the cart at once.
RFQ & Quotes
Add a „Request a Quote” button to any product. Customers collect multiple products into a Quote Cart — from product pages or straight from shop listings — and submit them all as one request, with a floating cart button showing the running count. Buyers can even request items you do not list in WooCommerce: the „Can’t find a product?” form on the Quote Cart accepts a SKU, description, quantity and target price, so large-catalogue and special-order enquiries never hit a dead end. You review and send a formal quote from the admin panel. Edit line items directly — change unit prices and quantities, add or remove products, and apply a discount, with the subtotal and total recalculated automatically. When a quote is accepted, it is converted to a WooCommerce order in „Pending payment” status and the customer is automatically emailed the native „Pay for Order” link — or trigger it yourself from the dashboard with the „Accept & Send Payment Link” button. Optional PDF generation and quote expiry management included.
Registrations & Approvals
Replace standard WooCommerce registration with a B2B-specific form that collects company name, VAT number, phone, and supporting documents. Approve or reject applications from the admin panel. Automatic email notifications go to both customers and admins at every step.
Analytics
Track key B2B events — quote requests, approvals, registrations, and pricing rule applications — and view them in a clean admin dashboard with chart visualisations.
Automation
Schedule email reminders for unanswered quotes, follow-up emails for cold leads, and Slack notifications for new quotes and registrations. Fully configurable intervals and message templates.
Why choose CodeAtoZ B2B Suite?
- Modular — enable only the features your store needs; each module can be toggled independently.
- No bloat — no licensing code, no telemetry, no external pings beyond your own WooCommerce configuration.
- WP.org compliant — 100% GPL code, all assets bundled locally, no CDN dependencies.
- HPOS ready — fully compatible with WooCommerce High-Performance Order Storage.
- Theme agnostic — uses standard WooCommerce hooks; frontend templates are overridable from your theme.
Pro Add-on Features
Upgrade to CodeAtoZ B2B Suite Pro for:
- CRM Integration — HubSpot, Salesforce, Zoho CRM, Pipedrive
- Dealer Portal — Saved carts, branded dashboards, quick re-order
- Lead Generation — Callback forms, inquiry widgets, WhatsApp click-to-chat
- AI Assistant — AI-powered quote suggestions, price scoring, and lead prioritisation (Claude / OpenAI)
- Sales Reps & Commission — Assign reps to customers, track commission
- ERP Integration — Push orders to SAP, NetSuite, Xero via webhooks
- Bulk / Quick Order — SKU paste / CSV upload for fast ordering, including a „Request Quote for All” mode that quotes SKUs which are not in your catalogue instead of rejecting them
- Quote Cart Auto-Setup — creates and maintains the Quote Cart page for you
- Quote Negotiation — customers counter-offer on price and quantity; accept, reject or counter from the admin
- Recurring Orders — scheduled repeat orders for dealers (weekly to quarterly)
- Credit Control — AR aging dashboard, automated dunning reminders and monthly statements
- Net Terms & Credit Accounts — Net 30/60/90 payment terms, per-customer credit limits
- Company Accounts — Multi-user company accounts with Buyer, Viewer, and Admin roles
- Catalog Visibility Rules — Show/hide products by role, company, or user
- Invoice Manager — Auto-generate PDF invoices, email them on order status change
- Custom Checkout Fields — PO Number, Department, Delivery Note
- Price Books — Scheduled price lists assignable to users, roles, or companies
- Advanced Reporting & Export — B2B revenue, quote conversion, rep performance
- In-App Notifications — Real-time bell notifications for quotes, approvals, credit events
- Account Statement — Monthly purchase and credit statement downloadable from My Account
Compatibility
- WooCommerce HPOS — Fully compatible with High-Performance Order Storage (custom order tables)
- Block Themes — Works with both classic and block-based themes
- Multisite — Plugin can be network-activated
Capturi ecran












Instalare
- Upload the
codeatoz-b2b-suite-for-woocommercedirectory to/wp-content/plugins/ - Activate the plugin through the Plugins screen in WordPress
- Go to B2B Suite Dashboard to get started
- Enable and configure modules under B2B Suite Settings Modules
Recommended first steps
- Enable the modules you need under Settings Modules
- Set your B2B customer roles under Settings Access Control
- Add pricing rules under Wholesale Pricing Rules
- Configure the registration form under Settings Registrations
- Set up quote PDF settings under Settings RFQ
Întrebări frecvente
-
Does this plugin require WooCommerce?
-
Yes. WooCommerce 8.0 or later must be installed and active.
-
What PHP version is required?
-
PHP 8.0 or later.
-
Can I use only some modules?
-
Yes. Each module can be enabled or disabled individually from B2B Suite Settings Modules. Disabled modules load no code and have no performance impact.
-
Will it work with my theme?
-
The plugin relies on standard WooCommerce hooks and is compatible with any properly-coded WooCommerce theme. Frontend templates can be overridden by copying them to your theme’s
codeatoz-b2b-suite-for-woocommerce/subdirectory. -
How do I override templates?
-
Copy the template file from
/wp-content/plugins/codeatoz-b2b-suite-for-woocommerce/templates/to/wp-content/themes/your-theme/codeatoz-b2b-suite-for-woocommerce/preserving the same folder structure, then edit the copy. -
Does the plugin create database tables?
-
Yes. On activation it creates custom tables (prefixed
{prefix}b2b_) for quotes, quote items, quote notes, registrations, pricing rules, analytics events, and automation logs, usingdbDelta(). All plugin tables, options, roles, and meta are removed when you delete the plugin (via uninstall.php). -
How do I set up the RFQ / Request a Quote feature?
-
- Enable the RFQ module under Settings Modules
- Create a page containing the
[catoz_b2b_quote_cart]shortcode — this is the Quote Cart where customers review and submit - (Optional) Enable the Access Control module and set the „replacement action” to „Request a Quote” for guest or non-B2B roles to run a quote-only, price-hidden store
- Customers see an „Add to Quote” button on product pages and shop listings
- Submitted quotes appear under B2B Suite Quotes in your admin
-
Can customers add more than one product to a single quote?
-
Yes. Enable Multi-Product Quote Cart under Settings RFQ & Quotes (on by default). Customers add as many products as they like to the Quote Cart and submit them as one request. Turn the setting off if you would rather each product opened a single-item inquiry popup and created its own quote.
-
Can customers request a SKU that is not in my WooCommerce catalogue?
-
Yes. Enable Allow Custom / Off-Catalogue Items under Settings RFQ & Quotes. The Quote Cart then shows a „Can’t find a product?” form where buyers enter a SKU, description, quantity and target price. Those lines appear on the quote marked „Custom item” together with the buyer’s notes, and are carried into the WooCommerce order when the quote is accepted, so the order total always matches the quote. The same applies to the admin Add Quote screen: SKUs in the paste-list that are not in your catalogue become custom lines instead of being skipped.
-
Is the Quote Cart separate from the normal WooCommerce cart?
-
Yes — completely. The Quote Cart is its own basket with its own storage, its own page and its own floating button; adding a product to a quote never touches the WooCommerce shopping cart, and the two can be used side by side on a mixed store. In quote-only mode (catalogue mode, or Add-to-Cart hidden for a role) the WooCommerce cart is switched off entirely and the Quote Cart takes over: quote actions become the primary buttons everywhere, including the Pro Bulk Order form and its CSV import, which then build a quote request instead of a cart.
-
The quote cart is not keeping my items. What is wrong?
-
Version 1.5.0 moved quote-cart storage to the WooCommerce session, which is database-backed and works reliably on hosts where native PHP sessions are not persisted (a common cause of items disappearing). Make sure WooCommerce is active and, if you use a page cache, exclude the Quote Cart page from caching.
-
Can customers see their quotes?
-
Yes. Customers can view all their quote requests under My Account Quotes. They can also download a PDF and accept quotes from there.
-
Where can I get support?
-
Post in the WordPress.org support forum or visit codeatoz.com.
-
Is there a Pro version?
-
Yes — CodeAtoZ B2B Suite Pro adds 16 additional modules including CRM, ERP, AI, Net Terms, Price Books, Invoices, and more.
-
Does the free plugin do license key checks or phone home?
-
No. The free plugin contains no licensing code, telemetry, or external calls beyond the WooCommerce connection you configure yourself. All JavaScript assets (including Chart.js) are bundled locally.
-
Is this plugin compatible with WooCommerce HPOS?
-
Yes. The plugin explicitly declares HPOS compatibility and uses WooCommerce’s order APIs rather than direct post queries.
-
Can this be used on a multisite network?
-
Yes. The plugin can be network-activated. Each site in the network maintains its own B2B settings, quotes, and registrations.
-
How do I add the Quick Order (order by SKU) form?
-
Create or edit a page and add the shortcode
[catoz_b2b_quick_order]. Customers can type product SKUs and quantities and add them all to the cart in one click. You can change the number of starting rows with[catoz_b2b_quick_order rows="10"]. -
How do I require a minimum order before checkout?
-
Go to B2B Suite Settings Wholesale Pricing Minimum Order Requirements and set a minimum order amount (cart subtotal) and/or a minimum total item count. Customers who do not meet the requirement see a notice on the cart and checkout and cannot place the order. Set either value to 0 to disable it.
Recenzii
Nu există nicio verificare pentru acest modul.
Contributori și dezvoltatori
„CodeAtoZ B2B Suite for WooCommerce” este un software open-source. La acest modul au contribuit următoarele persoane.
ContributoriTradu „CodeAtoZ B2B Suite for WooCommerce” în limba ta.
Te interesează dezvoltarea?
Răsfoiește codul, vezi depozitarul SVN, sau abonează-te la jurnalul de dezvoltare prin RSS.
Istoric modificări
1.5.2
- Fixed: the quote buttons could link to a /quote-cart/ page that does not exist. The cart URL is now discovered from the page holding the [catoz_b2b_quote_cart] shortcode and remembered, so the link matches what Settings reports.
- Fixed: quote-only / hidden-price stores showed no quote button on the product page, because WooCommerce suppresses the add-to-cart form for non-purchasable products. A fallback now renders it for those products (and for out-of-stock items).
- Fixed: „Add to Quote” on shop listings could send another product’s quantity; the quantity is now read from the clicked product only, and a selected variation is respected.
- Fixed: the floating quote-cart badge is now filled in per visitor by the browser, so a cached page can never show one shopper’s count to another.
- Fixed: converting a quote to an order now carries the quote discount across, does not add tax on top of already-agreed amounts, keeps fractional quantities intact, and flags a zero-value order instead of emailing an unpayable invoice.
- Fixed: a spec note or target price entered against a catalogue SKU is kept on the line instead of being discarded.
- Fixed: a SKU list line with no SKU (for example „, 5”) no longer matches an unrelated product.
1.5.1
- Fixed: the Quote Cart now stores items in the WooCommerce session instead of a native PHP session. On many hosts PHP sessions were not persisted, so customers could not build up a multi-product quote and the floating Quote Cart counter never appeared. Adding several products now works reliably.
- New: „Multi-Product Quote Cart” setting (Settings RFQ & Quotes, on by default) — a single switch that lets customers collect many products into one quote request. Turn it off to use single-product inquiry popups instead.
- New: the „Add to Quote” button now also appears on shop and category listings, so buyers can build a quote without opening every product page.
- New: quote-only stores (hidden prices) now use the multi-product Quote Cart button instead of a single-item popup, so one request can cover many products.
- New: „Allow Custom / Off-Catalogue Items” setting — buyers can request products that are not in your WooCommerce catalogue by entering a SKU, description, quantity and target price on the Quote Cart. Custom lines are marked on the quote and carried into the WooCommerce order when accepted, so quote and order totals always match.
- New: the admin Add Quote screen keeps unknown SKUs as custom line items instead of skipping them, and the paste-list now accepts „SKU, quantity, price”.
- The floating Quote Cart button now links to the Quote Cart page, updates its count live, and disappears when the cart is emptied.
- The Quote Cart is kept strictly separate from the WooCommerce cart, and in quote-only mode all buying flows now lead with quote actions instead of cart actions that could not work.
- Developer: new public API on Catoz_B2B_RFQ — get_cart(), save_cart(), clear_cart(), cart_count(), add_product_to_cart(), add_custom_to_cart(), get_cart_url(), multi_quote_enabled(), custom_items_enabled(), is_quote_only_mode(), find_cart_page_id(); and Catoz_B2B_Access_Control::is_quote_only().
1.4.1
- Developer: new extension hooks on the public quote page (catoz_b2b_public_quote_after_actions) and the admin quote screen (catoz_b2b_admin_quote_detail_negotiation) so the Pro add-on can layer quote negotiation / counter-offers onto the existing quote flow.
1.4.0
- New: Create a quote from the admin. Go to B2B Suite Add Quote, attach it to an existing customer account or a guest email, and build the line items with WooCommerce product search — perfect for quoting a customer’s product list without them shopping first.
- New: Add products to a manual quote by pasting a SKU list (one SKU per line, with an optional quantity after a comma), so a customer’s list becomes a quote in seconds.
- New: Secure guest quote links. Every quote gets a login-free link where the customer can view it and Accept or Decline. Accepting confirms the quote and sends the native WooCommerce „Pay for Order” payment link — full quote-to-payment for guests and account holders alike.
- New: The „Your Quote is Ready” email now points to the secure quote link, so customers without an account can respond.
- New: „Customer Link” panel on the admin quote screen with a one-click copy button and a preview of the customer-facing page.
- New: „Guest Quote Links” setting (Settings RFQ & Quotes, on by default) to enable or disable the login-free links.
- Developer: new catoz_b2b_quote_created action hook, and Catoz_B2B_RFQ::get_public_url() / get_public_token() / verify_public_token() helpers.
1.3.0
- New: Accepted quotes now convert to a WooCommerce order in „Pending payment” status and the customer is automatically emailed WooCommerce’s native „Pay for Order” link, so they can complete payment through your normal checkout — end-to-end quote-to-payment with no manual steps.
- New: „Accept & Send Payment Link” button on the admin quote screen to create the pending order and send the payment email on demand from the dashboard.
- New: „Send Payment Link on Acceptance” setting (Settings RFQ & Quotes, on by default) to toggle the automatic payment email.
- Quote-to-order conversion is now guarded against duplicates, so a quote can never generate two orders.
- New: Quick Order by SKU — add the [catoz_b2b_quick_order] shortcode to any page so buyers can enter multiple SKUs and quantities and add them all to the cart in one click.
- New: Minimum order requirements — set a store-wide minimum cart subtotal and/or minimum item count (Settings Wholesale Pricing) that must be met before checkout.
- New: The product-page volume-pricing table now shows a „You Save” column with the discount percentage for each quantity tier.
- Developer: new catoz_b2b_quote_converted and catoz_b2b_order_payment_link_sent action hooks.
1.2.0
- New: Full line-item editing for quotes in the admin. Open any quote and change the unit price and quantity of each line — line totals, subtotal, and grand total update live as you type.
- New: Add products to an existing quote using WooCommerce product search, and remove line items you no longer need.
- New: Editable quote discount. Enter a discount amount and the grand total recalculates automatically (the discount can never exceed the subtotal).
- All quote totals are recalculated and saved on the server, so the stored figures always match the line items.
- Converted quotes are locked from editing to protect the WooCommerce order that was generated from them.
- Developer: new Catoz_B2B_DB helpers — update_quote_item(), delete_quote_item(), get_quote_item(), recalculate_quote_totals() — and a new catoz_b2b_quote_items_updated action hook fired after a quote’s items are saved.
1.1.1
- Quote PDF now enqueues its stylesheet via wp_enqueue_style() and prints it with wp_print_styles() by handle — removes the inline block entirely
- Move all remaining inline style=”” attributes in the PDF template to CSS classes in quote-pdf.css
- Replace the print button’s inline onclick handler with an enqueued script (quote-pdf.js) printed via wp_print_scripts() — the PDF template now contains zero inline CSS or JS
1.1.0
- Move quote PDF inline styles to assets/css/quote-pdf.css; load via file_get_contents() with explanatory comment (standalone PDF document cannot use wp_enqueue_style)
- Rename wp_localize_script object names to match plugin prefix convention: catozB2BFront catoz_b2b_front, catozB2BAnalytics catoz_b2b_analytics
- Update all JavaScript references in frontend.js, admin.js, and admin-analytics.js to use renamed object names
1.0.9
- Suppress false-positive InputNotSanitized warnings on session reads (values are sanitized per-field after read)
- Prefix global variables in uninstall.php multisite loop
1.0.8
- Remove duplicate Plugin URI header (was identical to Author URI)
1.0.7
- Update bundled Chart.js library to v4.5.1 (latest stable)
1.0.6
- Add wp_unslash() before sanitize_key() on all $_GET/$_POST reads
- Escape all dynamic class-attribute output with esc_attr()
- Prefix product meta keys (_catoz_b2b_moq, _catoz_b2b_wholesale_price)
- Add uninstall.php to remove all tables, options, roles, and meta on deletion (multisite aware)
- Correct the database/uninstall description in the FAQ
1.0.5
- Fix fatal PHP syntax errors in dashboard, quote-cart, and registration-form templates (missing closing PHP tag)
- Move inline analytics chart script to an enqueued JS file with wp_localize_script
- Add „Requires Plugins: woocommerce” header for dependency management
- Escape shortcode output (registration status message) before return
- Sanitize quote-cart session data on read; sanitize JSON-body nonce before verification
- Prefix all AJAX actions, shortcodes, session keys, and the JS data object with catoz_b2b_ to avoid collisions
- Fix mismatched AJAX action names for Slack test, run-now, and AI settings save buttons
- Update Plugin URI to a valid URL
1.0.4
- Change text domain to codeatoz-b2b-suite-for-woocommerce to match plugin title slug (eliminates all automated checker textdomain warnings)
- Rename languages pot file to codeatoz-b2b-suite-for-woocommerce.pot
1.0.3
- Fix missing wp_unslash/sanitize on sticky form POST fields in WooCommerce registration integration
- Fix phpcs:disable scope covering all $_GET accesses in PDF download handler
- Fix translators comment placement in WhatsApp CTA and Variation label
- Add PluginCheck.Security.DirectDB.UnescapedDBParameter suppression for safe dynamic SQL queries
- Extend NonPrefixedClassFound suppression to HTML class attributes in view templates
- Fix session variable access coverage in quote cart indicator
1.0.2
- Fix unescaped apostrophe in quote follow-up email template causing plugin checker parse error
1.0.1
- Fix all WP.org plugin checker errors: output escaping, translators comments, wp_unslash, nonce handling, and function name prefixing
- Replace non-enqueued stylesheet in PDF template with inline styles
- Add missing direct file access protection to PDF template
1.0.0
- Initial release
- Access Control module — hide prices, restrict catalogue, configurable replacement CTAs
- Wholesale Pricing module — role/user-based rules, tier pricing, MOQ per product
- RFQ & Quotes module — quote cart, admin quote management, PDF generation, order conversion
- Registrations & Approvals module — B2B registration form with approval workflow
- Analytics module — event tracking and admin dashboard charts
- Automation module — scheduled email reminders and Slack notifications
- HPOS compatibility declared
- WooCommerce 8.x–9.x compatible
- WordPress 6.4–6.8 compatible
