שמירת סטטוס סוחר של שאילתות מקצה לקצה באמצעות ה-API

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

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

תרחישים לדוגמה עבור 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. התגובה מכילה גם אסימון דף (אם הוא לא הדף האחרון) כדי לשלוח שאילתה על הדף הבא.

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

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

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