Docs Multi Location Inventory and Stock

How the numbers stay correct

Wrong totals are the top complaint about plugins like this, so the design starts there.

  • Location rows are the truth. The WooCommerce number is their sum and is written through WooCommerce itself, so stock status, the lookup table and caches follow.
  • One lock for every change. Orders, edits, imports and transfers pass through one database lock and an atomic update, so concurrent shoppers can not lose or double count a unit.
  • The last unit is sold once. WooCommerce stops counting a stock hold when an order turns paid, a moment before it reduces stock. The plugin closes that gap. In our race test of 16 shoppers buying 10 units, plain WooCommerce sold 12 and with this plugin no unit was sold twice. A shopper may be told there is not enough stock in that same moment and can simply try again.
  • Other plugins are welcome. If an import, a POS or another plugin changes the number through WooCommerce, the difference goes to your default location and is logged.
  • Open screens do not undo sales. Product screens save the difference you typed. The overview refuses a cell that changed while you were typing and shows the latest value.
A location can go negative on purpose, when you allow an order no location can fill or a product allows backorders. The negative number shows what that location still owes. The total stays right, because it is the sum.