PurchaseDesk for WooCommerce
WooCommerce tracks what you sell and has never tracked what you buy — so purchasing ends up in a spreadsheet and the cost of goods ends up out of date. PurchaseDesk closes that half of the loop: raise a purchase order, send it to your supplier, then receive the delivery in full or a few units at a time. Receiving is the only step you take — stock goes up, product cost is updated where the rest of your store can read it, and every movement is written to an audit trail you can reverse.
- Purchase orders
- Supplier records
- Partial goods receipt
- Reorder list
- Cost of goods
WooCommerce tracks what you sell.
It has never tracked what you buy.
So the purchasing side of a shop ends up in a spreadsheet next to the till — and the moment it does, the cost of goods stops being true.
The order lives in a spreadsheet
What you ordered, from whom, at what price and how much of it actually turned up — none of it is in WooCommerce, so none of it is next to the stock it changes.
The cost of goods goes stale
Your supplier raises a price and nothing in the store knows. Every margin figure you look at after that is quietly wrong, and nothing tells you when it started.
Stock is edited by hand
The box arrives, someone opens the product screen and types a bigger number. No record of who, when, at what price, or what the level was before.
You buy the same thing twice
Something is low, so you order it — forgetting the order you raised last week is still on its way. It arrives twice and the cash is gone twice.
Order it, receive it, and the store is already right
Receiving is the only step you take. Stock, cost and the audit trail all follow from it.
Purchase orders that know your catalogue
Search by name, SKU or barcode and add a line in a click. Set quantity and unit cost per line, and track the order through draft, ordered, partially received and received. Next week's order is usually last week's — so duplicate it into a fresh draft instead of retyping it.
Receive in full, or four units at a time
Deliveries arrive in pieces, so receiving works in pieces. Take a line at a time in any quantity; the order sits at partially received until every line is complete. Receiving the same delivery twice cannot double-count, because each line records what has already been posted.
Undo a receipt without hiding it
Received 100 when 10 arrived? Reverse it. Stock and the order go back where they were, and the reversal is written into the history as its own event rather than quietly erasing the mistake.
A cost the rest of your store can read
Cost is not kept in a private field. PurchaseDesk writes WooCommerce core's own Cost of Goods Sold value when that feature is on, and mirrors the figure to the meta keys the established cost-of-goods plugins already read. Costs you have from another plugin are picked up on day one — nothing to migrate.
Set a page of products at a time
The planning grid puts every product's reorder point, order quantity, supplier, supplier SKU and cost on one screen. Set the first three for a whole page at once, and edit cost and SKU inline as you go. Doing it one product at a time is the reason most inventory plugins stay empty.
A reorder list that subtracts what is coming
Everything at or below its reorder point — with the quantity already on its way taken off, so you never buy the same thing twice. Snooze a product for two weeks when you know about it and do not want to be told again.
Three steps, then it runs itself
No import, no migration, no second catalogue to keep in step.
Add a supplier
A real record: contact person, email, phone, address, lead time and notes — not a free-text field you retype on every order.
Raise the order
Search your own catalogue, add the lines, set quantities and unit costs, and email the order to the supplier from your own site.
Receive the delivery
Scan or type what turned up. Stock rises through WooCommerce's own product API, cost updates, and the receipt is logged with the level before and after.
The one step that keeps everything true
Stock is written through WooCommerce's own product API — the same call the product screen makes — so every integration, low-stock notice and lookup table stays correct. Nothing is written behind WooCommerce's back.
A hardware barcode scanner is just a fast keyboard: scan a code and the matching line counts up. And every receipt, reversal and adjustment leaves an audit line carrying the quantity, the cost, and the stock level before and after. Delete a purchase order and its history survives.
Read the documentationWhere the cost goes matters more than that you have it
A cost figure locked inside one plugin is worth very little. PurchaseDesk prefers WooCommerce core's own Cost of Goods Sold value when the feature is switched on, and mirrors the same number to the meta keys the wider ecosystem reads — so your profit reports agree with your purchasing.
Cost history is kept on the product itself, so you can see whether a supplier's price has been creeping rather than discovering it a year later.
Your records export on the free plan
Purchase orders, goods received and every stock movement go out as CSV whenever you want. Nothing is held back to sell you an upgrade — a purchasing record you cannot take with you is not a record.
CSV export, free
Orders, receipts and stock movements, on demand.
CSV import with a dry run
Bring in cost, supplier, supplier SKU, reorder point and default order quantity from a spreadsheet — and see exactly what will change, row by row, with the numbers already read the way they will be written, before anything is saved.
History that outlives the order
Deleting a purchase order never destroys the receipts and movements behind it.
From recording what you bought to deciding what to buy
Free keeps the purchasing record straight. Pro turns that record into the numbers you buy from.
Weighted-average costing
Cost follows the blended value of what is actually in stock as each delivery lands, instead of jumping to whatever the last box cost.
Reorder list → draft orders
Turn everything that is due into draft purchase orders in one click, already grouped by supplier.
A purchasing dashboard
Stock value at cost, spend against the previous period, and a receipts trend chart — the shape of your buying, not just its ledger.
Purchase reports over a period
Pick 7, 30, 90, 180 or 365 days: spend by supplier with each supplier's share, receipts over time, and the value still on order. Export the report itself as CSV for the period on screen.
The full inbound table
Every outstanding unit, per product, across every open order on one screen. The free reorder list already subtracts what is coming and the free dashboard totals it — this is the itemised view behind those numbers.
A printable purchase order
Print it or save it as a PDF from the browser, for suppliers who want paper.
Pro also scans barcodes with a phone camera while receiving, wherever the browser provides the Barcode Detection API — Chrome and Edge on Android, and Chrome on macOS. Windows, Linux and iOS browsers do not offer it today, and PurchaseDesk says so on the screen rather than showing a button that fails. A USB or Bluetooth scanner works everywhere, and that is free.
Simple, honest pricing
The whole purchasing workflow — orders, receiving, suppliers, reorder list, exports — is free forever. Pro is one flat annual price per plan, with no per-order fee and no cut of what you spend.
Free
- Purchase orders & supplier records
- Partial goods receipt & reversal
- Planning grid & reorder list
- Stock adjustments & full audit history
- CSV import with a dry run, and CSV export
Pro · 1 site
- Everything in Free, plus:
- Weighted-average costing
- Reorder list → draft purchase orders
- Purchasing dashboard & reports
- Printable orders & camera scanning
Pro · 5 sites
- Everything in Pro, on 5 sites
- One licence key across the group
- Move a licence between sites
- Automatic updates on every site
- Email support from the developer
Pro · 20 sites
- Everything in Pro, on 20 sites
- Best value per site
- One renewal date for the portfolio
- Move licences as clients come and go
- Email support from the developer
Compare Free & Pro
Everything that records a purchase is free. Pro is about the decisions you make from it.
| Feature | Free | Pro |
|---|---|---|
| Purchase orders & supplier recordscatalogue search by name, SKU or barcode | ||
| Goods receipt, in full or in partwith reversal and a full audit trail | ||
| Scan to receivehardware scanner free; phone camera on Pro, where the browser supports it | Scanner | |
| Planning grid & reorder liston-order quantity subtracted, snooze | ||
| CSV import with a dry run, and CSV exportorders, receipts, stock movements | ||
| Costing methodwhat a receipt writes as the new cost | Last cost | Weighted average |
| Reorder list → draft purchase ordersone click, grouped by supplier | — | |
| Purchasing dashboardstock value at cost, spend vs previous period, trend | — | |
| Purchase reports over a period7 / 30 / 90 / 180 / 365 days, spend by supplier, value on order | — | |
| Full inbound tableitemised outstanding per product; free shows the totals | — | |
| Printable purchase orderprint or save as PDF from the browser | — | |
| Email support from the developeranswered on weekdays | — |
Questions, answered
Everything worth knowing before you raise your first order.
No. Stock is written through WooCommerce's own product API, exactly the way the product screen does it, so anything listening for stock changes keeps working — low-stock notices, lookup tables and any other plugin that watches stock.
If WooCommerce's Cost of Goods Sold feature is enabled (WooCommerce → Settings → Advanced → Features), that is the value PurchaseDesk writes. It also mirrors the cost to the meta keys established cost-of-goods plugins read, so reports elsewhere in your store agree with it. If you already have costs from another plugin, they are read on day one.
Yes. Receive line by line, in any quantity; the order stays at “partially received” until every line is complete. Receiving the same delivery twice cannot double-count, because each line records how much has already been posted.
Reverse the receipt. Stock and the order return to where they were, and the reversal is written into the history as its own event — the mistake stays visible rather than being erased, which is what an audit trail is for.
No, but it helps. A hardware scanner behaves as a fast keyboard, so scanning a code counts the matching line up — that works on the free plan with no setup. Pro adds scanning with a phone camera in Chrome or Edge on Android and desktop; Apple devices do not yet support the browser scanning API.
Always, on the free plan. Purchase orders, goods received and every stock movement export as CSV whenever you want. Pro adds an export of the spend report for the period you are looking at, which is a different thing from your records.
Yes. PurchaseDesk declares compatibility with WooCommerce High-Performance Order Storage and keeps its own purchasing tables, so it does not depend on how WooCommerce stores customer orders.
The free plugin keeps working and your data stays yours — orders, receipts, suppliers and history are all in your own database, and the CSV export is free. You lose the Pro screens, not the record.
Close the other half of the loop.
Install the free plugin and raise your first purchase order in minutes — or go straight to Pro for weighted-average costing, the purchasing dashboard and one-click reordering.
Guides & notes about PurchaseDesk
No articles yet
We haven't published a guide for this one yet. The blog covers the whole catalog — start there.
Read the blog