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)
  },
  "prepayment": {
    object (Prepayment)
  },
  "requireCreditCard": enum (RequireCreditCard),
  "ticketTypeId": [
    string
  ],
  "durationRequirement": enum (DurationRequirement),
  "schedulingRuleOverrides": {
    object (SchedulingRuleOverrides)
  },
  "confirmationMode": enum (ConfirmationMode),
  "linkoutRequiredReason": enum (LinkoutRequiredReason)
}
フィールド
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)

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

prepayment

object (Prepayment)

省略可。この空き状況のオプションの前払い情報。

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 の確認モードで空き状況の予約を作成しようとした場合、即座に拒否されるか、保留中のステータスで作成されます。

linkoutRequiredReason

enum (LinkoutRequiredReason)

省略可。このスロットにリンクアウトが必要な理由。設定する場合は、このスロットの Merchant リソースに有効な LinkoutTemplate が必要です。(省略可)

リソース

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

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

string

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

staffName

string

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

roomId

string

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

roomName

string

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

partySize

integer

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

roomDescription

object (Text)

省略可。ローカライズされた客室の説明。設定する場合は、デフォルト値を指定する必要があります。販売者の言語 / 地域で一般的な言語も指定することをおすすめします。(省略可)

繰り返し

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 から始まる予約枠は影響を受けません。

一括前払い

予約の一部としてユーザーに請求される可能性のあるお支払い。

JSON 表現
{
  "priceInfo": {
    object (PriceInfo)
  }
}
フィールド
priceInfo

object (PriceInfo)

料金の詳細を示すコンテナ。

PriceInfo

料金の詳細を示すコンテナ。

JSON 表現
{
  "priceType": enum (PriceType),

  // Union field price_options can be only one of the following:
  "price": {
    object (Price)
  },
  "priceRange": {
    object (PriceRange)
  }
  // End of list of possible types for union field price_options.
}
フィールド
priceType

enum (PriceType)

料金または料金帯の適用方法(1 人あたりまたは固定)を定義します。

共用体フィールド price_options。価格オプションでは、正確な価格または範囲を指定します。price_options は次のいずれかになります。
price

object (Price)

サービスの価格または料金。

priceRange

object (PriceRange)

サービスの上限または下限、または料金の上限または下限。

価格帯:

両方の値が設定されていない限り、無制限として扱われる金額の範囲のラッパー。minAmount と maxAmount の少なくとも 1 つは必須です。

JSON 表現
{
  "minPrice": {
    object (Price)
  },
  "maxPrice": {
    object (Price)
  }
}
フィールド
minPrice

object (Price)

最低額。

maxPrice

object (Price)

上限額。常に minPrice より大きくする必要があります。

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 この空き情報に対する予約は非同期的に確認されます。

LinkoutRequiredReason

スロットにリンク先が表示される理由。

列挙型
LINKOUT_REQUIRED_REASON_UNSPECIFIED デフォルト値: 使用しないでください。不明と同じです。
PAYMENT_REQUIRED スロットを予約するには、パートナー プラットフォームで支払いを行う必要があります。

メソッド

replace

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