Year-End Inventory Count in WooCommerce: Closing Stock You Can File
What your accountant needs from a year-end count, when to run it, why zero-based mode matters, and how to turn a WooCommerce…
Read moreKeep suppliers, purchase orders and goods received next to your WooCommerce stock. Record what arrived, what it cost and what is still on order.
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.
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.
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.
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.
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.
Most stores run purchasing across a spreadsheet, an inbox and a memory. PurchaseDesk keeps inventory purchasing inside WooCommerce, where the stock already lives.
Raise a purchase order against a supplier, search your catalogue by name, SKU or barcode, set quantity and unit cost per line, and email it out from your own site. Track it through draft, ordered, partially received and received — and duplicate last week's order into a fresh draft rather than retyping it.
When the delivery lands you receive against the order, in full or the eleven units that actually turned up. That receipt is the goods received note and the stock receiving step at once: quantity, unit cost, who received it and when, all recorded before the stock moves.
The unit cost you received at becomes the product's cost of goods, written where WooCommerce and the established COGS plugins read it — including WooCommerce core's own Cost of Goods Sold field when that feature is on. Nothing to migrate if costs are already there.
Real supplier records — contact person, email, phone, address, lead time and notes — with a default supplier and supplier SKU per product. Every order, receipt and adjustment is filed against the vendor it belongs to, so you can see what you buy from whom and at what price.
Because the receipt is the stock movement, there is nothing to reconcile afterwards — which is the whole point of keeping purchase management inside WooCommerce rather than beside it.
Receiving is the only step you take. Stock, cost and the audit trail all follow from it.
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.
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.
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.
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.
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.
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.
No import, no migration, no second catalogue to keep in step.
A real record: contact person, email, phone, address, lead time and notes — not a free-text field you retype on every order.
Search your own catalogue, add the lines, set quantities and unit costs, and email the order to the supplier from your own site.
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.
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 documentationA 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.
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.
Orders, receipts and stock movements, on demand.
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.
Deleting a purchase order never destroys the receipts and movements behind it.
Free keeps the purchasing record straight. Pro turns that record into the numbers you buy from.
Cost follows the blended value of what is actually in stock as each delivery lands, instead of jumping to whatever the last box cost.
Turn everything that is due into draft purchase orders in one click, already grouped by supplier.
Stock value at cost, spend against the previous period, and a receipts trend chart — the shape of your buying, not just its ledger.
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.
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.
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.
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.
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 | Included | Included |
| Goods receipt, in full or in partwith reversal and a full audit trail | Included | Included |
| Scan to receivehardware scanner free; phone camera on Pro, where the browser supports it | Scanner | Included |
| Planning grid & reorder liston-order quantity subtracted, snooze | Included | Included |
| CSV import with a dry run, and CSV exportorders, receipts, stock movements | Included | Included |
| Costing methodwhat a receipt writes as the new cost | Last cost | Weighted average |
| Reorder list → draft purchase ordersone click, grouped by supplier | Not included— | Included |
| Purchasing dashboardstock value at cost, spend vs previous period, trend | Not included— | Included |
| Purchase reports over a period7 / 30 / 90 / 180 / 365 days, spend by supplier, value on order | Not included— | Included |
| Full inbound tableitemised outstanding per product; free shows the totals | Not included— | Included |
| Printable purchase orderprint or save as PDF from the browser | Not included— | Included |
| Email support from the developeranswered on weekdays | Not included— | Included |
Everything worth knowing before you raise your first order.
That is exactly what the receiving step is. When a delivery arrives you receive against the purchase order — in full or line by line — and PurchaseDesk records the quantity, the unit cost, who received it and when, then moves the stock. The history keeps every receipt, so the goods received note is a record you can go back to rather than a slip of paper in a drawer.
Not today, and it is worth being clear about it. PurchaseDesk records the unit cost you actually paid on each purchase order line and writes that through as the product's cost of goods. It does not spread freight, duty, insurance or customs handling across the lines, which is what landed cost means. You can enter a unit cost that already includes your own allocation — the field is yours — but the plugin will not do the allocation for you.
Yes, within reason. Suppliers are first-class records with contact details, lead time and notes, and every order, receipt and adjustment is filed against the vendor it belongs to — so you can see what you buy from whom, how often, and at what price. It is purchasing-side vendor management; it is not a contracts, onboarding or compliance system.
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.
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.
What your accountant needs from a year-end count, when to run it, why zero-based mode matters, and how to turn a WooCommerce…
Read moreYour WooCommerce low stock threshold should come from lead time and real demand, not a round number - and why the alert…
Read moreRun a physical stock count in WooCommerce without closing the shop: snapshot, scan or type, read the variance, then apply it with…
Read moreSign in to the Freemius Customer Portal with the email address you used at checkout.