How to Let Customers Upload Purchase Orders to Shopify
Wholesale buyers often prepare orders in an ERP or spreadsheet before they visit your store. A purchase-order upload workflow should reuse that work instead of asking someone to type it again.
Choose a dependable file format
CSV is usually the safest starting point because procurement systems and spreadsheets can export it, while your application can parse columns without guessing visual layout. At minimum, define:
- A SKU column.
- A positive quantity column.
- Whether the first row contains headers.
- Accepted delimiters and file size limits.
- How duplicate SKUs are handled.
Keep the template narrow. Optional fields such as buyer notes or requested dates can be added later, but every extra column creates another validation rule and another way for an import to fail.
Recommended upload workflow
1. Upload and parse
Read the file as data, not as free-form text. Reject unsupported encodings or malformed rows with a useful explanation. Do not send the buyer to a generic error page.
2. Normalize input
Trim whitespace, normalize casing according to your SKU policy, and parse quantities explicitly. Preserve the original input beside the normalized value so the buyer can understand any correction.
3. Match Shopify variants
Resolve exact SKU matches first. If approximate matching is offered, show candidates and require confirmation. A purchasing workflow should favor accuracy over a superficially perfect match rate.
4. Return row-level results
| Status | Buyer action |
|---|---|
| Matched | Review product, quantity, price, and availability. |
| Suggested | Confirm the intended variant. |
| Not found | Correct the SKU or remove the row. |
| Invalid quantity | Enter an allowed whole or decimal quantity. |
5. Build the cart only after approval
Once all required rows are resolved, add the selected variants to the Shopify cart in the active buyer context. This helps keep B2B catalog pricing and checkout behavior aligned.
What about PDF purchase orders?
PDFs are designed for presentation, not consistent data exchange. Tables may be scanned images, span pages, or use vendor-specific layouts. OCR or AI extraction can help, but the output still needs an explicit review step before products are added to a cart.
If buyers can export CSV from the same procurement system, offer CSV first. If PDF support is commercially important, measure extraction accuracy against real customer documents and retain the source row beside every suggested match.
Security and operational checks
- Limit file type and size, and do not execute uploaded content.
- Apply rate limits and authenticated buyer access where appropriate.
- Do not expose another customer's catalog or negotiated prices.
- Log import failures without storing more buyer data than necessary.
- Test files with formulas, quoted commas, blank rows, and unusual characters.
Replace PO retyping with buyer self-service
Ourava B2B Quick Order supports CSV purchase-list upload and spreadsheet paste, with row-level SKU review before cart creation.
See the Quick Order workflow