REST Resource: inventory.partners.merchants.services.availability

リソース: Availability

販売者のサービスの空き状況スロット。時間とスポット数を示します。

JSON 表現
{
  "startTime": string,
  "duration": string,
  "spotsTotal": string,
  "spotsOpen": string,
  "availabilityTag": string,
  "resources": {
    object (Resources)
  },
  "paymentOptionId": [
    string
  ],
  "recurrence": {
    object (Recurrence)
  },
  "scheduleException": [
    {
      object (ScheduleException)
    }
  ],
  "deposit": {
    object (Deposit)
  },
  "noShowFee": {
    object (NoShowFee)
  },
  "requireCreditCard": enum (RequireCreditCard),
  "ticketTypeId": [
    string
  ],
  "durationRequirement": enum (DurationRequirement),
  "schedulingRuleOverrides": {
    object (SchedulingRuleOverrides)
  },
  "confirmationMode": enum (ConfirmationMode)
}
フィールド
startTime

string (Timestamp format)

予約スロットの開始時刻。

RFC3339 UTC「Zulu」形式のタイムスタンプ。精度はナノ秒まで、小数点以下は最大 9 桁。例: "2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z"

duration

string (Duration format)

予約枠の期間

s で終わる小数 9 桁までの秒単位の期間。例: "3.5s"

spotsTotal

string (int64 format)

この予約枠の合計スポット数と空きスポット数。例:

  • 10 個のスポットがあるヨガクラスで 3 個が予約済みの場合: availability {spotsTotal: 10, spotsOpen: 7 ...}
  • チェア マッサージの 1 回の施術が完全に予約済みの場合: availability {spotsTotal: 1, spotsOpen: 0 ...}

注: 以下で定義されている空き状況の圧縮形式を使用してリクエストを送信すると、これら 2 つのフィールドが推定されます。

  • Recurrence では、spotsTotal=1spotsOpen=1 が推定されます。
  • ScheduleException では、spotsTotal=1spotsOpen=0 が推定されます。
spotsOpen

string (int64 format)

空きスポットの数。

availabilityTag

string

この予約枠を識別するための不透明型文字列(省略可)。設定すると、予約の予約、更新、キャンセルのリクエストに含まれます。

resources

object (Resources)

異なるスタッフや部屋がサービスに含まれている場合に、個々の予約枠を区別するために使用されるリソース(省略可)。

たとえば、1 つのヨガクラスに 2 人のインストラクターがいる場合:

availability { resources { staffId: "1" staffName: "Amy" }
               spotsTotal: 10 spotsOpen: 7 }
availability { resources { staffId: "2" staffName: "John" }
               spotsTotal: 5 spotsOpen: 2 }
paymentOptionId[]

string

このスロットの支払いに使用できる支払いオプションを参照する ID のリスト。実際の支払いオプションは Merchant レベルで定義され、複数の Merchant 間で共有することもできます。

このフィールドは、サービス メッセージで指定された payment_option_id をオーバーライドします。同様に、ここで指定された payment_option_id はサービス メッセージに存在する必要はありませんが、Merchant レベルで定義する必要があります。

recurrence

object (Recurrence)

空き状況の繰り返しに関する情報で、複数の開始時刻を表します。繰り返しには、1 営業日の予約を含める必要があります。

scheduleException[]

object (ScheduleException)

このサービスをスケジュールできない時間。scheduleException メッセージの数を制限するには、隣接する例外を結合することを検討してください。

deposit

object (Deposit)

この空き情報の保証料(省略可)。サービス デポジットが指定されている場合は、オーバーライドします。

noShowFee

object (NoShowFee)

この空き状況用の無断キャンセル料(省略可)。サービスの無断欠席料金が指定されている場合は、オーバーライドします。

requireCreditCard

enum (RequireCreditCard)

この予約枠を予約するために、ユーザがクレジット カードを提供する必要があるかどうかを示します。値が設定されていない場合、サービスレベルから値が継承されます(設定されている場合)。(省略可)

ticketTypeId[]

string

この空き状況スロットでサポートされているチケットタイプのリストを示します。設定されていない場合、親サービスのすべてのチケットタイプをこのスロットで使用できます。なお、このフィールドの値は親サービスで定義する必要があります。例:

  • チケットタイプが 4 つあるサービスの場合: TicketType {ticketTypeId: "adult_1" shortDescription: "Adult weekdays"} TicketType {ticketTypeId: "adult_2" shortDescription: "Adult weekends"} TicketType {ticketTypeId: "youth_1" shortDescription: "Youth weekdays"} TicketType {ticketTypeId: "youth_2" shortDescription: "Youth weekends"}

