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

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

API Đặt trước của Google Maps cung cấp hai phương thức có thể dùng để truy xuất trạng thái của từng người bán theo phương thức lập trình cho nhiều hoạt động tích hợp 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 Merchant Status API:

  • Cải thiện 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 hàng của họ xuất hiện trên Google.
  • 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 theo phương thức lập trình trạng thái phù hợp và có thể đặt phòng của người bán, đồng thời khắc phục 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 chứa nội dung gì

MerchantStatus chứa các thông tin sau:

  • Trạng thái khoảng không quảng cáo của người bán: áp dụng cho cả người bán đặt trước và/hoặc người bán có danh sách chờ.
  • Trạng thái so khớp của 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
  • Chỉ dành cho Quảng cáo dịch vụ địa phương của Google) Nhà cung cấp dịch vụ của người bán được so khớp: 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 trên Google.

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

Bạn có thể lấy 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ã mẫu 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/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 có hiệu lực vào ngày 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 người bán thường không thay đổi thường xuyên, nên bạn nên lưu kết quả đã truy xuất vào bộ nhớ đệm và định kỳ (ví dụ: mỗi vài giờ) truy xuất kết quả đó thông qua các truy vấn mới. Trung tâm hành động 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.