Reservas consultando o status do comerciante de ponta a ponta usando a API

Casos de uso

A API Google Maps Booking oferece dois métodos, que podem ser usados para recuperar programaticamente o status dos comerciantes individuais para várias integrações ou Anúncios dos Serviços Locais inventário.

Casos de uso da API Merchant Status:

  • Aprimore as ferramentas existentes de gestão de relacionamento com o cliente para demonstrar sua aos clientes como o inventário deles é exibido no Google.
  • Criar um painel para acompanhar o status do inventário e da correspondência de seus comerciantes.
  • Recupere de maneira programática os status de correspondência e reserva dos seus comerciantes e corrigir informações incorretas para melhorar a qualidade dos dados.

O que o status do comerciante contém

A MerchantStatus contém as seguintes informações:

  • Status do inventário do comerciante: aplica-se aos comerciantes que fazem agendamentos e/ou estão na lista de espera.
  • Status de correspondência do comerciante: inclui detalhes sobre a ficha de empresa correspondente
  • Para anúncios dos Serviços Locais do Google) do provedor de serviços de comerciante correspondente: inclui o ID do cliente e as categorias de serviço.
  • Os URLs que demonstram como o comerciante aparece no Google.

Procure o status de um único comerciante

Você pode ver o status de um único comerciante usando: inventory.partners.merchants.getStatus:

GET https://mapsbooking.googleapis.com/v1alpha/inventory/partners/{partnerId}/merchants/{merchantId}/status

Aqui está um exemplo de código Python (veja exemplos em mais linguagens) aqui):

from google.auth.transport.requests import AuthorizedSession
from google.oauth2 import service_account

credentials = service_account.Credentials.from_service_account_file(
    './your_key.json')
scoped_credentials = credentials.with_scopes(
    ['https://www.googleapis.com/auth/mapsbooking'])
authed_session = AuthorizedSession(scoped_credentials)

response = authed_session.get('https://partnerdev-mapsbooking.googleapis.com' +
    '/v1alpha/inventory/partners/123456789/merchants/001/status')

Um exemplo A resposta do MerchantStatus é semelhante a esta:

  {
    "name": "partners/123456789/merchants/001/status",
    "merchantName": "Foo Bar Restaurant",
    "inputGeoInfo": {
      "unstructured_address": "123 Foo Bar Street, Mountain View"
    },
    "processingStatus": "COMPLETED",
    "bookingStatus": {
      "hasValidFutureInventory": true
    },
    "waitlistStatus": {
      "hasValidWaitlistService": true
    }
    "geoMatch": {
      "name": "Foo Bar Restaurant",
      "formattedAddress": "123 Foo Bar St, Mountain View, CA 94043",
      "placeId": "ChIAAAAAAAAABBBBBBBB"
    },
    "directUrls": [
      {
        "type": "BOOKING",
        "url": "https://reserve-partnerdev.sandbox.google.com/maps/reserve/v/dine/m/Nwaaaaa"
      },
      {
        "type": "WAITLIST",
        "url": "https://reserve-partnerdev.sandbox.google.com/maps/reserve/v/wait/c/iDbbbbb"
      }
    ]
  }

Recuperar status de comerciantes em massa

É possível recuperar o status de todos ou de um grupo deles atender a certas condições de correspondência/inventário, usando inventory.partners.merchants.status.list. Por exemplo, é possível fazer esta chamada para mostrar todos os comerciantes sem correspondência com uma reserva válida com data futura inventário:

GET https://mapsbooking.googleapis.com/v1alpha/inventory/partners/{partnerId}/merchants/status?pageSize=50&bookingInventoryStatusRestrict=HAS_VALID_FUTURE_INVENTORY&geoMatchRestrict=GEO_UNMATCHED

Veja um exemplo de resposta:

  {
    "merchantStatuses": [
      {
        "name": "partners/123456789/merchants/002/status",
        "merchantName": "Bar Foo Restaurant",
        "inputGeoInfo": {
          "unstructured_address": "234 Bar Foo Street, Mountain View"
        },
        "processingStatus": "COMPLETED",
        "bookingStatus": {
          "hasValidFutureInventory": true
        },
        "waitlistStatus": {},
      },
      ...
      {
        "name": "partners/123456789/merchants/080/status",
        "merchantName": "Baz Restaurant",
        "inputGeoInfo": {
          "unstructured_address": "345 Baz Street, Mountain View"
        },
        "processingStatus": "COMPLETED",
        "bookingStatus": {
          "hasValidFutureInventory": true
        },
        "waitlistStatus": {
          "hasValidWaitlistService": true
        },
      },
    ],
    "nextPageToken": "AAABBBB"
  }

Essa resposta conterá 50 MerchantStatus que satisfaça as condições de filtragem e ordenados por merchant_id A resposta também contém um token de página (se for e não a última) para consultar a próxima página.

Observação: as condições de filtragem devem ser consistentes em todos páginas de destino.

Práticas recomendadas

Como os status dos comerciantes não mudam com frequência, é são incentivados a armazenar em cache os resultados recuperados e periodicamente (por exemplo, horas) recuperá-las por meio de novas consultas. A Central de ações pode limitar consultas se o número de solicitações por segundo considerar excessivamente alto.