Overview
This page explains the ideas the whole plugin is built on. Five minutes here will make every other page easier to follow.
The ERP back office
After activation, your store gets a dedicated ERP application at:
https://yourstore.com/erp
It opens in the browser like any page, but it is a separate back office with its own sidebar — Dashboard, Orders, Products, RFQs, Purchase Orders, Internal Transfers, Warehouse, Activity Log, Users and Access Control. Only users who have been granted ERP access can open it; everyone else is sent to the WordPress login screen.
Tips
Logged-in users with ERP access also get a "Visit ERP" shortcut in the WordPress admin bar, under the site name menu.
WooCommerce stock vs. warehouse stock
This is the most important concept in the plugin:
- WooCommerce stock is the total quantity a product has for sale — the number you see on the product page.
- Warehouse (bin) stock is where those units physically sit — e.g. 50 units in bin
WH-DL-Z01-A01-R01-S01-B01and 25 in another bin.
Assigning stock to bins never changes the WooCommerce total; it only records the location. A product can never have more units in bins than its WooCommerce stock. Units that are in stock but not placed in any bin cannot be reserved or picked — the dashboard warns you about them.
The location hierarchy
Every warehouse uses a fixed five-level structure:
Warehouse → Zone → Aisle → Rack → Shelf → Bin
Only bins hold products. Every level gets a code built from its parent's code (for example WH-DL-Z01-A01-R01-S01-B01), and codes never change once created — that is what makes bin labels and QR codes reliable. Zones additionally carry a type: Storage, Picking, Packing, Receiving, Shipping or Returns.
Each warehouse, and optionally each location, can have a capacity in units. Assignments are refused once a bin — or any level above it — is full. Capacity 0 means unlimited.
Reservations
When an order comes in, stock is not deducted immediately. Instead the plugin uses reservations:
- Validate — check the ordered items actually exist in bins.
- Reserve — earmark specific units in specific bins for this order. The units stay on the shelf, but no other order can claim them.
- Pick — physically take the units out of the bins. Only now do bin quantities go down.
If an order is cancelled, refunded or deleted, its reservations are released automatically.
The fulfilment workflow
Paid orders enter a guarded status sequence:
Order Received → Stock Validated → Picking → Packing → Shipping → Completed
Statuses can only move one step forward at a time (going backward is always allowed). Administrators and Warehouse Managers hold an override that lets them skip steps when needed; regular staff cannot.
Purchasing
Purchase Orders can only be created from an approved RFQ (Request for Quotation). The intended flow is:
Create RFQ → Send to supplier (email + PDF) → Record response → Approve → Convert to Purchase Order → Receive goods into bins
Receiving a purchase order is the one operation that increases WooCommerce stock and fills bins at the same time.
Internal transfers
Transfers move bin stock between two warehouses through a controlled lifecycle — request, approval, stock validation, optional partial-quantity negotiation, picking, packing, dispatch, receiving and completion. Transfers move units between bins; they never change the WooCommerce total.
Who does what
| Role | Typical use |
|---|---|
| Administrator | Full access everywhere; manages the Access Control matrix |
| Warehouse Manager | Runs one warehouse; sees data scoped to it; can override fulfilment stages; manages their own staff |
| Warehouse Staff | Executes day-to-day work (validate, reserve, pick, pack, receive) within the permissions granted |
| Supplier | A business-partner account used for RFQs; no ERP access unless explicitly granted |
Details in Roles & Access Control.
The audit trail
Every stock movement — assignment, pick, receipt, transfer — is written to a permanent ledger with the bin, quantity, reason and user. You can browse it any time in the Activity Log, and each order and transfer shows its own history too.
