Esecuzione di query sullo stato del commerciante tramite l'API

Casi d'uso

L'API Google Maps Booking offre due metodi che possono essere utilizzati per recuperare in modo programmatico lo stato dei singoli commercianti per in varie integrazioni Annunci di Servizi locali inventario.

Casi d'uso dell'API Merchant Status:

  • Migliora gli strumenti di gestione dei rapporti con i clienti esistenti per dimostrare la tua ai clienti il modo in cui il loro inventario viene mostrato su Google.
  • Crea una dashboard per monitorare lo stato dell'inventario e lo stato della corrispondenza di i tuoi commercianti.
  • Recupera in modo programmatico gli stati di corrispondenza e prenotabili del tuo i commercianti e correggere eventuali informazioni errate per migliorare la qualità dei dati.

Che cosa contiene lo stato commerciante

La MerchantStatus contiene le seguenti informazioni:

  • Stato dell'inventario del commerciante: si applica sia ai commercianti che effettuano prenotazioni e/o alla lista d'attesa.
  • Stato della corrispondenza del commerciante: include i dettagli sulla scheda dell'attività corrispondente
  • Per (solo annunci di Servizi locali di Google) Fornitore di servizi commerciante corrispondente: include l'ID cliente e le categorie di servizio.
  • Gli URL per dimostrare come il commerciante viene mostrato su Google.

Cercare lo stato di un singolo commerciante

Puoi visualizzare lo stato di un singolo commerciante utilizzando inventory.partners.merchants.getStatus:

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

Ecco un esempio di codice Python (vedi esempi in altri linguaggi qui):

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')

Esempio La risposta di MerchantStatus ha il seguente aspetto:

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

Recuperare gli stati dei commercianti collettivamente

Puoi recuperare gli stati di tutti i commercianti o di un gruppo di commercianti che soddisfano determinate condizioni di corrispondenza/inventario, utilizzando inventory.partners.merchants.status.list. Ad esempio, puoi rendere questa chiamata per ottenere tutti i commercianti senza corrispondenza con una prenotazione valida con data futura inventario:

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

Ecco un esempio di risposta:

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

Questa risposta conterrà 50 MerchantStatus che soddisfa le condizioni di filtro e che è ordinato per merchant_id. La risposta contiene anche un token di pagina (se è non è l'ultima pagina) per eseguire una query sulla pagina successiva.

Nota: le condizioni di filtro devono essere coerenti in tutte pagine.

Best practice

Poiché nella maggior parte dei casi lo stato dei commercianti non cambia, a memorizzare nella cache i risultati recuperati e periodicamente (ad es. a intervalli di ore) li recupera tramite nuove query. Il Centro azioni potrebbe limitare le tue se il numero di richieste al secondo ritiene essere eccessivamente elevato.