Fixora B2B Quick Order for WooCommerce
By Fixora Labs. Version 1.1.1. Premium plugin for wholesale and trade stores that need a fast order pad, role prices, and checkout rules without a bloated B2B suite.
WooCommerce must be installed and active. This is a paid-only product. Features unlock after you activate a Freemius Pro license. Updates are delivered by Freemius.
1. Installation
- In WordPress, go to Plugins → Add New → Upload Plugin.
- Upload
fixora-b2b-quick-order.zipand activate it. - Confirm WooCommerce is active. The plugin adds a Wholesale Customer role on activation.
- Open WooCommerce → B2B Quick Order and activate your Pro license when Freemius asks.
Deactivating the plugin does not delete settings, roles, or product meta. Data is removed on uninstall only if you enable that option under the Data tab.
2. Licensing & activation
The plugin is sold as Pro only (no free plan, not on WordPress.org):
- 1 site — $49 / year
- 5 sites — $99 / year
- Unlimited sites — $199 / year
After activation WordPress shows the Freemius opt-in so you can enter your license. Account, Contact, and Pricing sit under WooCommerce → B2B Quick Order. Usage and diagnostic tracking are optional — leave those boxes unchecked on the connect screen if you do not want analytics.
Without a license the storefront features stay off (the site keeps working and no data is removed). Settings, product metaboxes, and the license screen remain available so you can configure the shop and paste a key. Updates come from Freemius; there is no third-party updater.
Developers can force features on in a local test site with add_filter( 'fxbqo_is_licensed', '__return_true' ). The helper fxbqo_is_licensed() now reports fxbqo_fs()->can_use_premium_code().
3. Setup
- Create a page named “Quick Order” and insert
[fxbqo_quick_order](or the Gutenberg block B2B Quick Order Table). - Optional: add
[fxbqo_csv_order]and[fxbqo_wholesale_register]to the same page or to dedicated pages. - Assign trade buyers the Wholesale Customer role, or let them request an account and approve them under the Approvals tab.
- Review Pricing, Visibility, and Minimum order tabs. Defaults include a 15% wholesale discount and a $100 / 5-item minimum for wholesale customers.
4. Quick order table
The table lists simple and variable products with configurable columns: thumbnail, SKU, name, price, stock, quantity. Shoppers search by name or SKU, filter by category, pick variations inline, enter quantities, and add every selected row to the cart in one AJAX request.
Paging is either numbered pages or a “Load more” control. On small screens the table stacks into labeled cards.
5. Role & tier pricing
Prices resolve in this order:
- Product meta box (role price, then quantity tiers)
- Product category term fields
- Global settings
A percent role rule discounts the catalog price. A fixed role rule replaces it. Quantity tiers then apply to that unit price: percent reduces it further; fixed subtracts an amount. Tiers appear on the product page, in the table, and in cart/checkout (classic and block).
6. Guest visibility
By default guests see a custom message and a login link instead of prices and add-to-cart. You can also hide prices from logged-in roles that are not on the allow-list (useful while a wholesale request is pending).
7. Minimum order
Set a minimum amount and/or quantity per role. Notices appear on the cart. Checkout is blocked until the cart qualifies — including WooCommerce Cart & Checkout blocks via the Store API.
8. CSV / bulk order
Upload a CSV or paste SKUs. Supported layouts:
- Headered CSV:
sku,qty(commas, semicolons, or tabs) - One SKU per line (quantity defaults to 1)
SKU 4on a single line
Validate first to get a report (found, missing, invalid qty, out of stock). Then add valid rows to the cart. Duplicate SKUs are merged.
A sample file is included as documentation/sample-order.csv.
9. Wholesale registration
The form collects username, email, password, company, and phone. The account is created as a Customer with status pending. Administrators approve it from WooCommerce → B2B Quick Order → Approvals, which assigns the Wholesale Customer role (configurable) and emails the buyer.
10. Shortcodes, block, and Elementor
Shortcode: quick order
[fxbqo_quick_order per_page="12" category="" columns="thumbnail,sku,name,price,stock,qty" load_mode="pagination" search="yes"]
| Attribute | Default | Notes |
|---|---|---|
| per_page | settings | 1–100 |
| category | empty | Product category term ID |
| columns | settings | Comma-separated list |
| load_mode | settings | pagination or load_more |
| search | yes | Set no to hide search |
Shortcode: CSV
[fxbqo_csv_order title="Bulk order by SKU"]
Shortcode: registration
[fxbqo_wholesale_register title="Request a wholesale account"]
Gutenberg
Insert B2B Quick Order Table, B2B CSV Bulk Order, or Wholesale Registration from the WooCommerce block category. Table attributes match the shortcode (per page, category ID, columns, paging, search, category filter).
Elementor
If Elementor is active, the widget B2B Quick Order Table appears under Fixora B2B (and WooCommerce / General). Controls cover products per page, category, columns, paging, search, and the category filter. The table renders in the editor preview and on the front end. Elementor is optional; the plugin loads the widget class only when Elementor is present.
11. FAQ
Will this work with Cart & Checkout blocks?
Yes. Role prices use WooCommerce product/cart APIs. Minimum order rules register Store API cart errors and cart extension data.
Is High-Performance Order Storage supported?
Yes. Compatibility is declared for custom order tables. The plugin does not write to legacy order post meta.
Can I keep data if I delete the plugin?
Yes. Leave “Delete plugin data when the plugin is deleted” unchecked (default). Export settings JSON from the Data tab first if you want a backup.
How do I activate the license?
Open WooCommerce → B2B Quick Order → Account (or click Activate license on the Plugins screen). Freemius shows the opt-in and license field. You can skip diagnostic / installed-plugins tracking.
Variable products in CSV?
Use the variation SKU, not the parent SKU.
Does deactivation remove the wholesale role?
No.
12. Changelog
1.1.1
- Freemius deployment: removed
uninstall.php. Opt-in data cleanup now runs onfxbqo_fs()->add_action( 'after_uninstall', 'fxbqo_fs_uninstall_cleanup' ).
1.1.0
- Freemius premium-only licensing (Pro plan). Storefront features require a valid license; admin settings remain usable.
- Automatic updates via the bundled Freemius WordPress SDK 2.13.4.
- Connect-screen opt-in; diagnostic and extensions tracking default off.
1.0.1
- Elementor widget: Fixora B2B panel category, category dropdown, column picker, search/filter switches, and reliable editor/preview assets.
- PHPCS WordPress-Extra (including style warnings) cleaned; frontend JS rebinds through document for Elementor and AJAX table updates.
1.0.0
- Initial release: quick-order table, role/tier pricing, guest hiding, min order, CSV, wholesale registration, HPOS and checkout-block compatibility.
13. Compatibility
- WordPress 6.5+, tested on 7.1.x
- WooCommerce 8.x–11.x (tested on 11.2)
- PHP 7.4–8.4 (developed on 8.3)
- Storefront and block themes that output WooCommerce templates
No ads. Freemius handles licensing, optional usage tracking (off unless you opt in), and updates. Translation-ready text domain: fixora-b2b-quick-order.