Для успешного отображения ваших слотов в процессе бронирования необходимо предоставить точную и актуальную карту вашего инвентаря. Количество свободных мест может значительно меняться после одного бронирования из-за особенностей заведения, возможности объединения столиков или размера группы. Примеры в этом документе помогут вам правильно отслеживать и отображать доступный инвентарь.
Ниже приведены параметры, указанные в 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 | spot_open | spot_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 | spot_open | spot_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 | spot_open | spot_total |
---|---|---|
4 | 3 | 3 |
5 | 3 | 3 |
6 | 4 | 4 |
7 | 1 | 1 |
8 | 1 | 1 |
9 | 1 | 1 |
10 | 1 | 1 |
Теперь, при той же планировке зала, можно забронировать столик для вечеринки из десяти человек, объединив его за двумя небольшими столиками.
Рисунок 4. План этажа с одним активным бронированием на два стола.
Тогда значения party_size
, spots_open
и spots_total
будут следующими:
party_size | spot_open | spot_total |
---|---|---|
4 | 1 | 3 |
5 | 1 | 3 |
6 | 2 | 4 |
7 | 1 | 1 |
8 | 1 | 1 |
9 | 0 | 1 |
10 | 0 | 1 |