FAQs
Q: what are the steps for Channel manager Integration?
A: the steps are as follows:
- you would write integration to your system (aka Channel manager 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 Channel Manager 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?
A: sellerID
(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 sellerId
?
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?
A: 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 DATE_AND_TIME
type).
When the availabilities are provided, the client side Javascript code in the widget will then be able to show the price for selected combination of rates, pricing categories, dates, etc. without doing a separate call.
Q: How to specify pricing category for createReservation
request?
A: The call has the following structure:
createReservation
requiresReservationRequest
https://github.com/Bokun/inventory_api/blob/master/src/main/proto_plugin/plugin_api.proto#L226 which containsreservationData
.
reservationData
has date (https://github.com/Bokun/inventory_api/blob/master/src/main/proto_plugin/plugin_api.proto#L169) and time.
reservationData
also 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
pricingCategoryId
https://github.com/Bokun/inventory_api/blob/master/src/main/proto_common/common.proto#L660