4.06. Stock locations and location types

Keeping track of where stock is in your store is an important part of good warehouse practice. You don't want to have to go hunting through your whole store for stock, wasting time and energy when mSupply can tell you exactly where it is!

Locations in mSupply are the places you store stock. Locations can have types (e.g. normal, cold, bulk…) to help you categorise them or to make sure that items are put away in the right type of location (e.g. cold or secure storage, or a particular section of the warehouse).

If you use location types it will help you if they are defined before the locations that belong to them otherwise they won't be available to select when defining a location - and you'll have to go back later and edit the locations. What a waste of time! So this section explains location types first and then goes on to explain about locations.

Location types give you the ability to categorise your locations.

They can be used for reporting on a group of locations, but also to restrict the locations that can be used for a particular item.

If you want to restrict items to being put away in locations with a certain type, you need to assign items the matching location type. For details on doing that see the 4.01.02. Items - Storage tab page.

Choose Item > Show location types to define or show a list of available location types.


The window that appears allows you to define the criteria for the various types of location in your store - e.g. the permitted temperature range, whether location must be dark, etc.

Click on New , and the window that appears allows you to enter a name for the storage type, and the permitted conditions pertaining to that storage type.:


In the above example, a storage type “Refrigerator” has been defined, the permitted range of temperature being 2o C - 8o C.

Having defined your storage types, the Show location types window might look like this:


It is worth emphasising that the list does not show the actual store locations, but the types of locations.

Should you wish to edit the details of any location type, double click on it in the list and change the details in the window which appears.

To view the locations you have defined choose Item > Show locations and you will see a list of location codes and descriptions:

From this window you can view, edit and remove locations and their details - this is the 'location management' window. Here are the various functions of the window:

New location button: Click this to add a location (see 'Adding a location' below).

Print button: Click this to print the list of locations displayed in the window (see 'Printing the locations list' below).

Search location: Enter some text in the text field and the list is updated as you type to show only the locations whose code or description starts with the text you have entered.

view and edit a location's details: Double click on a location in the list - see 'Viewing and editing a location' below. All the details are editable. See the 'Adding a location' section below for the meaning of the individual details.

Before you can associate an item with a specific location (e.g. Shelf D4, Refrigerator 2, etc.) you must define the locations in mSupply. To add a new location, click on the New location icon in the View locations window shown above. You will be shown the following window, where you can enter the details of the new location:

Code: This is how you refer to the location in mSupply and, for example, what you will select when you set an item's location. Any non-printable characters entered before or after the code will be removed. Any entered in the code (including spaces) will be replaced with an underscore (_).

Description: This is a description of the location e.g. “Top shelf of refrigerator 3” or “3rd shelf up in rack E” to help you identify it or remember something important about it. You will only see this in the list of locations shown above. Any non-printable characters entered before or after the description will be removed. Any entered in the description will be replaced with an underscore (_).

General tab

Under this tab, you enter the location's main details:

Location Type

Select one from the location types you have already entered (see the Location types section above).

  • Each item can have a Restricted to Location type set, and then you will only be able to store that item in a location with that type.
  • See the details about allocating items to particular location types on the 4.01.02. Items - Storage tab page. When you do this is done, the item will only be allowed to be placed in locations that have the matching location type when they are received or moved in the warehouse.

In a synchronised system, this must be done on the Primary server and will restrict items to the same location type in all stores in the system. Introduction of this in an already established system therefore needs to be carefully managed.

Replenishment location type

If you are using the pickface replenishment functionality, this is where you tell mSupply if this shelf location is a Pickface or a Bulk location (or neither, if you neave it set at None).

For details about what these settings mean and how to use the replenishment functionality, please see the 4.22. Pickfaces and Replenishments setup and 4.23. Pickfaces and Replenishments pages.


Select one from the locations already entered in mSupply form the drop down list. This is the location to which the location you are adding belongs. You cannot set the current location's child location to be the parent (i.e. circular relationships cannot be created).

This is for descriptive purposes and does not have any functional effect in mSupply at the moment (it was used when viewing the warehouse layout but this is currently disabled awaiting upgraded functionality).


Checking this means that the location is a summary location only and cannot be used for storing items. This is normally checked for all locations that are parents of others.


You can note anything you need to remember or indicate to others in here. It is only visible if you view the location's details (Item > Show locations, double click on the item in the list) later.

Total volume

The total volume of goods that you can store at the location. Volumes are stored in cubic metres [m3] but other volumes e.g. litres (l) may also be entered, provided the appropriate unit is entered following the number e.g. 5l for 5 litres. See the entry Volume per pack in Item edit - General options. Note that whatever you enter will be converted to and displayed in m3.

Knowing the volume of a location is important if, for example, you are replenishing your stock of vaccines, and you need to know if there is enough space available in the refrigerator in which you store vaccines to accommodate a new order (obviously, you would also need to know the volume of the vaccines that you are ordering).


The Location priorities are used for two different purposes:

  • When printing a picking slip:
    • By default a picking slip is printed with the lines ordered according to the alphabetical order of shelf locations. This helps the pickers to progress systematically through the store rather than walking a random marathon! However, it is sometimes useful to get mSupply to put certain items, e.g. bulk fluids or fridge items first or last on the picking slip. This is achieved by setting a priority for a location. The priority will override the default alphabetical ordering.
    • A location with a lower priority number will be printed before a location with a higher priority number.
    • All locations with 0 priority are counted as having no priority and will be printed, in alphabetical order, after all locations with a priority.
  • When suggesting stock lines for selection - when the expiry dates are the same:
    • For an item with several stock lines having the same expiry date, mSupply will use location priority to decide which stock line should be suggested first (at the top of the stock line selection list).
    • Locations with a lower priority number will be selected before a location with a higher priority number.
    • If multiple locations have the same priority number, then mSupply will suggest them in alphabetical order of location name.

