INVENTORY MOVEMENT

A stock record nobody can rewrite.

A discrepancy being a mistake or a deliberate change reads straight from the row that recorded it. Each entry shows the old quantity, the change, the new quantity, the action that caused it, and the user behind it.

From £42.50/month · Nothing charged for 30 days · Cancel anytime
L

Built by a WooCommerce operator who needed it themselves.

Read the brand story

THE STOCK LEDGER

Every change, from every source, on permanent record.

Settle any question about a stock number from the row that caused it, however old.

01

The audit trail is read-only for everyone, owner included.

An audit trail is only worth having if it cannot be tidied up afterwards. No one edits a movement here. The record of what happened is the record that stays. Look back at any stock figure, at any point, and what caused it is still sitting where it was written.

02

Every stock number on the store traces back to a row.

Stock numbers move for all sorts of reasons, and the reasons normally live wherever they happened. Here they are all in the same list, newest first. Pick any product, any week, and the changes that made its number are sitting in one place in the order they landed.

03

Edits made outside Inventory Alpha land here like everything else.

An edit made somewhere else usually leaves no trace in the store's own records. Here it writes a row like anything else, saying what made the change and who was signed in at the time. Once it is written, it cannot be altered by anyone.

04

A movement row leads straight to the record that made it.

Knowing what changed is half the answer. The link on the row is the other half. The detail text on every row opens the record that produced the change, and the product name opens the product record. Neither one needs a reference number copied out first.

05

Delete a product and its stock history stays.

Deleting a product removes it from the store and leaves the record alone. Every row it produced stays in the ledger, still carrying the name and SKU it was recorded under. Trading history does not thin out because a range was retired.

FROM QUESTION TO CAUSE

Answer why a stock number is what it is.

Three moves from a wrong-looking number to the document that explains it. Open, narrow, click.

The answer to a stock question is already logged.

Open Movement from the navigation and the ledger loads newest first, with a count of how many movements are on record. Every entry appears on its own, from purchase orders, sales, refunds, cancellations, adjustments, and stock edits made elsewhere.

EVERY ROW, ACCOUNTED FOR

Clear rows, precise filters, records that do not vanish.

Stock direction, visible at a glance.

Green with a plus marks stock coming in, red marks stock going out.

Every change, labelled by cause.

The Action Type column names the cause: a purchase order, a sale, a return, an adjustment.

Build the filter, then commit it.

The Filters panel expands in place, holding several fields until Apply is pressed.

Summary totals, scoped to the filter.

Total Movements, Purchase Orders, Sales, and Adjustments, recalculated the moment a filter is applied.

Trashed orders keep their rows.

The reference stops being a link and turns grey, while the quantities and date stay.

Inherited SKUs match on search.

A variation with a blank SKU field is found through the SKU its parent carries.

THE RECORD KEEPS ITSELF

The ledger arrives with no configuration decision to make.

A stock log usually needs somebody keeping it honest, and it drifts the week that person is busy. Inventory Movement has no such job to hand out. There is no rule about who is allowed to correct it, no habit for a new starter to learn, and nothing to review at month end. Nobody here is in a position to make the list wrong.

There is one permission for Inventory Movement in Roles and Permissions, and it is View. No Manage permission exists to grant at any role level, and an administrator has no more access to the ledger than a picker does. Rows arrive from what happens elsewhere in the store, never from the page itself. Correcting a figure means making another stock change, which writes its own row.

HOW IT COMPARES

How Movement Log compares

Every change, who made it, and what it was before — none of it editable afterwards.

Capability
Default
WooCommerce
ATUM
Inventory
Shelf
Planner
Inventory Alpha
Every stock change logged automatically
Old, new, and changed quantity per row
The login behind every stock change
Stock edits made outside the plugin logged
Each row links to the document behind it
No one can edit or delete a logged row
Deleted products keep their movement rows
Filter the log by product, date, or user
Full support Partial / workarounds Not supported

WORKS WITH YOUR STACK

Drops into your existing WordPress site.

No data migration, no separate dashboard. Inventory Alpha installs as a standard plugin and reads your existing WooCommerce orders and products.

WordPress
6.0 +
WooCommerce
7.0 +
PHP
8.0 +
Amazon
Marketplace channel
eBay
Marketplace channel
In-Store POS
Manual + integrations
Installs in 5 minutesReads your existing dataNo migration requiredZero downtime

FAQ

The stock ledger, answered.

The movement log itself has no add, edit, or delete control, on any role. Corrections happen through a stock adjustment, which adds a new row rather than altering the old one. That row carries the old quantity, the change, and the new quantity, tagged as an Adjustment and linked back to its source. Both rows remain in the log, newest first, the mistake and the fix side by side.

No. There is no warehouse, location, or bin anywhere in Inventory Alpha, and no stock-transfer movement type. A movement row records a product and a quantity, never a place. Instead, Inventory Alpha tracks one stock figure per product, the same figure WooCommerce sells from.

Yes. Open Movement, open the Filters panel, and type the product's SKU or name. Every change to that product comes back in one list, newest first: purchase orders received, sales, returns, adjustments, and stock edits made outside Inventory Alpha.

An outside change gets its own row, with the old quantity, the change, and the new quantity in the same three columns every movement uses. The Action Type badge reads Manual, and the Action Detail text names how the change was made: an app writing through the REST API, a scheduled job, a command line, or a direct database edit. The User column names the WordPress login of whoever was signed in, or shows system when no one was.

No. Recording a movement sends nothing, no notification, no email, no alert. The ledger is a place you check, not one that reaches out. Nine filters and saved views keep that check to one click each week.

Yes. The toolbar menu on the ledger offers Save current view, which stores the filters, hidden columns, and sort together under a name you choose. Once saved, the toolbar shows that name in place of Default View, and selecting it puts all three back at once. The view lives in your own browser, not shared with anyone else on the store.

Have a question we didn't cover? Contact our team →

Start free

The proof is already sitting in the log.

Receive a purchase order, ship a few sales, correct a count. By the end of the week the ledger explains every stock figure in the store.

Not charged for 30 daysCancel anytime5‑minute setup