Setting up and using warehouse positions
Record exactly which aisle, shelf or box a product sits on: set up a warehouse structure, connect a stock to it, and place, move and pick products by position.
Table of Contents
Feature availability
Warehouse positions are available to all Enterprise customers.
For other plans, please reach out to support@fixably.com or your account manager.
Overview
Warehouse positions let you record exactly where a product sits inside your warehouse, not just which stock it belongs to. Instead of "Main stock", you can see "A01 > A", meaning shelf A in aisle A01.
You first draw the shape of your warehouse as a set of levels, such as Aisle and Shelf. Fixably then creates a named position for every spot. After that, products in a stock can be placed on those positions.
Once Fixably has switched the feature on for your account, setup takes three steps:
- Create a warehouse structure and its positions.
- Connect a stock to that structure.
- Place your products on positions, from the product page or through the stock import.
Fixably switches the feature on for your account
|
v
1. Create a warehouse structure
Pick a location, name your levels (Aisle, Shelf),
and say how many of each (or type the names yourself)
|
v
Fixably creates the positions
A01 > A A01 > B A01 > C
A02 > A A02 > B A02 > C
|
v
2. Connect a stock to the structure
|
v
3. Place products on positions
Product page or Stock import
|
v
Day to day: harvesting, transfers and dispatching
all know which shelf the stock is onBefore you begin
- The feature has to be switched on for your account. Only Fixably can do this, so contact Fixably support to ask for it. Until it is on, none of the screens below appear.
- You need the Manage stock settings permission to create and edit warehouse structures.
- You need at least one location, and at least one stock that belongs to that location. A stock with no location cannot use warehouse positions.
- Warehouse positions are set per stock, not for your whole account. Stocks you do not connect to a structure keep working exactly as they do now.
A full list of permissions is in Who can do what near the end of this article.
Step 1: Create a warehouse structure

A warehouse structure is your warehouse layout: the levels it has, and the positions on each level.
- In the navigation sidebar, open Stocks and click Stock management.
- Click Warehouse structure in the menu at the top of the page. If you do not see it, the feature is not switched on yet.
- Click New warehouse structure. A panel opens on the right.
- Fill in Hierarchy name, for example
Main warehouse. This is just the name you will know it by. - Choose a Location. The structure belongs to that one location, and only stocks at the same location can use it.
- Fill in the first level under Levels:
-
Level label: what this level is called, for example
Aisle. - Naming scheme: Numeric, Alphabetical or Freeform. See Naming your positions below.
- Prefix, Padding length and Padding character: optional. They shape the names Fixably creates.
- Number of Aisle: how many of this level you want. The field name follows the level label you typed.
-
Level label: what this level is called, for example
- To add a deeper level, click Add level and fill it in the same way. The count field for a deeper level reads, for example, Shelf per Aisle, because you are saying how many shelves each aisle has.
- Click Save.
You should see the message Warehouse structure saved, and the panel title changes to Edit warehouse structure.
There is no Cancel button on this panel. It closes on its own.
Check it worked
Go back to the Warehouse structure list. Your structure should be listed with its Name, Location and number of Levels.
To see every position Fixably created, click the gear icon on the row and choose Positions. See Viewing and adding positions below.

