Wholesale Desk – B2B orders for Shopify
Last updated: 18 October 2026
Wholesale Desk is a Shopify app for stores that sell to businesses. Purchase orders that arrive by email and Excel become Shopify draft orders for the right company at that company’s prices, every company sees its own prices without Shopify Plus, and receivables stay under control. It is built on native Shopify B2B and does not edit your theme code.
Need help? Read the help and FAQ. Your data: privacy policy.
What you get
Purchase orders from email and Excel become draft orders
- Upload an .xlsx or .csv file, or paste lines with a SKU and a quantity. Map the columns once; the mapping is saved for the company.
- Review before anything is created: rows that match no product, PO prices that differ from the company price, stock and the company minimum.
- The draft order is created for the company and its location with the PO number, the location’s payment terms and the company’s prices. Send the invoice from the app.
- A purchase order with more than 499 lines becomes several draft orders “part N of M” with one PO number, because Shopify drafts take at most 499 lines.
- Every store gets its own order address in the form po-{token}@inbox.maxitsolutions.tech. Buyers email it, or you forward their email to it. The .xlsx or .csv attachment, or lines in the message text, are read and matched to the company by the sender.
- When the sender cannot be matched to exactly one company, the order lands in “Unassigned” with the file and a company picker. Nothing is lost.
- PDF and photo purchase orders are not read.
Company pricing without Shopify Plus
- Price groups per company: a percentage off everything, percentages by collection, tag, vendor or product type, fixed prices per variant and quantity price breaks.
- Prices apply at checkout through a Shopify discount, on draft orders you create, and on purchase orders you import.
- A minimum order per company, checked at checkout against the goods subtotal.
- Import and export price lists as CSV (Starter and above).
Credit limits, receivables and statements
- A credit limit per company. Checkout is blocked for a buyer whose order would exceed the credit available or whose company has overdue invoices, with a message that names the reason.
- A receivables page with open and overdue amounts and aging buckets: 0–30, 31–60, 61–90 and 90+ days.
- Account statements as PDF, sent by hand or monthly to the company’s contacts.
- Credit control and statements come with Growth and above.
Wholesale application form
- A form on your store with the fields you choose, file uploads and spam protection.
- Approving an application creates the company, its location and the contact in Shopify with the roles and payment terms you set, and sends the welcome email. Rejecting sends a message with your reason.
- Bring in companies you already have in Shopify, or import them from a CSV file.
Storefront blocks, no theme code
Added in the theme editor as app blocks: Wholesale application, Wholesale price (shows the company price on product pages), Upload an order (Starter and above), Request a quote and Large orders (Pro), and a Wholesale-only store embed that hides prices and add to cart from visitors without a business account. Removing the app removes the blocks.
For larger stores (Pro)
- Orders over 100 lines: below Pro a wholesale order takes at most 100 lines at checkout. On Pro a buyer sends the order to the store, it arrives as a purchase order in review, and you create the draft order at company prices.
- Quote requests from the cart.
- Line sheets as PDF with company prices, and a companies CSV.
- Accounting export of company orders as invoice files for Xero and QuickBooks Online, or as a spreadsheet of order lines.
- Up to 10 order intake email addresses.
Plans and prices
All prices are in US dollars. Paid plans start with a 14-day free trial and are billed monthly through Shopify. Every plan includes a quota; use above it is added to your Shopify bill at the price below, up to a monthly usage limit you set in the app.
| Free | Starter | Growth | Pro | |
|---|---|---|---|---|
| Price per month | $0 | $49 | $99 | $199 |
| Free trial | — | 14 days | 14 days | 14 days |
| Wholesale companies | 3 | 50 | 300 | 1,000 |
| Each company above the quota, per billing cycle | — | $1 | $0.40 | $0.25 |
| Purchase order imports per month | 10 | 200 | 1,000 | 5,000 |
| Each purchase order import above the quota | — | $0.10 | $0.05 | $0.03 |
| Applications, company pricing, minimum order | Yes | Yes | Yes | Yes |
| Order intake email addresses | — | 1 | 1 | Up to 10 |
| Order upload on the storefront | — | Yes | Yes | Yes |
| Price list import and export (CSV) | — | Yes | Yes | Yes |
| Credit limits, overdue blocking, receivables | — | — | Yes | Yes |
| Account statements | — | — | Yes | Yes |
| Line sheets and companies CSV | — | — | — | Yes |
| Accounting export for Xero and QuickBooks Online | — | — | — | Yes |
| Quote requests | — | — | — | Yes |
| Orders over 100 lines as draft orders | — | — | — | Yes |
Companies count when they are configured in Wholesale Desk. On a paid plan, companies and purchase order imports above the quota keep working and are billed at your plan’s price. On Free, or when your monthly usage limit is spent, applications are still accepted but new approvals and imports wait; companies already configured keep working. Below Pro, a wholesale order at checkout is at most 100 lines.
Requirements
- A Shopify plan with B2B: Basic, Grow, Advanced or Plus. B2B is not available on Starter and Retail plans.
- New customer accounts turned on, because company buyers sign in with them.
- Shopify Plus is not required.
- The app and the storefront blocks are in English. Checkout messages appear in the buyer’s language: English, German, French, Spanish, Italian, Dutch, Portuguese and Japanese.
Get started
Setup steps are in the help. Questions before you install: info@maxitsolutions.tech.