メインコンテンツにスキップ
すべてのコレクション管理コンソールAirHost API
【AirHost API】「ブッキングエンジン(予約サイト)」実装の概要
【AirHost API】「ブッキングエンジン(予約サイト)」実装の概要
T
対応者:Takashi Obatake
一週間前以上前にアップデートされました

[ 概要 ]

AirHost API を利用して在庫・料金情報を取得することで自社ブッキングエンジン(予約サイト)を開発する場合の実装手順を説明します。 

[ 詳細 ]

実装イメージ

AirHost API から取得した在庫・料金データは、必ず社内システムのデータベース内にコピーを保持するように設計して下さい。 都度 API 経由でリアルタイムデータを取得するような実装は出来ません。

処理手順

  1. 初期データ取得

    1. GET /properties をコールして、全施設の情報を取得して、ローカル DB 内にコピーを保持します。

    2. GET /availabilities をコールして、各ルームタイプ・料金プラン毎の在庫・料金の情報を取得して、ローカル DB 内にコピーを保持します。

  2. 最新データの維持

    1. ローカル DB 内に保持した施設・予約情報を最新の状態に保つため、Push Webhook (POST /webhooks) コールを受け取り、availabilities.update Event の在庫・料金の更新内容をローカル DB に反映します。 URL を登録する必要があるので、実装・テスト実施時に AirHost の開発チームにお知らせください。

  3. フルスキャン

    1. 1日一回程度、GET /availabilities で最新の在庫・料金情報を取得することでデータの一貫性を保証することが出来ます。

  4. ブッキングエンジン(予約サイト)への情報の表示

    1. 自社予約サイト内での施設情報の表示や予約カレンダーへの在庫・料金情報の表示は、すべてローカル DB 内にあるデータを利用して処理を行うようにして下さい。 都度 AirHost API をコールするような設計にすると、アクセス制限で動作しなくなります。

  5. 予約データの作成

    1. POST /stays をコールすることで、予約サイト内で確定した予約を API 経由で AirHost 側に登録することが出来ます。

    2. POST /stays 経由で作成した予約情報に関しては、PUT /room_reservations/{id} から更新することも可能です。 ※ OTA 予約など他の予約は更新出来ません。

API ドキュメントと利用可能なエンドポイント

※「ブッキングエンジン用 API」パッケージで利用可能な API は、以下のみになります。

  • GET /properties

  • GET /availabilities

  • POST /webhooks (availabilities.update Event のみ)

  • POST /stays

  • PUT /room_reservations/{id} (POST /stays で作成した予約のみ対象)

  • GET /stays (POST /stays で作成した予約のみ対象)

こちらの回答で解決しましたか?