실시간 업데이트 구조화

실시간 업데이트 사용 사례

다음과 같은 시나리오에서는 항상 실시간 업데이트를 실행해야 합니다.

  • 사용자가 시스템에서 예약을 취소하고 예약 시간이 있습니다.
  • 사용자가 Actions Center 및 이용 가능 시간대를 더 이상 사용할 수 없습니다.
  • Actions Center를 통해 한 예약이 면책 조항을 제시할 수 있습니다. 새 버전을 사용하려면 예약 및 이용 가능 여부도 확인할 수 있습니다. 다시 사용할 수 있습니다

또한 이용 가능 여부 대체: RTU 다음과 같은 시나리오에서 실시간 업데이트를 실행해야 합니다.

  • 판매자가 시스템에서 일정 (재고)을 변경하는 경우
  • 사용자가 개발자 시스템에서 예약한 시간대와 예약 가능 시간대 더 이상 사용할 수 없습니다.
  • 기존 통합을 사용하는 CheckAvailability님, 예약 서버에서 CheckAvailability 드림 호출은 실제 인벤토리와 일치하지 않는 인벤토리를 반환합니다.

모든 Maps Booking API 호출이 필요한 것은 아닙니다. 다음은 필수입니다.

통합 유형에 따라 다음 항목이 사용 가능하거나 필요할 수 있습니다.

예약 RTU 업데이트