When locations are first set up, if you do not specify the priority, they have their priorities set to the default of 0

An example of using location priorities to direct selection of stock lines

Let's say we have 7 stock lines of the first expiring batch in the following locations:

Line Location Location Priority
1 M02.04.3B 1
2 M04.02.2A 1
3 M02.06.1A 2
4 M02.04.4A 3
5 B01 4
  • mSupply will suggest the stock lines in this order, sorted firstly by location priority number, and then by alphabetical order of location name.
  • Line 1 is before Line 2 because, alphabetically, M02.04.3B sorts before M04.02.2A.

If this is checked then goods in this location cannot be selected for issue to customers. Goods can be moved in to, and out of, the location but they cannot be issued from that location.

Putting a location on hold can be useful if:

  • The stock needs to be kept from being issued until some inspection / approval (e.g. quarantine or under bond).
  • The stock is a bulk quantity with the same expiry date as another stock line in another location from which you want stock issued. You can use this feature to force mSupply to always suggest issuing stock of this item from the 'issue' location rather than this 'bulk' location. When you have finished issuing stock from the 'issue' location, and you want to issue the stock that is in the 'bulk' location, you will need to either take the 'bulk' location off hold, or, move all, or some of it (split), the stock from the 'bulk' location. Location priorities (above) is a more elegant way of managing issue of stock of an item with the same expiry date from multiple locations.
Asset this location is part of

If this location is part of an asset that is recorded in mSupply you can connect the location to that asset here. Type the first few characters of the asset's description in the field and press the Tab key on the keyboard to select the asset from a list of those that belong to the current store and have a description starting with what you typed.

When you have selected the asset by double-clicking on it, its description will appear in the field and its code (if it has one) will appear just underneath (Note: if only one asset matches what you typed, it will be selected for you and the fields appropriately populated):

This would be a very useful thing to do for cold chain equipment, for example, so that you can link temperature variations to maintenance schedules and repair requirements etc.

Layout tab

This tab is only of interest for those of you with older versions of mSupply! This tab has been removed in more recent versions because its functionality wasn't particularly helpful. Look out for Open mSupply coming soon, which is planned to have expanded functionality in this area.

Under this tab you can create a graphical plan view of the location in your store. This is useful for helping people to quickly locate any given location and presenting a graphical layout of your whole store. Locations are drawn as either rectangles (for which you enter the top left coordinate and the lengths of the 2 sides) or polygons (for which you enter a number of sequential coordinates which are connected with straight lines). Here's what the various input items mean for a rectangle, the rest we'll show you by the way of an example:

So, as an example, the coordinates are entered as above in the appropriate boxes, then the Draw button is clicked to produce the following display under the layout tab:

This has created a picture of location main1. This is the whole store or warehouse. You can't see the settings but this location will have no parent and will have its Summary checkbox checked (no items can be located here - it's just a summary location for descriptive purposes).

In our imaginary warehouse we have a set of open racking which is 'L'-shaped. We want to draw it in the warehouse so we create the location, call it 'sub1' and set its parent as Main1. If this set of shelves also has other locations in it we would also check its Summary checkbox.

To draw this location we click on the Layout tab and select Polygon as the object type. Click on the Add button to add a coordinate and then overwrite the zeros in the X and Y columns to give the correct coordinates. If you make a mistake, click on the set of coordinates in the list that is wrong and click on the Delete button to delete it. When all six co-ordinates have been entered, click on the Draw button to produce the layout displayed below:

You can do this same thing for all locations so that anyone can easily locate them in your store.

As you already know from above, to view all the locations you have defined select Item > Show locations. To view and edit the details of a particular location, double click on that location in this list. You will be shown the following window:

General tab

This is the same as the General tab for adding a location (see the 'Adding a location' section above) except that its details are filled in with the details of the location you selected. To edit the details simply overwrite the current value with a new value or select another option as appropriate.

Layout tab

This is the same as the Layout tab for adding a location (see the 'Adding a location' section above) except that the current graphical representation of the location is displayed (if you've already created one). You can edit the plan view of the location if required by changing, adding or deleting co-ordinates.

Stock tab

The Stock tab shows a list of existing stock lines stored in that particular location. A lot of information regarding the stock is displayed in the list and, as with most mSupply lists, it can be sorted on any column by clicking on the column heading:

If you want to know more information about any particular batch in the list, simply double click it and you'll be shown another window with lots of information about the batch, arranged in four tabs:

To delete location you select Item > Show locations to view the list of locations, double click on the location you want to delete (as if you wanted to view all its details) and then click on the Delete button at the bottom of the window. If you confirm the deletion, the location is removed.

You can not delete a location that has had stock in it. You can achieve the desired result by merging the location that you want to delete with any other location - refer Merging two locations.

If you want to remove a location from further use in mSupply (for example, you might have accidentally double-entered a location) this command can be used.

When you Choose Item > Merge two locations , this window is shown:

Use extreme caution! This operation will affect all historical records of the location you delete. They will be moved to the location you are keeping. The operation can only be undone by reverting to a backup copy of your data file.

In the window displayed enter the location to keep, and then the location to merge. When you have checked that the information is correct, click the OK button.

mSupply allows stock in locations to be managed according to the volume of stock in those locations provided that:

Whenever stock is being allocated to a location, mSupply allows the user to identify those locations that are either completely empty, or where there is volume available for the selected stock line:

The Show empty radio button is selected here. This is appropriate when trying to find a location for a whole pallet of stock, as pallets can only go in empty locations.

The Show available radio button shows locations that have enough spare capacity to take the volume of the line we are allocating.

  • Last modified: 2023/10/16 09:53
  • by Mark Glover