Cómo estructurar los datos de disponibilidad para las reservas

Para mostrar correctamente tus espacios en el flujo de reserva, debes enviar una asignación precisa y actualizada de tu inventario. La cantidad de lugares disponibles puede cambiar significativamente después de una sola reserva debido a la naturaleza de los restaurantes y la capacidad de unir mesas o el tamaño del grupo. Los ejemplos de este documento te guían para mantener y asignar correctamente tu inventario disponible.

A continuación, se muestran los parámetros especificados en Availability definition:

  • party_size: Es la cantidad de personas que el comercio puede recibir en este horario. En los diagramas de este artículo, se muestran las diferentes formas en que puedes configurar el tamaño del grupo.
  • spots_open: Es la cantidad de mesas disponibles actualmente para un horario de disponibilidad y un tamaño de grupo específicos.
  • spots_total: Es la cantidad total de mesas que tiene el comercio para esta configuración, incluidas las mesas no disponibles.

Estos tres parámetros funcionan en conjunto para crear una representación digital del plano. party_size es la cantidad de personas que pueden sentarse en cada mesa. Hay una entrada para cada tamaño que puede admitir una mesa. spots_open y spots_total son recuentos de mesas que pueden acomodar ese party_size.

Ejemplo de plano de planta vacío

Imagina un restaurante con el siguiente plano y sin reservas activas:

Figura 1: Plano de planta sin reservas activas

Figura 1. Plano de planta sin reservas activas.

Los siguientes son los valores de party_size, spots_open y spots_total:

party_size spots_open spots_total
4 3 3
5 3 3
6 4 4
7 1 1
8 1 1

El feed de disponibilidad para un horario de este comercio se ve de la siguiente manera:

{
  "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
          }
        }
      ]
}

Ejemplo de plano de planta con una reserva

Un restaurante con una de las mesas redondas reservadas anteriormente es el siguiente:

Figura 1: Plano de planta con una reserva activa

Figura 2. Plano de planta con una reserva activa.

Los siguientes son los valores de party_size, spots_open y spots_total:

party_size spots_open spots_total
4 2 3
5 2 3
6 3 4
7 1 1
8 1 1

El feed de disponibilidad para un horario de este comercio se ve de la siguiente manera:

{
  "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
          }
        }
      ]
}

Especifica la disponibilidad de mesas con compatibilidad para mesas combinadas

Existen muchas formas en que un restaurante puede combinar mesas para recibir grupos más grandes. Debes especificar spots_open y spots_total de manera que reflejen con precisión si puedes aceptar grupos de un tamaño determinado.

A continuación, se muestra un ejemplo de cómo puedes especificar la combinación de tablas. Es posible que tus feeds difieran según el método de cálculo que utilices. Puedes especificar spots_open y spots_total de una manera que coincida con la lógica de tu negocio.

Si un restaurante admite la combinación de mesas para formar un grupo más grande, puedes actualizar tus spots_open y spots_total para reflejar esto.

Por ejemplo, un restaurante que puede combinar dos mesas pequeñas para sentar a un grupo de 7 a 10 personas:

Figura 1: Plano de planta sin reservas activas

Figura 3. Plano de planta sin reservas activas.

En el caso de que no haya reservas activas, los valores de party_size, spots_open y spots_total son los siguientes:

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

Ahora, con el mismo plano, se realiza una reserva para un grupo de diez personas que combina dos mesas pequeñas.

Figura 1: Plano de planta con una reserva activa que abarca dos mesas

Figura 4. Plano de planta con una reserva activa que abarca dos mesas.

Luego, los valores de party_size, spots_open y spots_total son los siguientes:

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