Title-level page requests are linked to a specific item immediately upon creation. If only one item of the requested instance is available, it is selected to fulfill the request. If multiple items are available, things get a bit more compicated:
- if request fulfillment preference is "Delivery", a random available item is selected
- if fulfillment preference is "Hold Shelf", an item closest to the requested pickup service point is selected
This document aims to explain what "item closest to the pickup service point" means and how such an item is found.
Location tree
All location-related domain objects in FOLIO form a hirarchical tree-like structure with Institutions as roots and Locations as leaves:
Every request with fulfillment preference "Hold Shelf" will have a pickup service point with one or more locations assigned to it. Available items of the requested instance are also located in specific locations. So the task of finding an item closest to the pickup service point boils down to finding an item whose location is closest to one of the pickup service point's locations. The distance between locations is determined by the number of edges (hops between layers) on the shortest path between locations on the diagram.
Item picking algorithm
Examples
- Pickup service point location
- Items available
1) Available items in the same library
- Is there an available item in one of the pickup service point's locations? (A, E) - No
Is there an available item in any other location in the same library? (A, C) - Yes, there are available items in Locations B and F
- Were multiple items found? - Yes, two items were found
- Randomly pick one of the two items and link it to the request
2) Available items on the same campus
- Is there an available item in one of the pickup service point's locations? (A, E) - No
Is there an available item in any other location in the same library? (A, C) - No, there are no available items in Locations B or F
Is there an available item in any other library on the same campus? (A, B) - Yes, there is an available item in location D. No items were found in Locations C, G or H
- Were multiple items found? - No, just one
- Link the item to the request