Actions Center 예약이 업데이트된 경우 (예: 취소 또는 시스템에 있는 경우 notification.partners.bookings.patch 드림 (BookingNotification.UpdateBooking) 를 전송해야 합니다.

수정 가능한 필드

  • status
  • startTime
  • duration
  • partySize
  • paymentInformation.prepaymentStatus
를 통해 개인정보처리방침을 정의할 수 있습니다. <ph type="x-smartling-placeholder">

취소 예

Request:
PATCH https://mapsbooking.googleapis.com/v1alpha/notification/partners/<PARTNER_ID>/bookings/<BOOKING_ID>?updateMask=status

Body:
{
  "name": "partners/<PARTNER_ID>/bookings/<BOOKING_ID>",
  "merchantId": "10001",
  "serviceId": "1001",
  "startTime": "2014-10-02T15:01:23.045123456Z",
  "duration": "3000s",
  "status": "CANCELED"
}

이용 가능 여부 교체 RTU

<ph type="x-smartling-placeholder">

작업 결과를 업데이트하는 데 사용할 수 있는 두 가지 재고:

  • 일괄 교체 (InventoryUpdate.BatchServiceAvailability): 판매자 한 명 및 여러 명의 재고 수량 데이터를 완전히 대체합니다. 제공합니다
    • 참고: 이 일괄 호출은 원자성을 보장하지 않습니다. 단 성공적으로 업데이트된 이용 가능 시간대가 반환됩니다.
  • 단일 바꾸기 (InventoryUpdate.ReplaceServiceAvailability): 단일 판매자 및 서비스의 이용 가능 여부를 완전히 대체합니다.

다음을 사용해 주세요. 참조 확인하세요.

실시간 업데이트는 데이터와 동일한 가용성 구조를 사용해야 합니다. 피드를 통해 전송됩니다 다음 중 하나를 사용해야 합니다.

  • spotsOpen
  • recurrence

호출할 교체 메서드 선택

다음 가이드를 사용하여 더 적합한 교체 방법을 결정하세요. 적합:

  • 단일 예약이 여러 서비스에 영향을 미치나요? 예를 들어, 헤어컷을 하거나 색상 (각각 고유한 서비스)은 스타일리스트에게 예약되므로 모든 해당 시간대의 스타일리스트에 연결된 서비스를 삭제해야 합니다.
  • 시스템은 가끔씩 모든 클라이언트 ID를 전송하여 마지막 업데이트 이후 재고 수량 변경 (권장하지 않음)
    • 일괄 교체
    • 참고: 인벤토리 RTU는 업데이트 발생 후 5분 이내에 전송되어야 합니다. 도움이 될 수 있습니다 따라서 최소 5분마다 업데이트를 확인하고 전송해야 합니다.
  • 해당 사항이 없는 경우
    • 단일 교체
    • 참고: 단일 교체 호출을 여러 번 사용하여 일괄 교체 호출을 실행하지만 단일 일괄 교체 호출을 사용하는 것이 일괄 교체 호출

실시간 업데이트: Spots Open 형식

피드, 예약 서버, 예약 서버 전체에서 동일한 형식을 사용하는 것이 실시간 업데이트.

spots_open 피드 스니펫은 다음과 같습니다.

피드 스니펫

   "availability": [
          {
            "merchant_id": "1001",
            "service_id": "12310",
            "spots_open": 2,
            "spots_total": 2,
            "start_sec": 1412263800, # October 02, 2014 15:30:00
            "duration_sec": 1800,
            "availabilityTag": "1000001"
          }
    ]

Inventory Update API의 경우 오후 3시 30분 시간대 예약됨:

실시간 업데이트 스니펫 대체

  {
    "extendedServiceAvailability": [
      {
        "merchantId": "1001",
        "serviceId": "12310",
        "startTimeRestrict": "2014-10-02T15:01:23.045123456Z",
        "endTimeRestrict": "2014-10-02T19:01:23.045123456Z",
        "availability": [
          {
            "startTime": "2014-10-02T15:30:00.00Z",
            "duration": "3600s",
            "spotsOpen": "1",
            "spotsTotal": "2",
            "availabilityTag": "1000001"
          }
        ]
      }
    ]
  }

다음은 오후 3시 30분 예약됨:

피드 스니펫

"availability": [
        {
          "merchant_id": "1001",
          "service_id": "12310",
          "spots_open": 1,
          "spots_total": 2,
          "start_sec": 1412263800, # October 02, 2014 15:30:00
          "duration_sec": 1800,
          "availabilityTag": "1000001"
        }
      ]
드림 <ph type="x-smartling-placeholder">

실시간 업데이트: 반복 형식

피드, 예약 서버, 예약 서버 전체에서 동일한 형식을 사용하는 것이 실시간 업데이트.

반복을 사용하는 피드는 다음과 같습니다.

피드 스니펫

  "availability": [
        {
          "merchant_id": "1001",
          "service_id": "12310",
          "spots_open": 1,
          "spots_total": 1,
          "start_sec": 1540890000, # October 30, 2018 9:00:00 AM
          "duration_sec": 1800,
          "recurrence": {
            "repeat_every_sec": 1800,
            "repeat_until_sec": 1540918800 # October 30, 2018 5:00:00 PM
          },
          "schedule_exception": [
            {
              "time_range": {
                "begin_sec": 1540902600, # October 30, 2018 12:30:00 PM
                "end_sec": 1540904400 # October 30, 2018 1:00:00 PM
              }
            }
          ],
        }
      ]

Inventory Update API의 경우 오후 3시 30분 시간대가 다음과 같이 예약됨

  {
    "extendedServiceAvailability": [
      {
        "merchantId": "1001",
        "serviceId": "12310",
        "startTimeRestrict": "2018-10-30T15:01:23.045123456Z",
        "endTimeRestrict": "2018-10-30T19:01:23.045123456Z",
        "availability": [
          {
            "startTime": "2018-10-30T15:30:00.00Z",
            "duration": "3600s",
            "spotsOpen": "1",
            "scheduleException": [
             {
                "timeRange": {
                  "startTime": "2018-10-30T12:30:00.00Z",
                  "endTime": "2018-10-30T13:00:00.00Z"
                }
              },
              {
                "timeRange": {
                  "startTime": "2018-10-30T15:30:00.00Z",
                  "endTime": "2018-10-30T16:00:00.00Z"
                }
              }
            ]
          }
        ]
      }
    ]
  }
드림 <ph type="x-smartling-placeholder">

다음은 다음 일일 피드에서 예상되는 항목의 예입니다. 해당 판매자의 전체 서비스 이용 가능 여부 및 이전 및 새 schedule_exceptions:

피드 스니펫

   "availability": [
        {
          "merchant_id": "1001",
          "service_id": "12310",
          "spots_open": 1,
          "spots_total": 1,
          "start_sec": 1540890000, # October 30, 2018 9:00:00 AM
          "duration_sec": 1800,
          "recurrence": {
            "repeat_every_sec": 1800,
            "repeat_until_sec": 1540918800 # October 30, 2018 5:00:00 PM
          },
          "schedule_exception": [
            {
              "time_range": {
                "begin_sec": 1540902600, # October 30, 2018 12:30:00 PM
                "end_sec": 1540904400 # October 30, 2018 1:00:00 PM
              }
            },
            {
              "time_range": {
                "begin_sec": 1540913400, # October 30, 2018 3:30:00 PM
                "end_sec": 1540915200 # October 30, 2018 4:00:00 PM
              }
            }
          ],
        }
      ]

실시간 업데이트를 제출해야 하는 경우

이용 가능 여부가 변경될 때마다 실시간 업데이트를 지속적으로 전송해야 합니다. 이는 일반적인 재고 수량 피드와는 별개로 가용성이 동기화되도록 하루에 한 번 제출 서로 통신할 수 있습니다