Naming your positions
Pick a naming scheme for each level.
Numeric and Alphabetical let Fixably name the positions for you. Each name is built as prefix + padded number or letter:
| Naming scheme | Prefix | Padding length | Padding character | Names you get |
|---|---|---|---|---|
| Numeric | (empty) | (empty) | (empty) |
1, 2, 3
|
| Numeric | A |
2 |
0 |
A01, A02, A03
|
| Numeric | S- |
3 |
0 |
S-001, S-002, S-003
|
| Alphabetical | (empty) | (empty) | (empty) |
A, B, C, and after Z it goes on with AA, AB
|
| Alphabetical | Shelf- |
(empty) | (empty) |
Shelf-A, Shelf-B, Shelf-C
|
The Preview line under each level shows example names as you type, so you can check them before saving.
Two things worth knowing:
- The prefix is joined straight on to the name with nothing in between. If you want a separator, put it in the prefix itself, such as
S-rather thanS. - Positions sort by their number or letter, not as plain text. So
S2comes beforeS10.
Freeform lets you type every name yourself. Use it for levels that do not follow a pattern, such as Front room and Back room.
When you choose Freeform:
- The count field is replaced by one name box per position, with an Add position button to add more.
- The Preview line reads User enters any name.
- Prefix, Padding length and Padding character are greyed out.
You can rename a freeform position later by changing its name box and saving. The position keeps its stock and anything below it. Names under the same parent must be different from each other, and a name cannot contain > .
A full position is written as a path, with each level separated by > . For example A01 > A means shelf A in aisle A01.
Giving different parents different counts
By default every parent gets the same number of children, so every aisle gets the same number of shelves.
If one aisle is longer than the others, click Customize individually under that level. A count field appears for each parent, such as Shelf for A01. Fill in the numbers you want. To go back to one number for all of them, click Use default count.
A count of 0 is allowed. It means that parent has nothing under it.
Staying inside the limits
- You can add as many levels as you need.
- You can have at most 100 positions under one parent. So one aisle can hold up to 100 shelves, but you can have many aisles.
- A very large structure can be too big to save in one go. If that happens, you see The form data was incomplete... and nothing is changed. Add fewer positions per save, or add one level at a time.
Step 2: Connect a stock to the structure
A structure on its own does nothing until a stock uses it.

- In the navigation sidebar, open Stocks and click Stock management.
- Open the stock you want to use positions for.
- Find the Warehouse structure field, just under Location. Its help text reads Physical layout shared by this stock. Stocks with the same structure share a location tree.
- Pick your structure and click Save.
The dropdown only offers structures that belong to the stock's own location. If you cannot find yours, check that the two locations match.
Important: if the stock's location and the structure's location do not match, Fixably refuses the whole save. None of the other changes you made to the stock on that form are saved either. Fix the location or the structure, then save again.
Several stocks at the same location can share one structure. That is normal and useful: the structure is the physical space, and each stock is a separate pool, such as your own stock and consignment stock on the same shelves.
To stop using positions for a stock, open it again, clear the Warehouse structure field, and save.
Step 3: Place products on positions
Placing a product from the product page
- In the navigation sidebar, open Stocks and click Products, then open the product.
- Click the Stocks tab.
- Find the second table, captioned Warehouse position. It shows Stock, Qty and Warehouse position for each row with stock on it. Serialised items, meaning items with a serial number or IMEI, also show their serial so you can tell the rows apart.
- Click the dropdown on the row you want. It shows Select position... until you pick something.
- Start typing to search, for example
A01. The list shows full paths such asA01 > A. - Pick the position and click Save on the product.

