API üzerinden Appointments End-to-End ile satıcı durumunu sorgulama

Kullanım alanları

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

Merchant Status API'nin kullanım alanları:

  • Müşterilerinize envanterlerinin Google'da nasıl gösterildiğini göstermek 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 takip etmek için bir kontrol paneli oluşturun.
  • Veri kalitesini artırmak için satıcılarınızın eşleşen ve rezervasyon yapılabilir durumlarını programatik olarak alın ve yanlış bilgileri düzeltin.

Satıcı durumu neleri içerir?

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

  • Satıcı envanteri durumu: Hem rezervasyon yapan hem de/veya bekleme listesindeki 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ı hizmet sağlayıcı: Müşteri kimliğini ve hizmet kategorilerini içerir.
  • Satıcının Google'da nasıl gösterildiğini gösteren URL'ler.

Tek bir satıcının durumunu arama

inventory.partners.merchants.getStatus işlevini 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 kod örneği verilmiştir (Daha fazla dilde örnek için buraya bakın):

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ı şöyle 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 API'sini kullanarak tüm satıcıların veya belirli envanter/eşleşme koşullarını karşılayan bir satıcı grubunun durumlarını alabilirsiniz. Örneğin, gelecek tarihli geçerli rezervasyon envanteri olan tüm eşleşmeyen satıcıları almak için şu ç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 şu şekilde 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ıt, filtreleme koşullarını karşılayan ve merchant_id tarafından sıralanan 50 MerchantStatus içerir. Yanıt, sonraki sayfayı sorgulamak için bir sayfa jetonu da içerir (son sayfa değilse).

Filtreleme koşullarının tüm sayfalarda tutarlı olması gerektiğini lütfen unutmayın.

En İyi Uygulamalar

Satıcı durumları çoğu zaman sık sık değişmediğinden, alınan sonuçları önbelleğe almanız ve yeni sorgular aracılığıyla düzenli aralıklarla (ör. birkaç saatte bir) almanız önerilir. Saniye başına istek sayısı aşırı yüksek olarak değerlendirilirse İşlem Merkezi, sorgularınızı sınırlandırabilir.