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 varie integrazioni del Centro azioni o inventario di annunci di Servizi locali.

Casi d'uso dell'API Merchant Status:

  • Migliora gli strumenti di gestione dei rapporti con i clienti esistenti per mostrare ai tuoi clienti in che modo il loro inventario viene visualizzato sulla piattaforma Actions Center.
  • Crea una dashboard per monitorare lo stato dell'inventario e della corrispondenza dei tuoi commercianti.
  • Recupera in modo programmatico gli stati di corrispondenza e prenotabili dei tuoi commercianti e correggi eventuali informazioni errate per migliorare la qualità dei dati.

Che cosa indica lo stato commerciante

MerchantStatus contiene le seguenti informazioni:

  • Stato dell'inventario del commerciante. Si applica sia ai commercianti che si occupano di prenotazioni e/o alla lista d'attesa.
  • Stato di corrispondenza del commerciante: include i dettagli sulla scheda dell'attività corrispondente
  • Fornitore di servizi commerciante corrispondenti: include l'ID cliente e le categorie di servizi.
  • Gli URL per dimostrare in che modo il commerciante viene visualizzato tramite Prenota con Google.

Cercare un singolo stato commerciante

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

Un esempio di risposta 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 collettivamente gli stati dei commercianti

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

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

Una risposta di esempio avrebbe il seguente aspetto:

  {
    "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 soddisfano le condizioni di filtro e ordinati in base a 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 le pagine.

Best practice

Poiché nella maggior parte dei casi gli stati dei commercianti non cambiano di frequente, consigliamo di memorizzare nella cache i risultati recuperati e recuperarli periodicamente (ad esempio a intervalli di alcune ore) tramite nuove query. Il Centro azioni può limitare le tue query se il numero di richieste al secondo ritiene essere eccessivamente elevato.