Tech Blog

Shelf Inventory using Alma APIs

At Purdue, we were in need of a solution which would help us get a handle on our shelves after not having done any shelf reading for approximately 2 years after going live with Alma in May of 2013.

The staff wished to complete the shelf reading process in a similar way they had done this work in Voyager:

  1. Scan a batch of books on the shelf
  2. Download the list of barcodes
  3. Run a report which identifies, missing, misshelved, and various other possible item record issues

We waited anxiously at Purdue on the planned development of the Shelf Report functionality to be created within Alma. We were excited about the development, but after trying it out, it only allowed us to mark missing items. Without retaining the context for where items with issues were scanned in the reports generated, we could not easily go back to the shelves and find the needles in the haystack.

This is where the APIs came to the rescue. Using the Alma APIs, we were able to develop a PHP based solution which met our needs and which staff felt comfortable with, as it operated in a similar manner to what they were used to using in the past with Voyager.

Alma API based Shelflist

Here is the process we developed at Purdue to meet our needs:

Students/Staff Scan a set of approx 2000 barcodes.

The barcodes are dumped into an excel file:

The staff member then uses the barcode file to run the Shelf Report job within Alma. We use this report to identify the missing items as mentioned before.

The staff member then opens the web-based app, fills out the form, and clicks submit:

Please excuse the makeshift form design as really we just wanted something functional as quickly as possible.

The staff then waits for the barcodes to be processed:

Once complete, the report can be printed or downloaded using the CSV download link at the top of the report page:

You can see from the screenshot above, the different types of problems that are identified. A user can limit the report upon submittal to only Call Number problems or only problems other than Call Number or vice versa. A user can also choose to show only the problem rows in the report if they wish.

Here is an example of a couple books that were scanned, but Alma thinks they are Not In Place, along with the location where Alma thinks they are:

Here is another example of a book that was scanned that is in the wrong position on the shelf:

After working with staff in developing the solution I quickly learned how challenging it can be staring at call numbers and trying to determine where the correct location should be. To help with this challenge, we added the two call numbers the item is currently between as well as a guide for the direction and # of spaces forward or backward that item needs to move from its current location on the shelf to get to its correct location.

So that is it. I know it is not perfect, but I wanted to share the solution as I promised to do at both my ELUNA and IGeLU developer day presentations. 🙂 So I have now made good on my promise!

Here is the link to the code:

The only tweak I have had to make to the code since developing it last spring was fixing the Dewey sort algorithm when staff made it to the Dewey-classed books this spring.

In my next post, I’ll share the code we developed for equipment scheduling in Alma.


Leave a Reply