Membuat kueri status penjual melalui API

Kasus penggunaan

Google Maps Booking API menyediakan dua metode yang dapat digunakan untuk mengambil status masing-masing penjual secara terprogram untuk berbagai integrasi Pusat Tindakan atau inventaris Iklan Layanan Lokal.

Kasus penggunaan Merchant Status API:

  • Tingkatkan kualitas alat pengelolaan hubungan pelanggan yang ada untuk menunjukkan kepada pelanggan Anda cara inventaris mereka ditampilkan di platform Actions Center.
  • Buat dasbor untuk melacak status inventaris dan status pencocokan penjual Anda.
  • Ambil secara terprogram status yang cocok dan dapat dipesan dari penjual Anda dan perbaiki informasi yang salah untuk meningkatkan kualitas data.

Isi status penjual

MerchantStatus berisi informasi berikut:

  • Status inventaris penjual: berlaku untuk penjual yang menawarkan pemesanan dan/atau daftar tunggu.
  • Status pencocokan penjual: mencakup detail tentang listingan bisnis yang cocok
  • Untuk Iklan Jasa dan Servis Google saja) Penyedia layanan penjual yang cocok: mencakup ID pelanggan dan kategori layanan.
  • URL untuk mendemonstrasikan cara penjual ditampilkan melalui Pesan dengan Google.

Mencari status satu penjual

Anda bisa mendapatkan status satu penjual menggunakan inventory.partners.merchants.getStatus:

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

Berikut adalah contoh kode Python (lihat contoh dalam lebih banyak bahasa di sini):

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

Contoh respons MerchantStatus terlihat seperti:

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

Mengambil status penjual secara massal

Anda dapat mengambil status semua penjual, atau sekelompok penjual yang memenuhi kondisi inventaris/pencocokan tertentu, menggunakan inventory.partners.merchants.status.list. Misalnya, Anda dapat melakukan panggilan ini untuk mendapatkan semua penjual yang tidak cocok dengan inventaris pemesanan bertanggal mendatang yang valid:

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

Contoh responsnya akan terlihat seperti ini:

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

Respons ini akan berisi 50 MerchantStatus yang memenuhi kondisi pemfilteran dan diurutkan berdasarkan merchant_id. Respons juga berisi token halaman (jika bukan halaman terakhir) untuk mengkueri halaman berikutnya.

Perhatikan: kondisi pemfilteran harus konsisten di semua halaman.

Praktik Terbaik

Karena status penjual tidak sering berubah, sebaiknya simpan hasil yang diambil ke dalam cache dan ambil secara berkala (misalnya, setiap beberapa jam) melalui kueri baru. Pusat Tindakan dapat membatasi kueri Anda jika jumlah permintaan per detik dianggap terlalu tinggi.