3PL WMS: every client's stock, witnessed separately
Warehouse management for third-party logistics operators who run several clients under one roof and need each client's inventory, documents and floor work kept honest and apart.
Verified in code 2026-09-03 · v2.0.0 to v2.19.0
A 3PL’s real product is trust
Your client cannot see their pallets. They see a number on a screen and an invoice, and they believe both because they have to. The moment a count comes back different from what the portal said, the relationship is on a clock.
DockingWare is built so that the number the client sees is the number the floor wrote. One ledger per company, one row per movement, a reference and a user on every row. No parallel spreadsheet, no nightly job that corrects the balance. When a client asks why their stock changed, the answer is a list of rows with names on them.
Separation you can test, not just promise
Multi-tenancy in DockingWare is not a filter on a report. The company is part of every operational table, every query is scoped by it, and the backend test suite sweeps the API endpoint by endpoint to assert that a request for another company’s record comes back not found. Cross-tenant leakage is a red build, not an incident report.
Access follows the same line. Roles and permissions are per company. Audit logs record who did what. Sign-in works with a password or with Google, and Google can only sign in an account that already exists. Nobody self-provisions their way into a warehouse.
The floor, on handhelds and at benches
Inbound is a guided receive against the purchase order: scan the product, confirm cases and pieces, capture lot and expiry when the product is lot-tracked, then palletize and put away. Received on the dock and available for sale are different states, and stock does not become sellable until putaway says so. Expired lots are refused. Short shelf life demands an acknowledgment.
Outbound runs in the modes a mixed 3PL floor actually needs: walk the pick on a handheld, work from a keyboard-first station console at a bench, or pick to tote and hand off. Business-to-business packs verify every line by exact scan before they can close. No scanner on the desk means the handheld, with no bypass. Each confirmed line records who verified it and when.
Locations are labeled in Code 128 from Location Master and scan back through the same verify contract the handheld uses. Pallets carry license plates. Packaging materials are stock, consumed on pack. Parcel labels are bought at the bench (rates, buy, void, buy again), with carrier cost and billed amount stored apart, per tenant.
What clients bring, the warehouse absorbs
Clients arrive with their own barcodes, their own case packs, their own marketplace stickers. A product can hold alternate barcodes that are unique across the whole catalog, so a relabeled unit scans home to the real SKU on every surface, inbound included. Case conversions are per product, and a receipt of fifty-five pieces at fifty-four per case reads as one case and one piece, never as one case.
Client ecommerce channels connect the same way a brand’s would: orders in, availability out, fulfillment back, with a reconciliation that names drift instead of hiding it. Marketplace removals and customer returns without a local order get their own document and post as channel inbound, so a client’s return-rate report stays about returns.
Who this is for
Small and mid-sized 3PLs, from a handful of clients to a few dozen, running out of spreadsheet or running a legacy system whose numbers nobody fully trusts. Operators who want the floor on handhelds today and the client looking at the same ledger the floor wrote.
It is not, yet, for a 3PL whose first requirement is automated client billing. That is coming. It is not here, and the product will not tell you otherwise.
What you can verify
Each capability on this page is tied to a tagged release with a rollback plan. The changelog lists them by version, in the words they shipped with.
Questions
- How is one client's inventory kept away from another's?
- Every table that holds operational data carries the company it belongs to, and every query is scoped by it: reads, writes and deletes. A test sweep walks the API endpoint by endpoint and asserts that a request for another company's record returns not found, never someone else's data.
- Do you have 3PL billing?
- Not yet, and this page will not pretend otherwise. Carrier cost and billed amount are already stored separately with a per-tenant markup, which is the foundation billing needs. The billing engine itself has not shipped. It is on the roadmap, not in the product.
- Can my floor staff work from handhelds?
- Receiving, putaway, picking, packing and shipping all run on a scan-first handheld interface with one primary action per screen and refusals shown next to the scan field. The desktop station console is for benches. The handheld is for gloves.
- What if a client sends product with their own labels?
- Register the label as an alternate barcode on the product and it scans home on every surface, inbound receive included. A prefix never verifies. Only the exact code does.
Related
See how DockingWare handles this →
Ready to see it on your floor?
Early access. We onboard a small number of operations at a time.
Start Early Access