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

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

API Đặt chỗ trên Google Maps cung cấp hai phương thức có thể được sử dụng để truy xuất trạng thái của từng người bán cho nhiều tiện ích tích hợp Actions Center hoặc Quảng cáo dịch vụ địa phương khoảng không quảng cáo.

Các trường hợp sử dụng API Trạng thái người bán:

  • Nâng cao các công cụ quản lý quan hệ khách hàng hiện tại để chứng minh cách khoảng không quảng cáo của họ được hiển thị trên nền tảng Actions Center.
  • Xây dựng trang tổng quan để theo dõi trạng thái khoảng không quảng cáo và trạng thái so khớp của người bán.
  • Truy xuất theo phương thức lập trình trạng thái so khớp và có thể đặt trước của người bán và chỉnh sửa mọi thông tin không chính xác để cải thiện chất lượng dữ liệu.

Thông tin về trạng thái của người bán

Chiến lược phát hành đĩa đơn MerchantStatus chứa các thông tin sau:

  • Trạng thái kho hàng của người bán: áp dụng cho cả người bán có yêu cầu đặt trước và/hoặc trong 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 trùng khớp
  • Cho Chỉ Quảng cáo dịch vụ địa phương của Google) Nhà cung cấp dịch vụ người bán phù hợp: bao gồm mã khách hàng và danh mục dịch vụ.
  • Những 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.

Tra cứu trạng thái của một người bán duy nhất

Bạn có thể xem 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

Dưới đây là mã mẫu Python (xem ví dụ bằng các 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ụ Phản hồi MerchantStatus trông giống như sau:

  {
    "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 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 nhóm người bán đáp ứng một số điều kiện so khớp/khoảng không quảng cáo nhất định, sử dụng inventory.partners.merchants.status.list. Ví dụ: bạn có thể tạo cuộc gọi này để tìm hiểu về tất cả những người bán không trùng khớp có lịch đặt chỗ hợp lệ trong tương lai khoảng không quảng cáo:

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

Câu trả lờ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 là không phải trang cuối) để 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 phương pháp hay nhất

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