Truy vấn trạng thái người bán thông qua API

Trường hợp sử dụng

Google Maps Booking API cung cấp 2 phương thức có thể dùng để truy xuất trạng thái của từng người bán theo cách lập trình cho nhiều chế độ tích hợp của Trung tâm hành động hoặc khoảng không quảng cáo Quảng cáo dịch vụ tại địa phương.

Các trường hợp sử dụng Merchant Status API:

  • Nâng cao các công cụ quản lý mối quan hệ khách hàng hiện có để cho khách hàng thấy khoảng không quảng cáo của họ xuất hiện như thế nào trên nền tảng Trung tâm hành động.
  • Tạo trang tổng quan để theo dõi trạng thái kho hàng và trạng thái trùng khớp của người bán.
  • Lấy trạng thái trùng khớp và có thể đặt trước của người bán theo cách lập trình và sửa mọi thông tin không chính xác để cải thiện chất lượng dữ liệu.

Trạng thái người bán có những thông tin gì

MerchantStatus chứa những thông tin sau:

  • Trạng thái còn hàng của người bán: áp dụng cho cả người bán có dịch vụ đặt trước và/hoặc danh sách chờ.
  • Trạng thái so khớp người bán: bao gồm thông tin chi tiết về trang thông tin doanh nghiệp được so khớp
  • Đối với Quảng cáo dịch vụ địa phương của Google) Nhà cung cấp dịch vụ phù hợp của người bán: bao gồm mã khách hàng và danh mục dịch vụ.
  • URL minh hoạ cách người bán xuất hiện thông qua tính năng Đặt chỗ bằng Google.

Tìm trạng thái của một người bán

Bạn có thể nhận được trạng thái của một người bán bằng cách sử dụng inventory.partners.merchants.getStatus:

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

Sau đây là một đoạn mã mẫu bằng Python (xem ví dụ bằng nhiều ngôn ngữ khác tại đây):

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

Ví dụ về phản hồi MerchantStatus:

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

Truy xuất trạng thái của người bán hàng loạt

Bạn có thể truy xuất trạng thái của tất cả người bán hoặc một nhóm người bán đáp ứng một số điều kiện nhất định về khoảng không quảng cáo/điều kiện trùng khớp bằng cách sử dụng inventory.partners.merchants.status.list. Ví dụ: bạn có thể thực hiện lệnh gọi này để nhận tất cả người bán không khớp có khoảng không quảng cáo đặt phòng hợp lệ trong tương lai:

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

Phản hồi mẫu sẽ có dạng như sau:

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

Phản hồi này sẽ chứa 50 MerchantStatus đáp ứng các điều kiện lọc và được sắp xếp theo merchant_id. Phản hồi cũng chứa mã thông báo trang (nếu không phải là trang cuối cùng) để truy vấn trang tiếp theo.

Xin lưu ý: các điều kiện lọc phải nhất quán trên tất cả các trang.

Các phương pháp hay nhất

Vì trạng thái của người bán thường không thay đổi, nên bạn nên lưu kết quả đã truy xuất vào bộ nhớ đệm và định kỳ (ví dụ: vài giờ một lần) truy xuất kết quả đó thông qua các truy vấn mới. Actions Center có thể điều tiết các truy vấn của bạn nếu số lượng yêu cầu mỗi giây được coi là quá cao.