可用性の形式の選択
空き情報データを指定するには、(1)スポットを開く、または(2)繰り返しの 2 つの方法があります。すべての販売者とサービスで使用する方法を 1 つだけ選択してください。方法を選択したら、統合全体(フィード、予約サーバー、リアルタイム更新)で方法を維持する必要があります。
次のガイドを参考にして、どの可用性の形式が適しているかを判断してください。
- システムでは、可用性を明示的なスロットとして格納しますか(例: 午前 8 時~午前 8 時 30 分)?
- システムにおいて、在庫状況を定期的に保存していますか?つまり、販売者は、わずかに逸脱することなく、一定の頻度で発生するサービスを持っていますか?たとえば、スロットは午前 9 時から午後 5 時まで 15 分ごとに繰り返され、15 分単位で空いている席は 1 つだけです。
- 繰り返しを使用します。
- 販売者のサービスにおいて、同時に複数のオープン スポットが存在することがありますか?(例: 1 クラスの 30 個の空きスポット)
- 上記のいずれにも該当しない場合:
- スポットを開く
- 注: 繰り返しの使用はより効率的で、フィード サイズが小さくなる可能性がありますが、データモデルで繰り返しをサポートしない場合は、リアルタイム更新の 1 日分のスロットを再計算する必要があるため、繰り返しはおすすめしません。
Spots Open
パラメータの定義:
- Spotlight_open: この在庫状況エントリで現在利用可能なスポットの数。
- Spot_total: 販売者がこの構成で所有しているスポットの合計数(利用できないスポットを含む)。
Spots Open メソッドは、スロットの可用性をすべて明示的に示し、同じサービスに複数のスポットを作成するモデルをサポートしています。この 2 つのパラメータを組み合わせて、サービス容量のデジタル表現を構築します。
予約が発生すると、リアルタイム アップデートを通じて Spotlight_open の数は 1 ずつ減少します(spots_total の数は同じでなければなりません)。Spots_open が 0 になると、スロットは表示されなくなります。
サービスの例
ヨガ教室やビューティー サロンのフロアプランは以下のとおりです。有効な予約はありません
これらの販売者の 2 つのスロットの在庫状況フィードは次のようになります。
JSON
{ "availability": [ { "spots_total": 6, "spots_open": 6, "duration_sec": 3600, "service_id": "1001", "start_sec": 1535817600, # Sept 1, 2018 4:00:00 PM GMT "merchant_id": "1001" }, { "spots_total": 6, "spots_open": 6, "duration_sec": 3600, "service_id": "1001", "start_sec": 1535832000, # Sept 1, 2018 8:00:00 PM GMT "merchant_id": "1001", } ] }
予約があるサービスの例
ユーザーがスポットを予約しました。予約が発生すると、リアルタイム更新が発行されて空室状況が更新されます。この予約は、次の日次空室状況フィードに反映されます。これらの販売者の在庫状況フィードでは、2018 年 9 月 1 日 4:00:00 PM GMT スロットに対して、spots_open が 1 ずつ減少します。2018 年 9 月 1 日午後 8 時(グリニッジ標準時)スロットは変更されません。
予約を含むフィード スニペット
JSON
{ "availability": [ { "spots_total": 6, "spots_open": 5, "duration_sec": 3600, "service_id": "1001", "start_sec": 1535817600, # Sept 1, 2018 4:00:00 PM GMT "merchant_id": "1001" }, { "spots_total": 6, "spots_open": 6, "duration_sec": 3600, "service_id": "1001", "start_sec": 1535832000, # Sept 1, 2018 8:00:00 PM GMT "merchant_id": "1001", } ] }
Recurrence
パラメータの定義
- recurrence: 可用性スロットが一貫して繰り返されることを示します。
- repeat_until_sec: 可用性が繰り返される最後のスロットの終了時間の UTC タイムスタンプ。
- Repeat_every_sec: 連続する可用性スロット間の秒数。たとえば、Repeat_every_sec = 1800(30 分)で、start_sec が午前 9 時に開始される場合、スロットは、午前 9:00、午前 9:30、午前 10:00 などに、30 分ごとに繰り返されます。
- 注: Spotlight_open と Spot_total を指定する必要はありません。schedule_exception が存在しない場合、どちらも 1 とみなされます。
この定期実行は、毎日定期的に発生するサービス(毎日午前 9 時から午後 5 時まで 30 分ごとに実行されるサービス)の可用性を毎日示します。繰り返しでは、スロットの期間、スロットが最初に発生した日付、そのスロットを繰り返す頻度、および同じ日に繰り返しを停止すべきタイミングを指定します。注: 繰り返しのスロットの新しいセットは、日ごとに指定する必要があります。スロットが上記の期間内にすでに予約されている場合は、スケジュールの例外を指定します。たとえば、午前 11 時から午前 11 時 30 分まで午前 9 時から午後 9 時まで、30 分ごとに繰り返します。サービスごとに、定期的なスケジュールと例外があります。
サービスの例
美容室のフロアプランは以下のように設定されています。予約は受け付けていません
これらの販売者では、1 スロットの在庫状況フィードは次のようになります。
フィード スニペット:
JSON
{ "availability": [ { "merchant_id": "1001", "service_id": "1001", # haircut "start_sec": 1493888400, # May 4, 2017 9:00:00 AM GMT "duration_sec": 1800, "recurrence": { "repeat_every_sec": 1800, "repeat_until_sec": 1493915400 # May 4, 2017 4:30:00 PM GMT } } ] }
予約があるサービスの例
ここで、ユーザーがサリーとのヘアカットを午後 12 時 30 分に予約したとします。予約が発生すると、リアルタイム更新が発行されて空室状況が更新されます。この予約は、次の日次空室状況フィードに反映されます。これらの販売者の可用性フィードでは、午後 12 時 30 分~午後 1 時(30 分)のサービスについて、スケジュールの例外が設定されます。
予約を含むフィード スニペット:
JSON
{ "availability": [ { "merchant_id": "1001", "service_id": "1001", "start_sec": 1493888400, # May 4, 2017 9:00:00 AM GMT "duration_sec": 1800, "recurrence": { "repeat_every_sec": 1800, "repeat_until_sec": 1493915400 # May 4, 2017 4:30:00 PM GMT }, "schedule_exception": [ { "time_range": { "begin_sec": 1493901000, # May 4, 2017 12:30:00 PM GMT "end_sec": 1493902800 # May 4, 2017 1:00:00 PM GMT } } ], } ] }