Shopify native Purchase Orders don't auto-populate line item costs

Shopify native Purchase Orders don’t auto-populate line item costs from the variant’s Cost per item field. Every PO requires manual cost entry, which is very time-consuming for merchants with large product catalogs. I’d like this to be a feature request

We’ve also heard the same issues from our users - over and over again.

With Stocky going away, and our own users asking us for a robust way to handle POs and light inventory management / reordering with Shopify; we decided to build our own solution, but for free. It includes all the features Stocky had - and more, including retail price and flexible label printing.

Check it out at Stockroom - Stockroom ‑ Purchase Orders - Purchase orders, inventory management, reporting, COGS + more | Shopify App Store - we’re making it completely free for everyone!

We think Shopify merchants deserve a robust, stable and long term way to handle Purchase Orders (and the re-ordering/receiving processes that come with them) in a way that fits their business, and not at an additional cost. We’d love to hear any feedback as we continue to build more features to make this a helpful home for Shopify store merchants coming from Stocky!

Worth knowing why this one cannot be worked around, because it changes what you should be asking for.

Cost per item lives on the inventory item in Shopify’s data model, as unitCost. Native Purchase Orders are not in the Admin API at all. I checked the current Admin GraphQL reference this morning and both PurchaseOrder and Supplier come back as 404, while InventoryItem and Order sit there as normal. So there is no app, no script and no bulk editor that can reach into a native PO and fill those costs for you. The data exists, the PO exists, and there is no wire between them that anyone outside Shopify can touch.

That is also why every purchase order app is a full replacement rather than something that sits on top of the native one. You are not choosing between native plus a helper, you are choosing one or the other.

If you do go looking at a replacement, two questions worth asking before you migrate. Does it read Shopify’s Cost per item when it builds the PO, or does it keep its own supplier price list, because those two drift apart the moment a supplier changes price and you will not notice for months. And does it write the received cost back to unitCost, because if it does not, your Shopify margin and COGS reporting quietly goes stale while the app’s own reports keep looking fine.

How many variants are you carrying? A few hundred lines and a few thousand are very different migrations.

Hey @divinebeautysupplies ,

I think this would be a valuable improvement to Shopify’s native Purchase Orders.

If a variant already has a Cost per item value stored in Shopify, it makes sense for that value to automatically populate the unit cost when creating a purchase order. Re entering the same information for every line item is repetitive, increases the likelihood of data entry errors and becomes especially time consuming for merchants managing large catalogs.

Auto populating the cost while still allowing merchants to override it when supplier pricing changes would streamline the purchasing workflow without removing any flexibility.

This seems like a practical quality of life enhancement that could save merchants a significant amount of time, particularly for businesses creating purchase orders on a regular basis.

Thank You !

Disclosure: I built one of the inventory apps (Stockwik), so grain of salt.

+1 on the request. But having built around this exact problem, the deeper issue is that Cost per item is one number on the product, and cost is really a property of the supplier relationship - if you buy the same SKU from two suppliers, there are two costs. In my app each product carries buy options (supplier, their SKU, pack size, cost), and PO lines pull that cost automatically when the PO is created - snapshotted, so a later price change never rewrites what an old PO says you paid.

Whatever you end up on, native or an app, that snapshot question is worth asking: does a PO remember the cost you actually agreed to, or does it show today. That difference is your cost history.

Hey there @divinebeautysupplies
I agree that would be a good enhancement. The cost is already saved at variant level, auto-filling it in Purchase orders would save on manual work and prevent manual entry errors. Meanwhile, updating variant costs before creating POs can make the process a little more consistent, but eventually having those values flow down automaticaly to line items would really streamline that part of Shopify’s native purchasing workflow.

You’re right. Manually entering line item costs for every purchase order is a big challenge, especially with large product catalogs.

This would definitely be a valuable addition to Shopify. In the meantime, inventory management tools like Channel Bay support this by automatically filling the line item cost from the product’s existing inventory cost when a product is added to a purchase order. It also supports different costs for different suppliers.