Plugixa Inventory
Most WordPress inventory plugins store stock as posts and post meta, give an item one number and one address, and let you edit the history afterwards. All three decisions look harmless on day one and get expensive later: lists slow down as the history grows, “how much is in the west depot” stops being answerable, and an audit trail somebody can edit is not an audit trail. Plugixa Inventory takes the other side of each.
Stock is held against a specific item and warehouse pair, in the plugin’s own normalised tables. Every change is written to an append-only ledger that nothing can edit or delete - no REST route, no admin screen, and a veto in the data layer - and on-hand quantities are derived from it, with a reconcile that proves they still are. Documents are drafted, then finalised, and finalising is what writes the ledger.
Bring a catalogue in from a spreadsheet with a column-matching step, lookups by name or code, and errors reported by line number rather than invented for you. Opening stock arrives as a real finalised movement, so the valuation agrees with the ledger from the first day, and an import can be reverted. Put the whole application on a page of your own site with one shortcode, inside your theme, with the same API and the same permissions as the admin screen - so staff who should not be in wp-admin never have to go there.
Screenshots
See it in action
Features
Everything you need
What you have, and who has it
Four kinds of record, in the plugin's own tables rather than as posts, so a catalogue of thousands stays as fast as a catalogue of ten.
-
Items
Assets, consumables and sellable goods, each with a SKU, a barcode, a reorder level and a cost and sale price.
-
Warehouses
Locations with their own stock levels and their own valuation, rather than one address the whole catalogue shares.
-
Categories
Group the catalogue so lists, filters and the dashboard's breakdown by type have something to work with.
-
Recipients
The people assets are checked out to, so a laptop that has left the building is still an item you can find.
-
Custom fields Pro
Your own data on records, grouped into field groups, for the things a stock system cannot guess you track.
-
Units of measurement Pro
Count in boxes, metres or litres rather than in bare numbers, with the unit carried through documents and reports.
Draft it, then finalise it
A movement is a document, not a number you type over the top of a record. Finalising is the moment it becomes real.
-
Check in and check out
Assets go out to a recipient and come back. Stock is added and removed. All four are the same document with a different direction.
-
Finalising writes the ledger
A draft changes nothing. Finalising posts the movement, and from then on the document cannot be edited or deleted.
-
Inventory adjustments Pro
Write off breakage, shrinkage and a count that disagrees with the system, as a document with a reason rather than a silent edit.
-
Warehouse transfers Pro
Move stock between locations as one document, so it leaves one warehouse and arrives at another without passing through a void.
A history nothing can edit
Every change to every quantity, append-only, with on-hand figures derived from it rather than stored alongside it.
-
Append-only, by construction
No REST route, no admin screen and a veto in the data layer. A ledger somebody can edit is not an audit trail.
-
On-hand is derived
Quantities follow from the ledger rather than being kept beside it, so the two cannot drift apart unnoticed.
-
Reconcile proves it
A built-in check compares every on-hand quantity against the ledger, on demand from the admin or from WP-CLI.
-
Corrections are visible
A mistake is fixed with a second, opposite document. That is what every stock system does, and what the audit trail is for.
Each location, on its own terms
Stock belongs to an item and a warehouse pair, which is what makes a per-location question answerable at all.
-
Stock per location
Ten in the west depot and none in the east is two facts, not an average. Netting them into one number loses both.
-
A view per warehouse
Its own stock list, its own low-stock list and its own activity feed, rather than a filter on a global list.
-
Valuation per warehouse
What the stock in one location is worth, which is the number a site with more than one address actually needs.
-
Transfers between them Pro
One document that takes stock out of one warehouse and puts it into another.
What it is worth, and what is about to run out
The two questions a stock system is asked most, answered without exporting anything.
-
Stock dashboard
Total value, broken down by type and by warehouse, with a movement trend over time.
-
Top movers
What is actually turning over, which is rarely the same list as what takes up the most space.
-
Closest to running out
Items ranked against their own reorder level, so the list is about urgency rather than about quantity.
-
Reports and analytics Pro
Deeper reporting across movements, valuation and activity, beyond what the dashboards summarise.
Valued at what it cost you
Stock on hand is worth what you paid, not what you hope to sell it for. Valuing at the sale price overstates it by your whole margin.
-
Average costing
What the free edition costs stock at. The item's cost price, falling back to its sale price where no cost has been recorded.
-
Outgoing costed separately
What a movement cost is recorded on the ledger row that removed it, so it is a different question from what the remaining stock is worth.
-
FIFO and LIFO Pro
Layer costing, where stock is consumed oldest-first or newest-first and each layer keeps the cost it arrived at.
-
Opening balances seeded Pro
Layers are seeded from what you already hold, so switching costing method does not start your history again.
In from a spreadsheet, out to one
Getting a catalogue in is the first thing anybody has to do, and getting it out again is what makes trusting the plugin reasonable.
-
A column-matching step
Match your file's columns to the fields before anything is written, so an unexpected header is a question rather than a mess.
-
Looked up by name or code
A file can say "Power tools" rather than an id, and a line naming something that does not exist is reported by line number instead of invented for you.
-
Opening stock is a real document
It arrives as a finalised movement rather than a number written onto a record, so the ledger and the valuation agree with it from day one.
-
Batched, resumable, revertible
Large files import in batches and can be resumed, and an import can be undone: the records go to the trash and the stock is taken back out with a reversing document.
-
Export what you are looking at
Every list has an Export button that writes the current view to CSV, filters and all.
Staff never have to see wp-admin
One shortcode puts the whole application on a page of your site, inside your theme.
-
One shortcode
[plugixa_inventory_app] with width, height and mode attributes. Your header and footer stay where they are, and there is a full-screen button in the toolbar.
-
The same API, the same rules
It is the application the admin screen loads, talking to the same API, so there is no second set of permissions to keep in step.
-
Install it as an app Pro
A progressive web app, so the inventory can live on a phone or a tablet home screen on the warehouse floor.
-
Dark mode Pro
For the people who are in it all day, and for a screen mounted somewhere the lights are low.
Turn off what you do not need
Every feature is an app you can switch off, and switching one off keeps its data.
-
App manager
Switching an app off hides it everywhere, stops its endpoints answering and stops its background work, and keeps every record it holds.
-
Settings
Formatting, currency, appearance and each app's own options, in one place.
-
Notifications and alerts
Low stock and the things that need somebody, raised where whoever is working will see them.
-
Desktop notifications Pro
The same alerts as browser notifications, for a screen nobody is watching continuously.
-
Roles and permissions Pro
Who may see and change what, separately from their WordPress role.
The numbers have to still be true next year
Four decisions that cost nothing on day one and are the whole difference on day five hundred.
-
Concurrent finalises cannot oversell
The sufficiency check is the WHERE clause of the write, so there is no window between deciding and writing. The second person is told the stock changed and nothing is written.
-
A daily check that reports
It compares every on-hand quantity against the ledger and reports anything that disagrees. It reports; it never silently corrects.
-
Reconcile from the command line
wp plugixa-inventory stock reconcile does the same thing, for sites too large for a browser request.
-
Its own tables, not posts
Stock levels, ledger rows and document lines are relational data. As posts and post meta, every list and report gets slower as history grows.
Simple pricing
Choose your growth plan
Start building with Plugixa Inventory today. Upgrade anytime as your needs grow.
Free
Free forever
A complete stock system, not a trial
- Items, warehouses, categories & recipients
- Stock held per item and warehouse
- Draft-then-finalise stock movements
- Append-only ledger with reconcile
- Stock dashboard & warehouse overview
- Average costing & stock valuation
- Barcode scanning & quick search
- CSV import with column matching
- CSV export on every list
- The whole app on your own site
- Community support
Pro
1-Year License
FIFO and LIFO costing, transfers, reports and roles
- Everything in Free
- FIFO and LIFO layer costing
- Warehouse transfers
- Inventory adjustments
- Reports and analytics
- Custom fields
- Units of measurement
- Roles and permissions
- Desktop notifications
- Install as an app (PWA)
- Dark mode
- 1 year of updates
- Priority email support
Instant Digital Delivery
Download immediately after checkout
Secure Payment
Encrypted, PCI-compliant checkout
Auto-Updates
One-click updates from WordPress admin
Trusted by Pros
Used on thousands of WordPress sites
FAQ
Frequently asked questions
Getting Started
Yes. Add [plugixa_inventory_app] to any page and the whole application appears
on it, inside your theme, with your header and footer where they always are, and
a full-screen button in the toolbar.
It is the same application the admin screen loads, talking to the same API, so permissions are identical and there is no second set of rules to keep in step. Anyone without access sees a short sign-in notice and the application is never loaded for them.
width is wide (the default), full or content, using your theme’s own
alignments. height is a number of pixels; leave it out and the app sizes itself
to the window. mode is embed by default, or full to give the app the whole
page with no theme around it.
For example: [plugixa_inventory_app width="full" height="800"]
Because it is the only way it can keep working on any theme. The application is built with Material UI, whose styling is deliberately low-specificity so that it is easy to override, and a theme’s own form styling beats it by construction. Any reset strong enough to protect the app would also flatten the theme around it.
A frame keeps the two apart completely, so your theme stays as you designed it and the inventory looks the same on every site.
Stock and the Ledger
wp plugixa-inventory stock reconcile. It reports; it never silently corrects.Data
Yes, for items, categories, warehouses and people, with a column-matching step before anything is written. Categories and warehouses are found by name or by code, so the file can say “Power tools” rather than an id, and a line naming something that does not exist is reported by line number rather than invented for you.
Opening stock comes in as a real, finalised movement rather than a number written onto a record, so the ledger and the valuation agree with it from the first day.
Licensing and Privacy
Nothing, unless you ask for it. Deleting the plugin removes its files and keeps every item, warehouse, document and ledger row, so installing it again picks up where you left off. Deactivating never deletes anything either.
To remove the data as well, an administrator turns on Settings -> Uninstall -> Delete all inventory data when the plugin is deleted before deleting. Even then nothing is removed while another copy of the plugin is still installed, for example the Pro build beside the free one, because that copy uses the same data.
Not to manage your inventory. Every item, warehouse, document, ledger row and report is read from and written to your own WordPress database, and no inventory data is ever sent anywhere. There is no analytics call, no remote rendering and no vendor phone-home.
The one connection the plugin can make is to Freemius, which handles licensing and updates.