====== Inventory ======
The Inventory Status Interface (ISI) is a telephony interface designed to allow users to report item and quantity information to one or more remote servers. Although the original conception was to provide a method for a hotel's housekeeping staff to report usage of items from the guest room mini-bar, the interface has been designed to allow for any type of inventory reporting a user may require.
== Rooms ==
The inventory system provides two possible room lists. The default setting is to use the list of mailboxes configured on the DuVoice. However it is possible to configure it to use a custom list of rooms if necessary.
== Data output ==
When a charge is made to a room the system will automatically send it on to any of the configured connectors. It currently supports SDD Jazz, Opera Minibar, Opera Direct Charge, and Comtrol. For more detailed information see the server configuration [[https://support.duvoice.com/vs6/manual/syscon/conn/isi|here]].
== Access ==
Inventory access does require the user to have inventory access on their account. This is to reduce or limit the number of users who can bill rooms of charges.
== Billing ==
The inventory system does not store any billing information for a room. It is simply intended as a way to manage and post charges to third party interfaces like Opera Minibar. The DuVoice system does provide some reporting information via the [[https://support.duvoice.com/vs6/manual/web/isi|Inventory]] web interface, however this is only intended for review and not to charge a guest.
===== Features =====
* Add items
* Delete items
* Create item categories
* Delete item categories
* Add room charges
====== Get Items ======
You can retrieve a list of all inventory items using the [[dev:rest:api:ivr:isi:get|GET]] method with the parameter //item//.
^ Name ^ Type ^ Description ^
| description | string | Category description. |
| id | string of numbers | Item ID. |
| category | string of numbers | Category ID for this item. |
| max | int | Maximum quantity which can be reported. 0 Means unlimited quantities. |
| price | string | Price of each item. |
| tenant | string | Tenant ID for this category. |
===== Example =====
==== Request ====
curl -i -X GET http://127.0.0.1:10022/rest/isi/item -u user:password
==== Response ====
HTTP/1.1 200 OK
Date: Fri, 27 Sep 2019 17:16:46 GMT
Connection: close
Content-Language: en
Server: DuVoice/6.03.32 DVREST/6.0.1
Access-Control-Allow-Origin: *
Location: 127.0.0.1:10022
Content-Type: application/json
Content-Length: 329
{
"items" : [
{
"category" : "2",
"description" : "Stone IP",
"id" : "100",
"max" : 2,
"price" : "10.99",
"tenant" : ""
},
{
"category" : "3",
"description" : "Almond Cake",
"id" : "300",
"max" : 1,
"price" : "15.99",
"tenant" : ""
}
]
}
====== Room charge ======
A room charge is made using the method POST with minimal additional arguments making it easy for any type of interface.
In order to charge a room for an item, only three arguments are needed. The system will also block any quantities which are over the maximum. For example if an item has been configured to have a maximum quantity of 2 then the system will block any charges with a quantity over that. This helps a site limit overcharges as most rooms only have a specific quantity of each item in the room.
===== Example =====
==== Request ====
curl -i -X POST http://127.0.0.1:10022/rest/isi/charge -d "id=100&quantity=1&room=7101" -u user:password
==== Response ====
HTTP/1.1 200 OK
Date: Fri, 27 Sep 2019 17:25:03 GMT
Connection: Close
Content-Language: en
Server: DuVoice/6.03.32 DVREST/6.0.1
Access-Control-Allow-Origin: *
Location: 127.0.0.1:10022
====== Get categories ======
It's possible to also get a list of all categories using the [[dev:rest:api:ivr:isi:get|GET]] method with the parameter //category//.
^ Name ^ Type ^ Description ^
| color | string | Optional HTML compatible color used on reports and as a simple way to visually distinguish different categories. |
| description | string | Category description. |
| id | string of numbers | Category ID. |
| tenant | string | Tenant ID for this category. |
===== Example =====
==== Request ====
curl -i -X POST http://127.0.0.1:10022/rest/isi/charge -d "id=100&quantity=1&room=7101" -u user:password
==== Response ====
HTTP/1.1 200 OK
Date: Fri, 27 Sep 2019 17:38:40 GMT
Connection: close
Content-Language: en
Server: DuVoice/6.03.32 DVREST/6.0.1
Access-Control-Allow-Origin: *
Location: 127.0.0.1:10022
Content-Type: application/json
Content-Length: 481
{
"categories" : [
{
"color" : "#03a9f5",
"description" : "Beverages",
"id" : "1",
"tenant" : ""
},
{
"color" : "#ffeb3c",
"description" : "Beer, Wine & Liquor",
"id" : "2",
"tenant" : ""
},
{
"color" : "#795547",
"description" : "Snacks",
"id" : "3",
"tenant" : ""
},
{
"color" : "#617e8c",
"description" : "Others",
"id" : "4",
"tenant" : ""
}
]
}