Virtual stores

From the Special menu, choose Show stores

What is a "Virtual Store"?

In mSupply a virtual store is a way of segregating particular stock so that some users only see that stock and the transactions associated with it. When a user logs into mSupply, they choose a particular store to login to - this we call the current store. mSupply then operates as if:

the stock in that store is the only stock available.

Only stock from the current store will be available for issuing,

Reports will relate to stock in that store

Issues from and receipts to that store only use the stock in that store

Only suppliers and customers sets as “visible” for that store will be able to be chosen for receiving and issuing goods

Only items set as “visible” in that store will be usable (So for example if you have a store that handles only vaccines you can make vaccines visible in that store (and invisible in all stores that don't handle vaccines)

Many users of mSupply will only have a single store, and so will have no need of this functionality.

The following examples illustrate situations where you might want to run more than one store.

A hospital pharmacy where you have two dispensing locations: an inpatient pharmacy and an outpatient pharmacy.

A pharmaceutical warehouse where stock from a particular donor is received, issued and accounted for separately to stock in the rest of the warehouse.

A hospital pharmacy where the pharmacy store stock is treated separately to the dispensary stock. You would set up mSupply with a store called “Pharmacy store” and a store called “Dispensary”. You would use the stock transfer feature to move stock from the pharmacy store to the dispensary.

A pharmaceutical warehouse where you have 2 or more actual warehouses. These may be adjacent or several hundred kilometres apart. (Of course you need network connectivity between sites to run mSupply at each site).

You're using mSupply mobile- each mobile site will synchronise data with a virtual store on the mSupply server.

Note: In the above examples, when you log on, you would select the appropriate mode - see table:

Examples	Stores	Log on mode
Hospital Pharmacy	In-patient Dispensary	Dispensary
Out-patient Dispensary	Dispensary
Hospital Pharmacy	Pharmacy store	Store
Dispensary	Dispensary
Warehouse	Adjacent Store	Store
Remote store	Store

Viewing available stores

From the Special drop down menu click Show stores… The Stores list window (shown below) appears and displays a list of all the stores which currently exist including their sync type:

Editing a store

Double-click on any store in the list in the View stores window described above to view or edit its details. You will see the same window as in the Creating new stores section below but the various fields will be filled in with the store's current settings. You can click into the fields and edit them as desired. Note that in the top left of the window, the name of the store you are editing is always displayed, regardless of which tab you are on, so that you always have a reminder of which store you are editing!

Creating new stores

To create a new store click the New store button in the Store list window shown above. This will display the Store details window shown below, which allows you to enter the details of the new store:

Store code: The code used to identify the store. If you have a lot of stores it would be helpful if you decide on a good pattern to use for the codes.

Store type: Set in the drop down list to the right of the Store code field. Can be one of:

Store: a normal store used for managing inventory and issuing to customers

Dispensary: a store used for managing inventory and dispensing to patients

Report: a special type of store used for reporting information only, not managing inventory. Don't use this unless specifically told to do so!

Name: The name used to identify the store throughout mSupply.

Organisation name: The name of the organisation running the store. Defaults to the organisation name entered in File > Preferences.

Address line 1-5, Postal /Zip code, phone: Enter the address and contact details for the store in here if there are any. These details can be used in reports

Disable this store: Check the Disable this store checkbox to stop the store from being used. You might want to use this feature if the store is not ready for use yet or is no longer to be used and can't be deleted. You will be asked to confirm the disabling after clicking on the OK button on this window.

Responsible officer: Select the officer responsible for the store in this drop down list. A helpful reminder for others and can be used in reports.

Tags

Tags are used in reporting to group stores together. This area shows the tags that the store currently has. To add a tag, simply click into the area and type the tag's name. When you have finished typing the tag's name then press the Tab or Space keys on the keyboard (not Enter or return, that will close the window!). You know when you have done it right because the tag will appear in its own little box with an 'x'. If you want to remove any tag from the store, simply click on that 'x'. In this way you can add or delete as many tags from a store as you like.

After having created a new store, the Stores list window will display the new list of all stores and you may double-click an entry to edit that store's details. A number of things that will need to be attended to are:

To do a number of the following steps, you will need to log in to the new store. To do this, you will need to give yourself access to the new store by Managing users. Any other users who need to access the store will also need their permission altered accordingly. After giving yourself permission to log in to the new store, log in to it and carry out these steps.

Set the preferences for the store.

Set the store's logo so that it can appear in print-outs and reports.

Set the visibility of items in the store. All items in the system will be set to invisible in the new store when it is created. You will need to modify visibility of items in order to be able to handle stock of those items.

Setup Synchronisation if you are going to use a synced system. See Remote Synchronisation.

Setup any custom store data (used for reporting).

Set the master lists used by the store (a convenient method for controlling item visibility).

If this newly created store will be 'Active' on a satellite server on a synced mSupply system (refer to Remote Synchronisation, then user access to the store will need to be defined on that satellite server.

The preferences tab

The preferences described here are 'per store' and can be different for each store on an mSupply server. In a synced system there will be multiple 'sync satellites' and store preferences will need to be set for each store on each mSupply sync satellite. Other preferences (accessed through File > Preferences…) apply to all stores on an mSupply server or sync satellite.

This tab contains the preferences that can be set for a store. Each store has its own settings for these preferences: this is different for the settings in File > Preferences which apply to all stores on an mSupply server.

This is what each preference does:

Sort available batches by VVM status If the store is only to be used for vaccines, this option allows you to sort the list of available batches by the vaccine status column rather than the expiry date

Patient created in this store not visible in other stores If you check this box, patients that are created in this store will not be visible in any other stores - they will only be visible in this store.

Names created in this store not visible in other stores When this box is checked, if you create a name (a customer, supplier, manufacturer or donor etc.) in this store then it will be visible only in this store and not in any others.

Allow users to enter total quantities to distribute to appropriate packs If you check this checkbox, users will be able to enter the total quantity that they wish to distribute to appropriate packs.

Round up the distributed quantity Checking this box means that mSupply will round the value for the distributed quantity upwards.

Able to pack items into multiple boxes If this box is checked, then mSupply will provide a detailed way of packaging goods in to boxes to be distributed to clients.

Store: Able to issue in foreign currency If you check this box, you can use foreign currencies on supplier invoices for overseas suppliers.

Allow editing selling price on customer invoice lines Checking this box means that you can edit individual selling prices on customer invoice lines.

Purchase order must be authorised If checked then purchase order authorisation is turned on. See Ordering Items From Suppliers for details on this functionality.

Finalise customer invoice automatically This setting automatically finalises a customer invoice when it its status is set to confirmed, which is normally when the goods are dispatched.

Customer invoices must be authorised If this preference is checked then all customer invoices must be authorised by a user with permission to do so before they can be confirmed (i.e. goods can only be sent to a customer after the action has been authorised). See Invoice Authorisation for details.

Confirm customer invoices automatically This setting is used to set a Customer Invoice's status to confirmed when the OK button of a New Customer Invoice is clicked. This means that it is not possible to print a picking slip for the issued goods.

Supplier invoices must be authorised If this preference is checked then all supplier invoices must be authorised by a user with permission to do so before they can be confirmed (i.e. goods can only be brought into stock when the action has been authorised). See Invoice Authorisation for details.

Confirm supplier invoices without asking This setting is used to set a Supplier Invoice's status to confirmed when the OK button of a New Supplier Invoice is clicked. This means that when the OK button is clicked the goods are made available in stock without informing the user.

Goods receipt lines must be authorised This setting is used to restrict authorisation of a Goods Receipt to authorised users only. Only when a Goods Receipt is authorised can it be processed for the goods to be made available in stock.

Locations must be entered for goods received This setting requires the user to type a shelf location on the Goods Receipt Item Line form when receiving goods into Store. This feature enforces identification of shelf location of stock.

Able to specify manufacturer when receiving, ordering or quoting for items This setting gives the user the option to record the manufacturer of goods when making Purchase Orders or when doing a Goods Receipt or entering a Quotation from a supplier

Custom stock fields In this area you can choose to use up to four custom fields for labelling incoming stock. The checkboxes tell mSupply to use the various custom fields and the textboxes contain the labels that mSupply will use for these fields. Each custom field that is checked here will appear (with the label it has been given) on a supplier invoice when an item is being received (see here and here for details). The information entered will then be visible whenever stock is shown (e.g. when issuing stock on a customer invoice or when viewing the stock of an item on the stock tab of the item details window).

When finalising a Goods Receipt

There are three options:

Don't receive goods into stock until supplier invoice is taken off hold - for goods to enter stock you must finalise the goods receipt and then take the automatically generated supplier invoice off hold

Receive goods into stock, and leave supplier invoice confirmed - goods enter stock as soon as the goods receipt is finalised. The automatically generated supplier invoice is created with confirmed status.

Receive goods into stock, and finalise supplier invoice immediately - goods enter stock as soon as the goods receipt is finalised. The automatically generated supplier invoice is created with finalised status.

How you set this preference is determined by how separate your goods receiving and finance sections are. If they are not in the same building, you might want to use the “Receive into stock and leave confirmed” option, as this will allow you to proceed with issuing goods without waiting for the finance department's approval.

For stock transfers, the supplier invoice in the receiving store should be...

This option applies to all stores that this store transfers stock to.

This option is used to determine whether stock transferred from one store to another is received to a destination store and automatically introduced to stock or not. The On hold option prevents stock from being introduced, while the Finalised option automatically makes the stock available for use in the destination store - without the receiving store having the opportunity to amend the Goods Receipt.

Choose Finalised if there is no need to check / alter the quantity received compared to what was sent.

Choose On hold if the store is being used by mSupply mobile, and the goods receipt needs to be confirmed before receiving.

The logo tab

Here you can paste in a logo you have copied to the clipboard - you must copy the contents of a file to the clipboard, not the file itself. The file can be in .jpg, .png, .bmp, .gif, or .tiff format. This logo will be displayed at the bottom right of the navigator when you login to this store only. It will override any logo saved in the file preferences. This store logo will also print out on standard customer and supplier invoices etc. instead of the logo stored in file preferences.

Note, after saving the image you must login to mSupply again or switch to the store to see it.

The Custom fields tab

This tab is used to save any custom information for the store that you might need to be made available in mSupply, for instance in reports. Each piece of information that you save has a label (which mSupply will use to refer to it) and a piece of data. At the moment you cannot edit reports or other parts of mSupply yourself to make use of this information, this must be done by Sustainable Solutions. This might change in the future, we're always listening to our users!

Adding a custom field

To add a new field, click on the New line button; a new line with default values of “Field label” and “Field value” in the two columns is added to the table and highlighted. Click on the value in each column and type the real label and value for the piece of information.

Editing an existing custom field

To edit the label or value of any custom field, simply click on the cell in the table and edit the entry.

Deleting a custom field

To delete any custom field simply select its row in the table and click on the Delete line(s) button. You can use Shift+click, Control+click, Control A (or Cmd instead of Ctrl if you're using a Mac!) to select multiple lines and delete them all at once if you like.

Controlling Item Visibility: the Master lists tab or the Visibility tab

Controlling the visibility of items in different stores is important because you can only order, distribute, receive goods for and report on items that are visible in your store. It's also important that stores don't have items visible that they don't use so that they don't accidentally order them etc.

If you have lots of stores in your data file, managing item visibility can turn into a difficult task. Thankfully, mSupply has some helpful tools to make it simple! There are 2 ways to manage item visibility and you use one or the other, not both:

automatically using the Master lists tab or

manually using the Visibility tab

Each are useful in different situations and are described below.

The Master lists tab

If you have a lot of stores in mSupply, we recommend that you use master lists to control item visibility. Especially in a syncing system because it means that the visibility of newly created items will be automatically handled correctly. The visibility of items in a store whose visibility is controlled by master lists is immediately updated if any changes are made to any of the master lists. For instance, if a new item is added to a master list controlling visibility then that new item is made visible in all stores that use the master list. And any items deleted from the master list are made invisible in any store using that list.

The first thing to do is to turn on the preference to make master lists control item visibility in stores. Do that in File > Preferences… on the Item tab - see General preferences, the item tab for details.

The next thing to do is to create the master list(s) that will control item visibility. See Item master lists for details on how to do that. Giving your master lists helpful names will help you remember what they're for e.g. “Store xxx visibility list”.

Now edit the store to tell mSupply which master list(s) will be used to define which items are visible in the store:

Click on Special > Show stores… (or click on the Stores icon on the Special tab of the navigator)

Double-click the store who's visibility you would like to manage:

Click on the Master lists tab:

Select which master list(s) you would like to control the visibility of items in your chosen store by checking their checkbox in the Use master list column: In this example, the District warehouse master list has been selected to control the visibility of the District warehouse 1 store.

Click the OK button to finish. As soon as you do that the items on the selected master list(s) are made visible in the store and any items not on the selected master list(s) are made invisible. Any new items added to the selected master list(s) will be made visible in the store and any items removed form the master list(s) will be made invisible in the store.

The Visibility tab

If your system is a Sync system (with Primary and Satellite servers) and your store is hosted on a Sync Satellite server, then you will not see the Visibility tab. These settings need to be made while logged in to the Sync Primary Server.

You will also only see this tab if you are editing the store you are logged in to. To log into a store you may need to first give yourself permission to do so under File > Edit Users > Double-click your user name > the Log in rights tab. Phew!

The Visibility tab contains tools for manually setting the visibility of items and names in a store.

The item visibility tools are good to use if you do not have many stores in mSupply and only need to make occasional changes to visibility for a number of items. If you want to make a change to a single item's visibility in a single store then you can do that by going to the item's details window and using the store tab (see Item basics, the stores tab).

If you have turned on the preference to control item visibility by master list then you will not be able to use the visibility tab or the visibility settings on the store tab of an individual item's details window.

Here's what the tab looks like:

The buttons provide you with different ways to hide and show items and names in the store (Note: be careful showing names in databases that have a lot of names records. For example if you have 20 virtual stores and 200,000 names in your database, showing all names in all stores will create 4 million (20×200,000) records to map the visibility of each name in each store):

The Show stats button shows how many items and names are currently hidden and visible

The Set item visibility to match master lists for this store button matches the item visibility to the master lists that are selected on the Master lists tab. (Note: this is a one-off operation, no changes will be made to item visibility if the master lists are changed after you click this button. See the section above if you want that to happen!) If there are some items that can't be set to invisible (because they have stock, for example) a temporary master list will be created containing the items which could not have their visibility removed. Use the list to decide what to do with each item.

The Make all items in this store visible and Make all items in this store invisible both do just as they say.

The Set pack to one for all visible items in this store will check the Allow pack to 1 conversion and Convert pack to 1 when receiving checkboxes for all items in the store so that all stock received into the store will automatically be received in packs of 1. This is useful in a dispensary store, for example.

The Set to match button requires you to choose a master list. Clicking the button makes the items that are on the master list selected in the drop down list next to it visible in the current store. Note that it does not hide items that are already visible but not on the master list.

The Make all names in this store visible button does exactly what it says and makes all names in the datafile visible in the current store.

The Make all names in this store invisible button does the opposite and makes all names in the datafile invisible in this store. Be careful using this - you won't be able to receive or distribute stock from/to anyone until you make some names visible in the store!

The Query names button enables you to search for names (customers, suppliers, manufacturers, donors etc.) in the datafile. Every search you run creates a selection which is then operated on by the Make found names visible in this store button.

The Make found names visible in this store will make all names in the last selection made with the Query names button visible in this store. Ask Sustainable Solutions for help if you're not sure about getting the right selection of names, as the consequences of making a mistake can be time consuming to fix!

The Synchronisation tab

mSupply has a synchronisation system designed to cope with environments which have weak or intermittent internet. The system passes information between a server and satellite (or tablet running mSupply mobile) when there is an internet connection and stores information to be sent when there is not.

This tab is where the store specific settings for synchronisation are mad. See Remote Synchronization for more details.

Deleting a store

To delete a store, click on the Delete button in the View stores window. Note: deletion of a store is a serious thing to do and is only possible when that store contains zero stock and there have been no transactions recorded. mSupply will check and tell you that deletion is not possible if these criteria are not met. If you can't meet these criteria and you still want to stop people using the store then you can disable it. Do that by checking the Disable this store checkbox on the Store details window (see above).

Transition from a customer to a virtual store

If you have a customer that is about to start using mSupply mobile, once you create the virtual store you will end up with two customers with the same (or similar) names, as creating a virtual store also creates a linked name. Fear not: you can use mSupply's Merge names functionality to join the two names into one record. Note that you must choose the newly created store's Name as the “Name to keep” and the older Customer's name as the “Name to delete”

Previous: Transaction categories Next: Custom Data