Interroger l'état du marchand via l'API

Cas d'utilisation

L'API Google Maps Booking fournit deux méthodes que vous pouvez utiliser pour récupérer de manière programmatique l'état de chaque marchand diverses intégrations du Centre d'actions Annonces Local Services de l'inventaire.

Cas d'utilisation de l'API Merchant Status:

  • Améliorez les outils existants de gestion de la relation client pour démontrer votre aux clients comment leur inventaire est présenté sur la plate-forme du centre d'actions.
  • Créez un tableau de bord pour suivre l'état de l'inventaire et le statut de mise en correspondance des vos marchands.
  • Récupérez de manière programmatique les états correspondants et réservables de votre marchands et corriger les informations incorrectes afin d'améliorer la qualité des données.

Que contient l'état du marchand ?

La MerchantStatus contient les informations suivantes:

  • État de l'inventaire du marchand: s'applique aux marchands qui réservent et/ou sur liste d'attente.
  • État de la mise en correspondance du marchand: détails sur la fiche d'établissement mise en correspondance
  • Pour Annonces Local Services Google uniquement) Fournisseur de services marchand correspondant: qui comprend le numéro client et les catégories de services.
  • URL montrant comment le marchand est affiché via Réserver avec Google

Rechercher l'état d'un seul marchand

Vous pouvez obtenir l'état d'un seul marchand à l'aide de inventory.partners.merchants.getStatus:

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

Voici un exemple de code Python (voir des exemples dans d'autres langages ici):

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

Exemple La réponse MerchantStatus se présente comme suit:

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

Récupérer l'état des marchands de manière groupée

Vous pouvez récupérer l'état de tous les marchands ou d'un groupe de marchands. qui remplissent certaines conditions d'inventaire/de correspondance, inventory.partners.merchants.status.list. Par exemple, vous pouvez cet appel pour obtenir la liste de tous les marchands sans correspondance disposant d'une réservation valide dans le futur inventaire:

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

Voici un exemple de réponse:

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

Cette réponse contiendra 50 MerchantStatus qui répondent aux conditions de filtrage et sont classées par merchant_id La réponse contient également un jeton de page (s'il s'agit et non la dernière) pour interroger la page suivante.

Remarque: Les conditions de filtrage doivent être cohérentes .

Bonnes pratiques

Étant donné que l'état des marchands ne change pas souvent dans la plupart des cas, il est est encouragé à mettre en cache les résultats récupérés et régulièrement (par exemple, tous les deux ou trois heures) les récupèrent via de nouvelles requêtes. Il est possible que le centre d'actions ralentisse si le nombre de requêtes par seconde est jugé trop élevé.