API üzerinden satıcı durumunu sorgulamak

Kullanım alanları

Google Haritalar Rezervasyon API'si, çeşitli İşlemler Merkezi entegrasyonları veya yerel hizmet reklamları envanteri için tek tek satıcıların durumunu programatik olarak almak üzere kullanılabilecek iki yöntem sunar.

Merchant Status API'nin kullanım alanları:

  • Müşterilerinize envanterlerinin İşlemler Merkezi platformunda nasıl gösterildiğini açıklamak için mevcut müşteri ilişkileri yönetimi araçlarını geliştirin.
  • Satıcılarınızın envanter durumunu ve eşleşme durumunu izlemek için bir kontrol paneli oluşturun.
  • Satıcılarınızın eşleşen ve rezervasyon yapılabilir durumlarını programatik olarak alın ve veri kalitesini artırmak için yanlış bilgileri düzeltin.

Satıcı durumu ne içerir?

MerchantStatus aşağıdaki bilgileri içerir:

  • Satıcı envanter durumu: Hem rezervasyon hem de bekleme listesi satıcıları için geçerlidir.
  • Satıcı eşleşme durumu: Eşleşen işletme girişiyle ilgili ayrıntıları içerir.
  • Yalnızca Google Yerel Hizmet Reklamları için) Eşleşen satıcı hizmeti sağlayıcısı: Müşteri kimliğini ve hizmet kategorilerini içerir.
  • Satıcının Google ile Rezervasyon üzerinden nasıl gösterildiğini gösteren URL'ler.

Tek bir satıcının durumunu arama

inventory.partners.merchants.getStatus kullanarak tek bir satıcının durumunu alabilirsiniz:

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

Aşağıda bir Python kodu örneği verilmiştir (daha fazla dildeki örnekleri burada bulabilirsiniz):

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

Bir örnek MerchantStatus yanıtı şu şekilde görünür:

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

Satıcı durumlarını toplu olarak alma

inventory.partners.merchants.status.list kullanarak tüm satıcıların veya belirli envanter/eşleştirme koşullarını karşılayan bir satıcı grubunun durumlarını alabilirsiniz. Örneğin, geçerli gelecekteki tarihli rezervasyon envanterine sahip tüm eşleşmeyen satıcıları almak için aşağıdaki çağrıyı yapabilirsiniz:

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

Örnek bir yanıt şöyle görünür:

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

Bu yanıtta, filtreleme koşullarını karşılayan ve merchant_id ile sıralanan 50 MerchantStatus yer alır. Yanıt, sonraki sayfayı sorgulamak için bir sayfa jetonu da içerir (son sayfa değilse).

Lütfen unutmayın: Filtreleme koşulları tüm sayfalarda tutarlı olmalıdır.

En İyi Uygulamalar

Satıcı durumları çoğu zaman sık değişmediğinden, alınan sonuçların önbelleğe alınması ve belirli aralıklarla (ör. birkaç saatte bir) yeni sorgularla alınması önerilir. İşlemler Merkezi, saniye başına istek sayısı aşırı yüksek olarak değerlendirilirse sorgularınızı kısıtlayabilir.