Warehouse Locations
What this guide covers
Creating, printing, and archiving warehouse locations — the physical bins / shelves / zones that stock lives in. Covers bulk creation from a template, label printing, viewing existing counts, and the "mark obsolete" archive flow for retired bins.
For which products live where see Product Locations. For which serial numbers live where see SerialNumber Location.
Where to find it
Open Operations → Locations → Warehouse Locations. The page lists every location in your assigned areas, with QR labels and a count of items currently stored.
Who can do what
- Regular user (any logged-in account, area-gated) — view locations, filter by area, pick items via the picking dialog.
- Warehouse staff — same plus create stock counts on a location.
- Label printer (
LOCATION_PRINTpermission) — print location labels (single or page-batch), 100×150 mm ZPL. - Stock-count admin (
STOCK_COUNT_ADMIN) — create stock counts. - Cost reporter (
SALES_ORDERS_ADMINorACCOUNTING) — view the cost report for a location. - Assembly admin (
CUSTOM_ASSEMBLIES) — configure custom-assembly rules per location. - Site admin (
ADMIN) — full access; the only role that can mark a location obsolete (archive). Cannot archive the Default location.
Creating locations in bulk
- Click Create New — opens the bulk-template dialog.
- Pick the Area (Production, Stores, Goods Receiving, etc.).
- Enter the template pattern, e.g.
[A:B]-[1:4]-[1:6]. The system expands ranges:[A:B]— letters A through B (A, B).[1:4]— numbers 1 through 4 (1, 2, 3, 4).- Concatenated with hyphens: A1-1, A1-2, … A1-6, A2-1, … B4-6.
- Click Generate to preview the names.
- Save to commit. The system creates each location as a separate row.
Names must be unique within an area; duplicates are rejected at save time.
Printing labels
- Print (single) — print one location's QR + name on a 100×150 mm label.
- Print Current Page — batch-print every visible location on the current page (typically 100 per page). Requires
LOCATION_PRINT.
The print job goes to the configured ZPL label printer; if the queue is mis-configured for a different label size, the printer will reject the job.
Archiving a location
- Open the location's actions menu, click Mark Obsolete.
- The system checks: no stock items in this location and not the system Default location.
- If both pass, the location is soft-deleted (archived). It vanishes from the active list but the audit trail keeps it for historical lookups.
There is no "undelete" UI. Reach into the database (or ask an admin) to restore.
Common errors and fixes
- "Can not find area with ID: [id]" — the area selected when you opened the dialog has been deleted. Pick a different area and retry.
- "Duplicate name [[name]] not allowed in area: [area]" — a location with that name already exists in this area. Either change the template to avoid collisions, or pick a different area.
- "Cannot mark location '[name]' as obsolete. It still contains stock items." — the location has at least one stock item. Pick / move / re-bin every item first; then archive.
- "Cannot mark the Default warehouse location as obsolete." — the system reserves the Default location; it cannot be archived. Use a different location.
- "Could not locate the data table." — internal error during batch print. Try printing single-location and report to RnD.
- "No locations available to print." — no locations on the current page (probably filtered out). Adjust filters or paginate.
Tips and gotchas
- Locations are area-scoped. Filter by area to find what you're looking for; the global list can be huge.
- Archived ≠ deleted. Archived locations stay in the database (with
obsolete = true), so reports that span historical data still show them. - Default location is sacrosanct. It's the fallback for unrouted stock; nothing in the system assumes it can disappear.
- Templates only generate names — no per-location attributes (capacity, rules, restrictions). For complex setups, generate the names then edit each one.
- Print template mismatch is a printer-queue config issue, not a software bug. The page sends a 100×150 mm ZPL job; if the queue is set to A4 or 4×6", the printer refuses.
- Stock counts created here (via the Create Stock Count action) target every item in the location.