
Stock Reserve & Reorder for WooCommerce — physical stock, reserved orders and a reorder point
Shows how much of a product is physically on the shelf, how much is already promised to paid orders that have not shipped yet, and how much can still be sold. A goods receipt adds "+N" to the current stock instead of overwriting it. The reorder point comes from the sales rate and the supplier's lead time. Pro adds the suggested order quantity, suppliers, expected deliveries, CSV and a digest by e-mail and Telegram.
- Compatibility
- WordPress 6.2+ · WooCommerce 8.0+ (tested on WordPress 7.1 and WooCommerce 11.2) · PHP 7.4+ (run on PHP 7.4 and 8.3) · HPOS · block and classic checkout · MySQL 8 / MariaDB 10.11
- Licence
- one site, annual
- Trial
- 7 days, no card, one per site
- Updated
- October 2026
What Free has,
and what Pro adds
The free version works with no time limit. Pro adds the rest of the features in the table.

The trial starts when you ask
A fresh install is the free version, nothing switches on by itself. The “Try Pro for 7 days” button → e-mail → the key right in the window and by e-mail.

One key — one site
Moving the store? Unbind the licence on the old domain and activate it on the new one yourself. For studios — keys for 5 or 25 sites, or unlimited.
Technical requirements
WordPress 6.2+ · WooCommerce 8.0+ with stock management on · PHP 7.4+.
HPOS and the Cart and Checkout blocks — compatible; tested with HPOS on and off.
Database — MySQL or MariaDB, as for WooCommerce (tested on MariaDB 10.11 and MySQL 8.0).
The digest and the menu counter run on WP-Cron. If WP-Cron is switched off on the server (DISABLE_WP_CRON), a system cron is needed — otherwise the digest will not go out.
With Multi Warehouse — a receipt can go into a chosen warehouse. With Shared Stock — cards of one pool are counted together: every card shows the whole pool, and the overview keeps one row per pool, so a reorder is suggested once.
Interface languages: English, українська, русский, Deutsch.
Version history
Updates from catcode.com.ua: new Pro versions show up in Dashboard → Updates and install in one click while the licence covers updates.
The “physical / reserved / available / expected” overview, the list of orders holding a product, partial shipments and refunds without restock taken into account, goods receipts with “+N”,…
Frequently bought with Stock Reserve & Reorder for WooCommerce
4 modules in one order — 40% cheaper than separately


Nova Poshta Premium — Nova Poshta for WooCommerce

Mono Acquiring — monobank card payments for WooCommerce

