Creating purchase orders from Shopify inventory data
Sooner or later every Shopify merchant hits the same wall: the store knows exactly what you have and what you have sold, but turning that into an order your supplier can fill is still a manual job. This guide covers what Shopify gives you natively, the math for deciding how much to order, and how to get a finished purchase order to a supplier as CSV or PDF.
What native Shopify has
Shopify admin includes basic purchase order records. You can create a PO against a supplier, list products and quantities, mark stock as received, and have inventory counts update accordingly. For recording what you decided to order, it does the job.
Two limitations matter in practice. First, native POs are record-keeping without recommendation logic. Shopify will not suggest what to order or how much; every quantity is a number you bring yourself. There are no reorder points, no lead time tracking per supplier, and no forecast feeding the PO. Second, Shopify's native purchase orders are not exposed through its public API, so third-party apps cannot read or extend them. Any app offering smarter purchasing has to maintain its own PO records alongside Shopify's.
So the real workflow question is: how do you get from "Shopify's inventory and sales data" to "a defensible quantity per SKU," and then into a document a supplier accepts?
The suggested quantity math
The quantity to order for a SKU comes from one idea: order enough to cover expected demand until the order after this one can arrive, minus what you already have and what is already on its way.
Suggested quantity = forecast demand over (lead time + cover period) - on-hand - on-order
The pieces:
- Lead time is how long this supplier takes from order to shelf, based on your recent history with them.
- Cover period is how long this order should last after it arrives, usually the gap until you next plan to order from this supplier. Ordering monthly means roughly 30 days of cover.
- Forecast demand is your daily sales velocity multiplied by that total number of days. Getting velocity right is its own topic; our guide to sales velocity forecasting with real math covers windows, weighting, and seasonality.
- On-hand is current available inventory in Shopify.
- On-order is anything on an open PO that has not arrived. Forgetting this term is the classic double-ordering mistake.
A worked example
A SKU sells 4.0 units per day. The supplier's lead time is 14 days, and you order from them monthly, so 30 days of cover:
- Demand window: 14 + 30 = 44 days
- Forecast demand: 4.0 × 44 = 176 units
- On-hand: 60 units
- On-order: 40 units
Suggested quantity: 176 - 60 - 40 = 76 units
Then apply real-world rounding. If the supplier ships in case packs of 12, round 76 up to 84. If there is a minimum order quantity of 100, that becomes the number, and you carry the extra as cover. If the result is negative, you are already overstocked: order zero and let it sell down.
Run this same calculation for every SKU you buy from one supplier and you have the line items for a complete purchase order.
Getting the PO to your supplier: CSV or PDF
Suppliers generally want one of two formats, and it is worth having both available.
The CSV workflow
CSV is the format for suppliers with their own ordering systems, portals, or ERP software, and for anyone who wants to load your order into a spreadsheet on their end. A usable PO CSV has one row per line item with columns for SKU, supplier's product code if it differs from yours, product name, quantity, unit cost, and line total, plus your PO reference number.
The CSV is also your working format. Before sending, you can open it, adjust quantities against budget, and cut lines. Keep the sent file: a folder of dated PO CSVs becomes your order history, which later feeds lead time calculations and reorder audits.
If you are building POs by hand today, this is a spreadsheet template plus an export of Shopify inventory levels. Workable, but every field is retyped or pasted, and the suggested quantity column is only as fresh as your last velocity calculation.
The PDF workflow
PDF is for humans. Most small suppliers take orders by email, and a PDF attachment reads like a document: your business details, the supplier's, a PO number, order date, expected delivery date, line items with costs, and a total. It cannot be accidentally edited in transit, it prints cleanly in a warehouse, and it looks like something a real business sends, which matters more than it should when negotiating with new suppliers.
The practical answer for most stores is CSV for the systems and records, PDF for the email. Same data, two outputs.
Closing the loop
A purchase order workflow has to feed itself. When the stock arrives, receive it against the PO so Shopify's counts update and the on-order quantity clears. Note the actual arrival date, because order-to-shelf gaps are how you keep lead times honest for the next calculation. And when a PO goes unfilled past its expected date, that is exactly when a projected stockout alert should be nagging you to chase the supplier.
Doing all of this in spreadsheets is entirely possible, and for a handful of SKUs it is fine. The cost is that every PO starts with re-exporting sales data, recalculating velocity, and checking every open order by hand. Restockly, which we build, automates that loop for Shopify stores: it keeps velocity current from synced order data, applies the suggested quantity math above per SKU using your lead times and safety stock, and produces one-click purchase order exports as CSV or PDF with the suggested quantities filled in. It is launching soon, with flat pricing that starts free under 50 SKUs; details at useadvira.com/restockly.
Start with your next order
You do not need new software to improve your next purchase order. Take one supplier, list the SKUs you buy from them, and run the suggested quantity formula with honest velocity and lead time numbers. Compare the results with what you would have ordered on instinct. The gap between those two lists, in both directions, is the money this math exists to protect.