Agregar disponibilidad para integraciones de v1 de pedidos minoristas

En este instructivo se explica lo siguiente:

  1. Una descripción de alto nivel sobre cómo se muestra la disponibilidad al usuario y qué tipo de datos se requieren
  2. Instrucciones específicas para codificar los datos de disponibilidad en los action_link de tus feeds
  3. Instrucciones sobre cómo actualizar esa disponibilidad si cambia durante el día
  4. Expectativas respecto de la precisión de la disponibilidad

Además de los metadatos de disponibilidad, también se espera que proporciones metadatos sobre las tarifas asociadas con la entrega o el retiro, así como los importes mínimos del pedido. Para ver una muestra de feed completa con el uso de la disponibilidad, así como las tarifas y los pedidos mínimos, consulta el Ejemplo de feed de Retail Ordering v1.

Qué información de disponibilidad se requiere

La disponibilidad de los pedidos minoristas para esta experiencia se recopila a nivel de día. Estos datos de disponibilidad se muestran a los usuarios junto con las tarifas y los importes mínimos de pedido con un mensaje como “Disponible hoy”, “Disponible mañana” o “DD/MM disponibles” según la fecha de disponibilidad más próxima.

Cuando envíes estos datos en los feeds, enviarás fechas futuras con disponibilidad, así como la última hora en la que un usuario podría realizar un pedido y programar el retiro o la entrega para cada fecha. Estos dos datos son la fecha de entrega y la hora del último pedido, respectivamente.

Por ejemplo, si la fecha de hoy es el 23 de marzo de 2021 y hay disponibilidad para la entrega mañana, siempre y cuando el usuario haga un pedido hoy a las 4:00 p.m., los datos que proporcionarías para representar esta disponibilidad son los siguientes:

  • Fecha de entrega: 24/03/2021
  • Hora del último pedido: 23/03/2021 4:00 p.m.

Dado que se incluyó la última hora de pedido, una vez transcurrido ese tiempo, el frontend de Google se actualizará automáticamente a la siguiente fecha disponible, una vez que haya pasado la última hora de pedido.

Todos los días, cuando se sube un nuevo feed de comercio, se deben incluir nuevos datos de disponibilidad. Debido a que el frontend solo muestra la disponibilidad actual, solo es necesario proporcionar las próximas 3 a 5 fechas de disponibilidad para una ubicación determinada. Esto permite que el frontend muestre la disponibilidad actual y la siguiente disponibilidad después de que haya transcurrido la última hora de pedido.

Cómo especificar la disponibilidad mediante feeds

La disponibilidad de los vínculos de acciones se incluye en el mensaje action_link del feed del comercio como parte del campo order_online_metadata. Para cada comercio y cada opción de entrega, hay una lista de mensajes AvailableDay en la ruta

Merchant.action_link.order_online_metadata.fulfillment_option.available_day

Estos mensajes deben estar en el siguiente formato:

{
  "fulfillment_date": {
    "year": "2020",
    "month": "10",
    "day": "1"
  },
  "last_ordering_time":  {
    "seconds": "1601614800"  // 2020/10/1, 10pm
  }
}

En este formato, fulfillment_date es el año, mes y día que tiene disponibilidad. Esta fecha debe hacer referencia a la ubicación especificada por este comercio.

last_ordering_time es una marca de tiempo de UNIX en segundos. Es independiente de la zona horaria y marca el último momento en que el comercio puede tomar pedidos para la fecha proporcionada en fulfillment_date. La última hora de pedido puede ser en cualquier momento anterior a la fecha de entrega o durante ella. Cuando haya pasado la última hora de entrega, Google dejará de mostrar automáticamente la disponibilidad para la fecha de entrega determinada y comenzará a mostrarla según la siguiente fecha de entrega disponible.

Para ver la definición de referencia de order_online_metadata, consulta la referencia del feed del comercio. Para ver una muestra de feed que incluye disponibilidad en formato JSON, consulta Muestras de feed de pedidos y metadatos de venta minorista.

Actualiza la disponibilidad con actualizaciones en tiempo real

Si la disponibilidad de una ubicación para la entrega o el retiro cambia entre los momentos en que envías un feed diario, se puede usar la API de REST de actualización en tiempo real a fin de actualizar la disponibilidad que se muestra a los usuarios.

Las actualizaciones se aplican a un solo comercio a la vez. Cuando realices una actualización, debes especificar el comercio que deseas actualizar y los campos que se deben actualizar como parte del extremo de la API. En el cuerpo de la solicitud, debes incluir los datos nuevos para esos campos. Los campos que se actualicen se reemplazarán por la información proporcionada.

Para actualizar la disponibilidad, realiza una solicitud de parche al siguiente extremo:

PATCH https://mapsbooking.googleapis.com/v1alpha/inventory/partners/{partnerId}/merchants/{merchantId}?updateMask=action_link

El cuerpo de la solicitud sería un objeto de comercio con solo el action_link incluido (ya que configuramos updateMask para que solo incluya el action_link):

{
  "action_link": [
    ..., // all required action_link fields here
    "order_online_metadata": {
      "fulfillment_option": [
        "fulfillment_type": "FULFILLMENT_TYPE_DELIVERY",
        "available_day": [ // Include the updated availability here
          {
            "fulfillment_date": {
              "year": "2020",
              "month": "10",
              "day": "1"
            }
            "last_ordering_time": {
              "seconds": "1601614800"  // 2020/10/1, 10pm
            }
          },
          ... // Other updated availability_days
        ]
      ]
    }
  ]
}

Si la solicitud a la API es correcta, la respuesta incluirá el objeto del comercio con los datos recién actualizados.

Para obtener una especificación de referencia completa del método de actualización del comercio, consulte Método: inventory.partners.merchants.patch.

Exactitud de la disponibilidad

Reserva con Google comprende que los detalles de la disponibilidad cambian según diversos factores. Se incluyen los siguientes factores:

  • Cambios en la disponibilidad según el tamaño del pedido
  • Cambios en la disponibilidad según el tiempo necesario para completar el pedido y la confirmación de la compra
  • Latencia entre los cambios de disponibilidad, ya sea a través de los feeds o mediante actualizaciones en tiempo real

Cualquiera de estos factores puede generar situaciones en las que la disponibilidad que se muestra al usuario inicialmente no sea la disponibilidad final que se mostrará en la confirmación de la compra. El objetivo de la implementación de la disponibilidad no es eliminarlos por completo, sino proporcionar información clara a los usuarios con la mayor frecuencia posible.

Se espera que los socios proporcionen una implementación que permita que los usuarios vean la disponibilidad precisa con la mayor frecuencia posible. Además, si la disponibilidad cambia debido a los detalles del pedido, debería mostrarse claramente a los usuarios. Si no sabes con certeza qué se requiere en tu caso, comunícate con tu contacto de Reserva con Google.