[null,null,["上次更新時間:2025-07-26 (世界標準時間)。"],[],[],null,["# Structure Availability Data for Reservations\n\nTo successfully display your slots in the booking flow, you must send an\naccurate and up-to-date mapping of your inventory. The number of spots that are\nopen can change significantly after a single booking because of the nature of\ndining venues and the ability to join tables or party size. The examples in this\ndocument guide you on how to maintain and map your available inventory properly.\n| **Note:** The default max `party_size` set for your integration is `10`, but you can increase it up to `20` with the **Change max party size** feature in the Account management page selected in the drop-down on the top right of the Actions Center. This setting applies to all dining merchants in the integration, and you can't customize the setting for individual merchants. For more information, see [Editable Features](/actions-center/verticals/reservations/e2e/partner-portal/testing/features).\n\nFollowing are the parameters as specified in the\n[`Availability definition`](/actions-center/verticals/reservations/e2e/integration-steps/feeds/availability-feed):\n\n- `party_size`: the party size that the business can accommodate at this time slot. The diagrams in this article display the various ways you can configure party size.\n- `spots_open`: the number of tables currently available for a specific availability slot and party size.\n- `spots_total`: the total number of tables that the merchant has for this configuration, including the unavailable tables.\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 is\nan entry for each size that a table can accommodate. `spots_open` and\n`spots_total` are counts of tables that can accommodate that `party_size`.\n\n### Example of empty floor plan\n\nImagine a restaurant with the following floor plan and no active bookings:\n\n***Figure 1.*** *Floor plan with no active bookings.*\n\nThe following are the values for `party_size`, `spots_open`, and `spots_total`:\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 looks like following: \n\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### Example of floor plan with a booking\n\nA restaurant with one of the round tables previously booked is as follows:\n\n***Figure 2.*** *Floor plan with one active booking.*\n\nThe following are the values for `party_size`, `spots_open`, and `spots_total`:\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\nThe Availability Feed for one time slot at this merchant looks like following: \n\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### Specify dining availability with combined tables support\n\nThere are many ways in which a restaurant can combine tables to support larger\ngroups. You need to specify the `spots_open` and `spots_total` in a way that\naccurately reflects whether you can accept parties of a given size.\n\nFollowing is an example of how you can specify combining tables. Your feeds\nmight differ based on the calculation method you use. It's acceptable for you to\nspecify `spots_open` and `spots_total` in a way that matches your business\nlogic.\n\nIf a restaurant supports combining tables to form a larger party, you can update\nyour `spots_open` and `spots_total` to reflect this.\n\nFor example, a restaurant that can combine two small tables to seat a party of\n7-10 people:\n\n***Figure 3.*** *Floor plan with no active bookings.*\n\nIn the case of no active bookings, following are the values for `party_size`,\n`spots_open`, and `spots_total`:\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 ten that\ncombines two small tables.\n\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 as\nfollows:\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 |"]]