Guide
Wholesale order management for Shopify brands: PO to shipment
A simple wholesale order management process for Shopify brands whose retailers email POs, from intake and checks to drafts, invoicing and shipping.
Most Shopify brands that sell wholesale start the same way: a few stores ask to carry the product, the orders arrive by email, and someone types them in. That works for five retailers. At twenty, POs sit unread over a weekend, a case quantity gets entered as units, and a store calls asking where its order is.
This guide sets out a simple wholesale order management process for a Shopify brand, from the moment a PO arrives to the moment it ships. It suits a team of one to five people and needs no new software, though it points out where software saves time.

Where wholesale orders come from
Before choosing a process, list how orders reach you today. For most brands it is a mix:
- Emailed purchase orders. A PDF from the retailer's buying system, an Excel or CSV file, a list typed into the email, or a photo of a paper order form.
- A wholesale marketplace, such as Faire, which takes the order and payment for you.
- Sales reps who send orders on the retailer's behalf.
- A wholesale portal or order form on your own store, where retailers log in and order at wholesale prices.
- Phone calls and texts from long-standing accounts.
Marketplaces and portals already produce structured orders. The work in this guide is mostly about the first and last groups: orders that arrive as documents and messages, in the retailer's format, using the retailer's item numbers.
The ways to get them into Shopify
| Route | How it works | Best for |
|---|---|---|
| Draft orders by hand | You type each PO into a Shopify draft order and convert it once checked | Low volume, few lines per PO |
| Shopify's B2B features | Company accounts, catalogs with wholesale prices, payment terms. Which plans include them changes, so check your plan | Retailers willing to order through your store |
| A wholesale portal app | Retailers log in to a wholesale storefront and order themselves | Retailers who will use a portal |
| A PO-reading tool | You forward the PO and get a draft order back to review | Retailers who will keep emailing POs |
Many brands use two routes: a portal or B2B setup for retailers who will use it, and something else for the chains and independents who send a PO and will not change.
A process that holds up
1. One intake address
Ask every retailer and rep to send POs to one shared address, such as orders@ on your domain, not to a person's inbox. Then a holiday or a sick day does not stop orders, and you can see every PO in one place.
2. Log every PO the day it arrives
Keep a log, even a spreadsheet, with one row per PO. These columns cover most needs:
| Column | Why |
|---|---|
| Date received | Shows how long orders wait |
| Retailer | Who to contact |
| PO number | What their payables team will quote back to you |
| Ship window or cancel date | Orders shipped late can be refused |
| Status | Received, checked, entered, confirmed, shipped |
| Shopify draft or order number | Links the log to Shopify |
3. Check before you enter
Most wholesale errors are caught or missed here. For each line, check:
- The item. Match the retailer's item number or barcode to your SKU. Keep a mapping per retailer, since many use their own numbers.
- The unit. Is the quantity in eaches, inner packs or cases? Convert to the units you sell in Shopify.
- The price. Compare it with your wholesale price list and with the retailer's last order. A difference is either an old price list on their side or a promotion you agreed to. Find out which.
- Minimums. If you have an opening order minimum or a case minimum, check the PO meets it.
- The ship-to. Chains often ship to a distribution center that differs from the store address on the email signature.
4. Enter it as a draft order
Enter the checked PO as a Shopify draft order, with the PO number in the note and a wholesale tag. A draft can still be changed, which matters when a retailer replies to your confirmation with a correction.
5. Confirm to the retailer
A short confirmation catches problems while they are cheap to fix. A template:
Subject: Confirming PO 4471
Hi Dana,
Thanks for PO 4471. We have it as 5 lines, $380.10 before shipping, shipping to your Portland store by October 30.
One change: Maple Pecan Bar is $3.85 a unit on our current wholesale list, not $4.10, so we have used $3.85.
Reply if anything looks wrong. Otherwise we will ship as above.
6. Convert, invoice and ship
Turn the draft into an order the way the retailer pays: an invoice for card payment, payment terms for net 30, or mark it paid if they paid another way. Then fulfill it like any other order, and send tracking to the buyer who placed the PO.
7. Close the row in the log
Mark the PO shipped with the date. Once a month, look at the time from "received" to "entered". If POs wait more than a day or two, intake or entry is the bottleneck.
Where the time goes
For most small teams, step 4 takes the longest: retyping every line, looking up SKUs, converting cases and fixing prices. It is also where typos happen.
Wholesale Inbox takes that step. You forward a retailer's PO to your Wholesale Inbox address. It reads the lines, matches them to your Shopify SKUs and barcodes, remembers each retailer's item numbers once you confirm them, and flags unknown SKUs and prices that differ from your price list or the retailer's last order. You review the PO next to the original and approve it, and it arrives in Shopify as a draft order with the PO number and ship-to (the ship-to goes in the order note when Shopify does not accept the address). Steps 5 to 7 stay with you.
Forward a retailer's PO, get a Shopify draft order back
Forward a purchase order (PDF, Excel or CSV file, email or photo) to your Wholesale Inbox address and get a draft order matched to your SKUs, with mismatches flagged for you.
$79/ month
Get startedCancel any time.