This document serves as a technical guide for implementing custom plugins for Bókun’s Inventory Service.
Bókun is a b2b system for travel industry allowing companies to create and manage sellable products online. The system also provides a number of ways to make bookings of those products. The products themselves, their availability (when?) and capacity (how many?) we will refer to as collective in this document as “inventory”.
In order for products to be bookable, the system performs availability checks for given date/capacity first.
Bókun’s b2b solution was initially designed having local-only inventory in mind. This meant that if a supplier had its own system for managing inventory, such product would have trouble selling, as availability checks could not be performed. This in turn meant likely chances of overbooking as well as manual management of bookings across different systems. These reasons led to a new type of middleware which we call Inventory Service.
The purpose of Inventory service is to connect Bókun product with its counterpart on an external platform where the external platform acts as the master data source for bookings and availability checks. When making a booking in Bókun, the system would additionally make a series of calls in order to verify availability and bookability of given product. Those calls would be made towards Inventory plugin using REST or gRPC protocol.
We do recognize the fact that each external supplier system has a unique approach to booking process as well as uses different API. For this reason, Inventory Service (the middleware) needs to act together with a set of custom-developed plugins, one for each integration instance.
Note: only Experiences type of products are supported by the Inventory Service.
The sequence flow between platform and plugin is shown below: