CommCare Supply uses out of the box handlers to facilitate stock reporting via SMS. This makes it easy to set up a system by which mobile workers can update stock information on product at their facility or location without needing any special additional hardware or software downloads than what they already have in a standard mobile device. In order to use SMS functionality users should follow the steps below:
Configure their domain to send and receive SMS messages
To learn about setting up an SMS Gateway, and configuring a domain for SMS see the following:
Configure basic CommCare Supply Settings - Locations, Products, Mobile Workers, Programs, etc.
See the CommCare Supply Overview for information on how to set up a domain to use CommCare Supply
Note: In order to submit stock reports via SMS, locations must be configured such that mobile workers are only associated with one at a time. In instances where mobile workers can view and edit location cases other than there own (such as in the case where users can locations descended from the one to which they are associated), users will by default only be able to report stock via SMS on their primary location.
Configure CommCare Supply actions and codes
To configure CommCare Supply specific SMS actions, navigate to SMS from the Setup tab in the top menu bar
Next, decide which actions should be supported via SMS.
When reporting stock, there are four possible actions:
Action | Effect on stock | Example |
---|---|---|
Stock on Hand | This allows users to report the current stock on hand. Stock for any product reported on will automatically adjust to the value reported. If the stock on hand reported is less than the previous stock on hand for that product, the difference will be counted as consumption. If more the different will be tracked as an uncounted receipt but will not contribute to consumption. | 1) If previous SOH = 10 User reports SOH = 6 Consumption for that transaction = 4 2) If previous SOH = 10 User reports SOH = 14 Receipts for that transaction = 4 |
Receipts | This action allows users to report on new stock received. The value reported by this transaction type is added to the previous stock on hand to calculate the current stock on hand | If previous SOH = 10 User reports receipt = 6 New SOH = 16 |
Consumption | This action allows users to report how much of a product has been consumed or used The value reported by this transaction type is subtracted from the previous stock on hand to calculate the current stock on hand | If previous SOH = 10 User reports consumption = 6 New SOH = 4 |
Stock Out | This action will set the Stock on Hand of whichever products are reported to 0 The value of the previous stock on hand will be calculated as consumption | If previous SOH = 10 User reports a Stock out New SOH = 0 Consumption for that transaction = 10 |
To determine which of these actions to support in an SMS deployment, add or remove stock actions from the table on the SMS configuration page
This table comes pre-populated with the above actions and keywords. The SMS keywords determine which action an SMS reporter will use. By using these keywords and referencing products using the product code, SMS users are able to squeeze as much information as they can into the 160 character SMS limit. Users can add new keywords for this actions by clicking the "+ New Action" button below the table. They can also modify existing action in the table or delete them using the red "Remove" buttons. The formula for reporting via SMS is:
<SMS_keyword> <product_code> <value>
Given the keywords above, in order to report a stock on hand of 25 for condoms (let's assume the product code for condoms is co) a user would text
soh co 25
This format allows users to report on multiple products at once - to report a receipt of 25 condoms and 15 Depo Provera (product code dp) a user could text
r co 25 dp 15
Users can also report on multiple transactions type in one SMS. The transaction type are processed in the order they appear, from top to bottom in the table above, regardless of the order they appear in the SMS. So this report:
soh co 25 r co 15
Would mean that the current stock on hand for condoms is 25, and that before arriving at that stock, the facility received 15 more condoms, which would then be added to the previous stock on hand. Thus if the previous stock on hand for condoms was 20 then
previous soh = 20
receipts reported = 15
calculated intermediary soh = 35
stock on hand reported = 25
consumption = calculated soh - reported soh = 10
If on the other than stock on hand was set to be processed before receipts, as is the case below:
Then that same message:
soh co 25 r co 15
Would be processed such that the stock on hand was entered into the system before receipts:
previous soh = 20
stock on hand reported = 25
intermediary receipts = stock on hand reported - previous soh = 5
receipts reported = 15
calculated new soh = stock on hand reported + receipts reported = 40
Configuring Requisitions - Not yet fully supported - Coming soon