フィードで在庫状況を設定する

可用性の形式の選択

空き情報データを指定するには、(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 になると、スロットは表示されなくなります。

    サービスの例

    ヨガ教室やビューティー サロンのフロアプランは以下のとおりです。有効な予約はありません

    図 1: 有効な予約がない構内図

    これらの販売者の 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",
                }
              ]
        }
        

    予約があるサービスの例

    図 2: 1 件の有効な予約を含む間取り

    ユーザーがスポットを予約しました。予約が発生すると、リアルタイム更新が発行されて空室状況が更新されます。この予約は、次の日次空室状況フィードに反映されます。これらの販売者の在庫状況フィードでは、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 分ごとに繰り返します。サービスごとに、定期的なスケジュールと例外があります。

    サービスの例

    美容室のフロアプランは以下のように設定されています。予約は受け付けていません

    図 3: 有効な予約がない構内図

    これらの販売者では、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
                }
              }
            ]
        }
        

    予約があるサービスの例

    図 4: 構内図が 1 件の有効な構内図

    ここで、ユーザーがサリーとのヘアカットを午後 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
                      }
                    }
                  ],
                }
              ]
        }