가용성 형식 선택
참석 여부 데이터를 지정하는 방법에는 (1) Spots Open 또는 (2) Recurrence의 두 가지가 있습니다. 모든 판매자 및 서비스에서 사용할 방법을 하나만 선택하세요. 방법을 선택한 후에는 전체 통합 (피드, 예약 서버, 실시간 업데이트)을 유지해야 합니다.
다음 가이드를 사용하여 더 적합한 가용성 형식을 결정하세요.
- 시스템에서 명시적 슬롯(예: 오전 8:00~오전 8:30)으로 가용성을 저장하나요?
- 스팟 열기 사용
- 시스템에서 재고를 반복 형식으로 저장하나요? 즉, 판매자가 일관된 편차로 서비스를 제공하면서도 편차가 거의 없습니다. 예를 들어 오전 9시부터 오후 5시까지 15분마다 슬롯이 반복되며 15분 단위로는 1개의 좌석만 사용할 수 있습니다.
- Recurrence 사용
- 판매자 서비스의 경우 한 번에 2개 이상의 빈 공간을 가질 수 있나요? 예: 수업의 영업 담당 자리 30개
- 스팟 열기 사용
- 해당 사항 없음
- 스팟 열기 사용
- 참고: 반복 사용은 좀 더 효율적이며 피드 크기가 더 작을 수 있지만 데이터 모델이 기본적으로 반복을 지원하지 않는 경우 실시간 업데이트를 할 때마다 하루 종일 반복되는 슬롯을 다시 계산해야 하기 때문에 반복을 사용하지 않는 것이 좋습니다.
Spots Open
매개변수 정의:
- Spot_open: 이 이용 가능 여부 항목에 사용할 수 있는 스팟 수입니다.
- Spot_total: 사용할 수 없는 위치를 포함하여 판매자가 이 구성에 대해 보유한 총 스팟 수입니다.
Spots Open 메서드는 모든 슬롯 가용성을 명시적으로 표시하고 동일한 서비스에 여러 스팟을 포함하는 모델을 지원합니다. 이 두 매개변수는 함께 작동하여 서비스 용량의 디지털 표현을 빌드합니다.
예약이 발생하면 실시간 업데이트를 통해Spot_open 수가 1씩 감소해야 합니다 (Spot_total 수는 동일하게 유지되어야 함). Spot_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시(GMT) 시간대의Spot_open이 1씩 감소합니다. 2018년 9월 1일 오후 8:00:00 GMT 슬롯은 변경되지 않습니다.
예약이 있는 피드 스니펫
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", } ] }
반복
매개변수 정의
- recurrency: 일관적으로 반복되는 가용성 슬롯을 나타냅니다.
- 반복_가능_초: 마지막 슬롯의 종료 시간이 UTC 타임스탬프로 반복됩니다.
- 반복_모든_초: 연속적인 가용성 슬롯 사이의 시간(초)입니다. 예를 들어 Repeat_every_sec = 1800 (30분)이고 start_sec가 오전 9시에 시작한다면 슬롯이 30분마다 9:00 AM, 9:30 AM, 10:00 AM 등에 반복됩니다.
- 참고: Spot_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분에 Sally 헤어컷을 예약한다고 가정해 보겠습니다. 예약이 이루어지면 실시간 업데이트를 통해 참석 여부를 업데이트합니다. 다음 일일 가용성 피드에 이 예약이 반영됩니다. 이러한 판매자의 재고 피드에는 30분 길이의 서비스에 대해 오후 12시 30분~오후 1시 사이에 일정 예약 예외가 적용됩니다.
예약이 포함된 피드 스니펫:
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 } } ], } ] }