Telegram notifications and Viber/SMS for customers for WooCommerce
Full module description
Stock Reserve & Reorder for WooCommerce shows three figures instead of one: how much of a product is physically on the shelf, how much of it is reserved by orders that are paid but not shipped yet, and how much is available to sell. Deliveries are booked as a document that adds “+N” to the current stock, and the reorder point is worked out from the sales rate and the supplier’s lead time.
WooCommerce takes stock the moment an order is paid or put on hold. The box is still on the shelf until the parcel leaves, but the stock figure no longer shows it. So a stock count never matches, and nobody can say how much is already promised to customers. The low-stock e-mail fires at a fixed number — the same for a supplier who delivers in three days and one who needs four weeks. And a delivery typed into the Stock field overwrites whatever orders changed while you were counting boxes.
The plugin adds the light warehouse layer a small shop is missing — without an ERP and without changing how WooCommerce takes stock.
There is a separate version for OpenCart: Stock Reserve & Reorder for OpenCart.
What the buyer sees
Nothing new — on purpose. The plugin works in the admin and does not change how WooCommerce holds and takes stock at checkout: the classic and the block checkout work as before. The buyer feels the result indirectly: you spot a product that needs reordering before it runs out, and a delivery booked while orders keep coming does not oversell what is already gone.
What the admin gets
- Stock overview — WooCommerce → Stock & Reorder. For every product and variation that manages stock: physical, reserved, available, expected, sold per day, days left, reorder point, “order by” and a status (“Out of stock”, “Reorder now”, “OK”, “No sales”). The most urgent come first; filters, search by name or SKU, sorting.
- Physical = WooCommerce stock + reserved. Reserved are the units of orders in the statuses you mark as “paid, not shipped yet” (Processing and On hold by default; add your own status such as “Packing”, or Completed if that is how you mark packed orders).
- In checkout — units WooCommerce holds for unpaid checkouts, shown separately under “Available”.
- Partial shipments leave the reserve: partial shipments of WooCommerce Order Fulfillments and Shiptastic / Germanized, and refunds without restock.
- Reserved orders — clicking the reserved figure opens the orders holding the product, with the quantity for each.
- Receive goods — a goods receipt: document number, supplier, note, any number of lines with product search. Or paste a “SKU quantity” list straight from a spreadsheet — separated by a space, tab, comma or semicolon.
- “+N”, not overwrite. Every line is added to the current stock in one relative database update through WooCommerce’s own function, so orders placed while you were filling in the form are not lost. The same form submitted twice is booked once. An unknown SKU — nothing is booked and the form comes back filled in.
- Quick “+N” on every row of the overview — for a single box without a document.
- Receipts — the delivery history: received, expected, cancelled. A receipt booked by mistake is cancelled with a button — the plugin takes off exactly what it added, relative to the current stock.
- Products list column: “Physical 42 · reserved 4 · Reorder” under the usual stock figure. Next to the menu item — the number of products to reorder.
- Lead time and safety stock — in the Inventory tab of the product and of every variation; a variation without its own values takes the parent’s, a product without values takes the store defaults. Safety stock in units on the product, or in days of sales by default.
- Pro: suggested order quantity — sales during the lead time plus “an order should cover N days”, plus safety stock, minus available and expected; rounded up to the pack size and the supplier’s minimum order.
- Pro: suppliers per product and variation, the purchase list by supplier as CSV, and an expected delivery from a supplier’s suggestions in one click.
- Pro: expected deliveries. A delivery booked ahead counts as incoming in the reorder maths. When it arrives, adjust the quantities and book it; the missing units can stay expected.
- Pro: CSV — receipt lines from a file (UTF-8 or Windows-1252), overview export; formula injection protection for Excel.
- Pro: reorder digest — daily or weekly at a set hour, by e-mail and to Telegram (one or several chats): what to reorder, by when and how much, plus products whose whole shelf is promised to orders. A “Send the digest now” button for testing.
How it works — step by step
- Install the plugin and open WooCommerce → Stock & Reorder. The overview lists every product and variation that manages stock right away.
- On every order line WooCommerce records how many units it took from stock. Cancelling the order gives them back, a refund with restock lowers the figure. The plugin sums it for orders in the reserved statuses and takes off whatever already left with a partial shipment or was refunded without restock.
- Physical = WooCommerce stock + reserved; available = WooCommerce stock.
- The sales rate counts the same units for orders of the last N days (30 by default), so cancelled orders and restocked refunds are not sales. A product younger than the window is measured over its own age.
- Reorder point = sold per day × lead time + safety stock. When available plus expected falls to it, the product gets “Reorder now”, an “order by” date and the days of stock left.
- The goods arrive — a receipt adds “+N”. A mistake — cancelling takes off exactly as much.
On a test catalogue of 20,000 products and variations the overview opens in 0.7 s with 12,000 orders in the last 60 days and in 1.7 s with 52,000 — on MariaDB 10.11 and MySQL 8.0. Sales of the whole catalogue are cached for 10 minutes for the Products list and the product screen; reserved stock is always read live.
Under the hood
- Reserved stock comes from WooCommerce’s own data: the
_reduced_stockmeta of order lines, which WooCommerce writes when it takes stock and lowers on cancellation and on a refund with restock. The plugin writes nothing to orders and does not change how WooCommerce takes stock. - The stock owner is the same as in WooCommerce: a variation with its own stock, or the parent product when stock is kept on it.
- Receipts are relative updates through
wc_update_product_stock()with the increase operation, not a new figure written over the old one. A form token stops the same form from being booked twice; parallel cancels and bookings were tested with simultaneous processes — exactly one goes through. - Own tables for receipts; on products, only the lead time and safety stock meta.
- Reserved stock is read from open orders only using the status index, so the product screen and the Products list stay fast on a long order history.
- Uninstall: without the “Also delete” tick the data stays; with it the plugin removes its tables, meta and settings. Product stock never changes either way.
How to install
- Plugins → Add New → Upload Plugin: choose
catcode-stock-reserve-reorder-for-woocommerce-free-1.0.1.zipand activate. WooCommerce must be active, with stock management on. - Open WooCommerce → Stock & Reorder — the overview lists every product that manages stock straight away.
- In Settings, check which order statuses mean “paid, not shipped yet”, and set the default lead time and safety stock.
- For products whose supplier is faster or slower, set a lead time in the Inventory tab of the product or the variation.
- For Pro: upload the Pro build over the free one (WordPress offers to replace the installed version) and paste the licence key from the e-mail in Settings — or press “Try Pro for 7 days” there.
Questions
about the module
Didn't find the answer? Message us on Telegram and we'll reply within a business day.
Does the plugin change the stock of my products?
Only when you book or cancel a goods receipt — and then relatively (+N / −N), through WooCommerce's own stock function. Reserved and physical stock are computed from your orders; nothing is written to products.
My shop marks orders "Completed" when they are packed, not when they leave.
Tick "Completed" (or your own status, e.g. "Packing") in Settings → Reserved stock. Units of orders in the ticked statuses are reserved.
What about orders created before the plugin was installed?
They count. The figures come from WooCommerce's own order data, so the overview is right from the first minute.
Why do imported orders show no reserved units?
Orders imported from another system often have no record of WooCommerce taking stock for them. They are neither reserved nor counted as sales.
What happens if I type a delivery into the product's Stock field?
The field overwrites the stock with the figure you typed — and orders placed while you were counting boxes drop out of the books. A receipt in the plugin adds the quantity to the current stock, so this cannot happen. The same form submitted twice is booked once.
How big a catalogue does it handle?
On a test catalogue of 20,000 products and variations the overview opens in 0.7 s with 12,000 orders in the last 60 days and in 1.7 s with 52,000 (MariaDB 10.11 and MySQL 8.0).
What happens to the data if I delete the plugin?
By default the receipts, the settings and the lead times on products stay. Tick "Also delete" in the settings and the plugin removes its tables and meta. Product stock is never touched.
What if I don't want to pay for Pro?
The overview, reserved stock, receipts with cancelling, the reorder point, the Products column and the menu counter stay free with no time limit and no product limit.
No reviews yet. Be the first.
No questions yet. Ask one — we answer within 24 hours.
Not quite what you are looking for?
We build custom modules for WordPress, WooCommerce, OpenCart and Shopify. Tell us about the task and we'll prepare an estimate.
Order a custom module
Buying the module
—



