שליחת שאילתות לגבי סטטוס המוכר דרך ה-API ב-Appointments End-to-End

תרחישים לדוגמה

Google Maps Booking API מספק שתי שיטות שאפשר להשתמש בהן כדי לאחזר באופן פרוגרמטי את הסטטוס של המוכרים השונים בשילובים שונים או במלאי שטחי הפרסום של מודעות לשירותים מקומיים.

תרחישים לדוגמה ל-Merchant Status API:

  • שיפור הכלים הקיימים לניהול קשרי לקוחות כדי להראות ללקוחות איך המלאי שלהם מוצג ב-Google.
  • יוצרים לוח בקרה כדי לעקוב אחרי סטטוס המלאי וסטטוס ההתאמה של המוכרים.
  • אחזור פרוגרמטי של סטטוסים תואמים וסטטוסים שאפשר להזמין בהם מקום של המוכרים, ותיקון של פרטים שגויים כדי לשפר את איכות הנתונים.

מה מכיל סטטוס המוכר

השדה MerchantStatus מכיל את הפרטים הבאים:

  • סטטוס מלאי המוצרים של המוכר: רלוונטי גם למוכרים שמציעים הזמנה וגם למוכרים שמציעים רשימת המתנה.
  • סטטוס ההתאמה של המוכר: כולל פרטים על דף העסק המותאם
  • (מודעות 'Google בעלי מקצוע' בלבד) ספק השירות של המוכר שתואם: כולל את מספר הלקוח ואת קטגוריות השירות.
  • כתובות ה-URL שמייצגות את האופן שבו המוכר מוצג ב-Google.

חיפוש סטטוס של מוכר יחיד

אפשר לקבל את הסטטוס של מוֹכר יחיד באמצעות inventory.partners.merchants.getStatus:

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

לפניכם דוגמה לקוד ב-Python (כאן אפשר למצוא דוגמאות בשפות נוספות):

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

דוגמה לתגובה של 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"
      }
    ]
  }

אחזור סטטוסים של מוכרים בכמות גדולה

אפשר לאחזר את הסטטוסים של כל המוכרים או של קבוצת מוכרים שעומדים בתנאי מלאי שטחי פרסום או התאמה מסוימים באמצעות inventory.partners.merchants.status.list. לדוגמה, אפשר להשתמש בקריאה הזו כדי לקבל את כל המוכרים שלא נמצאו להם התאמות עם מלאי זמין להזמנות לתאריכים עתידיים:

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

דוגמה לתגובה:

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

התשובה תכיל 50 MerchantStatus שעומדים בתנאי הסינון וממוינים לפי merchant_id. התשובה כוללת גם אסימון דף (אם זה לא הדף האחרון) לשליחת שאילתה לדף הבא.

חשוב לזכור: תנאי הסינון צריכים להיות עקביים בכל הדפים.

שיטות מומלצות

מאחר שסטטוסי המוכרים לא משתנים לעיתים קרובות ברוב המקרים, מומלץ לשמור את התוצאות שאוחזרו במטמון ולאחזר אותן מדי פעם (למשל, כל כמה שעות) באמצעות שאילתות חדשות. אם מספר הבקשות לשנייה גבוה מדי, יכול להיות שמערכת Actions Center תגביל את השאילתות.