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 phòng của Google Maps cung cấp 2 phương thức mà bạn có thể dùng để truy xuất trạng thái của người bán cá nhân theo phương thức lập trình cho nhiều chế độ tích hợp trong Actions Center hoặc khoảng không quảng cáo Quảng cáo dịch vụ địa phương.

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 có để cho khách hàng thấy cách khoảng không quảng cáo của họ xuất hiện trên nền tảng Actions Center.
  • Tạo một trang tổng quan để theo dõi trạng thái kho hàng và trạng thái so khớp của người bán.
  • Truy xuất trạng thái so khớp và trạng thái có thể đặt trước của người bán theo phương thức lập trình, đồng thời 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.

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

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 đặt trước và/hoặc trong danh sách chờ.
  • Trạng thái so khớp của người bán: cung cấp thông tin chi tiết về trang thông tin doanh nghiệp được so khớp
  • Chỉ dành cho 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: Thêm mã khách hàng và danh mục dịch vụ.
  • Các URL để minh hoạ cách người bán xuất hiện thông qua tính năng Đặt chỗ với 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 duy nhất 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 cho Python (xem ví dụ bằng nhiều ngôn ngữ hơn 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')

Sau đây là một 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 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 về kho hàng/so khớp nhất định 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ả những người bán không phù hợp có kho hàng đặt trước 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ột 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.

Những phương pháp hay nhất

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