party_size: 이 시간대에 수용할 수 있는 인원수입니다. 예를 들어 2, 3 또는 4인석을 예약할 수 있는 음식점의 경우 각각 다른 party_size를 지정하여 동시에 여러 시간대에 연결할 수 있습니다.
spots_open: 이 이용 가능 여부 항목에 현재 사용 가능한 자리 수입니다.
spots_total: 판매자가 이 구성에 대해 보유한 총 스팟 수 (사용할 수 없는 스팟 포함)
이 세 가지 매개변수는 함께 작동하여 평면도의 디지털 표현을 만듭니다. party_size는 각 테이블에 수용할 수 있는 인원입니다 (테이블에 수용할 수 있는 모든 크기에 대한 항목이 있음). spots_open 및 spots_total는 해당 party_size를 수용할 수 있는 테이블 수를 나타냅니다.
레스토랑에서 더 큰 그룹을 수용하기 위해 테이블을 결합하는 방법에는 여러 가지가 있습니다. 피드에서 지정된 규모의 파티를 수락할 수 있는지 정확하게 반영하는 방식으로 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
이제 동일한 평면도를 사용하여 작은 테이블 2개를 합친 10명 규모의 모임 예약이 이루어집니다.
그림 4: 2개의 테이블에 걸쳐 활성 예약이 하나 있는 층 평면도
그러면 party_size, spots_open, spots_total의 값이 다음과 같이 변경됩니다.
[null,null,["최종 업데이트: 2025-07-26(UTC)"],[[["\u003cp\u003e\u003ccode\u003eparty_size\u003c/code\u003e, \u003ccode\u003espots_open\u003c/code\u003e, and \u003ccode\u003espots_total\u003c/code\u003e are key parameters in the Availability feed that represent a restaurant's floor plan and seating capacity.\u003c/p\u003e\n"],["\u003cp\u003e\u003ccode\u003espots_open\u003c/code\u003e and \u003ccode\u003espots_total\u003c/code\u003e are dynamic values that reflect real-time availability, decreasing as bookings are made and tables are occupied.\u003c/p\u003e\n"],["\u003cp\u003eRestaurants can utilize these parameters to indicate support for combining tables for larger parties, adjusting \u003ccode\u003espots_open\u003c/code\u003e and \u003ccode\u003espots_total\u003c/code\u003e accordingly.\u003c/p\u003e\n"],["\u003cp\u003eThe provided JSON examples demonstrate how the Availability feed is structured and how these parameters are used to represent different booking scenarios.\u003c/p\u003e\n"],["\u003cp\u003eMerchants can adapt their feed logic to align with their specific business rules for managing table availability and combinations.\u003c/p\u003e\n"]]],["The core content details how `party_size`, `spots_open`, and `spots_total` define restaurant availability. `Party_size` indicates the capacity per table. `Spots_open` represents the currently available spots, while `spots_total` is the total spots a merchant has. Restaurants can have multiple slots for the same time, each with varying `party_size`. Examples illustrate floor plan representation both with and without bookings, showing how `spots_open` decreases as bookings are made and how table combination support is handled.\n"],null,["# Structuring availability data for Reservations\n\nParameter definitions\n---------------------\n\nAs specified in the\n[`Availability`](/actions-center/verticals/reservations/e2e/reference/feeds/availability-feed#Availability-definition)\ndefinition:\n\n- `party_size`: The party size that can be accommodated during this time slot. A restaurant can be associated with multiple Slots for the same time, each specifying a different `party_size`, if for instance 2, 3, or 4 people can be seated with a reservation\n- `spots_open`: The number of spots currently available for this availability entry\n- `spots_total`: The total number of spots that the merchant has for this configuration (including those that are not available)\n\nThese three parameters work together to build a digital representation of the\nfloor plan. `party_size` is the number of people each table can hold (there will\nbe an entry for every size a table can accommodate). `spots_open` and `spots_total`\nare counts of how many tables can accommodate that `party_size`.\n\nExample empty floor plan\n------------------------\n\nImagine a restaurant with the following floor plan and no active\nbookings:\n**Figure 1:** Floor plan with no active bookings\n\nThe values for `party_size`, `spots_open`, and `spots_total` would be:\n\n| party_size | spots_open | spots_total |\n|------------|------------|-------------|\n| 4 | 3 | 3 |\n| 5 | 3 | 3 |\n| 6 | 4 | 4 |\n| 7 | 1 | 1 |\n| 8 | 1 | 1 |\n\nThe availability feed for one time slot at this merchant would look like: \n\n### JSON\n\n```json\n{\n \"availability\": [\n {\n \"spots_total\": 3,\n \"spots_open\": 3,\n \"duration_sec\": 3600,\n \"service_id\": \"1000\",\n \"start_sec\": 1535806800,\n \"merchant_id\": \"merch1\",\n \"resources\": {\n \"party_size\": 4\n }\n },\n {\n \"spots_total\": 3,\n \"spots_open\": 3,\n \"duration_sec\": 3600,\n \"service_id\": \"1000\",\n \"start_sec\": 1535806800,\n \"merchant_id\": \"merch1\",\n \"resources\": {\n \"party_size\": 5\n }\n },\n {\n \"spots_total\": 4,\n \"spots_open\": 4,\n \"duration_sec\": 3600,\n \"service_id\": \"1000\",\n \"start_sec\": 1535806800,\n \"merchant_id\": \"merch1\",\n \"resources\": {\n \"party_size\": 6\n }\n },\n {\n \"spots_total\": 1,\n \"spots_open\": 1,\n \"duration_sec\": 3600,\n \"service_id\": \"1000\",\n \"start_sec\": 1535806800,\n \"merchant_id\": \"merch1\",\n \"resources\": {\n \"party_size\": 7\n }\n },\n {\n \"spots_total\": 1,\n \"spots_open\": 1,\n \"duration_sec\": 3600,\n \"service_id\": \"1000\",\n \"start_sec\": 1535806800,\n \"merchant_id\": \"merch1\",\n \"resources\": {\n \"party_size\": 8\n }\n }\n ]\n}\n```\n\nExample floor plan with a booking\n---------------------------------\n\nNow imagine that one of the round tables was booked:\n**Figure 2:** Floor plan with one active booking\n\nThe values for `party_size`, `spots_open`, and `spots_total` would now be:\n\n| party_size | spots_open | spots_total |\n|------------|------------|-------------|\n| 4 | 2 | 3 |\n| 5 | 2 | 3 |\n| 6 | 3 | 4 |\n| 7 | 1 | 1 |\n| 8 | 1 | 1 |\n\n### JSON\n\n```json\n{\n \"availability\": [\n {\n \"spots_total\": 3,\n \"spots_open\": 2,\n \"duration_sec\": 3600,\n \"service_id\": \"1000\",\n \"start_sec\": 1535806800,\n \"merchant_id\": \"merch1\",\n \"resources\": {\n \"party_size\": 4\n }\n },\n {\n \"spots_total\": 3,\n \"spots_open\": 2,\n \"duration_sec\": 3600,\n \"service_id\": \"1000\",\n \"start_sec\": 1535806800,\n \"merchant_id\": \"merch1\",\n \"resources\": {\n \"party_size\": 5\n }\n },\n {\n \"spots_total\": 4,\n \"spots_open\": 3,\n \"duration_sec\": 3600,\n \"service_id\": \"1000\",\n \"start_sec\": 1535806800,\n \"merchant_id\": \"merch1\",\n \"resources\": {\n \"party_size\": 6\n }\n },\n {\n \"spots_total\": 1,\n \"spots_open\": 1,\n \"duration_sec\": 3600,\n \"service_id\": \"1000\",\n \"start_sec\": 1535806800,\n \"merchant_id\": \"merch1\",\n \"resources\": {\n \"party_size\": 7\n }\n },\n {\n \"spots_total\": 1,\n \"spots_open\": 1,\n \"duration_sec\": 3600,\n \"service_id\": \"1000\",\n \"start_sec\": 1535806800,\n \"merchant_id\": \"merch1\",\n \"resources\": {\n \"party_size\": 8\n }\n }\n ]\n}\n```\n\nSpecifying dining availability with combined tables support\n-----------------------------------------------------------\n\nThere are many ways that a restaurant could combine tables to support larger\ngroups. You are expected in your feeds to specify `spots_open` and `spots_total`\nin a way that accurately reflects whether you can accept parties of a given\nsize. What follows is one example of how you can specify combining tables.\nYour feeds may differ somewhat in how this calculation is made and it is\nacceptable for you to specify `spots_open` and `spots_total` in a way that\nmatches your business logic.\n\nIf a restaurant supports combining tables to form a larger party, you can\nupdate your `spots_open` and `spots_total` to reflect this.\n\nSay a restaurant can combine two small tables to seat a party of 7-10\npeople.\n**Figure 3:** Floor plan with no active bookings\n\nIn the case of no active bookings, the values for `party_size`, `spots_open`,\nand `spots_total` are:\n\n| party_size | spots_open | spots_total |\n|------------|------------|-------------|\n| 4 | 3 | 3 |\n| 5 | 3 | 3 |\n| 6 | 4 | 4 |\n| 7 | 1 | 1 |\n| 8 | 1 | 1 |\n| 9 | 1 | 1 |\n| 10 | 1 | 1 |\n\nNow, with the same floor plan, a booking is made for a party size of 10 that\ncombines two small tables.\n**Figure 4:** Floor plan with one active booking spanning two tables\n\nThen, the values for `party_size`, `spots_open`, and `spots_total` are now:\n\n| party_size | spots_open | spots_total |\n|------------|------------|-------------|\n| 4 | 1 | 3 |\n| 5 | 1 | 3 |\n| 6 | 2 | 4 |\n| 7 | 1 | 1 |\n| 8 | 1 | 1 |\n| 9 | 0 | 1 |\n| 10 | 0 | 1 |"]]