平日の在庫を表すには: availability {ticketTypeId: "adult_1" ticketTypeId: "youth_1"...}。祝日の在庫を表すには: availability {ticketTypeId: "adult_2" ticketTypeId: "youth_2"...}

  • チケットタイプが 3 つあるサービスの場合: TicketType {ticketTypeId: "adult" shortDescription: "Adult"} TicketType {ticketTypeId: "youth" shortDescription: "Youth"} TicketType {ticketTypeId: "senior" shortDescription: "Senior"}

このタイムスロットで 3 つのチケットタイプすべてが使用可能であることを示すには、availability {ticketTypeId: "adult" ticketTypeId: "youth" ticketTypeId: "senior" ...} または `availability {...}' を使用します(このスロットには ticketTypeId を設定しないでください)。

(省略可)

durationRequirement

enum (DurationRequirement)

スロットの期間や終了時間を表示するための要件。時間枠が利用できない場合、このフィールドは無視されます。おすすめスポットのカテゴリでは使用されません。(省略可)

schedulingRuleOverrides

object (SchedulingRuleOverrides)

空き状況のスケジュール設定ルール。フィールドに値が入力されている場合は、サービスレベルの SchedulingRules の対応するスケジューリング ルールがすべてオーバーライドされます。

confirmationMode

enum (ConfirmationMode)

この空き状況の予約時に使用される確認モード。CONFIRMATION_MODE_SYNCHRONOUS の確認モードで空き状況の予約を作成しようとした場合、即座に確認または拒否されます。確認モードが CONFIRMATION_MODE_ASYNCHRONOUS の空室状況の予約を作成しようとすると、直ちに拒否するか、ステータスが PENDING として作成する必要があります。

リソース

リソースは、異なるスタッフ メンバーや部屋がサービスに含まれている場合に、個々の空き状況スロットを区別するために使用されます。スロットのサービスと時間間隔が同じでも、リソースが異なる場合、スロットは複数存在できます。

JSON 表現
{
  "staffId": string,
  "staffName": string,
  "roomId": string,
  "roomName": string,
  "partySize": integer
}
フィールド
staffId

string

サービスを提供するスタッフの ID(省略可)。このフィールドでは、すべての販売者、サービス、空き状況レコードでスタッフを識別します。また、過去の予約と関連付けることができるよう、時間が経過しても変更しないでください。employeeName が指定されている場合、このフィールドは必須です。

staffName

string

サービスを提供するスタッフ メンバーの名前(省略可)。このフィールドは、予約を行うユーザーに表示されるため、不透明型識別子ではなく、人が読んで理解できる形式にする必要があります。employeeId が存在する場合は、このフィールドを指定する必要があります。

roomId

string

サービスが提供される部屋の ID(省略可)。このフィールドでは、すべての販売者、サービス、空き状況レコードで部屋を識別します。また、過去の予約と関連付けることができるよう、時間が経過しても変更しないでください。RoomName が存在する場合は、このフィールドを指定する必要があります。

roomName

string

サービスが提供される部屋の名前(省略可)。このフィールドは、予約を行うユーザーに表示されるため、不透明型識別子ではなく、人が読んで理解できる形式にする必要があります。(省略可。ただし、roomId が存在する場合は必須)食事では、部屋名はバーやパティオなどの座席エリアにのみ使用し、固定料金メニュー、特別なアクティビティ、その他の客室以外の値(予約やディナーなど)には使用しないでください。デフォルトの座席エリアには部屋を関連付けないことを強くおすすめします。

partySize

integer

Dining のみ: この時間枠に対応できる人数。レストランは複数の Slots に同時に関連付けることができます。たとえば、予約で 2 人、3 人、4 人が座れる場合、それぞれが異なる partySize を指定できます。

繰り返し

Recurrence メッセージは省略可能ですが、空き状況スロットが一貫性を持って繰り返す場合は、これを使うとより簡潔に表すことができます。通常は 1 日の営業スケジュールを表した後、ScheduleException メッセージを使って、その営業日内で予約済みの時間帯や利用できない時間帯を表します。

要件:

  1. 空き状況スロットや繰り返しを拡張することによって同一のスロットを作成することはできません。id、startTime、duration、resources が一致する場合、スロットは同一とみなされます。
  2. 単一のサービスのスロット内で、空き状況の標準形式と繰り返しを混在させないでください。繰り返しは、予約を提供する販売者やサービスに有効で、標準形式は、定期的にクラスをスケジュール設定する販売者やサービスを対象としています。
  3. 繰り返しは 24 時間を超えないようにしてください。
JSON 表現
{
  "repeatUntil": string,
  "repeatEvery": string
}
フィールド
repeatUntil

string (Timestamp format)

空き状況が繰り返される最終時間として含める UTC タイムスタンプ。

RFC3339 UTC「Zulu」形式のタイムスタンプ。精度はナノ秒まで、小数点以下は最大 9 桁。例: "2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z"

repeatEvery

string (Duration format)

後続の予約枠との間隔を定義します。

例: 空き状況の duration が 20 分、repeatEvery が 30 分、startTime が午前 9 時、repeatUntil が午前 11 時の場合、スロットは 午前 9 時~9 時 20 分、午前 9 時 30 分~9 時 50 分、午前 10 時~10 時 20 分、午前 10 時 30 分~10 時 50 分、午前 11 時~11 時 20 分となります。(必須)

s で終わる小数 9 桁までの秒単位の期間。例: "3.5s"

ScheduleException

ScheduleException メッセージは、上記の繰り返しの例外で、1 営業日内のすでに予約された時間帯、または利用できない時間帯を表します。タイムスロットが予約されると、例外のリストが更新されて、新たに利用できなくなった時間帯が反映されます。繰り返し自体は変更されません。

JSON 表現
{
  "timeRange": {
    object (TimeRange)
  }
}
フィールド
timeRange

object (TimeRange)

例外の時間帯。繰り返しで記述されたスロット内で、例外の時間帯(左閉右開)が重複する時間帯は、利用不可と見なされます。

例: 繰り返しの duration が 20 分、repeatEvery が 30 分、startTime が午前 9 時、repeatUntil が午前 11 時で指定され、ScheduleException の timeRange が午前 9 時 45 分~11 時で指定されている場合、午前 9 時 30 分~9 時 50 分、午前 10 時~10 時 20 分、午前 10 時 30 分~10 時 50 分のスロットは利用できなくなります。

例外の時間帯は左閉右開であるため、午前 11:00 から始まる予約枠は影響を受けません。

DurationRequirement

この列挙型は、リクエストされたスロットの期間/終了時間をユーザーが確認または表示するための要件を示します。

列挙型
DURATION_REQUIREMENT_UNSPECIFIED 終了時間の処理が指定されていません。これがデフォルトです。
DO_NOT_SHOW_DURATION 終了時間はユーザーに表示されません。
MUST_SHOW_DURATION 予約を取れる前に、終了時間をユーザーに提示する必要があります。

SchedulingRuleOverrides

空き状況レベルのスケジュール設定ルール。

JSON 表現
{
  "lastBookableSec": string,
  "firstBookableSec": string,
  "lastOnlineCancellableSec": string
}
フィールド
lastBookableSec

string (int64 format)

このスロットを予約できる最終時間(秒)。このタイムスタンプは、該当するスロットの startSec の前に設定する必要があります(開始時間後にユーザーが予約できるようにする場合は、SchedulingRules.min_booking_before_end_time のサービスレベルを使用します)。この要素が存在する場合、対応する Service の SchedulingRules の min_booking_buffer で指定された値をオーバーライドします。

firstBookableSec

string (int64 format)

この予約枠を予約できる開始時刻(秒)。このタイムスタンプは、スロットの startSec よりも前にするか、lastBookableSec (指定されている場合)より前にする必要があります。

lastOnlineCancellableSec

string (int64 format)

設定した場合、この予約枠を Google で予約でキャンセルできる最後の時間(Unix エポックからの経過秒数)。この項目は、サービスレベルのキャンセル ルールよりも優先されます。(省略可)

ConfirmationMode

空き状況の予約時に使用される確認モード。

列挙型
CONFIRMATION_MODE_UNSPECIFIED 確認モードが指定されませんでした。同期確認が想定されます。
CONFIRMATION_MODE_SYNCHRONOUS この空き状況に対する予約は同期的に確認されます。
CONFIRMATION_MODE_ASYNCHRONOUS この空き状況に対する予約は非同期的に確認されます。

Methods

replace

指定されたアグリゲータによって管理されている販売者の既存の ServiceAvailability を置き換えて返します。