
Shopify has never had a built-in purchase order system. Stocky filled that gap for free — until Shopify removed it in 2026. Here is the complete step-by-step guide to creating, sending, and tracking purchase orders in Shopify today, including how to have inventory update automatically when stock arrives.
Shopify removed Stocky from the App Store in February 2026. The app stops working entirely on August 31, 2026. If you are still using Stocky for purchase orders, you need to migrate before that date.
A purchase order (PO) is a formal document sent from a buyer (you) to a supplier that specifies what products you are ordering, the quantities, agreed unit costs, and delivery expectations. POs serve three critical functions for inventory management:
Without a PO system, most Shopify merchants reorder by spreadsheet, email thread, or intuition — all of which lead to stockouts, over-ordering, and supplier disputes that are hard to resolve.
Shopify Admin lets you manually adjust inventory quantities. It does not let you:
Shopify's Draft Orders feature is sometimes confused with purchase orders, but draft orders are for sales — orders placed by customers. They have nothing to do with purchasing inventory from suppliers.
Stocky was the official solution to this gap from 2018 to 2026. It was a free app by Shopify that added purchase orders, supplier management, and demand forecasting directly inside Shopify Admin. Shopify deprecated it in February 2026, citing strategic focus on other product areas.
Merchants who relied on Stocky for POs are now either using spreadsheets, trying expensive enterprise tools, or — the right answer — switching to a purpose-built Shopify app. The functionality merchants need is straightforward: create a PO, send it, receive stock, update inventory. No enterprise complexity required.
EZstock is a Shopify app that replicates Stocky's purchase order functionality and adds demand forecasting based on your actual sales velocity. Here is the complete workflow from setup to received PO.
Search "EZstock" in the Shopify App Store or go to apps.shopify.com/ezstock. Click "Install" and approve the permissions. EZstock needs read access to your products, inventory, and orders — and write access to inventory so it can update stock levels when you receive a PO. Installation takes under 60 seconds.
Go to Suppliers → Add Supplier. Fill in:
• Supplier name — how it appears on POs
• Email address — where you send PO PDFs
• Lead time (days) — how long orders typically take to arrive. EZstock uses this for demand forecasting to warn you before you go out of stock.
Go to Products → Link a Product. Search your Shopify catalog by product name or SKU. When you find the variant, select it, then choose the supplier, enter the cost price per unit, and set a reorder point (the stock level that triggers a low-stock alert). Repeat for each product you source from this supplier. One variant can only be linked to one supplier at a time.
Go to Purchase Orders → New PO. Select your supplier from the dropdown. EZstock loads all products linked to that supplier and automatically calculates a suggested order quantity for each based on your current stock level and 30-day sales velocity. Products most urgently needing restocking appear at the top.
The suggested quantities are calculated to give you 60 days of stock cover. Review each line and adjust the quantity if needed — for example if you have a promotional event coming up, or if a product is slow-moving. The line total and PO grand total update in real time. You can add notes for the supplier (e.g. "Please ship by June 1st").
Click Create Purchase Order. EZstock auto-generates a sequential PO number (PO-0001, PO-0002, etc.) and saves the order with status Draft. The PO is now tracked in your purchase order history. Download the PO as a PDF and email it to your supplier. When the supplier confirms, mark the PO as Sent.
When stock arrives, open the PO in EZstock and click Confirm Receipt. EZstock calls Shopify's Admin API and updates the inventory quantity for each received variant at your default location. No manual stock adjustment needed. The PO status changes to Received and is archived in your history.
After creating a PO in EZstock, you have two ways to send it to your supplier:
Download the PO as a PDF from the PO detail page. The PDF includes your PO number, all line items with product names and SKUs, quantities, unit costs, line totals, and the PO grand total. Email it to your supplier from your regular email client.
If you have an established relationship with a supplier and communicate over WhatsApp or phone, you can simply reference the PO number (e.g. "PO-0007") and confirm the details verbally. The PO is still recorded in EZstock for tracking purposes regardless of how you communicate it.
Best practice: always get a supplier acknowledgment (email reply or written confirmation) referencing the PO number. This creates a paper trail if quantities or prices are disputed on delivery.
EZstock tracks four PO statuses throughout the order lifecycle:
| Status | What It Means | Next Action |
|---|---|---|
| Draft | PO created, not yet sent to supplier | Review, adjust, then send to supplier |
| Sent | PO sent, waiting for delivery | Wait for stock to arrive |
| Partial | Some items received, some still outstanding | Receive remaining items when they arrive |
| Received | All items received, Shopify inventory updated | Archive — no further action needed |
If a supplier cannot fulfil an order, you can cancel the PO at any point before it reaches Received status. Cancelled POs are retained in history for record-keeping but do not affect inventory.
The most time-consuming part of creating a purchase order manually is figuring out how much to order. Order too little and you run out of stock before the next PO arrives. Order too much and cash is tied up in slow-moving inventory. EZstock automates this using your actual Shopify sales data.
The formula EZstock uses:
For example: if you sell an average of 8 units per day and have 120 units in stock:
The 60-day target gives you a 30-day buffer beyond the supplier's lead time (assuming a 30-day lead time). You can see the "days of stock remaining" for each product on the New PO screen — products with fewer days remaining appear at the top so the most urgent restocking decisions are front and centre.
Daily sales velocity is calculated from your last 30 days of Shopify orders, divided by 30. EZstock reads your live order history from the Shopify Admin API each time you create a new PO, so the velocity calculation is always based on recent data.
The most powerful part of a PO system — and what Shopify cannot do natively — is having inventory update automatically when you receive stock. Without automation, the workflow is:
For a PO with 20 line items, that is 20 separate manual inventory edits. EZstock collapses all of that into a single click: Confirm Receipt. When you click it, EZstock:
The update happens in seconds, not minutes.
Not all suppliers ship complete orders at once. EZstock handles partial receipts — you can mark individual line items as received as stock arrives in multiple shipments. The PO stays open with "Partial" status, and only the received variants have their Shopify inventory updated. When the final shipment arrives, confirm the remaining items and the PO closes.
Most Shopify stores source from more than one supplier. A typical structure:
EZstock supports unlimited suppliers on the Growth plan (one PO can only reference one supplier, since each supplier has its own lead time and contact). Best practices for multi-supplier PO management:
Lead time directly affects demand forecasting accuracy. If your primary supplier takes 21 days and your secondary takes 45 days, set those accurately in EZstock. A wrong lead time means suggested order quantities will be miscalculated — either leaving you with a stock gap or over-ordering unnecessarily.
In EZstock, each product variant is linked to one supplier. If you dual-source a product (order the same SKU from two suppliers depending on price and availability), link it to the supplier you order from most frequently. Create manual PO line items for the other supplier when needed.
Rather than creating POs reactively when you run out of stock, review your EZstock dashboard weekly. Products with fewer than 30 days of stock remaining are flagged. Create all POs for a given supplier in one batch — it reduces transaction overhead and often qualifies for volume pricing.
Many Shopify merchants start with a Google Sheets PO template when their order volumes are low. Spreadsheets break down as you grow because:
The tipping point is usually around 5-10 active POs per month. At that volume, manual spreadsheet management takes 2-4 hours per week that a purpose-built tool eliminates entirely.
EZstock is the Shopify-native PO tool built for merchants who need real purchase orders — not enterprise complexity. Free 14-day trial, no credit card required.
Install EZstock Free →Starter plan from $19/month · Growth plan from $49/month · Cancel anytime| Feature | Shopify (Native) | EZstock |
|---|---|---|
| Create purchase orders | ✗ | ✓ |
| Send PO to supplier (PDF) | ✗ | ✓ |
| Track PO status (Draft / Sent / Received) | ✗ | ✓ |
| Auto-update inventory on receipt | ✗ | ✓ |
| Partial receipt support | ✗ | ✓ |
| Demand forecasting (days of stock remaining) | ✗ | ✓ |
| Suggested order quantities from sales velocity | ✗ | ✓ |
| Supplier database with lead times | ✗ | ✓ |
| Low-stock alerts by reorder point | ✗ | ✓ |
| Cost price per unit tracking | ✗ | ✓ |

Shopify inventory management with real purchase orders