Description
Grosik B2B Order Import adds a Quick order page to WooCommerce My Account. A signed-in customer uploads an XLSX, CSV, TSV or TXT file, or pastes a list of product codes and quantities. The plugin matches every row against the catalogue, applies current stock and quantity rules, and shows a review screen. Nothing reaches the cart until the customer confirms it.
It is built for merchants whose customers order dozens of line items at a time from their own part lists, and who currently retype those lists by hand.
The plugin does not change prices, roles or discounts. It handles order entry only, so it can run alongside a wholesale pricing plugin.
What the free edition does
- Import XLSX, CSV, TSV and TXT order files
- Paste a list of codes and quantities instead of uploading a file
- Match by SKU and by GTIN, UPC, EAN or ISBN
- Recover product codes that Excel turned into scientific notation
- Check stock and reduce a requested quantity to what is available, with a plain explanation
- Apply minimum quantity and pack-size rules from WooCommerce
- Search the catalogue manually when a code cannot be matched
- Download a blank two-column XLSX order template with Product code (SKU) and Quantity
- Review every row and confirm before anything is added to the cart
Available in Grosik B2B Order Import Pro
Pro is a separate download from grosik.org. The features below are not part of this package; their implementation is not included in it:
- Customer-specific product codes shared by everyone in a company
- Company accounts with several users and a shared dictionary
- Reusable saved orders
- Product suggestions and confirmed code learning
- Downloadable Customer Order Catalogue with product names, pack/minimum rules, stock modes and customer prices
- Per-customer interface language, chosen by each customer independently of the store language
Languages
The interface follows the WordPress locale, exactly like any other plugin. Translations are provided through WordPress.org language packs: once a translation has been contributed and approved on translate.wordpress.org, WordPress installs and applies it automatically. Where no translation exists, the interface is English.
This plugin ships no translation files of its own. Contributions are welcome at https://translate.wordpress.org/projects/wp-plugins/grosik-b2b-order-import/
Input formats
CSV, TSV and TXT
- English, Slovak and Czech product-code and quantity headers are recognised within the first 20 records; headerless two-column files use code then quantity.
- Partial or ambiguous headers fail closed. Quoted multiline fields and UTF-8, Windows-1250 and ISO-8859-2 are supported.
- Files are limited to 5 MB. For reliability, very large orders may need to be split into several files. Blank-quantity rows in generated templates are ignored.
XLSX
The first visible worksheet in workbook order is read. ZipArchive and SimpleXML are required. Legacy binary XLS is not supported. XML external entities, excessive archive entries and oversized expanded content are rejected.
Pasted text
Supported examples are SKU; quantity, SKU quantity and quantity pcs SKU. With two bare numbers, the first is the SKU: 45169 36 means SKU 45169 and quantity 36.
Quantities must be whole units. Thousands separators are understood, so 1,000, 1.000 and 1 000 all mean one thousand. A variable product requires the exact variation identifier.
Order template
Customers can download a blank XLSX order template containing only Product code (SKU) and Quantity. This blank template is included in both editions.
On upload, rows the customer left blank are ignored and stock, price, access and pack rules are recalculated from WooCommerce.
Product access
Catalogue visibility and ordering authorization are separate. A merchant may allow a published hidden product by exact code while keeping it out of discovery. Draft, private and trashed products fail closed. Trusted integrations may restrict access through grosik_b2b_customer_can_order_product.
Security
- REST requests require a signed-in session, REST nonce and allowed role.
- Product, quantity, stock, price and pack rules are recalculated on the server; review tokens restrict every cart product.
- Idempotent cart retries are checked before rate limiting.
- Manual search is POST-only, account-filtered, bounded, rate limited and separately tokenized. It never reveals how many products an account may not order.
- Variable parents are never selectable; only simple products and exact variations can enter the cart.
- Excluded rows need acknowledgement and the full cart snapshot is restored if any insertion fails.
- Upload, row, ZIP/XML expansion and request rates are bounded.
- The contents of uploaded or pasted order data are not sent to Freemius or another external service, and no code from an uploaded file is executed.
Privacy
This edition does not create or use company accounts, customer dictionaries, saved orders or learning data. If a previously installed edition left those plugin-owned records on the site, the WordPress personal-data exporter, eraser, delete_user cleanup and full-uninstall removal remain available without a licence; company-owned records belonging to other members are retained. Review state is kept in short-lived transients bound to the signed-in customer. Optional support logging is off by default, stays local, and contains only a keyed support reference, item counts and technical error types.
Diagnostic data never leaves the site on its own. The support report is generated locally, shown to the administrator in full before it can be copied or downloaded, and is never transmitted automatically.
External Services
This plugin includes the Freemius SDK for the optional connection/account flow, licensing, pricing and upgrades, and the related software update and distribution lifecycle. The SDK may communicate with Freemius when an administrator chooses to connect or opt in, activates or manages a licence, opens a Freemius-powered account, pricing or upgrade screen, or uses a Freemius-managed update or distribution action. Where the Free opt-in screen offers Skip, the administrator may skip the connection and the core Free order-import functionality continues to work.
Before a connection or licence activation, the Freemius permission screen lists the information requested. Depending on the action and the permissions selected, the categories used by this integration can include the WordPress user’s first and last name and email address; the site homepage URL and title, WordPress and PHP versions, and site language; the plugin and Freemius SDK versions and whether the plugin is active, deactivated or uninstalled; optional names, slugs, versions and activation status of installed plugins and themes; and Freemius account, installation and licence identifiers needed for account and licence management. This plugin does not send the contents of imported order files, pasted order rows, cart contents, customer product codes or saved orders to Freemius.
Freemius Terms of Service: https://freemius.com/terms/
Freemius Privacy Policy: https://freemius.com/privacy/
Third-party libraries and source code
This plugin bundles one third-party library. It is distributed unmodified, exactly as released upstream.
Freemius WordPress SDK, version 2.13.4
- Bundled at: vendor/freemius/wordpress-sdk/
- License: GPL-3.0, see vendor/freemius/wordpress-sdk/LICENSE.txt
- Source repository: https://github.com/Freemius/wordpress-sdk
- Exact release used: https://github.com/Freemius/wordpress-sdk/releases/tag/2.13.4
This plugin itself stays GPL-2.0-or-later, which permits distribution together with the GPL-3.0 SDK.
Minified assets inside the bundled SDK
The SDK ships a small number of pre-built, minified assets. They are not produced by this plugin and are not modified by it. Their human-readable sources and build instructions live in the upstream projects:
- vendor/freemius/wordpress-sdk/assets/js/pricing/freemius-pricing.js is the compiled bundle of the Freemius pricing page application. Its source and build instructions are at https://github.com/Freemius/pricing-page
- The minified stylesheets under vendor/freemius/wordpress-sdk/assets/css/ are released in that form by the SDK repository above.
No other minified, compiled or obfuscated code is distributed with this plugin. Every file this plugin itself ships, under includes/, templates/, assets/css/ and assets/js/, is human-readable source.
Installation
- Upload and activate the plugin on a staging WooCommerce store first.
- Open WooCommerce > Grosik B2B Order Import.
- Choose which user roles may use quick order and configure hidden-product access.
- Test an import from My Account > Quick order before using it in production.
FAQ
-
Does this change my prices or customer roles?
-
No. It reads prices, stock and quantity rules from WooCommerce and never writes them. It can run next to a wholesale pricing plugin.
-
What happens if a product code is not found?
-
The row is listed separately as needing attention. The customer can search the catalogue and pick the right product, or continue without that row after confirming.
-
Can a customer order more than the available stock?
-
No. The requested quantity is reduced to what is in stock and the review explains the change before the cart is touched.
-
Does the customer need to know my SKUs?
-
The Free blank template shows the required Product code (SKU) and Quantity format. The downloadable Customer Order Catalogue that lists products available to the signed-in account is included in Pro.
Reviews
There are no reviews for this plugin.
Contributors & Developers
“Grosik B2B Order Import” is open source software. The following people have contributed to this plugin.
ContributorsTranslate “Grosik B2B Order Import” into your language.
Interested in development?
Browse the code, check out the SVN repository, or subscribe to the development log by RSS.
Changelog
1.1.1
- Improved privacy cleanup reliability for optional historical data and temporary storage.
- Applied the same 2,000-row reliability safeguard in the server and browser.
- Refined administration styling and compatibility details for the public release.
1.1.0
- First public release.
- Import XLSX, CSV, TSV and TXT order files, or paste a list of product codes and quantities.
- Match by SKU and by GTIN, UPC, EAN or ISBN, and recover codes damaged by spreadsheet software.
- Apply current stock, minimum quantity and pack-size rules from WooCommerce.
- Review every row and confirm before anything reaches the native WooCommerce cart.
- Blank two-column XLSX order template for every edition.





