Q: what are the steps for Inventory Service Integration?
A: the steps are as follows:
- you would write integration to your system (aka Inventory plugin), and deploy it. This plugin will make calls to your system and provide responses to our system. We've published gRPC proto files or Swagger definition which can be used by everyone to integrate with Bókun
- We have Inventory Harness project which is used as a testing tool for your written service. It acts as a Bókun platform, and sends some mock requests to your server. If responses from your server doesn't satisfy rules, harness will report this to you. We usually recommend to test your server before publishing it using our harness to ensure your responses are valid
- After you have tested your solution against the harness and happy with the results, you contact us, and specify the details of your deployed plugin (as explained in Step 1: plugin registration) so we can register your plugin within Bókun test environment
- Once the plugin is registered you can map products, rates, pricing categories etc. and make bookings using our test environment
- If both parties are happy with the results from the test environment, the plugin is installed on production
Q: What is a plugin?
A: You need to create & deploy a service, which will listen on a certain port for incoming messages and respond to them using agreed protocol (gRPC or REST)
Q: How to use the environment variables for harness?
A: Environment variables mimic plugin parameters that are sent to the plugin. For example having environment variable
PLUGIN_CONFIG_API_USERNAME=someuser will result
API_USERNAME=someuser parameters to be sent to the plugin
Q: How to add
sellerID on the contracts as custom input fields?
SellerExternalID) is free text which is send to the plugin.To add it, navigate to Settings → Product extensions →Custom input fields → Contracts tab→ add field having SellerExternalID in Field Code.
Q: Where to look for
A: https://github.com/Bokun/inventory_api/blob/master/src/main/proto_common/common.proto has BookingSource description that is passed to IS plugins when a booking takes place. BookingSource contains various seller info including seller ID. Same with REST counterpart.
Q: Do we need to update IS plugin for the
sellerID to be passed to the plugin?
A: Yes. If not, the plugin will ignore it since there is no code to handle.
Q: Can the SELLER ID not be applied to the OTA contract terms of Viator, GYG and Expedia?
A: If SELLER ID for OTA vendor contract is not specified it won't be passed to the plugin.
Q: How does
ProductAvailabilityRequest work and how does the availabilities populate the Bókun calendar?
ProductAvailabilityRequest is the so called deep call. The response (
ProductAvailabilityWithRatesResponse) we are looking for are all availabilities for all pricing categories (age group) so we can fill the booking calendar.
This response will have to contain available quantity for each start date (if products are of
DATE type) and time as well (in case if this product is of
Q: How to specify pricing category for
A: The call has the following structure:
ReservationRequesthttps://github.com/Bokun/inventory_api/blob/master/src/main/proto_plugin/plugin_api.proto#L226 which contains
reservationDatahas date (https://github.com/Bokun/inventory_api/blob/master/src/main/proto_plugin/plugin_api.proto#L169) and time.
reservationDataalso has a list of reservations (https://github.com/Bokun/inventory_api/blob/master/src/main/proto_plugin/plugin_api.proto#L202).
- Each Reservation has passengers (https://github.com/Bokun/inventory_api/blob/master/src/main/proto_common/common.proto#L645) (if priced per person).
- Each Passenger has