CatCode Stock Reserve & Reorder for WooCommerce

Description

WooCommerce takes stock the moment an order is paid or put on hold. The units are still on the shelf until the parcel leaves, but the stock figure no longer shows them — so a stock count never matches, and nobody can say how much is promised to customers. The low-stock e-mail fires at a fixed number, whether the supplier needs three days or four weeks. And typing a delivery into the stock field overwrites whatever orders changed in the meantime.

Stock Reserve & Reorder adds the light warehouse layer a small shop needs, without an ERP.

  • Physical, reserved, available. For every product and variation that manages stock: physical = on the shelf, reserved = units of orders that are paid but not shipped yet (by default “Processing” and “On hold” — choose your own statuses, a custom “Packing” status included), available = what can still be sold. Click the reserved figure to see the orders holding it. Units held by unpaid checkouts are shown too.
  • Goods receipts with “+N”. Book a delivery as a document — document number, supplier, note, any number of lines, or a pasted “SKU quantity” list straight from a spreadsheet. Every line is added to the current stock in one relative database update, so orders placed while you type are never lost. A quick “+N” box sits on every row of the overview. Receipts are kept, and a receipt booked by mistake can be cancelled (−N).
  • Reorder point by lead time. Sales rate over the last N days × supplier lead time + safety stock. When available stock plus expected deliveries falls to it, the product is marked “Reorder now”, with the date you have to order by and the days of stock left. Lead time and safety stock are set per product and per variation, with store defaults.
  • Products list. “Physical 12 · reserved 2” and a “Reorder” mark under the stock figure; a counter of products to reorder next to the menu item.
  • Works with CatCode Multi Warehouse. A receipt can go into a chosen warehouse.
  • Partial shipments and refunds. Units already sent with a partial shipment (WooCommerce order fulfillments, Shiptastic / Germanized shipments) and units refunded without restock are no longer reserved.
  • Works with CatCode Shared Stock. Cards that sell from one stock pool are counted together: every card shows the whole pool, and the overview keeps one row per pool, so a reorder is suggested once.
  • HPOS and blocks. Compatible with High-Performance Order Storage and the Cart and Checkout blocks. The plugin never changes how WooCommerce takes stock for orders.

How the numbers work

WooCommerce records on every order line how many units it took from stock (the _reduced_stock order item meta): cancelling the order gives them back, a refund with restock lowers the figure. The plugin sums it for orders in the reserved statuses. Units that already left with a partial shipment, and units refunded without restock, are taken off the order line’s figure: they will not leave the shelf any more. Physical = WooCommerce stock + reserved; available = WooCommerce stock. The sales rate counts the same units for orders created in the measuring window, so cancelled orders and restocked refunds do not count as sales. A product younger than the window is measured over its own age.

Screenshots

Installation

  1. Install and activate the plugin. WooCommerce must be active, with stock management switched on.
  2. Open WooCommerce Stock & Reorder. The overview lists every product and variation with “Manage stock” on.
  3. In Settings, check which order statuses mean “paid, not shipped yet”, and set the default lead time and safety stock.
  4. Set a lead time on products whose supplier is faster or slower than the default (Inventory tab of the product or the variation).

FAQ

Does the plugin change the stock of my products?

Only when you book or cancel a goods receipt, and then only relatively (+N / −N) through WooCommerce’s own stock function. Reserved and physical stock are computed from your orders; nothing is written to them.

My shop marks orders “Completed” when they are packed, not when they leave.

Tick “Completed” (or your own status) 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.

Imported orders show no reserved units.

Orders imported from elsewhere often have no _reduced_stock record, because WooCommerce did not take stock for them. They are not reserved and not counted as sales.

Which database does it need?

MySQL or MariaDB, like WooCommerce.

How big a catalogue does it handle?

Tested with 20,000 products and variations with stock management: the overview opens in about 0.7 s with 12,000 orders in the last 60 days and in under 2 s with 52,000 (MariaDB 10.11 and MySQL 8.0). Sales of the whole catalogue are kept for ten minutes for the products list and the product screen, so these stay fast; reserved stock is always read live.

Reviews

There are no reviews for this plugin.

Contributors & Developers

“CatCode Stock Reserve & Reorder for WooCommerce” is open source software. The following people have contributed to this plugin.

Contributors

Changelog

1.0.0

  • First release.