예약 흐름에 슬롯을 표시하려면 정확하고 최신 인벤토리 매핑을 전송해야 합니다. 식사 장소의 특성, 테이블 결합 가능 여부, 파티 규모로 인해 예약 한 번이 이루어진 후 이용 가능한 좌석 수가 크게 달라질 수 있습니다. 이 문서의 예에서는 사용 가능한 인벤토리를 적절하게 유지하고 매핑하는 방법을 안내합니다.
다음은 Availability definition
에 지정된 매개변수입니다.
party_size
: 이 시간대의 비즈니스에서 수용할 수 있는 파티 규모입니다. 이 도움말의 다이어그램에는 파티 규모를 구성할 수 있는 다양한 방법이 표시되어 있습니다.spots_open
: 특정 예약 가능 시간대 및 파티 규모에 현재 사용할 수 있는 테이블 수입니다.spots_total
: 사용할 수 없는 테이블을 포함하여 이 구성에 대해 판매자가 보유한 총 테이블 수입니다.
이 세 매개변수는 함께 작동하여 평면도의 디지털 표현을 빌드합니다. party_size
은 각 테이블에 앉을 수 있는 인원수입니다. 테이블에서 수용할 수 있는 각 크기에 대한 항목이 있습니다. spots_open
및 spots_total
은 해당 party_size
를 수용할 수 있는 테이블 수입니다.
빈 평면도 예시
다음 평면도가 있고 활성 예약이 없는 식당을 생각해 보세요.
그림 1. 활성 예약이 없는 평면도
party_size
, spots_open
, spots_total
의 값은 다음과 같습니다.
party_size | spots_open | spots_total |
---|---|---|
4 | 3 | 3 |
5 | 3 | 3 |
6 | 4 | 4 |
7 | 1 | 1 |
8 | 1 | 1 |
이 판매자의 한 시간대의 가용성 피드는 다음과 같습니다.
{
"availability": [
{
"spots_total": 3,
"spots_open": 3,
"duration_sec": 3600,
"service_id": "1000",
"start_sec": 1535806800,
"merchant_id": "merch1",
"resources": {
"party_size": 4
}
},
{
"spots_total": 3,
"spots_open": 3,
"duration_sec": 3600,
"service_id": "1000",
"start_sec": 1535806800,
"merchant_id": "merch1",
"resources": {
"party_size": 5
}
},
{
"spots_total": 4,
"spots_open": 4,
"duration_sec": 3600,
"service_id": "1000",
"start_sec": 1535806800,
"merchant_id": "merch1",
"resources": {
"party_size": 6
}
},
{
"spots_total": 1,
"spots_open": 1,
"duration_sec": 3600,
"service_id": "1000",
"start_sec": 1535806800,
"merchant_id": "merch1",
"resources": {
"party_size": 7
}
},
{
"spots_total": 1,
"spots_open": 1,
"duration_sec": 3600,
"service_id": "1000",
"start_sec": 1535806800,
"merchant_id": "merch1",
"resources": {
"party_size": 8
}
}
]
}
예약이 있는 평면도 예시
이전에 원형 테이블을 예약한 식당은 다음과 같습니다.
그림 2. 활성 예약이 하나 있는 평면도
party_size
, spots_open
, spots_total
의 값은 다음과 같습니다.
party_size | spots_open | spots_total |
---|---|---|
4 | 2 | 3 |
5 | 2 | 3 |
6 | 3 | 4 |
7 | 1 | 1 |
8 | 1 | 1 |
이 판매자의 한 시간대의 가용성 피드는 다음과 같습니다.
{
"availability": [
{
"spots_total": 3,
"spots_open": 2,
"duration_sec": 3600,
"service_id": "1000",
"start_sec": 1535806800,
"merchant_id": "merch1",
"resources": {
"party_size": 4
}
},
{
"spots_total": 3,
"spots_open": 2,
"duration_sec": 3600,
"service_id": "1000",
"start_sec": 1535806800,
"merchant_id": "merch1",
"resources": {
"party_size": 5
}
},
{
"spots_total": 4,
"spots_open": 3,
"duration_sec": 3600,
"service_id": "1000",
"start_sec": 1535806800,
"merchant_id": "merch1",
"resources": {
"party_size": 6
}
},
{
"spots_total": 1,
"spots_open": 1,
"duration_sec": 3600,
"service_id": "1000",
"start_sec": 1535806800,
"merchant_id": "merch1",
"resources": {
"party_size": 7
}
},
{
"spots_total": 1,
"spots_open": 1,
"duration_sec": 3600,
"service_id": "1000",
"start_sec": 1535806800,
"merchant_id": "merch1",
"resources": {
"party_size": 8
}
}
]
}
결합된 테이블 지원으로 식사 가능 여부 지정
음식점에서 테이블을 결합하여 더 큰 그룹을 지원할 수 있는 방법은 여러 가지가 있습니다. 특정 크기의 파티를 수락할 수 있는지 여부를 정확하게 반영하는 방식으로 spots_open
및 spots_total
를 지정해야 합니다.
다음은 테이블 결합을 지정하는 방법의 예시입니다. 피드는 사용하는 계산 방법에 따라 다를 수 있습니다. 비즈니스 로직에 맞는 방식으로 spots_open
및 spots_total
를 지정해도 됩니다.
레스토랑에서 테이블을 결합하여 더 큰 그룹을 형성하는 것을 지원하는 경우 이를 반영하도록 spots_open
및 spots_total
를 업데이트할 수 있습니다.
예를 들어 작은 테이블 두 개를 결합하여 7~10명 규모의 단체를 수용할 수 있는 레스토랑의 경우 다음과 같이 설명할 수 있습니다.
그림 3. 활성 예약이 없는 평면도
활성 예약이 없는 경우 party_size
, spots_open
, spots_total
의 값은 다음과 같습니다.
party_size | spots_open | spots_total |
---|---|---|
4 | 3 | 3 |
5 | 3 | 3 |
6 | 4 | 4 |
7 | 1 | 1 |
8 | 1 | 1 |
9 | 1 | 1 |
10 | 1 | 1 |
이제 동일한 평면도로 작은 테이블 두 개를 결합한 10인용 예약이 이루어집니다.
그림 4. 두 테이블에 걸쳐 있는 활성 예약이 있는 평면도
그러면 party_size
, spots_open
, spots_total
의 값은 다음과 같습니다.
party_size | spots_open | spots_total |
---|---|---|
4 | 1 | 3 |
5 | 1 | 3 |
6 | 2 | 4 |
7 | 1 | 1 |
8 | 1 | 1 |
9 | 0 | 1 |
10 | 0 | 1 |