The row now shows its position.
Only the bottom-most positions can be used. In an Aisle > Shelf structure you place items on shelves, not on aisles.
To take a product off its position, click the small × in the dropdown to clear it, then save.
Note: the dropdown moves the row's whole quantity to the new position. To keep part of the quantity in one place and part in another, use the stock import. See Splitting one product across two positions below.
Adding a position while you work
If you have the Create warehouse positions permission, the position dropdown on the product page and on the harvest form ends with + Add new.
- Click + Add new. A small panel titled Add warehouse position opens.
- Step down through the levels. Each dropdown lists the existing positions plus an entry such as + Add new (Shelf).
- Choose + Add new (Shelf) at the level where you need a new spot.
- On a Numeric or Alphabetical level, Fixably names it for you, continuing the sequence (for example
A01 > DafterA,BandC). It is selected straight away. - On a Freeform level, type a Name and click Create.
- On a Numeric or Alphabetical level, Fixably names it for you, continuing the sequence (for example
- Save the product to keep the new position on the row.
If a position has nothing below it yet, the panel also offers Use this position.
You cannot add a position under one that already holds stock. Doing so would turn a shelf that has items on it into a section.
Placing products through the stock import
The stock import is the fastest way to place many products at once, and the only way to split one quantity across positions.
- In the navigation sidebar, open Stocks and click Stock management. Open the stock's menu and click Import.
- Add a Warehouse position column to your file.
- In each row, put the full path of a bottom-most position, such as
A01 > A. You can also use the position's numeric ID. - Upload the file.
- Open the review list, check the Warehouse position column, and confirm.
The help table on the import page shows a real example path taken from your own structure, so you can copy the exact format.
Important: if a row has a position Fixably cannot find, the import does not stop. That row is still added to the review list, just with no position. Always read the error list before you confirm.
Working with positions day to day
Seeing where everything is in a stock
- In the navigation sidebar, open Stocks and click Products.
- Click Select stock at the top left and pick the stock.

You can also get here from Stock management: click the gear icon on the stock and choose Show products.
For a stock that uses positions, each product shows a breakdown:
- The Location column shows Total on the first line, then one line per position the product sits on.
- The In stock column shows the overall quantity on the first line, then the quantity on each position, lined up with the paths beside it. The small numbers always add up to the total.
- Stock that is not on any position is listed as Unlocated.
- Positions that are now empty are not listed.
Available is not broken down per position. Reservations and items in use belong to the product and stock, not to a shelf.
Viewing and adding positions
To see the whole tree for a structure, open the Warehouse structure list, click the gear icon on the row and choose Positions.

The page shows each position's Name, Path, Products, Cost value, Stock value and Children. The tree starts collapsed. Click the arrow beside a position to open it.


To add positions here:
- Click Add position above the table to add one at the top level.
- Click the gear icon on a position and choose Add child position to add one under it.
On a Numeric or Alphabetical level the next name is filled in for you. On a Freeform level, type the name. Click the green check to save. You see a message such as Position A03 created.
The page reloads after each add, and the tree is collapsed again.
Recording a shelf when harvesting a part
When you harvest a part from a device, you can say which shelf it will go on.
- Open the order, open the device, and click Harvest.
- Tick the part.
- Choose the stock in Select stock. If that stock uses positions, a Warehouse position field appears below.
- Pick the position, choose a grade, and click Harvest.
The part goes onto that shelf when the harvest line is dispatched.
A few things to know:
- The field only appears for a stock that has a Warehouse structure.
- The shelf is a note, not a reservation. Nothing is held on that shelf in the meantime.
- If the shelf has been removed or changed by the time the line is dispatched, the part comes in without a position. Place it from the product page.
- For parts without serial numbers, all units of one harvest go to the first row's shelf. Serialised parts each keep their own shelf.
Transferring stock from a specific shelf
- In the navigation sidebar, open Stocks and click Stock transfers.
- Click New transfer and choose From and To.
- Open Select product and search. A product spread over several shelves appears once per shelf, with the path and the quantity on it, for example
- Aisle 1 > Shelf A (10). Stock that is not on a shelf has no path. - Pick the entry for the shelf you are taking from, set the quantity, and save.
The transfer takes stock from exactly that shelf. If you cancel it, the stock goes back onto the same shelf.
Two things work differently from what you might expect:
- One line takes from one shelf. If a product has 10 on one shelf and 2 loose, a line for 12 fails, even though the stock holds 12. Add one line per shelf instead.
- Received stock arrives without a position. Place it from the product page after receiving.
Transfers that Fixably creates for you, such as DOA transfers, take loose stock first. If there is not enough loose stock, they take from the fullest shelf.
Dispatching from a stock that uses positions
When you dispatch an order line from a stock that uses positions, Fixably takes the quantity across shelves as needed:
- Ordinary stock is used before refurbished stock.
- The fullest shelf is used first.
- Each shelf it takes from gets its own entry in the stock logs.
So a line for 5 can be dispatched even when no single shelf holds 5, as long as the stock holds 5 in total.
On the order, the line's Stock cell does not show a shelf, because the shelf is only decided at dispatch.
Note: if you undo a dispatch, all the units go back onto one row. The stock total is correct, but the per-shelf numbers may not be. Correct them from the product page.
Where warehouse positions appear
This table lists every place you will see positions.
| Where | What you see |
|---|---|
| Product page, Stocks tab | The Warehouse position table, with a dropdown per row |
| Products list scoped to a stock | Total plus one line per position, and Unlocated |
| Warehouse structure, Positions page | The full tree, with values per position |
| Stock import and its review list | A Warehouse position column |
| Stock export | A Warehouse position column |
| Harvest form | A Warehouse position field for each part |
| New transfer, Select product | One entry per shelf, with the path |
| Stock Logs | Entries such as Relocate unique, Position relocation (out), Position relocation (in) and Warehouse position removed |
The free-text Physical location field no longer appears on the product page for a stock that uses positions. Fixably fills it in for you from the position path, so labels, exports, purchase order screens and reports keep showing a sensible location.
Changing a structure later
Open the Warehouse structure list, click the gear icon on a row and choose Edit.
| What you want to do | How |
|---|---|
| Rename the structure | Change Hierarchy name and save |
| Add a deeper level | Click Add level, fill it in and save |
| Remove a level | Click the red × in that level's header and save |
| Add more positions | Raise the count and save. New positions are added after the existing ones, and existing names do not change. On a Freeform level, click Add position |
| Remove positions | Lower the count and save. Positions are removed from the end. On a Freeform level, click the red button beside the name |
| Rename freeform positions | Change the name and save. Stock and anything below it stay in place |
| Change how names look | Change the naming scheme, prefix or padding and save. Positions on that level are renamed and all paths are rebuilt |
Some rules protect your data:
- A position holding stock is never deleted. If any position you are about to remove still has items on it, the whole save is refused with Some positions cannot be removed because they have stock assigned. Move the stock off those positions first.
- Saving is all or nothing. If any part of the save fails, nothing changes.
- A freeform level stays freeform while it has positions. Numeric and Alphabetical are greyed out for it. Going the other way, from Numeric or Alphabetical to Freeform, is always allowed.
Removing a level in the middle moves every deeper level up by one.
Common Tasks
Splitting one product across two positions
The product page moves a whole quantity at a time, so use the import.
Prepare a file with one row per position, using the same product code:
Code;Quantity;Warehouse position
PART-123;30;A01 > A
PART-123;20;A01 > BUpload it, check the review list, and confirm. You end up with 30 on A01 > A and 20 on A01 > B.
Counting a stock that uses positions
Manual counting is not available for a stock that uses positions, because the count screen has no place to record which position each item is on.
Count with the stock import instead:
- Export the stock. The export includes a Warehouse position column.
- Update the quantities in the file, keeping the position paths as they are.
- Import the file and confirm the review list.
The exported paths match exactly what the import expects, so this round trip creates no unwanted differences.
Moving a whole shelf's worth of stock
Export the stock, filter the file down to the rows on the old position, change the Warehouse position column to the new path, and import.
Troubleshooting
The Warehouse structure item is missing from the Stock management page
The feature is not switched on for your account. Only Fixably can switch it on, so contact Fixably support.
If your colleague can see it and you cannot, check that you have the Manage stock settings permission.
The Positions entry is missing from the gear menu
You need the View stock quantities permission as well as Manage stock settings.
If you are limited to certain locations, you can only open the Positions page for structures at those locations.
Messages when saving a structure
| Message | What to do |
|---|---|
| Hierarchy name is required | Fill in Hierarchy name. |
| A hierarchy with this name already exists | Names must be different within a location. Pick another name. |
| Each hierarchy must be assigned to a location | Choose a Location. |
| Each hierarchy must have at least one level | Add at least one level before saving. |
| Each level must have a label | Fill in Level label on every level. |
| Position count 101 exceeds the maximum of 100 per parent | Lower the count to 100 or less. Split the level into two levels if you need more spots. |
| Some positions cannot be removed because they have stock assigned. | Move the stock off those positions, then try again. |
| Cannot change a freeform level to a structured scheme while it has positions. | Remove the positions on that level first, or keep it as Freeform. |
| The form data was incomplete... | The structure is too big for one save. Nothing was changed. Add fewer positions per save, or one level at a time. |
Messages when adding a single position
| Message | What to do |
|---|---|
| A position named A already exists under this parent. | Names under the same parent must be different. Pick another name. |
| Position name must not contain " > ". | Remove > from the name. It is used to separate levels in a path. |
| Cannot add a position under a position that has stock assigned. | Move that stock somewhere else first, or add the position under a different parent. |
+ Add new is missing from the position dropdown
You need the Create warehouse positions permission. It is not given to any role by default, so ask your admin to add it.
The selected warehouse hierarchy does not belong to this stock's location.
A structure belongs to one location, and a stock can only use a structure at its own location. Either change the stock's Location to match the structure, or pick a structure at the stock's current location.
Nothing on the stock form was saved when you saw this message, so make your other changes again after fixing it.
Cannot reposition a row with zero quantity
You are trying to move a row that has no items on it. Find the row that actually holds the stock and move that one.
This stock uses warehouse positions. Use the stock import to count positioned items.
This appears when you open the manual count for a stock that uses positions. It is expected. Count through the stock import instead, as described in Counting a stock that uses positions above.
Warehouse position 'A01' not found in hierarchy 3
Your import file has a position Fixably cannot match. Common causes:
-
It is not the full path.
Aon its own is not enough. You needA01 > A. -
It is not a bottom-most position. In an Aisle > Shelf structure,
A01is an aisle, not a place to put items. - A small difference in spelling or spacing. The separator is a space, a greater-than sign, then a space.
The safest fix is to export the stock and copy the values straight from its Warehouse position column.
This error does not stop the import. The row is still waiting in the review list without a position, so fix the file and import again rather than confirming it.
Warehouse position specified but stock has no warehouse hierarchy
Your file has a Warehouse position column, but the stock is not connected to a structure. Open the stock, set its Warehouse structure, then import again.
Physical location cannot override an existing warehouse position
Your file has a Physical location column but no Warehouse position, and the product already sits on a position. Fixably will not let the free-text field replace a real position.
Put the position in a Warehouse position column instead, or clear the product's position first.
Physical location ignored (warehouse position takes precedence)
You see this in the Comments column of the review list when a row has both a Warehouse position and a different Physical location. The position is used. The note only tells you the other value was skipped, so you can safely confirm.
Cannot create transfer for product as stock has too low quantity for the transfer
One transfer line takes from one shelf only. The shelf you picked does not hold enough, even if the stock does in total. Add one line per shelf, or move the stock onto one shelf first from the product page.
The Physical location field disappeared from the product page
This is expected once a stock uses positions. The Warehouse position dropdown takes its place, and Fixably fills in the physical location from the position path.
The field also stays hidden for a stock that still has a Warehouse structure set, even if the feature is switched off later. Clear the stock's Warehouse structure to get it back.
I moved a product and now I see two rows for it
This is how per-position quantities work. The original row stays behind with a quantity of zero, and a new row holds the quantity on the new position. Rows with zero quantity are hidden on the product page and in the products list.
Serialised items move in place, so no second row appears for them.
A harvested part came in without a position
The shelf picked on the harvest form is checked again when the line is dispatched. If the shelf was removed, or the stock's structure changed in the meantime, the part comes in without a position. Place it from the product page.
Our integration shows stock going out and coming back in
Moving stock between positions is recorded as two movements: one out of the old position and one into the new one, with equal and opposite amounts. A dispatch that takes from several shelves also sends one message per shelf.
If your integration adds up the changes, it stays correct. If it treats each message's quantity as the product's total, it needs to change. Share this section with whoever looks after the integration.
Roles & Permissions
The permissions below are set per role, in the role editor.
| Task | Permission needed |
|---|---|
| Switch the feature on | Fixably only, contact support |
| Create and edit warehouse structures | Manage stock settings |
| Open a structure's Positions page | Manage stock settings and View stock quantities |
| Place a product on a position | Edit stock quantity |
| Add a single position from the dropdown | Create warehouse positions (under Warehouse) |
| Import positions | Import stock, plus Create difference list to confirm |
| Record a shelf when harvesting | Harvest device parts |
| Transfer stock from a shelf | Create stock transfer |
Create warehouse positions is not given to any role by default.